CBaseStreamControl (clase)

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

Jerarquía de clases cbasestreamcontrol

Esta clase implementa la interfaz IAMStreamControl para las patillas de entrada y salida. Proporciona control sobre el inicio y detención de un pin individual en el filtro. Un pin que admita IAMStreamControl debe heredar de esta clase base. A continuación se muestra una declaración típica para un pin de entrada:

class CMyInputPin : public CBaseInputPin, public CBaseStreamControl

Asegúrese de invalidar NonDelegatingQueryInteface para exponer IAMStreamControl. Para obtener más información, vea Cómo implementar IUnknown.

Métodos públicos Descripción
CBaseStreamControl Método constructor.
~CBaseStreamControl Método de destructor.
CheckStreamState Determina si se debe entregar o descartar un ejemplo multimedia.
Lavado Notifica a la clase base que el pin ha iniciado o detenido el vaciado.
NotifyFilterState Notifica al pin cuando cambia el estado del filtro.
SetFilterGraph Especifica el receptor de eventos para los eventos de control de flujo.
SetSyncSource Notifica a la clase base del reloj de referencia actual.
Métodos IAMStreamControl Descripción
GetInfo Recupera información sobre la configuración actual del control de secuencias, incluidas las horas de inicio y detención.
StartAt Informa al pin cuándo empezar a entregar datos.
StopAt Informa al pin cuando se detiene la entrega de datos.

Observaciones

Esta clase requiere el pin y el filtro propietario para notificar a la clase cuándo se producen varios eventos, como el filtro que une el gráfico o reciba un nuevo reloj de referencia. Debe llamar a los métodos de clase siguientes:

La CBaseStreamControl clase usa el reloj de referencia del gráfico de filtros para determinar qué muestras debe entregar el filtro y cuál debe descartarse. En el método IMemInputPin::Receive del pin, llame al método CBaseStreamControl::CheckStreamState con un puntero al ejemplo multimedia entrante. Si el método devuelve el valor STREAM_FLOWING, entregue la muestra de bajada. De lo contrario, deséchalo.

Requisitos

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