MPC Video Renderer

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

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

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

V0lt

Цитата: Aleksoid1978А почему мы игнорируем fps и тупо проставляем 60 ??
Пока это неважно. Но если мы начнем все это учитывать, то у нас начнутся проблемы.

Указание времени ладно, но идея задания fps мне вообще не нравиться. Будет видео или DVD, в котором fps поменяется и приехали.

Aleksoid1978

Проверил наш рендерер - не удваивает кадры. Если что - проверял с помощью Fraps. EVR/EVR CP - удваиваются.

И вот тут даже мыслей нет - как это дело разрулить ))
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

Доработал выбор подходящего метода для деинтерлейса (анализировал инфу из DXVAChecker для AMD).
[merge_posts_bbcode]Добавлено: 2018-03-09 13:56:45[/merge_posts_bbcode]

Вопрос. Если мы будем писать реальный fps (для типового видео), то он будет обновляться для DVD-Video?
DVD-Video может иметь разную частоту для меню и роликов. Например, меню 25p (pull-down 2:2), а клип 50i.

Aleksoid1978

По поводу работы видео-рендерера в целом и DXVA2-VP в частности - необходимо при проверке входных медиатипов добавить проверку на способность DXVA2-VP работать с ними. Как пример - Radeon и YV12, данный тип просто не поддерживается. Так же и P010 - на Win7 я так понимаю тоже не поддерживается.

V0lt - сделаешь или я ??
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

В общем пробуем продвинутый метод. Если не подошел, то BobDevice. Если тоже не подошел (RGB на входе), то ProgressiveDevice.
[merge_posts_bbcode]Добавлено: 2018-03-09 14:04:00[/merge_posts_bbcode]

Проверка форматов давно имеется.
Для совсем тупых адаптеров есть YUY2 и ProgressiveDevice, который поддерживается всем.

Aleksoid1978

Ты не понял - видео-рендерер принимает на вход медиа-типы но не проверяет поддерживаются ли они DXVA2-VP. В итоге просто нет картинки, в дебаг-логе ессно сыплются ошибки.
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

Цитата: V0ltСтранно, раньше было. Сейчас верну.

Такого не было, там проверка нужна в вызове CMpcVideoRenderer::CheckMediaType().
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

На Radeon - открываем любое видео, при условии что в MPC-BE на встроенном декодере убрано NV12, декодер выдает YV12. Наш видео-рендерер его принимает(как и описано в коде) - но DXVA2-VP на Radeon вообще не умеет с YV12 работать.
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

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

MpcVideoRenderer (build 72 - Commit ac3d28c) - очень странная, некорректная работа, при открытии любого видео файла, на любом выходном формате проскакивает "зеленый экран", или просто "зелень". Раньше такого не было.
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
Не подтверждаю. Попробуй полностью пересобрать и заново зарегистрировать.

В будущем добавлю больше информации в окно настроек и инфо для диагностики проблем.

Evgeniy1990

Цитата: V0ltEvgeniy1990
Не подтверждаю. Попробуй полностью пересобрать и заново зарегистрировать.

В будущем добавлю больше информации в окно настроек и инфо для диагностики проблем.
У меня на AMD Radeon HD 5770 присутствует зелень. Прилагаю видеозапись.
[merge_posts_bbcode]Добавлено: 2018-03-09 22:20:00[/merge_posts_bbcode]

V0lt / Aleksoid1978

Также на данной видеозаписи я показал вам еще и вторую проблему - это не выгруженный кадр после стопа, которая проявляется при алгоритме: Открыть любое видео -> Нажать на кнопку "Стоп" -> Развернуть окно на весь экран.

И еще один алгоритм: Открыть видео -> Нажать на кнопку "Стоп" -> Свернуть окно на весь экран -> Развернуть окно на весь экран. В результате, в полноэкранном режиме видно окно плеера в упрощенной теме оформления, которого вообще не должно быть по логике.

[merge_posts_bbcode]Добавлено: 2018-03-09 22:23:45[/merge_posts_bbcode]

И еще, скажу вам сразу, что на AMD-видеокартах проблем с данным видео-рендерером гораздо больше, которых вы не видите, поскольку у вас видеокарты от NVIDIA, поэтому мне придется, по ходу его развития, периодически сообщать о тех проблемах, которые вы не увидели.
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.