DirectShow видео воспроизводится слишком быстро, когда аудио выводит данные - PullRequest
0 голосов
/ 01 сентября 2011

Я работаю над настраиваемым исходным фильтром Windows DirectShow на основе CSource и CSourceStream для каждого вывода.Есть два контакта - видео выход и аудио выход.Оба вывода работают нормально, когда они отображаются отдельно в графическом редакторе и аналогичных инструментах, таких как Graph Studio, с правильными отметками времени, частотой кадров и звуком.Я рендеринг видео на рендерер микширования видео (VMR7 или VMR9).

Однако при рендеринге обоих выводов видео воспроизводится слишком быстро, а звук по-прежнему звучит правильно.Видео воспроизводится примерно на 50% слишком быстро, но я думаю, что это ограничено скоростью декодирования.

В обоих случаях метки времени на выборках одинаковы.Если я рендерим аудиопоток на ноль рендерер (тот, что в qedit.dll), то видеопоток воспроизводится с правильной частотой кадров.Фильтр представляет собой 32-битный фильтр, работающий в системе Win7 x64.

Когда я добавил поддержку поиска IMediaSeeking, я обнаружил, что панель поиска для аудиопотока ведет себя довольно странно.Однако проблема возникает без поддержки IMediaSeeking.

Есть ли какие-либо предложения относительно того, что может быть причиной этого, или предложения для дальнейшего изучения?

Типы вывода из аудио и видео контакта вставляются ниже:

Mediatyp: видео Подтип: RGB24 Формат: тип VideoInfo Размер видео: 1024 x 576 пикселей, 24-битный размер изображения: 1769472 Сжатие байтов: RGB Источник: ширина 0, высота 0 Цель: ширина 0, высота 0 Битрейт: 0 бит /сек.Ошибка: 0 бит / секAvg.время отображения: 41708 мкс.

Медиатип: видео Подтип: RGB32 Формат: тип VideoInfo Размер видео: 1024 x 576 пикселей, 32-битный размер изображения: 2359296 Байт Сжатие: RGB Источник: ширина 0, высота 0 Цель: ширина 0, высота 0 Битрейт:0 бит / секОшибка: 0 бит / секAvg.время отображения: 41708 мкс.

Majortyp: Audio Подтип: PCM audio Размер выборки: 3 Тип WaveFormatEx Wave Формат: Unknown Каналы: 1 Образцы / сек .: 48000 Ср.байт / сек: 144000 выравнивание блока: 3 бита / сэмпл: 24

1 Ответ

1 голос
/ 01 сентября 2011

Я понял проблему сразу после публикации вопроса.Случай отладки путем правильной постановки вопроса.

Аудиопоток имел полностью поддельные метки времени.Аудио и видео потоки воспроизводятся отдельно, но не синхронизируются друг с другом при совместном воспроизведении.

...