Método CBaseAllocator.ReleaseBuffer
[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 ReleaseBuffer
método devuelve un ejemplo multimedia a la lista de ejemplos de medios gratuitos. Este método implementa el método IMemAllocator::ReleaseBuffer .
Sintaxis
HRESULT ReleaseBuffer(
IMediaSample *pSample
);
Parámetros
-
pSample
-
Puntero a la interfaz IMediaSample del objeto de ejemplo multimedia.
Valor devuelto
Devuelve S_OK.
Comentarios
Cuando el recuento de referencias de un ejemplo multimedia alcanza cero, el ejemplo llama a ReleaseBuffer con sí mismo como parámetro. Este método realiza las siguientes acciones.
- Devuelve el ejemplo multimedia a la lista gratuita (CBaseAllocator::m_lFree).
- Llama al método CBaseAllocator::NotifySample , que libera los subprocesos bloqueados en las llamadas al método CBaseAllocator::GetBuffer .
- Si se llamó anteriormente al método CBaseAllocator::SetNotify , llama al método IMemAllocatorNotifyCallbackTemp::NotifyRelease .
- Cuando se libera el último ejemplo, si hay una llamada CBaseAllocator::D ecommit pendiente, llama al método CBaseAllocator::Free para liberar la memoria del búfer. (En la clase base, Free es un método virtual puro).
Requisitos
Requisito | Value |
---|---|
Encabezado |
|
Biblioteca |
|