DXVA1 - зеленая полоска сверху (есть одна хитрость) [Исправлено]

Автор Evgeniy1990, 15 марта 2016, 08:58:51

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

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

Evgeniy1990

Обнаружил один хитрый случай, при котором в режиме DXVA1 проявляется снова эта зеленая полоска сверху экрана.

Хитрый алгоритм воспроизведения бага:

1. Открыть видео файл с нестандартным разрешением размера кадра в режиме DXVA1
2. Приостановить его процесс воспроизведения, т.е. поставить на паузу
3. Не закрывая сам плеер (саму программу), выполнить системную команду: "Пуск" -> "Выключение" -> "Ждущий режим"
4. Подождать 2 - 3 минутки, после чего снова включить компьютер.

Фактический результат: после возобновления работы системы "Windows XP", в открытом плеере (открытой программе) можно увидеть сверху зеленую полоску.
Ожидаемый результат: после возобновления работы системы "Windows XP", в открытом плеере (открытой программе) не должно быть зеленой полоски сверху экрана.

Вот такой вот "фокус-покус" очередного проявления проклятой зеленой полоски сверху экрана.

Почему это происходит? Небольшое пояснение:

Это происходит потому, что после возобновления работы системы Windows XP, видео декодер заменяет текущий выходной размер кадра, например, 468х368 на равный входному, например 450x360.

Отсюда и проявляется зеленая полоска сверху экрана, поскольку мы опять получаем ситуацию, когда выходной размер кадра видео становится равным входному размеру кадра видео.

Т.е. если выходной размер кадра будет равен входному, то в результате мы получим эту самую зеленую полоску сверху экрана.

Пример: Input: 450х360 -> Output: 450x360 = зеленая полоска сверху экрана.

По правильной логике, после возобновления работы системы Windows XP, размер кадра видео на выходе должен остаться таким, каким был до завершения работы системы Windows XP.

Т.е. нужно сделать так, чтобы видео декодер запоминал выходной размер кадра видео и после возобновления работы Windows XP, снова его восстанавливал.

Иначе получается так, что видео декодер теряет целый один блок выходного пина нужного размера кадра.

Пример:

До завершения работы Windows XP: Output: 468x368
->
После возобновления работы Windows XP: Output: 468x368.

Т.е. должно выполняться условие в видео декодере: 468x368 = 468x368.

Прилагаю:

1. Скриншоты:

https://yadi.sk/i/Gw197hHfqBkeJ
https://yadi.sk/i/kzDt4OjxqBkfV

2. Текстовые файлы PinInfo:

https://yadi.sk/i/Q8tsXHVsqBkgW - "Input Pin"
https://yadi.sk/i/xn1fDs88qBkhF - неправильный "Output Pin"
https://yadi.sk/i/Jk_h9LQoqBkjw - правильный "Output Pin"

3, Правильный размер кадра видео, который должен быть на выходе, после возобновления работы Windows XP:

https://yadi.sk/i/gXdSsvRIqBkmP
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

1 - проверить со внешними декодерами/проигрывателями с DXVA 1.0
2 - такое не исправить :)
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

Цитата: Aleksoid19781 - проверить со внешними декодерами/проигрывателями с DXVA 1.0
2 - такое не исправить :)

1. Хорошо, я проверю и отпишусь вам позднее.
2. Не надо так говорить, что это не исправить. Я думаю, что это все же можно исправить.

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

Ждите моих сообщений позже.
[merge_posts_bbcode]Добавлено: 2016-03-15 10:24:22[/merge_posts_bbcode]

Цитата: Aleksoid19781 - проверить со внешними декодерами/проигрывателями с DXVA 1.0
Проверил с "CyberLink Video Decoder (PDVD13)" - зеленой полоски нет и не наблюдается.

Следовательно, данный баг - это очередная поломка. Как я и думал и подозревал.

Осталось проверить свою догадку, но для начала я вам ее распишу:

Зеленая полоска сверху появилась с тех пор, как вы сделали изменение в SVN r1183.
Нужно проверить всего лишь один билд - это до изменений в SVN r1183. Это будет билд SVN r1180.
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

То изменение было отменено, т.к. я откатил те изменения.
[merge_posts_bbcode]Добавлено: 2016-03-15 17:32:00[/merge_posts_bbcode]

Вот debug билд с созданием лога на рабочем столе - https://yadi.sk/d/wO_sb6olqAPfW
Выложи потом лог сюда.
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То изменение было отменено, т.к. я откатил те изменения.
Я знаю, что вы откатили потом это изменение.

Проверил билд "SVN 1180". В нем также присутствует эта зеленая полоска, как и в последних SVN-билдах, в которых было убрано изменение r1183.

Отсюда следует вывод: значит эта поломка произошла еще раньше, т.е. нужно проверять изменения, в которых был затронут DXVA1-декодер особенно r211 и r221 - упрощение кода DXVA1 и удаление "ненужного" якобы кода.

В общем, буду продолжать поиски проблемного изменения в SVN.
[merge_posts_bbcode]Добавлено: 2016-03-15 10:37:22[/merge_posts_bbcode]

Цитата: Aleksoid1978Вот debug билд с созданием лога на рабочем столе - https://yadi.sk/d/wO_sb6olqAPfW
Выложи потом лог сюда.
Ок, воспроизведу баг и выложу вам лог-файл. Пожалуйста подождите...

[merge_posts_bbcode]Добавлено: 2016-03-15 10:51:52[/merge_posts_bbcode]

Цитата: Aleksoid1978Вот debug билд с созданием лога на рабочем столе - https://yadi.sk/d/wO_sb6olqAPfW
Выложи потом лог сюда.
Пожалуйста, ссылка на лог-файл: https://yadi.sk/i/A_2CEXlhqBvfw
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

Спасибо. Я кажется понял в чем дело, но видимо такое поведение было всегда.
[merge_posts_bbcode]Добавлено: 2016-03-15 18:48:58[/merge_posts_bbcode]

Вот еще один билд - мне нужен лог с него.
https://yadi.sk/d/OYOUyl-XqC6Ui
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Спасибо. Я кажется понял в чем дело, но видимо такое поведение было всегда.
[merge_posts_bbcode]Добавлено: 2016-03-15 18:48:58[/merge_posts_bbcode]

Вот еще один билд - мне нужен лог с него.
https://yadi.sk/d/OYOUyl-XqC6Ui

Пожалуйста: https://yadi.sk/i/eBWzHEejqC7jU
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Вот пробуем - https://yadi.sk/d/0vq8BGurqCNpx
Проверил тестовый билд.

Больше нет и не проявляется зеленая полоска сверху экрана, после возобновления работы 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.