Некорректная работа DXVA2-декодера на "особых" MPEG-2, только на AMD!

Автор Evgeniy1990, 04 апреля 2020, 13:46:22

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

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

Evgeniy1990

Описание ситуации:

Существует огромное количество "особых" интерлейсных видео файлов в формате "MPEG-2 PS/TS". Но, к сожалению, на видеокартах от AMD, в режиме аппаратного ускорения, они воспроизводятся некорректно. Понятно, что проблема на стороне драйверов, а не на стороне плеера или самого DXVA2-декодера. Именно поэтому, я и решил создать данную тему, в данном разделе, чтобы обсудить данный вопрос - возможно ли реализовать корректное воспроизведение, в режиме аппаратного ускорения, для данной "особой" группы видео файлов со стороны нашего кода проекта?

Уже понятно, что проблема не в DXVA2-декодере, а в видео-драйвере, поскольку при использовании внешних видео-декодеров: "LAV Video Decoder" и "Microsoft DTV-DVD Video Decoder", абсолютно аналогичная ситуация.

Найти видео-драйвер, на котором бы такие "особые" видео файлы воспроизводились бы корректно в режиме аппаратного ускорения - просто невозможно! Его просто не существует. Можно перебрать десятки, сотни различных версий драйверов, но смысла в этом никакого нет, поскольку это уже было сделано и проверено заранее.

Симптомы на любом видео декодере, в режиме аппаратного ускорения, строго одни и те же:

1. Половина кадров видео (видео разрезано пополам), верхняя часть - просто "черный экран".
2. Присутствует мерцание изображения
3. Присутствует гребенка, т.е. совершенно не работает аппаратный деинтерлейс.

В качестве примера, прилагаю известный всем видео файл.

Также прилагаю видеозапись некорректного воспроизведения.

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

Вот и хотелось узнать, возможно ли сделать нечто аналогичное, или подобное, только теперь уже для DXVA2-декодера? Или же для DXVA2-декодера сделать это не удастся?

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

Я знаю про что речь, про какие типы MPEG2 - у них каждый кадр состоит из 2-х интерлейс "полукадров", в отличии от большинства видео, в которых каждый кадр это и есть интерлейс "полукадр".

И тут НИЧЕГО не поделать. Я даже создавал тикет на AMD по данному факту кучу лет назад ...
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

Речь об этом?
Структура изображения                    : Framevs
Структура изображения                    : Field
Добавлено: 2020-04-04 14:07:12

PS: У меня играет нормально. Win7Sp1 x64, GTX 950, EVR-CP и MPC VR.

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

V0lt,
ЦитироватьPS: У меня играет нормально. Win7Sp1 x64, GTX 950, EVR-CP и MPC VR.
Проблема только на AMD-видеокартах!.

У меня на NVIDIA GTX 1050 Ti данный "особый" видео файл и ему подобные воспроизводятся также нормально, как и у вас.
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

Evgeniy1990
Каких еще особых? "Структура изображения" по MediaInfo отличается или нет?

Aleksoid1978

Да-да, речь про "Структура изображения", которые Field - на AMD декодируются с ошибками.
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,
ЦитироватьКаких еще особых? "Структура изображения" по MediaInfo отличается или нет?
Именно та структура изображения, которая Field. Вот именно эта структура некорректно работает в аппаратном режиме на видеокартах от AMD.

Те видео файлы, которые имеют структуру изображения - Frame, воспроизводятся корректно (нормально) на видеокартах от AMD.
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,
Странно, что DXVA-декодер совсем не ругается. DXVA2_SampleFormat в него передается?

Aleksoid1978

Да с данными все ровно, косяк именно внутри AMD DXVA декодера.
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