Описание проблемы:
При открытии некоторых DVD, во время воспроизведения, сразу же можно увидеть черный экран вместо нормального изображения. Особенно это касается сцен "Предупреждение" на DVD.
Проблема наблюдается только при использовании MPC Video Renderer и только при выходном формате NV12.
Алгоритм воспроизведения:
1. Скачать любой из этих DVD. (https://disk.yandex.ru/d/YIVlP-07UrSsXw)
2. В настройках плеера выбрать видео-рендерер: MPC Video Renderer.
3. Запустить само DVD-Video, открыв главный IFO-файл.
Фактический результат:
После открытия сразу же будет черный экран, вместо нормально изображения в сцене "Предупреждение".
Ожидаемый результат:
После открытия в сцене "Предупреждение" должно быть нормальное изображение, вместо черного экрана.
07 марта 2022, 04:40:18
V0lt
Открывать надо через главный IFO-файл, т.е. через VIDEO_TS.IFO.
У меня такой конфиг:
Win7 x64, MPC Video Renderer 0.5.7.1820 x64.
AMD Radeon HD 7770
Настройки MPC Video Renderer по умолчанию.
Список фильтров:
MPC-BE 1.6.2.6928
Filters currently loaded:
- MPC Audio Renderer
- MPC Video Renderer
- Audio Switcher
- MPC DVD Video Decoder
- MPC Audio Decoder
- DVD Navigator
Прилагаю видеозапись (https://disk.yandex.ru/i/8BlayXnGLQhesA) для наглядности. Посмотрите как именно надо запускать DVD.
Цитата: Evgeniy1990 от 06 марта 2022, 22:17:49Открывать надо через главный IFO-файл, т.е. через VIDEO_TS.IFO.
У меня почему-то в историю попал левый файл, пришлось удалить сообщение.
Перепроверил с
\Спецназ\Specnaz 1\VIDEO_TS.IFO - все так же в начале меньше секунды черный кадр, потом картинка.
Win7 x64, MPC VR 0.5.7.1820 x64, GTX 950.
07 марта 2022, 04:52:13Заставка предупреждение состоит из 1 кадра. По какой-то причине у тебя этот кадр не отображается и поэтому получаешь 10 секунд черноты.
07 марта 2022, 07:54:30Проверь в MPC-HC.
07 марта 2022, 07:57:18Обнаружил баг с историей, посмотрю пока его...
V0ltЦитироватьПроверь в MPC-HC.
Проверил. Аналогично, черный экран на заставке "Предупреждение".
Проверил также другие различные DVD. И везде, где есть заставка "Предупреждение", всегда отображается просто черный экран, вместо изображения, т.е. самого этого предупреждения.
Однозначно, это поломка, причем именно в MPC Video Renderer. Но если в нем отключить NV12, то изображение есть. Получается, что баг (поломка) на стороне "DXVA2 VP".
P.S. Позднее проверю еще на GTX 960.
На Intel HD 4000 тоже самое. Скорее всего проблема в наличии ReferenceSamples.
Graphics adapter: Intel(R) HD Graphics 4000 (8086:0162)
VideoProcessor : DXVA2 {BF752EF6-8CC4-457A-BE1B-08BD1CAEEE9F}
DeinterlaceTech.: EdgeFiltering
ReferenceSamples: Backward 1, Forward 0
Для 1 кадрового меню это является проблемой.
А если убрать деинтерлейс ?
Aleksoid1978ЦитироватьА если убрать деинтерлейс ?
Если отключить опцию "Передать флаг чересстрочности в вывод" в "MPC DVD Video Decoder", тогда изображение есть.
Windows 7 SP1
DirectX 9
Graphics adapter: AMD Radeon HD 7700 Series (1002:683D)
VideoProcessor : DXVA2 ProgressiveDevice
DeinterlaceTech.: none
Display: BenQ FP92E 1280x1024 75.000 Hz [Primary] windowed
Не то, если в MPC VR убрать деинтерлейс ?
07 марта 2022, 13:19:42
Ну и проверить как оно в D3D11 режиме ведёт себя ?
Aleksoid1978ЦитироватьНе то, если в MPC VR убрать деинтерлейс ?
Если отключить опцию "Double the frame rate when deinterlacing" в самом MPC Video Renderer, то изображения также не будет.
07 марта 2022, 13:48:03ЦитироватьНу и проверить как оно в D3D11 режиме ведёт себя ?
На Windows 7, в режиме "D3D11 как есть", изображение присутствует, поскольку работает шейдерный видеопроцессор, а при нем оно всегда присутствует, поскольку в этом случае аппаратный деинтерлейс не работает вообще.
Я попробую переписать работу с VideoSampleBuffer, возможно проблема разрешится...
Ну понятно что я про D3D11 спрашиваю не про Win7 :)
07 марта 2022, 14:07:57
А в чем проблема, не та поверхность как-то выводиться ?
Для тестов: mpcvr_1820_dxvavp_first_frame_1 (https://disk.yandex.ru/d/dWAe-6N6TCef-g).
Цитата: Aleksoid1978 от 07 марта 2022, 13:59:14А в чем проблема, не та поверхность как-то выводиться ?
Буфер создается с полным размером и заполняется с конца. Поэтому на старте в начале буфера лежат пустышки, что похоже обламывает видеопроцессор DXVA2.
Решил заполнять с начала ?
V0ltЦитироватьДля тестов: mpcvr_1820_dxvavp_first_frame_1.
Проверил тестовый билд. Теперь полный порядок. Присутствует изображение при DXVA2 VP. :)
Цитата: Aleksoid1978 от 07 марта 2022, 14:40:47Решил заполнять с начала ?
Сделал, чтобы в буфере были только актуальные данные.
Evgeniy1990Залил в 2b90c7a (https://github.com/Aleksoid1978/VideoRenderer/commit/2b90c7ab3e8f1fc530b8e1a528db7ff11676e2c3).
Более правильная доработка в 0.5.7.1829 24c2ae5.