Compartilhar via


Classe CBaseFilter

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in 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 Audio/Video Capture in 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 da classe cbasefilter

A CBaseFilter classe é uma classe abstrata para implementar filtros. Para implementar um filtro usando essa classe, você deve executar pelo menos as seguintes etapas:

  • Derivar uma nova classe de CBaseFilter.
  • Inclua variáveis de membro que definem os pinos no filtro. Os pinos devem herdar da classe CBasePin .
  • Substitua o método virtual puro CBaseFilter::GetPin, que recupera pinos no filtro.
  • Substitua o método virtual puro CBaseFilter::GetPinCount, que recupera o número de pinos.
  • Forneça métodos para gerar, processar ou renderizar amostras de mídia.

Várias classes base derivam de CBaseFilter, incluindo CSource, CBaseRenderer e CTransformFilter. Geralmente, é mais fácil implementar um filtro com uma dessas classes especializadas, em vez de usar CBaseFilter diretamente.

Variáveis de membro protegidas Descrição
M_state Estado atual do filtro.
m_pClock Ponteiro para o relógio de referência do filtro.
m_tStart Tempo de referência que corresponde ao tempo de fluxo 0.
m_clsid CLSID (identificador de classe) do filtro.
m_pLock Ponteiro para uma seção crítica que é usada para serializar alterações de estado.
m_pName Nome do filtro.
m_pGraph Ponteiro para o gerenciador de grafo de filtro.
m_pSink Ponteiro para a interface IMediaEventSink no gerenciador de grafo de filtro.
m_PinVersion Versão atual do conjunto de pinos nesse filtro.
Métodos públicos Descrição
Cbasefilter Método de construtor.
~Cbasefilter Método de destruidor.
StreamTime Recupera o tempo de fluxo atual. Virtual.
IsActive Determina se o filtro está ativo no momento (em execução ou em pausa).
IsStopped Determina se o filtro está parado no momento.
Notifyevent Envia uma notificação de evento para o gerenciador de grafo de filtro.
GetFilterGraph Recupera um ponteiro para o gerenciador de grafo de filtro.
ReconnectPin Interrompe uma conexão de pino existente e reconecta-a ao mesmo pino, usando um tipo de mídia especificado.
Getpinversion Recupera um número de versão para o conjunto de pinos nesse filtro. Virtual.
IncrementPinVersion Incrementa o número de versão no conjunto de pinos.
Getsetupdata Recupera os dados de registro do filtro. Virtual.
Métodos virtuais puros Descrição
GetPinCount Recupera o número de pinos.
Getpin Recupera um pino.
Métodos IPersist Descrição
Getclassid Recupera o identificador de classe.
Métodos IMediaFilter Descrição
GetState Recupera o estado do filtro (em execução, parado ou pausado).
SetSyncSource Define um relógio de referência para o filtro.
GetSyncSource Recupera o relógio de referência que o filtro está usando.
Parar Interrompe o filtro.
Pausa Pausa o filtro.
Executar Executa o filtro.
Métodos IBaseFilter Descrição
Enumpins Enumera os pinos nesse filtro.
Findpin Recupera o pino com o identificador especificado.
QueryFilterInfo Recupera informações sobre o filtro.
Joinfiltergraph Notifica o filtro de que ele ingressou ou deixou um grafo de filtro.
QueryVendorInfo Recupera uma cadeia de caracteres que contém informações do fornecedor.
Métodos IAMovieSetup Descrição
Registrar Adiciona o filtro ao registro.
Cancelar o registro Remove o filtro do registro.

Requisitos

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