Compartir a través de


Método CTransformFilter.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.

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

El pin de entrada del filtro llama a este método cuando recibe un ejemplo. Este método llama al método CTransformFilter::InitializeOutputSample , que prepara un nuevo ejemplo de salida. A continuación, llama al método CTransformFilter::Transform , que la clase derivada debe implementar. El método Transform procesa los datos de entrada y genera datos de salida.

Si el método Transform devuelve S_FALSE, el Receive método quita este ejemplo. En el primer ejemplo descartado, el filtro envía un evento EC_QUALITY_CHANGE al administrador de gráficos de filtros. De lo contrario, si el método Transform devuelve S_OK, el filtro entrega el ejemplo de salida. Para ello, llama al método IMemInputPin::Receive en el pin de entrada de bajada.

Requisitos

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

Consulte también

CTransformFilter (clase)