Compartilhar via


Interface IMemAllocator (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na 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 Captura de Áudio/Vídeo no 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.]

A IMemAllocator interface aloca exemplos de mídia para mover dados entre pinos.

Essa interface é usada por pinos que compartilham alocadores, quando o pin de entrada expõe a interface IMemInputPin . Os pinos negociam qual pino fornecerá o alocador. O alocador é usado para alocar buffers de memória, recuperar buffers vazios e liberar buffers. Nem todo filtro cria seu próprio alocador, portanto, um alocador pode ser usado por vários filtros. Para obter mais informações, confira Como os filtros se conectam.

Os aplicativos normalmente não usam essa interface.

Para usar um alocador, execute as seguintes etapas:

  1. Chame o método IMemAllocator::SetProperties para especificar os requisitos de buffer, incluindo o número de buffers e o tamanho de cada buffer.
  2. Chame o método IMemAllocator::Commit para alocar os buffers.
  3. Chame o método IMemAllocator::GetBuffer para recuperar exemplos de mídia. Esse método bloqueia até que o próximo exemplo fique disponível.
  4. Quando terminar cada exemplo, chame o método IUnknown::Release no exemplo. O exemplo não é excluído quando sua contagem de referência atinge zero. Em vez disso, o exemplo retorna à lista gratuita do alocador.
  5. Quando terminar de usar o alocador, chame o método IMemAllocator::D ecommit para liberar a memória dos buffers.

Herança

A interface IMemAllocator herda da interface IUnknown . IMemAllocator também tem estes tipos de membros:

Métodos

A interface IMemAllocator tem esses métodos.

 
IMemAllocator::Commit

O método Commit aloca a memória do buffer.
IMemAllocator::D ecommit

O método Decommit libera a memória do buffer.
IMemAllocator::GetBuffer

O método GetBuffer recupera um exemplo de mídia que contém um buffer vazio.
IMemAllocator::GetProperties

O método GetProperties recupera o número de buffers que o alocador criará e as propriedades do buffer.
IMemAllocator::ReleaseBuffer

O método ReleaseBuffer libera um exemplo de mídia.
IMemAllocator::SetProperties

O método SetProperties especifica o número de buffers a serem alocados e o tamanho de cada buffer.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho strmif.h (inclua Dshow.h)