Método CBaseAllocator.ReleaseBuffer
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in 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 Audio/Video Capture in 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.]
O ReleaseBuffer
método retorna um exemplo de mídia para a lista de exemplos de mídia gratuitos. Esse método implementa o método IMemAllocator::ReleaseBuffer .
Sintaxe
HRESULT ReleaseBuffer(
IMediaSample *pSample
);
Parâmetros
-
pSample
-
Ponteiro para a interface IMediaSample do objeto de exemplo de mídia.
Retornar valor
Returns S_OK.
Comentários
Quando a contagem de referências de um exemplo de mídia atinge zero, o exemplo chama ReleaseBuffer consigo mesmo como o parâmetro . Esse método executa as ações a seguir.
- Retorna o exemplo de mídia para a lista gratuita (CBaseAllocator::m_lFree).
- Chama o método CBaseAllocator::NotifySample , que libera todos os threads bloqueados em chamadas para o método CBaseAllocator::GetBuffer .
- Se o método CBaseAllocator::SetNotify tiver sido chamado anteriormente, chamará o método IMemAllocatorNotifyCallbackTemp::NotifyRelease .
- Quando o último exemplo for liberado, se houver uma chamada CBaseAllocator::D ecommit pendente, chamará o método CBaseAllocator::Free para liberar a memória do buffer. (Na classe base, Free é um método virtual puro.)
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|