Compartilhar via


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.]

hierarquia de classe cbaseoutputpin

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
Amfilter.h (inclua Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)