Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
[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 |
|