Compartir a través de


CSource (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 csource

La clase CSource es una clase base para implementar filtros de origen. Un filtro derivado de CSource contiene uno o varios pines de salida derivados de la clase CSourceStream . Cada pin de salida crea un subproceso de trabajo que inserta muestras multimedia de bajada.

Nota:

La clase CSource está diseñada para admitir el modelo de inserción para el flujo de datos. Esta clase no se recomienda para crear filtros de lector de archivos. Los lectores de archivos deben admitir el modelo de extracción a través de la interfaz IAsyncReader . Para obtener más información, consulte Data Flow para desarrolladores de filtros.

Variables miembro protegidas Descripción
m_iPins Número de patillas del filtro.
m_paStreams Matriz de patillas.
m_cStateLock Objeto de sección crítico que protege el estado del filtro.
Métodos públicos Descripción
CSource Método constructor.
~CSource Método de destructor.
GetPinCount Recupera el número de patillas del filtro.
GetPin Recupera un pin.
pStateLock Recupera un puntero al objeto de sección crítica del filtro.
AddPin Agrega un nuevo pin de salida al filtro.
RemovePin Quita un pin especificado del filtro.
FindPinNumber Recupera el número de un pin especificado en el filtro.
Métodos IBaseFilter Descripción
FindPin Recupera el pin con el identificador especificado.

Observaciones

Para implementar un pin de salida, haga lo siguiente:

Para implementar el filtro, haga lo siguiente:

  • Derive una clase de CSource.
  • En el constructor, cree uno o varios pines de salida derivados de CSourceStream. Las patillas se agregan automáticamente al filtro en sus métodos de constructor y se quitan automáticamente en sus métodos de destructor.

Para sincronizar el estado del filtro entre varios subprocesos, llame al método CSource::p StateLock . Este método devuelve un puntero a la sección crítica de estado de filtro. Use la clase CAutoLock para contener la sección crítica. Desde un pin, puede acceder a pStateLock desde la variable miembro CBasePin::m_pFilter del pin, como se indica a continuación:

CAutoLock lock(m_pFilter->pStateLock());

Requisitos

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

Consulte también

Escribir filtros de origen