Método CVideoTransformFilter.Receive

[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.]

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

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

Esse método chama CVideoTransformFilter::ShouldSkipFrame para determinar se ele deve fornecer este exemplo ou simplesmente descartá-lo. Se ShouldSkipFrame retornar FALSE (indicando que o exemplo deve ser entregue), o método fará o seguinte:

  1. Chama CTransformFilter::InitializeOutputSample para preparar o exemplo de saída
  2. Chama CTransformFilter::Transform para processar o exemplo de entrada. Esse método é virtual puro e deve ser implementado na classe derivada.
  3. Chama CBaseOutputPin::D eliver para fornecer o exemplo de saída.

Além disso, esse método verifica se há alterações de formato no exemplo de entrada ou saída, chamando IMediaSample::GetMediaType. Se houver uma alteração de formato, o método definirá o tipo de conexão no pino correspondente. Antes de definir o novo tipo, ele chama StopStreaming. Depois de definir o novo tipo, ele chama StartStreaming. A classe derivada pode usar esses métodos para atualizar seu estado interno. A classe derivada também pode precisar marcar para o novo formato em seu método Transform.

Requisitos

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

Confira também

Classe CVideoTransformFilter