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.]
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 |
|
Biblioteca |
|