Compartir a través de


Método IAMBufferNegotiation::SuggestAllocatorProperties (strmif.h)

[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 SuggestAllocatorProperties método informa al pin de las propiedades de asignador preferidas de la aplicación. Llame a este método antes de que se conecte el pin.

Sintaxis

HRESULT SuggestAllocatorProperties(
  [in] const ALLOCATOR_PROPERTIES *pprop
);

Parámetros

[in] pprop

Puntero a una estructura de ALLOCATOR_PROPERTIES que contiene las propiedades solicitadas. Un valor negativo para cualquier miembro indica que el pin debe usar su valor predeterminado para esa propiedad.

Valor devuelto

Devuelve un valor HRESULT . Estos son algunos de los valores posibles.

Código devuelto Descripción
S_OK
Correcto.
E_FAIL
Error.
E_POINTER
Argumento de puntero NULL.
VFW_E_ALREADY_CONNECTED
El pin ya está conectado.

Comentarios

Si ambos pines de la conexión exponen la interfaz IAMBufferNegotiation , llame a este método en cada patilla para asegurarse de que un pin no invalide el otro.

Para solicitar un número determinado de búferes, establezca el miembro cBuffers de la estructura ALLOCATOR_PROPERTIES . Para solicitar un tamaño de búfer determinado, establezca el miembro cbBuffer . Normalmente, una aplicación no debe especificar la alineación ni el prefijo. Si el número de búferes o el tamaño de cada búfer es demasiado pequeño, el gráfico de filtros podría quitar muestras.

Ejemplos

C++
ALLOCATOR_PROPERTIES AllocProp;
AllocProp.cbAlign = -1;  // -1 means no preference.
AllocProp.cbBuffer = dwBytesPerSec *  dwLatencyInMilliseconds / 1000;
AllocProp.cbPrefix = -1;
AllocProp.cBuffers = -1;
pIAMBufferNegotiation->SuggestAllocatorProperties(&AllocProp);

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado strmif.h (incluye Dshow.h)
Library Strmiids.lib

Consulte también

Códigos de error y éxito

IAMBufferNegotiation (Interfaz)