Classe CBaseOutputPin
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na 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 Captura de Áudio/Vídeo no 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 CBaseOutputPin
classe é uma classe base abstrata que implementa um pino de saída.
Essa classe deriva de CBasePin. Ele difere do CBasePin nos seguintes aspectos:
- Ele se conecta somente a pinos de entrada que dão suporte à interface IMemInputPin .
- Ele dá suporte ao transporte de memória local por meio da interface IMemAllocator .
- Ele rejeita as notificações de fim de fluxo, liberação e novo segmento. (Eles não devem ser enviados para um pin de saída.)
- Ele fornece métodos para fornecer amostras downstream.
Quando o pino se conecta, ele solicita um alocador de memória do pino de entrada. Falhando nisso, ele cria um novo objeto alocador. O pino de saída é responsável por definir as propriedades do alocador. Ele faz isso por meio do método virtual puro CBaseOutputPin::D ecideBufferSize. Substitua esse método em sua classe derivada. Se o pin de entrada tiver requisitos de buffer, eles serão passados para o método DecideBufferSize .
Chame o método CBaseOutputPin::GetDeliveryBuffer para obter um exemplo de mídia vazio. Chame o método CBaseOutputPin::D eliver para fornecer amostras downstream.
Sua classe derivada deve substituir o método CBasePin::CheckMediaType virtual puro para validar o tipo de mídia durante conexões de pin.
Variáveis de membro protegidas | Descrição |
---|---|
m_pAllocator | Ponteiro para o alocador de memória. |
m_pInputPin | Ponteiro para o pino de entrada conectado a esse pino. |
Métodos públicos | Descrição |
Cbaseoutputpin | Método de construtor. |
Completeconnect | Conclui uma conexão com um pino de entrada. Virtual. |
DecideAllocator | Seleciona um alocador de memória. Virtual. |
GetDeliveryBuffer | Recupera um exemplo de mídia que contém um buffer vazio. Virtual. |
Fornecimento | Fornece um exemplo de mídia para o pino de entrada conectado. Virtual. |
InitAllocator | Cria um alocador de memória. Virtual. |
Checkconnect | Determina se uma conexão de pino é adequada. |
Breakconnect | Libera o pino de uma conexão. |
Ativo | Notifica o pino de que o filtro agora está ativo. |
Inativo | Notifica o pino de que o filtro não está mais ativo. |
DeliverEndOfStream | Fornece uma notificação de fim do fluxo para o pin de entrada conectado. Virtual. |
DeliverBeginFlush | Solicita o pin de entrada conectado para iniciar uma operação de liberação. Virtual. |
DeliverEndFlush | Solicita o pin de entrada conectado para encerrar uma operação de liberação. Virtual. |
DeliverNewSegment | Fornece uma notificação de novo segmento para o pin de entrada conectado. Virtual. |
Métodos virtuais puros | Descrição |
Decidebuffersize | Define os requisitos de buffer. |
Métodos IPin | Descrição |
Beginflush | Inicia uma operação de liberação. |
Endflush | Encerra uma operação de liberação. |
EndOfStream | Notifica o pino de que nenhum dado adicional é esperado. |
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|