Evgeniy_1990
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Aleksoid1978 Цитата: Проверил - все отлично. То что в статистике при старте проигрывания "дикий" FPS, это нормально, так всегда себя ведет. Что DXVA, что в софте. | Эти видео файлы, которые я залил для вас, воспроизводятся некорректно. В них есть "что-то", из-за чего после изменения в r207, они перестали нормально работать. Я вам может быть неточно, но честно скажу, что это связано с кадрами, с таймингами и самое главное - с субтитрами. Я попробовал сам разобраться, что повлияло на это и понял, что скорее всего опять эти странные и сомнительные "B-Frames". Т.е. уже понятно, что что-то не так с обработкой кадров. Отсюда и идут эти отклонения и прерывистые воспроизведения видео файлов вместе с субтитрами. А теперь поясню: по коду я вижу, что работа с видео файлами, содержащими некие особые "B-Frames", была как раз включена именно в изменении под номером r207. Первоначально, работа с некими "B-Frames" была отключена, т.к. вызывала другие проблемы, особенно по части DXVA, но вы потом ее снова включили, теперь возникла еще одна проблема, которая как раз и связана с этими отклонениями, поскольку явно видно, что что-то не так происходит при воспроизведении кадров видео, т.е. нет плавности, но есть рывки, т.е. оно прерывистое. Вот выключенный код, который присутствовал в r206 и был убран (изменен) в r207: Код: /* if (m_bCheckFramesOrdering && !m_bReorderBFrame && m_pAVCtx->has_b_frames && rtStart > 0 && rtStart < m_rtLastStart) { m_bReorderBFrame = true; } */ | Чтобы в этом убедиться я сделал также еще несколько тестов, касаемых этой ужасной проблемы с отклонениями и последовательностью кадров (B-Frames). Получил, естественно, довольно интересные результаты. Для тестирования использовались SVN-билды: r206, r207, r209, r221, r227, r287, r293, r298. Также использовал ваши сэмплы (три видео файла), содержащие некорректную последовательность кадров "B-Frames". r206: 1. "hevc" - работает некорректно 2. "0000001" - работает нормально 3. "Avril" - работает некорректно Естественно, в r206 отключен код (функционал) определения некорректной последовательности кадров, поэтому эти видео файлы воспроизводятся некорректно. А дальше уже интересно: r207, r209, r221, r337, r287: 1. "hevc" - работает нормально 2. "0000001" - работает нормально 3. "Avril" - работает некорректно Поскольку файл с именем "hevc" стал нормально воспроизводиться, без рывков в r207, это как раз говорит о том, что выключенный код определения некорректной последовательности кадров был снова запущен, т.е. включен. Остальные два видео файла остались работать без изменения. А дальше - еще интереснее стало: r293, r298, r299: 1. "hevc" - работает нормально 2. "0000001" - падает (Crash) 3. "Avril" - работает некорректно А теперь общие выводы: 1. Благодаря данным тестам, удалось также понять и установить, что в проблеме с прерывистым воспроизведением видео файлов, т.е. с отклонениями, виноват также код определения некорректной последовательности кадров. Именно он в связке (т.е. в паре) с измененными временными метками вызывает "эту траблу". Поскольку она проявляется именно в самом начале воспроизведения видео файлов, имеющих встроенные, или внешние субтитры. Т.е. понятно, что тут или что-то одно из двух вызывает эти отклонения, или обе эти вещи разом, т.е. "измененные временные метки" и "код обработки некорректной последовательности кадров". 2. Также, благодаря этим данным тестам удалось обнаружить еще один текущий баг-поломку, связанную с падением видео файла с именем "0000001". Т.е. он работал последний раз нормально в r286, r287, r288, а потом совсем перестал работать, т.е. при его открытии плеер просто падает. Проблема опять-таки во встроенном "MPC Video Decoder". У нас все эти "траблы" присутствуют именно во встроенном "MPC Video Decoder". Диапазон поиска падения: [r289 - r293]. Согласно SVN-логу изменений, единственное изменение, из-за которого данный видео файл перестал открываться и воспроизводиться, (т.е стал падать), это изменение под номером r290, которое конечно же забавно звучит: "Так же - небольшое обновление для исправления вылетов при проигрывании некоторых h264 файлов." Забавное здесь то, что данное изменение должно избавлять от вылетов, а оно наоборот только их прибавляет. P.S. Прилагаю проблемный видео файл. |