Поломалась работа аппаратного деинтерлейса на VMR-9 RL [Исправлено]

Автор Evgeniy1990, 03 июня 2016, 11:04:32

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Evgeniy1990

Краткое описание проблемы:

Обнаружил поломку в работе аппаратного деинтерлейса на интерлейсных MPEG-2-видео файлах в софте и DXVA.

Условия:

1. Любые интерлейсные MPEG-2-видео файлы
2. Видео-рендерер: VMR-9 RL
3. Опция "Режим VMR Mixer" для работы аппаратного деинтерлейса

Алгоритм воспроизведения:

1. Выбрать VMR-9 RL
2. Включить опцию "VMR Mixer"
3. Запустить любой интерлейсный MPEG-2-видео файл

Фактический результат: при воспроизведении наблюдается сильная нагрузка, пропуски кадров, частота кадров = 36 - 38 FPS, вместо реальных 50, если видео файл имел изначально 25 FPS.

Ожидаемый результат: любые интерлейсные MPEG-2 видео файлы должны воспроизводится нормально на VMR-9 RL, если включен режим VMR Mixer.

Скриншот: https://yadi.sk/i/O1MIFrN_sDsCf
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

Проверь на другом декодере, на обычном vmr9.
Мы ничего там не трогали да и вообще-то не управляем этим процессом.
[merge_posts_bbcode]Добавлено: 2016-06-03 18:14:24[/merge_posts_bbcode]

Проверь на другом формате, том же H264.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Цитата: Aleksoid1978Проверь на другом декодере, на обычном vmr9.
Мы ничего там не трогали да и вообще-то не управляем этим процессом.
[merge_posts_bbcode]Добавлено: 2016-06-03 18:14:24[/merge_posts_bbcode]

Проверь на другом формате, том же H264.
Я нашел интервал и изменения из-за которого возникла поломка.

Вот интервал: [1508 - 1510]

В SVN r1508- бага нет.
В SVN r1510 - поломка уже присутствует.
[merge_posts_bbcode]Добавлено: 2016-06-03 11:48:28[/merge_posts_bbcode]

Поломалась работа именно на VMR-9 RL, поскольку были переделки флага Rotation.
Начиная с SVN r1509 и выше из-за этих переделок теперь некорректно работает аппаратный деинтерлейс на данном видео-рендерере.
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

Не на WinXP тоже ??
[merge_posts_bbcode]Добавлено: 2016-06-03 20:16:59[/merge_posts_bbcode]

Проверил на Win10 - все хорошо.
http://i.imgur.com/MaKQoTj.jpg

А этого и достаточно :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Aleksoid1978

Поломалось только на Windows XP.

Дело в том, что мы теперь имеем обратную ситуацию, если раньше была огромная нагрузка при работе флага Rotation, то теперь наоборот, при работе аппаратного деинтерлейса у нас высокая нагрузка, особенно на сам плеер, его интерфейс, если попробовать развернуть видео файл на полный экран, а затем свернуть, то также видно, как он ломается, а изображение с трудом подстраивается под него.

Цитата: 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

Aleksoid1978
Хочешь прикол? :)

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

Evgeniy1990

Проверил на Windows 7 видео-рендерер VMR-9 RL+ VMR Mixer на некоторых интерлейсных видео файлах.
Реально, бред какой-то, частота скачет, как безумная, изображение "рвется".

Это я проверил на ATI HD5770.
[merge_posts_bbcode]Добавлено: 2016-06-03 13:38:28[/merge_posts_bbcode]

И эта "страшная" поломка идет с SVN r1509.  Я уж думал, сейчас BSOD словлю, частота улетает за 75 -80 FPS.
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

Я проверил на Win10. У меня еще правда включен VSync - но на любом интерлейс файле все как положено частота удваивается.
Если надо - дайте свои файлы, покажите настройки раздела видео. Я сравню и проверю у себя.

Но я как-то за это не переживаю - потому что на Win7 и выше нормальный человек не будет использовать VMR7/9, а после релиза и вовсе не будет всех этих рендереров. А что там с WinXP - не особо волнует. Может и жестко - но зато честно.
[merge_posts_bbcode]Добавлено: 2016-06-03 20:44:43[/merge_posts_bbcode]

Если уж так сильно надо - для релиза убрать все эти переделки с поворотом для VMR9r да и все.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Цитата: Aleksoid1978Я проверил на Win10. У меня еще правда включен VSync - но на любом интерлейс файле все как положено частота удваивается.
Если надо - дайте свои файлы, покажите настройки раздела видео. Я сравню и проверю у себя.

Но я как-то за это не переживаю - потому что на Win7 и выше нормальный человек не будет использовать VMR7/9, а после релиза и вовсе не будет всех этих рендереров. А что там с WinXP - не особо волнует. Может и жестко - но зато честно.
[merge_posts_bbcode]Добавлено: 2016-06-03 20:44:43[/merge_posts_bbcode]

Если уж так сильно надо - для релиза убрать все эти переделки с поворотом для VMR9r да и все.
Я предлагаю откатить изменения с поворотом для VMR-9 RL, ибо поломка довольно серьезная.
V0lt, может быть вы сможете разобраться в чем дело? Ведь вам все же удалось исправить ситуация для Rotation.

Настройки все стандартные, единственное - это включен режим VMR Mixer.

Что значит - честно? Это подло просто напросто.
Ну вам-то естественно плевать на XP, но зато другим пользователям - нет, им будет очень обидно.
Не ожидал, что у вас такое отношение будет к проекту.

Лично я за то, чтобы придерживаться элементарного правила "если что-то поломалось, то это надо исправить" и неважно где и на какой системе, до тех пор, пока поддержка XP присутствует, все поломки, согласно правилу, должны быть исправлены.
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

По поводу WinXP - ну пользуйся версией та что работает. И вот еще что заметил - проверил на H.264 нет искажений частоты. А вот на MPEG2 да есть - но только на 25i, другие те что есть у меня - 23i/29i корректно.
[merge_posts_bbcode]Добавлено: 2016-06-03 21:06:02[/merge_posts_bbcode]

Вернее так - не каждый сэмпл с 25i так косячит. Есть H264 выдает правильные 50, есть - поднимает до частоты монитора. И H.264 тоже, вот такое странное поведение.

[merge_posts_bbcode]Добавлено: 2016-06-03 21:07:10[/merge_posts_bbcode]

И что еще значит "согласно правилам" - кто их устанавливал ?? А если разработчик не может или просто не хочет - что дальше ?? Все - конец света наступит ...
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

От поворота ничего не должно измениться. Это как шейдер кадра (до ресайза) добавить.
Тем более на MPEG-2 файлах поворота даже близко нет.

Evgeniy1990

Цитата: V0ltОт поворота ничего не должно измениться. Это как шейдер кадра (до ресайза) добавить.
Тем более на MPEG-2 файлах поворота даже близко нет.
Но ведь видно же, что эти изменения с поворотом, все же вызвали поломку.
[merge_posts_bbcode]Добавлено: 2016-06-03 14:30:38[/merge_posts_bbcode]

Цитата: 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.

Aleksoid1978

Цитата: V0ltОт поворота ничего не должно измениться. Это как шейдер кадра (до ресайза) добавить.
Тем более на MPEG-2 файлах поворота даже близко нет.

Ну ты попробуй, ради интереса, полностью убрать тот код что добавил для VMR9r и проверь.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

V0lt

Проблема в коде для флага поворота в проектном файле: "MainFrm.cpp"
Именно этот код и вызывает поломку, а также и высокую нагрузку на плеер и его интерфейс, т.е. оболочку основного окна.
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

Убрал VSync - теперь fps на 25i ровно в раза больше чем надо, 50 -> 100 :)

Причем такое ТОЛЬКО на 25i, да и то не на всех ...
[merge_posts_bbcode]Добавлено: 2016-06-03 22:27:33[/merge_posts_bbcode]

Все - выяснил 100% на чем косячит. Если соотношение сторона у видео потока "разное". Как пример - 720х576 16:9 или 1440х1080 16:9.

Дело вот в этом куске кода
if (VideoSize != m_nativeVideoSize) {
    m_aspectRatio.SetSize(arx, ary);
    AfxGetApp()->m_pMainWnd->PostMessage(WM_REARRANGERENDERLESS);
}

На таких файлах он выполняется на каждый кадр - а не должен. Сравнение не корректное.
[merge_posts_bbcode]Добавлено: 2016-06-03 22:45:11[/merge_posts_bbcode]

Исправлено в 1559.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215