301

Re: MPC Video Renderer

Прикол с видео без звука.

Тяжелое видео. Т.к. нормальных часов нет, то ничего не дропается. Иногда это бывает даже хорошо, можно слоумо посмотреть. Но иногда декодер выдает кадры волнами и получается не очень.
На EVR-CP тоже самое.

На видео средней тяжести проблема тоже может присутствовать. Запускаю 23,976 на мониторе с 60 Гц, а картинки неравномерно выводятся, группами.
Тут EVR-CP плавнее.

Это я так на будущее. :-)

302

Re: MPC Video Renderer

Ну как бы без нормальных часов оно так и будет, иногда рывками. Не стоит на это обращать внимание.

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

303

Re: MPC Video Renderer

V0lt/Aleksoid1978
Иногда, при открытии различных видео файлов, может выскакивать ASSERT.

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.

304

Re: MPC Video Renderer

Evgeniy1990
На отладочной версии такое бывает. Что-то не нравиться базовому классу.

305

Re: MPC Video Renderer

Предварительные данные для рантайим компиляции шейдеров DX11.
Шейдер convert_color (для NV12) компилируется около 10 мс, шейдер convert_color_st2084 (для P010) - около 40 мс.

306

Re: MPC Video Renderer

V0lt пишет:

На отладочной версии такое бывает. Что-то не нравиться базовому классу.

Интересно, что такое проявляется только в паре с нашим MPC Video Decoder.

Если создать (построить) чистый граф фильтров, состоящий только из наших автономных фильтров с нашим же MPC Video Renderer, то можно даже получить ситуацию, когда "Scaling 0x0 -> 0x0", при этом нет никакого изображения, просто "черный экран".

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.

307

Re: MPC Video Renderer

Evgeniy1990 пишет:

Если создать (построить) чистый граф фильтров, состоящий только из наших автономных фильтров с нашим же MPC Video Renderer, то можно даже получить ситуацию, когда "Scaling 0x0 -> 0x0", при этом нет никакого изображения, просто "черный экран".

Очень странно на входе 1280x720, на выходе окно тоже имеет размер. Посмотри, что в отладочная версия MPC VR пишет во вкладке "Information".

308

Re: MPC Video Renderer

V0lt пишет:

Очень странно на входе 1280x720, на выходе окно тоже имеет размер. Посмотри, что в отладочная версия MPC VR пишет во вкладке "Information".

Посмотрел.

Там у меня вот такая информация:

DirectX 11
Graphics adapter: AMD Radeon HD 5700 Series (1002:68B8)
VideoProcessor  : D3D11
Source rect   : 0,0,1280,720 - 1280x720
Target rect   : 0,0,1280,720 - 1280x720
Video rect    : 0,0,0,0 - 0x0
Window rect   : 0,0,1272,716 - 1272x716
SrcRender rect: 0,0,0,0 - 0x0
DstRender rect: 0,0,0,0 - 0x0

Самое странное и неприятное то, что:

Video rect    : 0,0,0,0 - 0x0
SrcRender rect: 0,0,0,0 - 0x0
DstRender rect: 0,0,0,0 - 0x0

Все эти строчки строго по нулям.

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.

309

Re: MPC Video Renderer

Значит не прилетает SetVideoRect

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

310

Re: MPC Video Renderer

Ответы на вопросы о пропуск кадров в MPC VR

1. Для чего нужно пропускать кадры?
Чтобы видео успевало за звуком.

2. Когда нужно пропускать кадры?
А. Когда видео декодируется и рендериться медленнее, чем требуется.
Б. Когда частота кадров больше частоты дисплея.

3. Каков алгоритм пропуска кадров?
Допустим у нас видео с частотой 25 кадров/сек. Соответственно длительность одного кадра 40 мс и время начала отображения кадров можно представить в виде ряда:
0 40 80 120 160 200 240...
Соответственно время конца отображения кадра равно началу следующего.
Алгоритм вывода-пропуска кадров (упрощенный для понимания сути).
Первый кадр после начала воспроизведения или поиска выводиться всегда. Это нужно, чтобы мы хоть что-то увидели на медленной машине.
Остальные кадры выводятся, если они попадают в свое время (или немного раньше его, но для простоты понимания пока не будем учитывать). Например, в рендерер прилетел кадр со временем 120 мс. Сравниваем с текущем временем, если оно попадает в диапазон 120..160мс, то кадр выводиться. Если менее 120 мс, то придерживается, если более 160 мс, то отбрасывается.

4. Каков алгоритм пропуска кадров для интерлейсного видео
Кадры первого поля выводятся как обычные кадры (см. предыдущий ответ). Кадры второго поля выводятся вслед за предыдущим, если они попадают в тот же диапазон. Для кадра 120 мс, второе поле будет выведено, если текущее время менее 160 мс, в противном случае оно будет отброшено. В данном случае механизм придерживания кадра отсутствует, т.к. не требуется для типичных ситуаций (первое поле уже использовало примерно половину времени).

311

Re: MPC Video Renderer

Есть возможность в окно свойств добавить как в EVR/EVR-CP(статистика вывода), что думаем ?

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

312

Re: MPC Video Renderer

Aleksoid1978, о чем конкретно идет речь?

Добавлено: 2019-08-05 20:40:11

Речь о вкладке "Качество"?
https://i.ibb.co/3mdZ0jg/image.png

313

Re: MPC Video Renderer

Да - да, именно о ней.

Добавлено: 2019-08-06 09:30:26

Все отлично работает, вопрос только в том где разместить.
Вот сам патч - https://yadi.sk/d/5gTueUiBPhBtnA

Вкладка "Качество" располагается после всех "наших", перед Pin Info.

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

314

Re: MPC Video Renderer

Aleksoid1978, обычно оно в конце располагается. Перед плеерским PinInfo. Вот скриншот для EVR-ов.
https://i.ibb.co/YdkW432/2.png

Патч не смотрел еще.

315

Re: MPC Video Renderer

V0lt

Присутствует проблема с "Direct3D 9Ex".

Если, при "Direct3D 9Ex", мы откроем плейлист и будем растягивать его вверх, или налево, в зависимости от его расположения, то у нас резко начинает возрастать Sync Offset и появляются пропущенные кадры прямо во время воспроизведения видео файла. с Direct3D11 данной проблемы нет.

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.

316

Re: MPC Video Renderer

Странное поведение - значительно повышается время потраченное на обработку субтитров(хотя их там и нет). Но
то все вызвано принудительной перерисовкой по время ресайза видео-области. И из-за этого получается следующие кадры уже не успевают и пропускаются.

Кстати такое поведение только на Discard, на Flip нет(но картинка моргает при ресайзе).

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

317

Re: MPC Video Renderer

Evgeniy1990 пишет:

Если, при "Direct3D 9Ex", мы откроем плейлист и будем растягивать его вверх, или налево, в зависимости от его расположения, то у нас резко начинает возрастать Sync Offset и появляются пропущенные кадры прямо во время воспроизведения видео файла.

Рендерер не рассчитан на плавное воспроизведение, если его окно постоянно изменяют.
Появление пропущенных кадров зависит не только от DX, но и от режима презентации.
У меня на Win8.1 так
DX9, Discard - пропускаются.
DX9, FlipEx - выводится все.
DX11, Discard - выводится все.
DX11, Flip seqential - пропускаются.

318

Re: MPC Video Renderer

V0lt пишет:

Рендерер не рассчитан на плавное воспроизведение, если его окно постоянно изменяют.
Появление пропущенных кадров зависит не только от DX, но и от режима презентации.

О как...  Вот так новость...  о_О

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.

319

Re: MPC Video Renderer

Evgeniy1990
Поясню. При изменении окна рендерер постоянно рендерит имеющийся кадр под новый размер. Если декодер подготовил новый кадр, то ему придется подождать, когда рендерер освободиться. Но время идет, и может получиться так, что кадр от декодера уже устарел и нужен следующий. Поэтому кадр будет пропущен.

320

Re: MPC Video Renderer

V0lt пишет:

Evgeniy1990
Поясню. При изменении окна рендерер постоянно рендерит имеющийся кадр под новый размер. Если декодер подготовил новый кадр, то ему придется подождать, когда рендерер освободиться. Но время идет, и может получиться так, что кадр от декодера уже устарел и нужен следующий. Поэтому кадр будет пропущен.

Понятно. Просто я удивлен тому, насколько жестко ведет себя этот самый "Direct3D 9Ex", который, как мне всегда казалось, так вести себя никогда не должен. Ведь на том же EVR-CP Direct3D9 так себя не ведет. А мерцание изображения (кадров) при Flip/FlipEx - это вообще нечто. Странно, что Direct3D11 так себя не ведет.

Я это к тому, что если используется "Direct3D9 Ex", то при различных взаимодействиях с окнами плеера и плейлистом очень резко и сильно возрастает нагрузка. Это не есть хорошо. Скажем так - не критично, но неприятно.

И еще - как получить этот "Flip seqential"? У меня всегда, при любых конфигурациях, только "Flip discard" работает.

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.

321

Re: MPC Video Renderer

Evgeniy1990
"Flip discard" доступен только для Windows 10 и если при сборке использовался Win10SDK. Для остальных случаев для DX11+Flip будет использоваться "Flip seqential".

322

Re: MPC Video Renderer

V0lt пишет:

Evgeniy1990
"Flip discard" доступен только для Windows 10 и если при сборке использовался Win10SDK. Для остальных случаев для DX11+Flip будет использоваться "Flip seqential".

Ух ты, так это оказывается, еще и особенность Windows 10 и пакета Win10SDK. Здорово! Значит я не зря собираю сборки с использованием Win10SDK. smile

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.

323

Re: MPC Video Renderer

По поводу "медленного" ресайза, по поводу моргания при ресайзе(DX9 + Flip) - проверяем
https://yadi.sk/d/v9IWDMoEp-FlUw

Добавлено: 2019-08-29 18:32:41

Хотя уже не актуально, собираем последний BE и VR и проверям

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

324

Re: MPC Video Renderer

Aleksoid1978 пишет:

По поводу "медленного" ресайза, по поводу моргания при ресайзе(DX9 + Flip) - проверяем
https://yadi.sk/d/v9IWDMoEp-FlUw

Добавлено: 2019-08-29 18:32:41

Хотя уже не актуально, собираем последний BE и VR и проверям

Проверил тестовый билд, а также собрал и проверил последний SVN-билд вместе с последним MPC Video Renderer.
В результате, ресайз стал работать нормально, плавно и быстро, без пропусков кадров на "Direct3D 9Ex". Также пропало мерцание изображения при "Direct3D 9Ex" + "FlipEx". Великолепно! Вы меня удивили! Даже и не ожидал, что это можно исправить, но вам удалось! wink

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.

325

Re: MPC Video Renderer

В планах выделить видеопроцессор D3D11 в отдельный класс. С ним проще экспериментировать, чем с DXVA2 VP.

Для чего это нужно:
1. Я надеюсь это поможет организовать более гибкий конвейер.
2. Хочу попробовать использовать D3D11 VP только для деинтерлейса для NV12 и YUY2.
3. Хочу попробовать вообще отключить D3D11 VP и попробовать задействовать шейдеры DX11 на Windows 7.