Как добавить пользовательские аудиобуферы в граф фильтра DirectX с помощью DSPACK? - PullRequest
3 голосов
/ 03 октября 2011

Я использую Delphi 6 с DSPACK для выполнения нескольких операций, связанных с аудио и DirectX. Я выяснил, на какой стороне «ввода» я назначаю одно из перечисленных устройств ввода звука объекту TFilter и подключаю этот фильтр к объекту TSampleGrabber, и это дает мне аудиобуферы, необходимые для отправки звука в Skype. Это логическая обратная сторона этого графика, которую я должен выяснить. Я получаю аудио буферы из Skype через сокет. Мне нужно создать график, который имеет фильтр, который будет дополнением к TSampleGrabber. Другими словами, TFilter, который вместо доставки аудио-буферов во время события, которое срабатывает, когда новое аудио доступно, как TSampleGrabber, будет иметь аналогичное событие, которое запускается, когда новое аудио необходимо для подачи графика. В конце этого «выходного» графа будет TFilter, назначенный одному из перечисленных устройств вывода звука, чьи входные контакты будут подключаться к выходным контактам этого обратного двойника TSampleGrabber.

Кто-нибудь знает, как это сделать? Я, конечно, предпочел бы избежать написания собственного собственного COM-объекта фильтра, чтобы сделать это. Я надеюсь, что существует TFilter, который принимает пользовательские аудио буферы для микширования в граф фильтра DirectX.

1 Ответ

2 голосов
/ 03 октября 2011

Общая отправная точка для фильтра ввода данных - Пример исходных фильтров Push .Это создает фильтр с выводом только вывод, который вводит данные в конвейер DirectShow, данные могут быть любого типа и, как правило, это видео или аудио.

Как вы упомянули Delphi и DSPack, последний портировал этот пример (см. \ Demos \ D6-D7 \ Filters \ PushSource).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...