MPC Video Renderer

Автор V0lt, 24 февраля 2018, 19:10:59

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

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

Evgeniy1990

V0lt,
ЦитироватьПеределал в 03df1e0. Теперь блокируется IDirectXVideoMemoryConfiguration. Вроде лучше получилось.
Проверил коммит 03df1e0. Да, действительно получилось гораздо лучше, избавились от костыля для иконки GPU. Теперь она итак будет отображаться, если используется аппаратное ускорение DXVA2. Но есть один недостаток. Дело в том, что у данного файла иконка GPU будет также отображаться, несмотря на то, что никакого DXVA2, при его воспроизведении, нет.
ЦитироватьДа EVR работает, но Я не хочу заниматься этой кривизной (отлаживать и баги исправлять, которые будут).
Все же я предлагаю вам допилить MPC-VR, чтобы на таких вот подобных видео файлах работали все основные форматы NV12, YV12, YUY2. Тогда мы автоматически избавимся от выше упомянутого недостатка. И не нужно тогда будет лепить отдельный костыль. Не думаю, что баги в процессе допиливания будут очень серьезными. Главное, чтобы работали все основные выходные форматы.
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

#1381
Цитата: Evgeniy1990 от 20 декабря 2020, 20:35:08Но есть один недостаток. Дело в том, что у данного файла иконка GPU будет также отображаться, несмотря на то, что никакого DXVA2, при его воспроизведении, нет.
Ладно, завтра разберемся. Может вернем 4ac58eb.
Но повторюсь, неправильный значок GPU - это проблема плеера. Я считаю надо в плеере значок GPU править, а не подстраиваться под него.

ЦитироватьВсе же я предлагаю вам допилить MPC-VR, чтобы на таких вот подобных видео файлах работали все основные форматы NV12, YV12, YUY2.
Не подобных, а кривых, сделанных кривым софтом и кривыми руками. Выкинуть и забыть.

Собрал обе версии: 0.4.10.1565_git2020.12.20-4ac58eb и 0.4.10.1566_git2020.12.20-03df1e0.

Aleksoid1978

Не надо ничего менять - обновляем MPC-BE и проверяем.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /LG 47LM620T /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

Aleksoid1978, проверил. Вроде все нормально.

Evgeniy1990

Aleksoid1978,
Цитата: Aleksoid1978 от 21 декабря 2020, 03:48:32
Не надо ничего менять - обновляем MPC-BE и проверяем.
V0lt,
Цитата: V0lt от 21 декабря 2020, 08:02:52
Aleksoid1978, проверил. Вроде все нормально.
Согласен, что с нашим встроенным MPC Video Decoder теперь все нормально.
А вот в случае с тем же внешним LAV Video Decoder, у данного кривого файла присутствует иконка GPU, если в его настройках выбран аппаратный декодер "DXVA2 (native)". При софтовом avcodec присутствует иконка GPU.
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 можно подправить. Это все мелочи :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /LG 47LM620T /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

#1386
Чтение статуса для LAV исправлено.
Осталось проверить MPEG-TS с 2 разными видеопотоками (например, H.264 и HEVC). Проверено, и доработано в r5832.

V0lt

#1387
Выпущен релиз MPC Video Renderer 0.5.0.1567

Изменения:
Добавлена функция OpenConfiguration для вызова настроек из командной строки (пример: rundll32.exe MpcVideoRenderer64.ax, OpenConfiguration).
Устранена утечка памяти для режима Direct3D 11.
Добавлено ограничение - не более одного активного видеорендерера на процесс.
Добавлены отображение статистики и возможность отображения AlphaBitmap (OSD) при остановленном воспроизведении.
Добавлена поддержка HDR passthrough для режима DX11 в Windows 10.
Добавлена возможность переключать дисплей в режим HDR для режима DX11 в Windows 10.
Добавлена возможность вручную отключить конвертацию HDR в SDR.
Исправлено отображение видео HLG в различных ситуациях.
Добавлена поддержка BT.2020 Primaries для некоторых случаев.
Исправлено подключения к любому входному медиатипу, когда декодер DXVA может быть активен.
Добавлена различная информация в статистику.
Рекомендуемая версия MPC-BE 1.5.6.5832 или новее.

Evgeniy1990

V0lt,
ЦитироватьДекодер от MS, например, создает все медиатипы размером 864x480. Что правильно.
Забыли совсем про него. Ведь, при использовании Microsoft DTV-DVD Video Decoder, на кривом видео файле даже и не подключается наш MPC Video Renderer. Потому что данный видео декодер способен работать только в аппаратном режиме. Ему нужен NV12. А так как MPC-VR, на данном файле, не способен выдать NV12, то происходит "грязный" отлуп.
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 /LG 47LM620T /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Aleksoid1978,
Цитата: Aleksoid1978 от 22 декабря 2020, 06:35:02
Зачем опять поднимать тему - сказали уже, что не работает с "кривым видео", когда нечетные размеры. И не надо больше про это.
Просто Microsoft DTV-DVD Video Decoder является исключением (особым случаем) для MPC Video Renderer.
Это особенный видео декодер, поскольку работает всегда и только исключительно в режиме аппаратного ускорения.
Именно поэтому, при его использовании, по идее, да и по логике, должны быть также учтены некоторые моменты.

Хорошо, опустим тему с кривыми видео файлами. Вернемся ко всем остальным нормальным видео файлам.
Какой еще момент не был учтен в MPC-VR, при использовании Microsoft DTV-DVD Video Decoder?

Возьмем четыре видеокарты:

1. ASUS EAH5770 CuCore
2. Palit NVIDIA GeForce GTS 450
3. GIGABYTE GeForce GTX 960
4. GIGABYTE Radeon RX 580

Стоит ли мне вам напомнить, что только лишь две из них способны аппаратно декодировать формат P010.
В таком случае, проблем со связкой Microsoft DTV-DVD Video Decoder + MPC Video Renderer нет.

Что касается остальных двух карт, то они не способны аппаратно декодировать формат P010.
И в этом случае, данная связка Microsoft DTV-DVD Video Decoder + MPC Video Renderer уже не работает.

Вы у себя этого не увидите, а вот в моем случае, при использовании данной связки, после открытия просто черный экран и сам процесс воспроизведения даже не начинается. Ну это итак понятно. ATI Radeon HD 5770 и GeForce GTS 450 не умеют аппаратно работать с P010, а Microsoft DTV-DVD Video Decoder способен работать только лишь в аппаратном режиме, как я вам уже говорил.
Естественно, у нас работает в таком случае видеопроцессор "DXVA2 VP".

Вот, исходя из этого, возникает вопрос, можно ли заставить работать данную связку на видеокартах, не умеющих аппаратно работать с P010? Учитывая тот факт, что Microsoft DTV-DVD Video Decoder способен работать только лишь в аппаратном режиме, это будет непросто, только если отрубать сам видеопроцессор "DXVA2 VP", или вводить дополнительные проверки.
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

#1391
Так - с каких пор Microsoft DTV-DVD Video Decoder декодер научился аппаратно декодировать H.264 10-bit - раз речь идет про P010, значит видео 10-bit, HEVC он не умеет а H.264 10-bit аппаратно не поддерживается. При открытии H.264 10-bit всегда черный экран с этим декодером :)

P.S. Да и все равно он на выходе дает NV12, какие могут быть P010 ???
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /LG 47LM620T /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

Кратко дополню по кривым форматам (4:2:0 с нечетными размерами).

EVR работает только потому, что ему повезло соединиться с продвинутым декодером, который поддерживает изменение формата по запросу. Если бы там был например какой-будь сурс фильтр (AVI с несжатым видео), то соединения бы не произошло. Для корректных форматов может подключиться дополнительный фильтр, типа Color Space Converter, который сделает EVR хорошо.

MPC VR имеет другую логику. Он так же запрашивает изменение формата после подключения. Но если подключаемый фильтр формат не меняет, то работает с исходным. Это важная фича MPC VR. Ему не нужны промежуточные фильтры, чтобы работать с любым из поддерживаемых форматов. Если исходный формат будет кривой, тогда MPC VR в лучшем случае просто уронит плеер, в худшем - что-нибудь запорет в памяти процесса.
Я не собираюсь делать хитрые обходные пути для подобной кривизны. Это усложнит и без того сложный код. Тему предлагаю закрыть.

Evgeniy1990

V0lt,
Обнаружил пропадание DXVA2. То он есть, то его нет, то просто NV12.
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 /LG 47LM620T /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215