CBaseFilter (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 de cbasefilter

La CBaseFilter clase es una clase abstracta para implementar filtros. Para implementar un filtro mediante esta clase, debe realizar al menos los pasos siguientes:

  • Derive una nueva clase de CBaseFilter.
  • Incluya variables de miembro que definan las patillas en el filtro. Los pins deben heredar de la clase CBasePin .
  • Invalide el método virtual puro CBaseFilter::GetPin, que recupera patillas en el filtro.
  • Invalide el método virtual puro CBaseFilter::GetPinCount, que recupera el número de patillas.
  • Proporcione métodos para generar, procesar o representar ejemplos de medios.

Varias clases base derivan de CBaseFilter, incluidos CSource, CBaseRenderer y CTransformFilter. Normalmente es más fácil implementar un filtro con una de estas clases especializadas, en lugar de usar CBaseFilter directamente.

Variables miembro protegidas Descripción
m_State Estado actual del filtro.
m_pClock Puntero al reloj de referencia del filtro.
m_tStart Hora de referencia que corresponde al tiempo de secuencia 0.
m_clsid Identificador de clase (CLSID) del filtro.
m_pLock Puntero a una sección crítica que se usa para serializar los cambios de estado.
m_pName Nombre del filtro.
m_pGraph Puntero al administrador de gráficos de filtros.
m_pSink Puntero a la interfaz IMediaEventSink en el administrador de gráficos de filtros.
m_PinVersion Versión actual del conjunto de patillas en este filtro.
Métodos públicos Descripción
CBaseFilter Método constructor.
~ CBaseFilter Método de destructor.
StreamTime Recupera la hora actual de la secuencia. Virtual.
IsActive Determina si el filtro está activo actualmente (en ejecución o en pausa).
IsStopped Determina si el filtro está detenido actualmente.
NotifyEvent Envía una notificación de eventos al administrador de gráficos de filtros.
GetFilterGraph Recupera un puntero al administrador de gráficos de filtros.
ReconectarPin Interrumpe una conexión de patillas existente y la vuelve a conectar al mismo pin, utilizando un tipo de medio especificado.
GetPinVersion Recupera un número de versión para el conjunto de patillas en este filtro. Virtual.
IncrementPinVersion Incrementa el número de versión en el conjunto de patillas.
GetSetupData Recupera los datos de registro del filtro. Virtual.
Métodos virtuales puros Descripción
GetPinCount Recupera el número de patillas.
GetPin Recupera un pin.
Métodos IPersist Descripción
GetClassID Recupera el identificador de clase.
Métodos IMediaFilter Descripción
GetState Recupera el estado del filtro (en ejecución, detenido o en pausa).
SetSyncSource Establece un reloj de referencia para el filtro.
GetSyncSource Recupera el reloj de referencia que usa el filtro.
Stop Detiene el filtro.
Pausa Pausa el filtro.
Ejecutar Ejecuta el filtro.
Métodos IBaseFilter Descripción
EnumPins Enumera los pines de este filtro.
FindPin Recupera el pin con el identificador especificado.
QueryFilterInfo Recupera información sobre el filtro.
JoinFilterGraph Notifica al filtro que ha unido o dejado un gráfico de filtros.
QueryVendorInfo Recupera una cadena que contiene información del proveedor.
Métodos IAMovieSetup Descripción
Registro Agrega el filtro al registro.
Unregister Quita el filtro del Registro.

Requisitos

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