Compartilhar via


Método CBaseOutputPin.DecideAllocator

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in 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 Audio/Video Capture in 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.]

O DecideAllocator método seleciona um alocador de memória.

Sintaxe

virtual HRESULT DecideAllocator(
   IMemInputPin  *pPin,
   IMemAllocator **pAlloc
);

Parâmetros

pPin

Ponteiro para a interface IMemInputPin do pino de entrada.

pAlloc

Endereço de uma variável que recebe um ponteiro para a interface IMemAllocator do alocador.

Retornar valor

Retorna S_OK se tiver êxito ou um valor HRESULT que indica a causa do erro.

Comentários

Esse método é chamado no final do processo de conexão de pino. Ele executa as seguintes etapas:

  1. Chama o método IMemInputPin::GetAllocatorRequirements para recuperar os requisitos de buffer do pino de entrada, se houver.
  2. Chama o método IMemInputPin::GetAllocator para solicitar um alocador do pin de entrada. Se o pin de entrada não fornecer um alocador, o pin de saída criará um chamando o método de classe CBaseOutputPin::InitAllocator .
  3. Chama o método de classe CBaseOutputPin::D ecideBufferSize , que define as propriedades do alocador. Este é um método virtual puro; a classe derivada deve implementá-la.
  4. Chama o método IMemInputPin::NotifyAllocator , que notifica o pin de entrada do alocador que está sendo usado.

Requisitos

Requisito Valor
parâmetro
Amfilter.h (inclua Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)

Confira também

Classe CBaseOutputPin