Автор Тема: MPC Video Renderer  (Прочитано 67630 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1436
MPC Video Renderer
« Ответ #15 : 03 Март 2018, 19:40:08 »
Цитата: V0lt
Не надо так делать. В коде это пока не предусмотрено.
Ясно. Просто мне так переключать их удобнее и быстрее всего проверить каждый из них.
Потом тогда реализуете такую возможность. Ее просто не хватает сейчас для удобства проверки.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2198
MPC Video Renderer
« Ответ #16 : 04 Март 2018, 01:36:40 »
YV12 выводиться некорректно:
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1436
MPC Video Renderer
« Ответ #17 : 04 Март 2018, 05:09:04 »
Aleksoid1978

V0lt говорил, что "YV12 выводится почти правильно".

На AMD-видеокарте выходной формат YV12 выглядит еще более невероятно.

В общем, выглядит так, как будто взяли одно изображение и разделили (разрезали) его на четыре равные части и продублировали их.
[merge_posts_bbcode]Добавлено: 2018-03-04 08:09:04[/merge_posts_bbcode]

V0lt / Aleksoid1978

С выходным форматом P010 есть проблема. В моем случае, на AMD-видеокарте, при выводе в данный формат, просто черный экран, т.е. изображения нет. Я запустил видео файл "H.264 (10 bit)", вижу в видео декодере, что работает выходной формат P010, т.е. 10 бит выводятся в чистом виде, но само изображение отсутствует.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #18 : 04 Март 2018, 05:13:07 »
С YV12 разберусь и поправлю.

RGB32 в будущем оставлю только для DXVA-HD, а для DXVA2-VP сделаю интерполяцию через шейдеры. Там не шибко сложно должно быть, т.к. не надо преорбразования YUV->RGB делать.

Вопрос. Мы будем куда-нибудь выкладывать сборки фильтра?
Если будем то надо архиву порядковый номер присваивать (как в MPC-HC) и часть хеша.
Пример: MpcVideoRenderer-r20-7cf381d2.zip.

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1436
MPC Video Renderer
« Ответ #19 : 04 Март 2018, 05:42:16 »
Цитата: V0lt
Вопрос. Мы будем куда-нибудь выкладывать сборки фильтра?
Если будем то надо архиву порядковый номер присваивать (как в MPC-HC) и часть хеша.
Пример: MpcVideoRenderer-r20-7cf381d2.zip.
Я буду собирать и выкладывать сборки фильтра на Я.Диск в отдельную папку.
Позже могу добавить ссылку на данный фильтр в шапку в нашу тему проекта "MPC-BE" на Ruboard.

В общем, будет само название фильтра, его порядковый номер (текущее последнее изменение) и текущий коммит (7 знаков), как в вашем примере.
[merge_posts_bbcode]Добавлено: 2018-03-04 08:42:16[/merge_posts_bbcode]

V0lt
Может лучше для 64-битной версии фильтра в его название добавить "64", т.е. вот так "MpcVideoRenderer64.ax", чтобы можно было положить две версии 32 и 64 битную в один архив. Как вы считаете?
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #20 : 04 Март 2018, 05:49:32 »
Evgeniy1990
Не спеши. Там батник еще надо написать, которого нет. :)

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1436
MPC Video Renderer
« Ответ #21 : 04 Март 2018, 05:51:49 »
Цитата: V0lt
Evgeniy1990
Не спеши. Там батник еще надо написать, которого нет. :)
Ок, понял вас, в общем, тогда буду ждать батника. :)
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2198
MPC Video Renderer
« Ответ #22 : 04 Март 2018, 06:03:15 »
Куда вы летите - еще настолько сырое чтобы выкладывать. Да и вообще - какой смысл его отдавать в паблик ??
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1436
MPC Video Renderer
« Ответ #23 : 04 Март 2018, 06:06:38 »
Цитата: Aleksoid1978
Куда вы летите - еще настолько сырое чтобы выкладывать. Да и вообще - какой смысл его отдавать в паблик ??
Мы пока никуда не торопимся, пока просто обдумываем как будем его в дальнейшем собирать, куда выкладывать и т.д.
Пока только мысли на будущее. :)
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #24 : 04 Март 2018, 06:47:55 »
Хмм.
В общем DXVA-HD оказался беднее в плане вариантов преобразования YUV->RGB
Спецификации для сравнения: DXVA-HD и DXVA2-VP.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2198
MPC Video Renderer
« Ответ #25 : 04 Март 2018, 07:00:10 »
Необходимо реализовать поддержку ресайза на паузе. А для этого надо хранить послдений кадр. И если с софтовым декодированием все более-менее просто(у нас последние данные есть в m_pSrcSurface и можно на паузе спокойно выводить их), то с DXVA2 сложнее - тут надо данные из pSample как-то вытаскивать в туже m_pSrcSurface.
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #26 : 04 Март 2018, 07:10:40 »
Aleksoid1978
Тут вот какое дело. Если мы будет прикручивать деинтерлейс, то скорее всего у нас появиться очередь и тогда вопрос с паузой решиться сам с собой. :)

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2198
MPC Video Renderer
« Ответ #27 : 04 Март 2018, 07:13:40 »
В любом случае, для начала - надо научиться вытаскивать данные из surface для DXVA2 режима.
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #28 : 04 Март 2018, 11:49:27 »
Исправил вывод YV12.
[merge_posts_bbcode]Добавлено: 2018-03-04 14:25:08[/merge_posts_bbcode]

Aleksoid1978, тебе вопрос.
В коде ниже кто рулит буфером в виде pSurface? Декодер?
   if (CComQIPtr pService = pSample) {
        CComPtr pSurface;
        if (SUCCEEDED(pService->GetService(MR_BUFFER_SERVICE, IID_PPV_ARGS(&pSurface)))) {


        }
    }

[merge_posts_bbcode]Добавлено: 2018-03-04 14:49:27[/merge_posts_bbcode]

Про деинтерлейс в DXVA2-VP.
Сейчас мы используем ProgressiveDevice. Но если понадобиться, то можно использовать BobDevice. Он стандартный, использует фичу BOBVerticalStretch и вроде как удваивает частоту.

Есть еще "девайсы" от вендеров.
Nvidia {6CB69578-7617-4637-91E5-1C02DB810285}, который использует PixelAdaptive.
Intel {BF752EF6-8CC4-457A-BE1B-08BD1CAEEE9F}, который использует EdgeFiltering, InverseTelecine и требует 1 BackwardRefSamples.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2198
MPC Video Renderer
« Ответ #29 : 04 Март 2018, 13:03:26 »
В случае DXVA2 - тем pSurface рулит DXVA2 декодер, тот который в Direct3D9(не путать с видео-декодером).
Поэтому чтобы получить данные от DXVA2 декодера - нам и нужно вот таким образом получить указатель на поверхность, которая содержит сами данные. Вот их и надо научиться сохранять.
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215