Проблема с Default DirectSound Device в DirectShow
От: CrazyWalrus Россия  
Дата: 04.09.09 08:59
Оценка:
Всем доброго времени суток столкнулся с необъяснимым для меня явлением: фильтр АудиоРендерер ака Default DirectSound Device скипает данные.
Ситуация:
В демультиплексере/сплиттере из реализации IBaseFilter::GetSate возвращаем VFW_S_CANT_CUE(в сотоянии пауза) для того что бы граф мог перейти в состояние State_Run при отсутствии данных по аудио ветке графа. т.е. прикидываемся live сорцом.

Запускаем граф. Всё ОК.

В настройках фильтра на проперти паге меняем активный аудио стрим — просиходит динамическое пересоединения выходного аудио пина сплиттера с входным пином рендерера в результате чего меняется декодер, например было mp3 стало aac. Звук пропадает. На проперти паге рендерера на вкладке Advanced видно что рендерер скипает самплы. Времена не рвутся. Сам рендерер находиться в сотосянии Run. Сплиттер то же.

Если не возвращать из реализации IBaseFilter::GetSate VFW_S_CANT_CUE в сотоянии пауза, то всё работает.

В чём иожет быть дело. Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.