Auto change AR - Сrash in VMR Mixer Mode [Исправлено]

Автор Evgeniy1990, 11 марта 2016, 11:12:48

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

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

Evgeniy1990

Тема: Падение плеера, при автоматической смене соотношения сторон (AR), во время процесса воспроизведения видео файла в режиме "VMR Mixer".

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

Ссылка на видео файл: https://yadi.sk/i/MZYXYtIWq3a6n

Внимание! Данное падение (баг) наблюдается и проявляется на всех VMR-видео-рендерерах, как в софте, так и в DXVA1 только в режиме "VMR Mixer".

Но, для начала, внесу ясность, чтобы не было путаницы:

"Auto change AR", оно же "Auto AR" - это когда соотношение сторон меняется автоматически, в нужный момент времени, во время процесса воспроизведения, без вмешательств со стороны пользователя.

Ни в коем случае нельзя его путать с ручной сменой соотношения сторон, когда пользователь в видео декодере устанавливает соответствующую галочку в определенное состояние в зависимости от своих предпочтений.

Ситуации и их состояния:

Видеокарта: "ATI Radeon HD":

На ней, в данном примере, работает только софт-режим, поскольку DXVA1-VLD для MPEG-2 она не поддерживает.
Поэтому, тут возможны только две основные ситуации - это "без режима VMR Mixer в софте" и "в режиме VMR Mixer в софте".

1. "Без режима VMR Mixer в софте" - нормально
2. "В режиме VMR Mixer в софте" - плохо, автоматической смены соотношения сторон не происходит, проявляется падение.

Видеокарта: "NVIDIA GeForce":

На ней, в данном примере, в отличие от "ATI Radeom HD", работает также и аппаратный DXVA1-режим
(MPEG-2 Variable-length-decoder). Поэтому, тут уже возможны все четыре основные ситуации.

1. "Без режима VMR Mixer в DXVA1" - нормально
2. "Без режима VMR Mixer в софте" - нормально
3. "В режиме VMR Mixer в DXVA1" - плохо, происходит автоматическая смена соотношения сторон, но проявляется падение.
4. "В режиме VMR Mixer в софте" - плохо, происходит автоматическая смена соотношения сторон, но проявляется падение.

Как мы видим, DXVA1-декодер тут совершенно ни при чем.
Проблема именно в самой автоматической смене соотношения сторон, в режиме VMR Mixer.

Aleksoid1978/V0lt, для вас и ваших систем алгоритмы воспроизведения данного бага будут следующими:

(I) Aleksoid1978 -> Windows 10:

1. Выбрать "VMR-7 WL"
2. Включить только режим "VMR Mixer"
3. Запустить видео файл
4. Дождаться автоматической смены соотношения сторон во время его воспроизведения

(II) V0lt -> Windows 7:

1. Выбрать "VMR-7 WL"
2. Включить только режим "VMR Mixer"
3. Запустить видео файл
4. Дождаться автоматической смены соотношения сторон во время его воспроизведения

Фактический результат: в момент автоматической смены соотношения сторон, воспроизведение остановится, вместо изображения будет просто черный экран, аудио пойдет дальше. В конечном итоге, плеер просто зависнет намертво.

Ожидаемый результат: если в видео декодере установлена галочка в активное состояние, то при воспроизведении данного видео файла, соотношение сторон должно автоматически изменяться на необходимое.

Никаких падений, зависания, приостановки процесса воспроизведения быть не должно.

После успешного воспроизведения данного бага, у вас плеер просто зависнет, а в папке с ним будет лежать дамп-файл. Это как раз говорит о том, что произошло падение, плеер завис намертво и в результате был создан дамп-файл.

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Тема: Разное поведение автоматической смены соотношения сторон, при воспроизведении видео файла.

При воспроизведении данного видео файла, в зависимости от видео-рендереров и их режимов, автоматическая смена соотношения сторон выглядит также по разному.

Вот примеры автоматической смены соотношения сторон на VMR-7 и VMR-9 -видео-рендерерах:

VMR-7-видео-рендереры: https://yadi.sk/i/7kSKbGwRq5BhZ
VMR-9-видео-рендереры: https://yadi.sk/i/iZVCirU_q5BNt

По логике, на любом видео-рендерере, поведение, при автоматической смене соотношения сторон, должно быть совершенно одинаковым.
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

Проверь с LAV Video Decoder - будет падение или нет. Что-то мне подсказывает что тут возможно проблема в рендерерах.
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Проверь с LAV Video Decoder - будет падение или нет. Что-то мне подсказывает что тут возможно проблема в рендерерах.
Проверил поведение с LAV Video Decoder на Windows 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

Проверил у себя - ни на одном из рендереров, с любыми комбинациями галок VMR Mixer/YUV Mixing, ничего не падает. Соотношение сторон меняется. Проверял на последней SVN версии.
скрин с VMR-7 W - https://yadi.sk/i/sljrIuOMq5SNJ (правда на скрине не видно самого изображение - ограничение VMR рендерера)
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Проверил у себя - ни на одном из рендереров, с любыми комбинациями галок VMR Mixer/YUV Mixing, ничего не падает. Соотношение сторон меняется. Проверял на последней SVN версии.
скрин с VMR-7 W - https://yadi.sk/i/sljrIuOMq5SNJ (правда на скрине не видно самого изображение - ограничение VMR рендерера)
У вас этот баг просто не проявляется. Вам опять же повезло.

Я проверил у себя на трех разных машинах, на разных системах и на разных видеокартах (ATI/NVIDIA).
И везде и всегда плеер виснет и падает в момент автоматической смены соотношения сторон.
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

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:

Если запустить отладку, то можно увидеть что всему виной являются:

1. На Windows XP - gdi32.dll
2. На новых системах - ddraw.dll

Да, можно подумать, что дело в самих видео-рендерерах, учитывая, что студия указывает на их библиотеки.

Но, если взять LAV Video Decoder, то при нем вообще нет падения ни при каких условиях.

Получается, что проблема в нашем встроенном MPC Video Decoder.
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

Ну на сл. неделе проверю на работе - другой комп, карта ATI 7750 :)
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Ну посмотрим что скажет v0lt
У V0lt\'a на Windows 7 этот баг, т.е. это зависание и дальнейшее падение точно должно воспроизвестись.
Даже у меня на Windows 7 воспроизводится этот баг, при моем алгоритме воспроизведения.
[merge_posts_bbcode]Добавлено: 2016-03-11 13:40:48[/merge_posts_bbcode]

Цитата: Aleksoid1978Ну на сл. неделе проверю на работе - другой комп, карта ATI 7750 :)
Ок.

P.S. Если что, сделайте тогда пожалуйста отладочный билд с созданием лог-файла на рабочем столе, попробуем через лог понять, в чем причина, в каком месте происходит сбой. Чувствую, что это что-то на стороне нашего видео декодера.

[merge_posts_bbcode]Добавлено: 2016-03-11 13:48:18[/merge_posts_bbcode]

Aleksoid1978:
И вот еще что, проверьте пожалуйста поверхности - 2D и обычную, кроме 3D.
Будет ли у вас изображение на обычной и 2D-поверхностях?
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

На VMR-W нет возможности выбрать, а вот на WMR-Renderless - все прекрасно работает, со всеми 3-мя возможными выборами поверхности.
[merge_posts_bbcode]Добавлено: 2016-03-11 22:23:40[/merge_posts_bbcode]

В случае падения во внешней .dll никакой debug билд не поможет, ни какие логи.

Но - ты можешь сам попробовать собрать в студии Debug билд, запустить - когда будет падение посмотреть по цепочке в каком месте в нашем коде началось это дело.

[merge_posts_bbcode]Добавлено: 2016-03-11 22:55:55[/merge_posts_bbcode]

Так - раз мы говорим что с LAV Video все ок, то пробуем вот что. Здесь архив с Debug билдом LAV https://yadi.sk/d/RJ073FS6q5iHg

Подключаем LAVVideo.ax из этого архива(вместо установленного ранее). Чтобы получить debug-лог - перед запуском MPC-BE.exe запускаем Dbgview.exe. После этого запускаем сам проигрывателем, открываем проблемное видео, ждем смены сторон. После этого закрываем, а в Dbgview.exe сохраняем лог как файл и файл мне - гляну что там может отличаться от нашего декодера.
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

Падения не наблюдаю ни в окне, ни в окне с опцией "Соотнош. сторон как у видеокадра", ни в полном экране. MPC-BE 1256 x64,  VMR-7w.

Aleksoid1978

Цитата: V0ltПадения не наблюдаю ни в окне, ни в окне с опцией "Соотнош. сторон как у видеокадра", ни в полном экране. MPC-BE 1256 x64,  VMR-7w.

А при чем здесь опция "Соотнош. сторон как у видеокадра" ?? :) Главное - это галка для получение AR из потока в видео-декодере, чтобы на лету менялось соотношение сторон. И проверь на х86 версии.
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

Цитата: Aleksoid1978А при чем здесь опция "Соотнош. сторон как у видеокадра" ?? :)
На первом поясняющем видео эта опция вполне себе работает в случае изменений пропорций кадра. На втором не работает, что к лучшему.
[merge_posts_bbcode]Добавлено: 2016-03-11 17:14:27[/merge_posts_bbcode]

Цитата: Evgeniy1990При воспроизведении данного видео файла, в зависимости от видео-рендереров и их режимов, автоматическая смена соотношения сторон выглядит также по разному.
...
По логике, на любом видео-рендерере, поведение, при автоматической смене соотношения сторон, должно быть совершенно одинаковым.
Нет тут логики - рендереры разные.

Evgeniy1990

Цитата: Aleksoid1978Так - раз мы говорим что с LAV Video все ок, то пробуем вот что. Здесь архив с Debug билдом LAV https://yadi.sk/d/RJ073FS6q5iHg

Подключаем LAVVideo.ax из этого архива(вместо установленного ранее). Чтобы получить debug-лог - перед запуском MPC-BE.exe запускаем Dbgview.exe. После этого запускаем сам проигрывателем, открываем проблемное видео, ждем смены сторон. После этого закрываем, а в Dbgview.exe сохраняем лог как файл и файл мне - гляну что там может отличаться от нашего декодера.
К сожалению, ваш архив с отладочными "LAVFilters_Debug" я у себя не могу зарегистрировать их в системе, а также просто подгрузить через "Настройки" -> "Внешние фильтры" ->"Добавить" ->"Файл" -> "LAVVideo.ax".

Мне система говорит что, он (LAVVideo.ax) "не может быть запущен, поскольку он некорректно настроен".
Очень странная у вас сборка этих отладочных LAVFilters. С ними вообще ничего нельзя сделать.
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И проверь на х86 версии.
Проверил. Все хорошо, не виснет, не падает.