Другие причины для DirectShow ошибок "не удалось найти комбинацию промежуточных фильтров"?
У меня есть приложение Delphi 6, которое использует библиотеку компонентов DSPACK DirectShow. В настоящее время я получаю сообщение об ошибке "невозможно найти комбинацию промежуточных фильтров", когда я пытаюсь подключить контакт Capture на устройстве захвата звука к входному контакту другого фильтра. Я считаю, что правильно настраиваю медиаформаты. У меня есть ловушка ошибок, и в этой ловушке я явно запрашиваю оба вывода для точного формата мультимедиа, в котором они установлены в случае несоответствия. Когда я делаю это, оба контакта возвращаются с точно таким же форматом WAV:
тег формата: 1
количество каналов: 1
бит на выборку: 16
частота дискретизации: 8000
Это соответствует тому, на что я установил оба фильтра, но я получаю ошибку, которая (насколько я знаю) обычно указывает на несовместимость формата. Кто-нибудь сталкивался с этой ошибкой раньше и знает, что я могу делать неправильно или какие другие виды тестов / проверок я могу сделать?
1 ответ
Оказывается, ошибка была вызвана форматом мультимедиа, который я возвращал из моего аудио-фильтра push-источника. У меня был неправильный подтип, и это вызывало ошибку "Не удалось найти комбинацию промежуточных фильтров" из DirectShow, так как подтип, который я использовал в своем фильтре push-источника, был некорректным и не совместим с другими фильтрами, такими как фильтр Capture. Я использовал в моем графике фильтра. См. Примечание "ОБНОВЛЕНИЕ" в моей теме о форматах мультимедиа:
Корректные настройки Media Type для фильтра DirectShow, который доставляет аудиоданные Wav?