mpc image source+evr-cp - не выводиться первый кадр [Исправлено]

Автор MPCfan, 09 ноября 2020, 19:53:18

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

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

MPCfan

Есть проблемы > https://yadi.sk/i/5sYBHwobk1U3lA Прошу обратить внимание на evr-cp при попытке перейти на следующий файл во время воспроизведения, и особенно в flipex. В этом же видео увидите как работает mpc-vr и madVR.

V0lt

#1
MPC Image Source выдает кадр каждые 2 секунды. EVR-CP пропускает первый кадр, поэтому в начале чернота. Тут недоработка EVR-CP.
Можно сделать видео без звука с частотой 0,5 fps. Эффект должен повториться. Не повторился.

PS: в MPC VR первый кадр выводиться всегда, поэтому с ним такой проблемы нет.

По поводу окна с ошибкой - надо смотреть.

PPS: залил MPC Image Source 0.2.0.54.

V0lt

#2
Проблему с черным экраном на EVR-CP можно также получить с системным Generate Still Video.
1. "Стандартный размер окна", "После начала воспроизведения не менять".
2. Закидываем в плейлист файл JPEG.
3. Дважды кликаем по файлу в плейлисте смотрим пару секунд, еще раз кликаем.
4. На 2-3 запуске вместо картинки буден черный экран. Если изменить размер окна, то появиться картинка.

А вот ошибка "Failed to RegisterClass" у меня получается только с MPC Image Source. Алгоритм тот же, но тут лучше брать PNG, чтобы можно было тестировать в MPC-HC.

MPCfan

V0lt,
Насчёт черноты в начале. На видео получилось достаточно стабильно с этой чернотой, а вот в реалии проскакивает редко. Больше настораживает flipex. С ним после ошибки все пользовательские приоритеты слетают. То есть до ошибки это - evr cp и mpc image source, а после уже video renderer, mpc video decoder, lavsource или lavsplitter/ file source(async). С copy после ошибки приоритеты не слетают.

V0lt

Посмотрел код.

Отрисовка первого кадра происходит в CSubPicAllocatorPresenterImpl::SetPosition(), вызов Paint(false) в строке 188. Но кадр так и не выводится.
Второй кадр выводиться в CEVRAllocatorPresenter::RenderThread(), вызов Paint(true) в строке 2086.

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

Чернота побеждена в r5680. Прошу проверить.

Ошибку "Failed to RegisterClass" можно конечно заглушить, но не хотелось бы, т.к. она косвенно сообщает о том, что прошлый EVR-CP не выгружен из памяти.

Проблемы с графом поизучаем, если сможем стабильно воспроизвести.

MPCfan

#7
V0lt,
Проверил на r5681. Черноты нет.

V0lt