Поделиться через


Пример фильтра InfTee

[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngineи захватом аудио и видео в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности в новом коде использовать MediaPlayer, IMFMediaEngine и захват аудио и видео в Media Foundation вместо DirectShow. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

Описание

Фильтр InfTee предоставляет пример реализации фильтра DirectShow Infinite Pin Tee. Фильтр имеет один входной пин-код и динамическое число выходных контактов. Все мультимедийные образцы, передаваемые на фильтр, предоставляются одновременно со всех выходных контактов.

Этот фильтр отображается в GraphEdit под именем "Sample Infinite Pin Tee", чтобы отличить его от стандартного фильтра Infinite Pin Tee, поставляемого в DirectShow.

Употребление

Так как этот фильтр не изменяет получаемые данные, все соединения должны соответствовать одинаковому типу данных. Во время процесса подключения фильтр может повторно подключить некоторые контакты, чтобы сделать типы носителей соответствующими.

Данные, поступающие на входной пин-код, не копируются перед отправкой на выходные пин-коды. Фильтр также гарантирует, что данные доставляются в подчиненные фильтры, чтобы гарантировать своевременное получение обоих выходных данных. В частности, если один из выходных данных может блокироваться в функции-члене COutputQueue ::Receive, то tee запускает поток для передачи сэмпла. Если для доставки образца не было потока, поток, который доставляет образец во входной вывод tee, может передать данные в нижележащий фильтр; на этом этапе он может блокироваться, удерживая данные от другого нижележащего фильтра в течение длительного периода времени.

Скачивание примера

Чтобы скачать примеры пакета SDK DirectShow, установите последнюю версию пакета SDK для Windows.

Этот пример устанавливается по следующему пути: [корневой каталог SDK]\Samples\Multimedia\DirectShow\Filters\InfTee.

Примеры DirectShow