Скорее всего, после последних изменений в DXVA1-декодере, перестали корректно воспроизводится (декодироваться) некоторые видео файлы. Сейчас они воспроизводятся некорректно, например первые кадры не декодируются, а просто стоят на месте, Спустя некоторое время, происходит их пропуск и резкий рывок вперед, после чего, частота кадров становится равной примерно 17 FPS, вместо 23.976, которая постепенно увеличивается по мере дальнейшего процесса воспроизведения.
Ссылка на видео файл: https://yadi.sk/i/YIBCtoFWnjKyG
P.S. Если требуется поиск билда, с которого возникла данная поломка, я готов заняться его поисками.
Но пока подозреваю последние изменения в DXVA1-декодере, поскольку уверен на все 100%, что раньше этот видео файл воспроизводился совершенно нормально, при DXVA1.
DXVA1 код не изменялся считаем с тех пор как я его переделал. Покажите мне изменения в DXVA1 декодере.
Цитата: Aleksoid1978DXVA1 код не изменялся считаем с тех пор как я его переделал. Покажите мне изменения в DXVA1 декодере.
Вы даже не замечаете, как после ваших правок начинают возникать поломки.
Ладно, я поищу билд.
[merge_posts_bbcode]Добавлено: 2016-01-26 15:13:26[/merge_posts_bbcode]
Aleksoid1978Я сделал видеозапись:
https://yadi.sk/i/2llEVWk1nm2fBМожете посмотреть. На ней показан сам баг, когда после открытия данного видео файла, первые его кадры просто стоят на месте и только спустя несколько секунд начинается сам процесс декодирования в DXVA.
Частота кадров постепенно увеличивается до 23.976.
Это на любом файле или только избранные ??
Хочешь - можешь попробовать поискать когда поломка появилась. Возможно что-то на стороне ffmpeg.
Цитата: Aleksoid1978Это на любом файле или только избранные ??
Хочешь - можешь попробовать поискать когда поломка появилась. Возможно что-то на стороне ffmpeg.
Пока что только на этом файле. Да, его можно назвать избранным, поскольку там используется
MBAFF.Если у вас есть подобные файлы, можете их скинуть, я проверю заодно. Вдруг на них та же беда.
Хорошо, я тогда займусь поисками билда, у меня тоже такое подозрение, что что-то накосячили именно в ffmpeg.
[merge_posts_bbcode]Добавлено: 2016-01-27 16:53:30[/merge_posts_bbcode]
Aleksoid1978Я приступил к поискам проблемного билда.
Текущие диапазоны (интервалы) поиска:
1. [956 -> 1137]2. [1026 -> 1137]3. [1034 -> 1075]В SVN
r1075 уже присутствует баг.
В SVN
r1034 бага пока еще нет.
Нужно искать билд, входящий в диапазон (интервал):
[1034 -> 1075].
[merge_posts_bbcode]Добавлено: 2016-01-27 17:32:42[/merge_posts_bbcode]
Итак, наш диапазон (интервал) поиска:
[1034 -> 1075].
Проверяю билды, входящие в данный диапазон (интервал поиска):
r1036 - ОК!r1042 - ОК!r1051 - ОК!r1055 - ОК!r1060 - ОК!r1064 - ОК!r1067 - ПЛОХО!r1075 - ПЛОХО!Итак,
внимание! Получил следующий диапазон (интервал) поиска:
[1064 -> 1067].
В SVN
r1064 - бага нет.
В SVN
r1067 - баг уже есть, появился и присутствует до сих пор.
[merge_posts_bbcode]Добавлено: 2016-01-27 17:42:33[/merge_posts_bbcode]
Вот изменения, сделанные в SVN
r1065, 1066 и 1067.
Спойлер
[r1067] by aleksoid
Изменение : Корректировка ffmpeg и DXVA2 декодер для предотвращения выполнения лишнего кода.
2015-12-29 07:06:15 Tree
[r1066] by aleksoid
Изменение : Корректировка(частичный откат) предыдущей ревизии. Переделка способа обработки изменения размера кадра DXVA2 декодером.
2015-12-29 06:22:30 Tree
[r1065] by aleksoid
Изменение : Небольшие корректировки кода работы DXVA2 декодера с ffmpeg данными.
2015-12-29 04:30:02 Tree
Все три этих изменения являются некорректными.
Несмотря на то, что они были сделаны именно для DXVA2-декодера, они также повлияли и на DXVA1-декодер.
Самым проблемным является изменение
r1066 - изменение размера кадра.
Если еще раз посмотреть мою видеозапись, или обратить внимание на мой скриншот, то можно заметить, что те кадры, которые не декодируются, изначально имеют просто громадный размер.
Отсюда и следует, что причиной является изменение
r1066.
P.S. Вот, пожалуйста, ссылка на скриншот:
https://yadi.sk/i/ajyBQaOcnpwQJОбратите на начальный размер кадра видео - он
просто огромный.
Можешь запустить мои debug билды и выложить лог-файл с рабочего ??
Так же - в момент что на скрине на паузе выложить PinInfo от видео-рендерера.
Цитата: Aleksoid1978Можешь запустить мои debug билды и выложить лог-файл с рабочего ??
Так же - в момент что на скрине на паузе выложить PinInfo от видео-рендерера.
Эти -
https://yadi.sk/d/SjcQ9yeJnp3Hn и
https://yadi.sk/d/1WTDFKAqnp9qV ?
Если так, то проверю, запущу этот избранный видео файл и выложу вам лог-файл и PinInfo видео-рендерера.
Проверить надо на обоих последних.
Цитата: Aleksoid1978Проверить надо на обоих последних.
Ок, понятно.
Проверил избранный видео файл на двух последних тестовых отладочных билдах:
mpc-be.exe.Debug.20160127
mpc-be.exe.Debug.20160127_2Прилагаю:1. Все лог-файлы по
первому отладочному билду:
https://yadi.sk/d/gcTWMGLknrLXb2. Все лог-файлы по
второму отладочному билду:
https://yadi.sk/d/sFT4lXhAnrLoR[merge_posts_bbcode]Добавлено: 2016-01-28 09:59:14[/merge_posts_bbcode]
Aleksoid1978Также прилагаю
PinInfo видео-рендерера:
Спойлер
Filter : Video Mixing Renderer 7 - CLSID : {B87BEB7B-8D29-423F-AE4D-6582C10175AC}
Module : C:\\WINDOWS\\system32\\quartz.dll
- Connected to:
CLSID: {008BAC12-FBAF-497B-9670-BC6F6FBAE2C4}
Filter: MPC Video Decoder
Pin: Output
- Connection media type:
Video: dxva 1280x736 (16:9) 23.976fps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: DXVA_ModeH264_E {1B81BE68-A0C7-11D3-B984-00C04F2E73C5}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1382400
cbFormat: 112
VIDEOINFOHEADER:
rcSource: (0,0)-(1280,720)
rcTarget: (0,0)-(1280,720)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 417083
VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000081
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 16
dwPictAspectRatioY: 9
dwControlFlags: 0x00000000
dwReserved2: 0x00000000
BITMAPINFOHEADER:
biSize: 40
biWidth: 1280
biHeight: 736
biPlanes: 1
biBitCount: 12
biCompression: dxva
biSizeImage: 1413120
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0
А можно PinInfo с работающей версии.
Цитата: Aleksoid1978А можно PinInfo с работающей версии.
Можно конечно, последняя рабочая версия билда
r1064, пожалуйста:
Спойлер
Filter : Video Mixing Renderer 7 - CLSID : {B87BEB7B-8D29-423F-AE4D-6582C10175AC}
Module : C:\\WINDOWS\\system32\\quartz.dll
- Connected to:
CLSID: {008BAC12-FBAF-497B-9670-BC6F6FBAE2C4}
Filter: MPC Video Decoder
Pin: Output
- Connection media type:
Video: dxva 1280x736 (16:9) 23.976fps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: DXVA_ModeH264_E {1B81BE68-A0C7-11D3-B984-00C04F2E73C5}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1382400
cbFormat: 112
VIDEOINFOHEADER:
rcSource: (0,0)-(1280,720)
rcTarget: (0,0)-(1280,720)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 417083
VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000081
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 16
dwPictAspectRatioY: 9
dwControlFlags: 0x00000000
dwReserved2: 0x00000000
BITMAPINFOHEADER:
biSize: 40
biWidth: 1280
biHeight: 736
biPlanes: 1
biBitCount: 12
biCompression: dxva
biSizeImage: 1413120
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0
Я кажется понял в чем дело, доберусь до дома - проверю.
[merge_posts_bbcode]Добавлено: 2016-01-28 18:21:09[/merge_posts_bbcode]
Вот проверяем - https://yadi.sk/d/yT7FowBGnrhAe
[merge_posts_bbcode]Добавлено: 2016-01-28 18:24:41[/merge_posts_bbcode]
И еще вот один тестовый ролик с похожей ситуацией(правда тут кодек MPEG2) - https://yadi.sk/d/rBwCI2KtnrhQU
Отличие этих файлов от всех остальных - они немного по хитрому закодированы. У них кодированный размер кадра по высоте и "реальный" размер кадра по высоте - отличаются :)
Вот вроде бы как размер 1280х720 - но закодированный размер 1280х736 :)
Цитата: Aleksoid1978Я кажется понял в чем дело, доберусь до дома - проверю.
[merge_posts_bbcode]Добавлено: 2016-01-28 18:21:09[/merge_posts_bbcode]
Вот проверяем - https://yadi.sk/d/yT7FowBGnrhAe
[merge_posts_bbcode]Добавлено: 2016-01-28 18:24:41[/merge_posts_bbcode]
И еще вот один тестовый ролик с похожей ситуацией(правда тут кодек MPEG2) - https://yadi.sk/d/rBwCI2KtnrhQU
Отличие этих файлов от всех остальных - они немного по хитрому закодированы. У них кодированный размер кадра по высоте и "реальный" размер кадра по высоте - отличаются :)
Вот вроде бы как размер 1280х720 - но закодированный размер 1280х736 :)
Проверил тестовый билд. Вот теперь избранный видео файл в DXVA1 работает нормально, первые кадры декодируются и у них нормальный размер. :)
Проблема устранена! :)
По поводу вашего сэмпла "
720p.mpg" - он у меня есть и в нем нет и не было данного бага даже в SVN.
В вашем тестовом билде - аналогично, все в порядке, он воспроизводится нормально.