MPC Video Renderer

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

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

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

Aleksoid1978

Нашел способ закрытия окна свойств какого либо фильтра при закрытии файла, в самом MPC-BE.
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Подтвержаю, есть проблема. Добавил в список в первом сообщении.
В этот список также следует добавить и проблему с "черным экраном" в оконном режиме, при перемотке, если само воспроизведение было остановлено.

Алгоритм воспроизведения:

1. Открыть видео файл
2. Остановить его воспроизведение
3. Во время остановленного воспроизведения, перемотать запущенный видео файл в произвольное место
4. Развернуть окно плеера на полный экран

По факту: после пункта 3, вместо текущего кадра после перемотки, будет "черный экран" вместе со статистикой, если она была включена первоначально. Текущий кадр (само изображение) появится только лишь после пункта 4, когда перейдем в полноэкранный режим (развернем окно плеера на полный экран).
Цитата: V0ltОно играет видео так или просто замерло? Если второе, то это не тиринг.
Скажем так, видео воспроизводится, но кадры не двигаются, т.е. они застывшие. Здесь как раз второй вариант, когда кадры видео застыли при поломке и образовался некий такой вот "разрез", очень сильно напоминающий "тиринг", хотя, на самом деле, это вовсе не он.

Aleksoid1978
Если фильтр "MpcVideoRenderer.ax" подключен напрямую, без регистрации в системе, то субтитры не работают и не отображаются вообще. Это надо исправить.
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Если фильтр "MpcVideoRenderer.ax" подключен напрямую, без регистрации в системе, то субтитры не работают и не отображаются вообще. Это надо исправить.
Чтобы субтитры и другие фичи работали видеорендерер должен быть выбран через панель настроек Video. Чтобы видеорендерер там появился, он должен быть зарегистрирован в системе.

Специальный обходной путь для MPC VR пока не планируется.

Aleksoid1978

Цитата: Evgeniy1990В этот список также следует добавить и проблему с "черным экраном" в оконном режиме, при перемотке, если само воспроизведение было остановлено.

Алгоритм воспроизведения:

1. Открыть видео файл
2. Остановить его воспроизведение
3. Во время остановленного воспроизведения, перемотать запущенный видео файл в произвольное место
4. Развернуть окно плеера на полный экран

По факту: после пункта 3, вместо текущего кадра после перемотки, будет "черный экран" вместе со статистикой, если она была включена первоначально. Текущий кадр (само изображение) появится только лишь после пункта 4, когда перейдем в полноэкранный режим (развернем окно плеера на полный экран).

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

Evgeniy1990

Цитата: Aleksoid1978Хм - не подтверждаю. Запустил видео, поставил на паузу, перематываю - картинка обновляется
1. Запустить видео
2. Остановить видео (нажать на кнопку "Стоп")
3. Перемотать видео в любое произвольное место

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

Если нажать стоп - то и с тем же EVR-CP будет черный экран после перемотки, не вижу проблем :)

P.S. Исправил :)
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

MPCVideoRenderer-v0.2.1.744_YV24_1
Удалось реализовать поддержку планарного формата YV24 (YUV 4:4:4 8-бит). Кто-нибудь сможет сравнить его по скорости с AYUV на чем-нибудь маломощном или встройке?

PS: при тестировании помимо загрузки CPU и GPU обращайте внимание на частоты чипов.

У меня на GTX950 немного разгрузились CPU и GPU.

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

V0lt

Некоторые планы:
1. Проверить и откорректировать chroma location при преобразовании из 4:2:0 в 4:4:4. Считаем, что на входе у нас chroma location типа MPEG-2 (самый распространенный). Попробовать сделать другие варианты.
2. Принять решение о рантайм компиляции шейдера преобразования цвета. Это позволит сильно уменьшить количество предварительно скомпилированных шейдеров.
3. Реализовать поддержку chroma location разных типов.
4. Попробовать реализовать бикубическую интерполяцию для хромы.

Aleksoid1978

Я всеми руками и ногами за пункт 2. Вернее я бы вообще сделал построение ВСЕГО кода шейдера в рантайме(как это реализовано в том же vlc или mpv) и дальнейшую компиляцию.

Пункт 4 - ну как бы не лишнее :)
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Вернее я бы вообще сделал построение ВСЕГО кода шейдера в рантайме(как это реализовано в том же vlc или mpv) и дальнейшую компиляцию.
В чем глубинный смысл этого действия? Получать тормоза при каждой глобальной перекомпиляции?

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

V0lt

Шейдеры уменьшения будут заметно тормозить при компиляции. Сейчас они самые долгие. Даже если мы оптимизируем скорость компиляции, то это куча работы ради "чтобы было как в...". Тут у меня хороших слов нет.

Причина, по которой я решил компилировать convert_color, -  это слишком большое количество вариантов.
packet, packet422, biplanar, planar - x4
обычное, 2 типа HDR - x3
3 варианта chroma location - x3
линейная и букубическая интерполяция хромы - x2
DX9 и DX11 - x2
Итого по прикидкам 4x3x3x2x2= 144 шейдера.

Что-то,  конечно, можно сгруппировать до 48 шейдеров (потеряв в эффективности). Но думаю, лучше замутить специальную функцию, которая будет обрабатывать входные параметры и выдавать готовый шейдер. C++ все-таки гибче и удобнее, чем батники и препроцессор.

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