Я работаю над настраиваемым исходным фильтром 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