Compartir a través de


Método CVideoTransformFilter.Receive

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El Receive método recibe un ejemplo multimedia, lo procesa y entrega un ejemplo de salida al filtro de bajada. Este método invalida el método CTransformFilter::Receive .

Sintaxis

HRESULT Receive(
   IMediaSample *pSample
);

Parámetros

pSample

Puntero a la interfaz IMediaSample en el ejemplo de entrada.

Valor devuelto

Devuelve un valor HRESULT . Entre los valores posibles figuran los siguientes:

Código devuelto Descripción
S_FALSE
El filtro ascendente debe dejar de enviar muestras.
S_OK
Correcto.

Observaciones

Este método llama a CVideoTransformFilter::ShouldSkipFrame para determinar si debe entregar este ejemplo o simplemente descartarlo. Si ShouldSkipFrame devuelve FALSE (lo que indica que se debe entregar el ejemplo), el método hace lo siguiente:

  1. Llama a CTransformFilter::InitializeOutputSample para preparar el ejemplo de salida.
  2. Llama a CTransformFilter::Transform para procesar el ejemplo de entrada. Este método es virtual puro y debe implementarse en la clase derivada.
  3. Llama a CBaseOutputPin::D eliver para entregar el ejemplo de salida.

Además, este método comprueba si hay cambios de formato en el ejemplo de entrada o salida mediante una llamada a IMediaSample::GetMediaType. Si hay un cambio de formato, el método establece el tipo de conexión en el pin correspondiente. Antes de establecer el nuevo tipo, llama a StopStreaming. Después de establecer el nuevo tipo, llama a StartStreaming. La clase derivada puede usar estos métodos para actualizar su estado interno. Es posible que la clase derivada también tenga que comprobar el nuevo formato en su método Transform .

Requisitos

Requisito Value
Encabezado
Vtrans.h (include Streams.h)
Biblioteca
Strmbase.lib (compilaciones comerciales);
Strmbasd.lib (compilaciones de depuración)

Consulte también

CVideoTransformFilter (clase)