Método CBaseRenderer.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 el siguiente ejemplo multimedia en la secuencia.

Sintaxis

virtual Receive(
   IMediaSample *pMediaSample
);

Parámetros

pMediaSample

Puntero a la interfaz IMediaSample del ejemplo.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente o un valor HRESULT que indica la causa del error.

Observaciones

El pin de entrada llama a este método cuando recibe un ejemplo del filtro ascendente.

Si el filtro se está ejecutando, este método realiza los pasos siguientes:

  1. Programa el ejemplo de representación (CBaseRenderer::P repareReceive).
  2. Espera la hora programada (CBaseRenderer::WaitForRenderTime).
  3. Representa el ejemplo (CBaseRenderer::Render).
  4. Libera el ejemplo (CBaseRenderer::ClearPendingSample).

Si el filtro está en pausa, el método realiza los pasos siguientes:

  1. Notifica a la clase derivada que hay disponible un ejemplo (CBaseRenderer::OnReceiveFirstSample).
  2. Espera la hora programada.
  3. Representa el ejemplo.
  4. Libera el ejemplo.

Mientras está en pausa, el método espera en el paso 2 hasta que el filtro cambia a un estado en ejecución. En ese momento, el filtro programa el ejemplo.

En la clase base, el método OnReceiveFirstSample no hace nada. La clase derivada puede invalidarlo. Por ejemplo, cuando un representador de vídeo está en pausa, muestra el primer ejemplo como una imagen fija.

Requisitos

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

Consulte también

CBaseRenderer (clase)