При " D3D FS -> reverse transition", видео декодер самовольно, без ведома пользователя изменяет выходной формат.
Такое действие противоречит логике, поскольку тут одно из двух: либо при открытии выдавай верный выходной формат и все прочие данные, либо после "D3D FS -> reverse transition" не меняй выходной формат.
Но, лично я думаю, что при открытии видео декодер выдает немного не тот выходной формат.
Может быть я ошибаюсь, но если взять и сравнить с LAV Video Decoder, то он при открытии выдает верный выходной формат и прочие данные и как следствие, при "D3D FS -> reverse transition" сохраняет выходной формат, т.е. не меняет его.
Алгоритм воспроизведения:
Условие: видео файлы с профилем формата: "High 4:4:4 Predictive@L5" и битностью: 10-bit.
1. Включить опцию "Полноэкранный D3D"
2. Открыть видео файл
3. Выполнить "Direct access" (окно -> D3D)
4. Открыть статистику EVR-CP (Ctrl+J)
5. Не закрывая статистику рендерера, выполнить "D3D FS -> reverse transition" и посмотреть на статистику:
(Input Type:/Mixer output:/Type:)
Фактический результат: было везде NV12, стало RGB32
Ожидаемый результат: один из двух:
1. При открытии должен быть RGB32, при "D3D FS -> reverse transition" тоже RGB32
2. Было везде NV12, должно везде остаться NV12
В общем, какой-то один из ожидаемых результатов должен быть и выполняться.
P.S. Я думаю что первый, поскольку в LAV Video Decoder, в отличие от нашего MPC Video Decoder, при открытии сразу подается RGB32, а не NV12.
Только не путайте 8-бит и 10-бит, условие я написал, оно всего одно для данного случая.
Evgeniy1990
Хмм. В самом начале выбирается некорректный NV12, а после перехода на полный экран D3D происходит волшебный реконект и подключается правильный RGB32. Даже выбор AYUV не особо помогает, все равно вначале NV12 подключается.
Если не использовать D3DFS, то всегда NV12. Походу поломался реконект до корректного формата.
Что интересно, YUV 4:2:2 8-бит сразу переключается на YUY2.
MPC-BE 1077.
Цитата: V0ltEvgeniy1990
Хмм. В самом начале выбирается некорректный NV12, а после перехода на полный экран D3D происходит волшебный реконект и подключается правильный RGB32. Даже выбор AYUV не особо помогает, все равно вначале NV12 подключается.
Если не использовать D3DFS, то всегда NV12. Походу поломался реконект до корректного формата.
Что интересно, YUV 4:2:2 8-бит сразу переключается на YUY2.
MPC-BE 1077.
Вот-вот. Вы все верно говорите. Совершенно верно, по логике должен подключаться именно RGB32, но вместо него подключается NV12, причем при обратном переходе из D3D FS в оконный режим происходит чудо, как вы и сказали - волшебный реконнект и подключается уже правильный RGB32.
Следовательно, отсюда делаем вывод:
ожидаемый результат: при открытии 10-битных видео файлов, с профилем формата
High 4:4:4 Predictive@L5 должен подключаться выходной формат RGB32. Никакого NV12 в данном случае быть не может.
Поищу H.264 Hi422P, посмотрю как с ним себя декодер ведет.
Для начала нужен сэмпл такого файла.
У меня вопрос - а что это за "нах" такой D3D FS -> reverse transition ?? :) Я лично первый раз такое слышу ...
[merge_posts_bbcode]Добавлено: 2016-01-05 11:36:27[/merge_posts_bbcode]
Так - сэмплы нашел, проблема именно с H264 форматом, открыт Apple ProRes 10bit 444 - все ок, на выходе RGB32. Посмотрю.
[merge_posts_bbcode]Добавлено: 2016-01-05 12:09:05[/merge_posts_bbcode]
Исправлено в 1081.
Цитата: Aleksoid1978У меня вопрос - а что это за "нах" такой D3D FS -> reverse transition ?? :) Я лично первый раз такое слышу ...
Reverse transition - это обратный переход (реконнект) из D3D FS в оконный режим (D3D FS -> окно). :)
Это то, что вы называете "callback" (условно - возвращение назад, т.е. в первоначальный этап, или режим), я просто назвал по другому, по своему. Прошу прощение, что назвал не совсем корректно.
Да уж - callback это СОВСЕМ не то что ты тут пишешь ...
Цитата: Aleksoid1978Для начала нужен сэмпл такого файла.
Вот тут навалом -
http://rutracker.org/forum/tracker.php?nm=Hi444PPЦитироватьИсправлено в 1081.
Спасибо. Работает.