Classe CBaseStreamControl

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na 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 Captura de Áudio/Vídeo no 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.]

hierarquia de classes cbasestreamcontrol

Essa classe implementa a interface IAMStreamControl para pinos de entrada e saída. Ele fornece controle sobre como iniciar e parar um pino individual no filtro. Um pin que dá suporte a IAMStreamControl deve herdar dessa classe base. Veja a seguir uma declaração típica para um pin de entrada:

class CMyInputPin : public CBaseInputPin, public CBaseStreamControl

Substitua NonDelegatingQueryInteface para expor IAMStreamControl. Para obter mais informações, confira Como implementar o IUnknown.

Métodos públicos Descrição
Cbasestreamcontrol Método de construtor.
~Cbasestreamcontrol Método destruidor.
CheckStreamState Determina se um exemplo de mídia deve ser entregue ou descartado.
Liberando Notifica a classe base de que o pino foi iniciado ou parou de liberar.
NotifyFilterState Notifica o pino quando o estado do filtro é alterado.
SetFilterGraph Especifica o coletor de eventos para eventos de controle de fluxo.
SetSyncSource Notifica a classe base do relógio de referência atual.
Métodos IAMStreamControl Descrição
GetInfo Recupera informações sobre as configurações atuais de controle de fluxo, incluindo os horários de início e parada.
Startat Informa o pin quando começar a fornecer dados.
Stopat Informa o pino quando parar de fornecer dados.

Comentários

Essa classe requer o pin e o filtro proprietário para notificar a classe quando ocorrem vários eventos, como o filtro que une o grafo ou recebe um novo relógio de referência. Você deve chamar os seguintes métodos de classe:

A CBaseStreamControl classe usa o relógio de referência do grafo de filtro para determinar quais exemplos o filtro deve ser entregue e quais devem ser descartados. No método IMemInputPin::Receive do pin, chame o método CBaseStreamControl::CheckStreamState com um ponteiro para o exemplo de mídia de entrada. Se o método retornar o valor STREAM_FLOWING, forneça o exemplo downstream. Caso contrário, descarte-o.

Requisitos

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