CPullPin (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.
La CPullPin
clase proporciona compatibilidad con patillas de entrada que extraen datos a través de la interfaz IAsyncReader . Use esta clase si va a implementar un filtro que use el modelo de extracción para solicitar datos del filtro ascendente. Para obtener más información, vea Data Flow en el gráfico de filtros y el modelo de extracción.
Esta clase no deriva de CBasePin ni implementa la interfaz IPin , y algunos de los nombres de método coinciden con IPin, por lo que se usa mejor como un objeto auxiliar dentro del pin. Para usar esta clase, haga lo siguiente:
- Derive una clase auxiliar de
CPullPin
y derive una clase pin de entrada de CBasePin. Declare una instancia delCPullPin
objeto como una variable miembro de la clase pin. - Invalide el método CBasePin::CheckConnect para llamar a CPullPin::Connect. Este método consulta el otro pin para IAsyncReader.
- Invalide el método CBasePin::BreakConnect para llamar a CPullPin::D isconnect.
- Invalide el método CBasePin::Active para llamar a CPullPin::Active. Este método inicia un subproceso de trabajo que extrae ejemplos del filtro ascendente. Cuando se conecten las patillas, puede especificar si desea que el subproceso de trabajo realice solicitudes de lectura asincrónicas o sincrónicas.
- Invalide el método CBasePin::Inactive para llamar a CPullPin::Inactive. Este método apaga el subproceso de trabajo.
- Implemente el método CPullPin::Receive virtual puro para procesar ejemplos entrantes y entregarlos de bajada.
- Para establecer las posiciones de detención e inicio, o para buscar la secuencia, llame al método CPullPin::Seek . Este método pausa el subproceso de trabajo y vacía el gráfico de filtros.
- Implemente los métodos CPullPin::EndOfStream, CPullPin::BeginFlush y CPullPin::EndFlush puros, como se describe en los comentarios de esos métodos.
- Implemente el método CPullPin::OnError virtual puro para controlar los errores de streaming.
Variables de miembro público | Descripción |
---|---|
m_pAlloc | Puntero a la interfaz IMemAllocator del asignador de memoria. |
Métodos públicos | Descripción |
Activo | Crea un subproceso de trabajo que extrae datos del pin de salida. |
AlignDown | Trunca un valor en un límite de alineación especificado. |
AlignUp | Redondea un valor hasta un límite de alineación especificado. |
Conectar | Completa una conexión con el pin de salida. |
CPullPin | Método constructor. |
~CPullPin | Método de destructor. Virtual. |
DecideAllocator | Negocia un asignador con el pin de salida. Virtual. |
Desconectar | Picos de la conexión con el pin de salida. |
Duración | Recupera la duración de la secuencia. |
GetReader | Devuelve un puntero a la interfaz IAsyncReader del pin de salida. |
Inactivo | Cierra el subproceso de trabajo que extrae datos del pin de salida. |
Seek | Establece las posiciones de inicio y detención de la secuencia. |
Métodos virtuales puros | Descripción |
BeginFlush | Informa al filtro propietario para vaciar los filtros de bajada. |
EndFlush | Informa al filtro propietario para finalizar una operación de vaciado. |
EndOfStream | Se llama después de que el objeto entregue el último ejemplo. |
OnError | Se llama si se produce un error durante el streaming. |
Recepción | Se llama cuando el objeto recibe un ejemplo multimedia del pin de salida. |
Requisitos
Requisito | Value |
---|---|
Encabezado |
|
Biblioteca |
|