Compartir a través de


Interfaz IMemAllocator (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.

La IMemAllocator interfaz asigna ejemplos multimedia para mover datos entre patillas.

Esta interfaz se usa mediante patillas que comparten asignadores, cuando el pin de entrada expone la interfaz IMemInputPin . Las patillas negocian qué patilla proporcionará el asignador. El asignador se usa para asignar búferes de memoria, recuperar búferes vacíos y liberar búferes. No todos los filtros crean su propio asignador, por lo que varios filtros pueden usar un asignador. Para obtener más información, consulte Conexión de filtros.

Normalmente, las aplicaciones no usan esta interfaz.

Para usar un asignador, realice los pasos siguientes:

  1. Llame al método IMemAllocator::SetProperties para especificar los requisitos del búfer, incluido el número de búferes y el tamaño de cada búfer.
  2. Llame al método IMemAllocator::Commit para asignar los búferes.
  3. Llame al método IMemAllocator::GetBuffer para recuperar ejemplos multimedia. Este método se bloquea hasta que el ejemplo siguiente esté disponible.
  4. Cuando haya terminado con cada ejemplo, llame al método IUnknown::Release en el ejemplo. El ejemplo no se elimina cuando su recuento de referencias alcanza cero. En su lugar, el ejemplo vuelve a la lista gratuita del asignador.
  5. Cuando haya terminado de usar el asignador, llame al método IMemAllocator::D ecommit para liberar la memoria de los búferes.

Herencia

La interfaz IMemAllocator hereda de la interfaz IUnknown . IMemAllocator también tiene estos tipos de miembros:

Métodos

La interfaz IMemAllocator tiene estos métodos.

 
IMemAllocator::Commit

El método Commit asigna la memoria del búfer.
IMemAllocator::D ecommit

El método Decommit libera la memoria del búfer.
IMemAllocator::GetBuffer

El método GetBuffer recupera un ejemplo multimedia que contiene un búfer vacío.
IMemAllocator::GetProperties

El método GetProperties recupera el número de búferes que creará el asignador y las propiedades del búfer.
IMemAllocator::ReleaseBuffer

El método ReleaseBuffer libera un ejemplo multimedia.
IMemAllocator::SetProperties

El método SetProperties especifica el número de búferes que se van a asignar y el tamaño de cada búfer.

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)