Compartir a través de


Método CBaseAllocator.SetProperties

[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 SetProperties método especifica el número de búferes que se van a asignar y el tamaño de cada búfer. Este método implementa el método IMemAllocator::SetProperties .

Sintaxis

HRESULT SetProperties(
   ALLOCATOR_PROPERTIES *pRequest,
   ALLOCATOR_PROPERTIES *pActual
);

Parámetros

pRequest

Puntero a una estructura de ALLOCATOR_PROPERTIES que contiene los requisitos del búfer.

pActual

Puntero a una estructura de ALLOCATOR_PROPERTIES que recibe las propiedades reales del búfer.

Valor devuelto

Devuelve uno de los siguientes valores HRESULT .

Código devuelto Descripción
S_OK
Correcto.
E_POINTER
Argumento de puntero NULL.
VFW_E_ALREADY_COMMITTED
No se puede cambiar la memoria asignada mientras el filtro está activo.
VFW_E_BADALIGN
Se especificó una alineación no válida.
VFW_E_BUFFERS_OUTSTANDING
Uno o varios búferes siguen activos.

Observaciones

Este método especifica los requisitos de búfer, pero no asigna ningún búfer. Llame al método CBaseAllocator::Commit para asignar búferes.

El autor de la llamada asigna dos estructuras de ALLOCATOR_PROPERTIES. El parámetro pRequest contiene los requisitos de búfer del autor de la llamada, incluido el número de búferes y el tamaño de cada búfer. Cuando el método devuelve, el parámetro pActual contiene las propiedades reales del búfer, tal y como establece el asignador. En la clase base, suponiendo que el método se realiza correctamente, las propiedades reales siempre coinciden con las propiedades solicitadas. Las clases derivadas pueden invalidar este comportamiento.

El asignador no debe confirmarse y no debe tener búferes pendientes. En la clase base, la alineación debe ser igual a 1. La clase CMemAllocator invalida este requisito.

Requisitos

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

Consulte también

CBaseAllocator (clase)