Compartilhar via


Exemplo de filtro infTee

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Descrição

O filtro InfTee fornece uma implementação de exemplo do filtro DirectShow Infinite Pin Tee . O filtro tem um pino de entrada e um número dinâmico de pinos de saída. Todos os exemplos de mídia enviados para o filtro são entregues simultaneamente de todos os pinos de saída.

Esse filtro aparece no GraphEdit sob o nome "Exemplo de Pin Infinito Tee", para distingui-lo do filtro Padrão de Pin Infinito Tee fornecido no DirectShow.

Uso

Como esse filtro não altera os dados recebidos, todos os pinos devem concordar com o mesmo tipo de mídia. Durante o processo de conexão, o filtro pode reconectar alguns pinos para fazer com que os tipos de mídia correspondam.

Os dados que chegam ao pino de entrada não são copiados antes de serem enviados para os pinos de saída. O filtro também garante que os dados sejam entregues aos filtros downstream, a fim de garantir que ambas as saídas recebam o serviço em tempo há tempo. Em particular, se uma das saídas puder ser bloqueada na função membro COutputQueue::Receive , o tee girará um thread para entregar o exemplo. Se não houvesse nenhum thread para entregar o exemplo, o thread que entrega o exemplo para o pino de entrada tee poderá passar os dados para um filtro downstream; nesse ponto, ele pode bloquear, mantendo os dados do outro filtro downstream por longos períodos de tempo.

Baixar o exemplo

Para baixar os exemplos do SDK do DirectShow, instale a versão mais recente do SDK do Windows.

Este exemplo é instalado no seguinte caminho: [Raiz do SDK]\Samples\Multimedia\DirectShow\Filters\InfTee.

Exemplos do DirectShow