С DirectShow начал разбираться недавно. В MSDN мало информации по поводу WDM устройств.
Никак не могу найти ответ на следующие вопросы.
По поводу звука.
Звуковая карта при перечислении в категории CLSID_AudioInputDeviceCategory
находится как как полноценный фильтр захвата звука с входными линиями и
пином "capture" с множеством типов MEDIA как "audio" а "submedia — PCM .
А также удаётся получить интерфейс IAMAudioInputMixer на входах
этого фильтра, которые имеют тип медia "analog audio".
Аналогичная ситуация и с звуковым устройством Веб-камеры. Тоже в этой категории нормально получается всё вышеперечисленное.
Однако как я понимаю, фильтр полученный в этой категории работает не как WDM а как более старая версия драйвера. Более того. Многих дополнительных входов звуковой карты нет.
Если же я пытаюсь получить звуковую карту при помощи вызова категории AM_KSCATEGORY_CAPTURE то оно благополучно её находит. Только как AЦП-ЦАП устройство при этом без выхода "capture" а также без микшерных входов аналоговых.
Также не удаётся ни запросить при помощи QueryInterface ни найти методом FindInterface — IAMAudioInputMixer интерфейс у этого фильтра
Звуковое устройство Веб-камеры получается со вsходом "capture", однако со всем остальным те же проблем (в отличие от полученного в категории AudioInputDeviceCategory не удаётся получить IAMAudioInputMixer)
Также эти устройства находятся и в категории AM_KSCATEGORY_AUDIO
при этом там кроме карты (то есть просто DAC-ADC) находится ещё и одноимённый микшер с кучей входов более продвинутых.
При этом тоже получить ни на пинах ни вообще интерфейс IAMAudioInputMixer невозможно кроме того невозможно понять каким образом подключить фильтр микшера к фильтру ADC-DAC. Как вообще понять что это части одно и того же устройство физически.
В MSDN по тому поводу что-то очень кратко и мутно написано. Что-то там по поводу
какого KSmedia идентификатора. Я пытался получить он вообще у всех устройств оказался один и тот же. Так что как это помогает иднтифицировать что куда подключать не понятно.
В любом случае даже если удастся каким-то образом подключить ти 2 устройства в одну цепь то как манипулировать микшером? Как получить в таком случае интерфейс IAMAudioInputMixer, если его не удаётся получить на самом устройстве микшере непосредственно. А тем более на устройстве ADC, которое ещё нужно как-то присоединить.
По поводу видео.
По поводу видео аналогичные проблемы. Тоже если использовать категорию AM_KSCATEGORY_VIDEO находит только вебкамеру. А карту видеозахвата тюнера находит только в AM_KSCATEGORY_CAPTURE. Каким образом подключить к этому сам тюнер а также переключатель тоже не совсем понятно чтобы это был именно WDM фильтр. То есть в категории VideoInputDeviceCategory его получать нежелательно как я понимаю.
Где можно прочитать как найти решение этих казалось бы элементарных проблем?
Просто найти и подключить имеющиеся устройства используя драйвера работающие как WDM. Или может быть какой-то совет.