Compartir a través de


CBaseOutputPin (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 cbaseoutputpin

La CBaseOutputPin clase es una clase base abstracta que implementa un pin de salida.

Esta clase deriva de CBasePin. Difiere de CBasePin en los siguientes aspectos:

  • Solo se conecta a patillas de entrada que admiten la interfaz IMemInputPin .
  • Admite el transporte de memoria local a través de la interfaz IMemAllocator .
  • Rechaza las notificaciones de fin de secuencia, vaciado y nuevo segmento. (No se deben enviar a un pin de salida).
  • Proporciona métodos para entregar muestras de nivel inferior.

Cuando se conecta el pin, solicita un asignador de memoria desde el pin de entrada. Si se produce un error, se crea un nuevo objeto de asignador. El pin de salida es responsable de establecer las propiedades del asignador. Esto se realiza a través del método virtual puro CBaseOutputPin::D ecideBufferSize. Invalide este método en la clase derivada. Si el pin de entrada tiene algún requisito de búfer, se pasan al método DecideBufferSize .

Llame al método CBaseOutputPin::GetDeliveryBuffer para obtener un ejemplo multimedia vacío. Llame al método CBaseOutputPin::D eliver para entregar muestras de bajada.

La clase derivada debe invalidar el método CBasePin::CheckMediaType virtual puro para validar el tipo de medio durante las conexiones de patillas.

Variables miembro protegidas Descripción
m_pAllocator Puntero al asignador de memoria.
m_pInputPin Puntero al pin de entrada conectado a esta patilla.
Métodos públicos Descripción
CBaseOutputPin Método constructor.
CompleteConnect Completa una conexión a un pin de entrada. Virtual.
DecideAllocator Selecciona un asignador de memoria. Virtual.
GetDeliveryBuffer Recupera un ejemplo multimedia que contiene un búfer vacío. Virtual.
Entrega Entrega un ejemplo multimedia al pin de entrada conectado. Virtual.
InitAllocator Crea un asignador de memoria. Virtual.
CheckConnect Determina si una conexión de patilla es adecuada.
BreakConnect Libera el pin de una conexión.
Activo Notifica al pin que el filtro está ahora activo.
Inactivo Notifica al pin que el filtro ya no está activo.
DeliverEndOfStream Entrega una notificación de fin de secuencia al pin de entrada conectado. Virtual.
DeliverBeginFlush Solicita el pin de entrada conectado para iniciar una operación de vaciado. Virtual.
DeliverEndFlush Solicita el pin de entrada conectado para finalizar una operación de vaciado. Virtual.
DeliverNewSegment Entrega una notificación de nuevo segmento al pin de entrada conectado. Virtual.
Métodos virtuales puros Descripción
DecideBufferSize Establece los requisitos del búfer.
Métodos IPin Descripción
BeginFlush Comienza una operación de vaciado.
EndFlush Finaliza una operación de vaciado.
EndOfStream Notifica al pin que no se espera ningún dato adicional.

Requisitos

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