Método CBaseOutputPin.DecideAllocator

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

El DecideAllocator método selecciona un asignador de memoria.

Sintaxis

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

Parámetros

pPin

Puntero a la interfaz IMemInputPin del pin de entrada.

pAlloc

Dirección de una variable que recibe un puntero a la interfaz IMemAllocator del asignador.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente o un valor HRESULT que indica la causa del error.

Observaciones

Se llama a este método al final del proceso de conexión de patillas. Realiza los pasos siguientes:

  1. Llama al método IMemInputPin::GetAllocatorRequirements para recuperar los requisitos de búfer del pin de entrada, si existe.
  2. Llama al método IMemInputPin::GetAllocator para solicitar un asignador desde el pin de entrada. Si el pin de entrada no proporciona un asignador, el pin de salida crea uno llamando al método de clase CBaseOutputPin::InitAllocator .
  3. Llama al método de clase CBaseOutputPin::D ecideBufferSize , que establece las propiedades del asignador. Se trata de un método virtual puro; la clase derivada debe implementarla.
  4. Llama al método IMemInputPin::NotifyAllocator , que notifica el pin de entrada del asignador que se está usando.

Requisitos

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

Consulte también

CBaseOutputPin (clase)