Compartilhar via


Método CTransformFilter.Receive

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na 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 Captura de Áudio/Vídeo no 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.]

O Receive método recebe um exemplo de mídia, processa-o e fornece um exemplo de saída para o filtro downstream.

Sintaxe

HRESULT Receive(
   IMediaSample *pSample
);

Parâmetros

pSample

Ponteiro para a interface IMediaSample no exemplo de entrada.

Retornar valor

Retorna um valor HRESULT . Os possíveis valores incluem os seguintes:

Código de retorno Descrição
S_FALSE
O filtro upstream deve parar de enviar amostras.
S_OK
Êxito.

Comentários

O pin de entrada do filtro chama esse método quando recebe um exemplo. Esse método chama o método CTransformFilter::InitializeOutputSample , que prepara um novo exemplo de saída. Em seguida, ele chama o método CTransformFilter::Transform , que a classe derivada deve implementar. O método Transform processa os dados de entrada e produz dados de saída.

Se o método Transform retornar S_FALSE, o Receive método descartará este exemplo. No primeiro exemplo descartado, o filtro envia um evento EC_QUALITY_CHANGE para o gerenciador de grafo de filtro. Caso contrário, se o método Transform retornar S_OK, o filtro fornecerá o exemplo de saída. Para fazer isso, ele chama o método IMemInputPin::Receive no pin de entrada downstream.

Requisitos

Requisito Valor
parâmetro
Transfrm.h (inclua Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)

Confira também

Classe CTransformFilter