Méthode CBaseAllocator.ReleaseBuffer
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
La ReleaseBuffer
méthode retourne un exemple de média à la liste des exemples de médias gratuits. Cette méthode implémente la méthode IMemAllocator::ReleaseBuffer .
Syntaxe
HRESULT ReleaseBuffer(
IMediaSample *pSample
);
Paramètres
-
pSample
-
Pointeur vers l’interface IMediaSample de l’exemple d’objet multimédia.
Valeur renvoyée
Retourne S_OK.
Notes
Quand le nombre de références d’un exemple de média atteint zéro, l’exemple appelle ReleaseBuffer avec lui-même comme paramètre. Cette méthode effectue les actions suivantes.
- Retourne l’exemple de média à la liste libre (CBaseAllocator::m_lFree).
- Appelle la méthode CBaseAllocator::NotifySample , qui libère tous les threads bloqués sur les appels à la méthode CBaseAllocator::GetBuffer .
- Si la méthode CBaseAllocator::SetNotify a été appelée précédemment, appelle la méthode IMemAllocatorNotifyCallbackTemp::NotifyRelease .
- Lorsque le dernier exemple est publié, s’il existe un appel CBaseAllocator::D ecommit en attente, appelle la méthode CBaseAllocator::Free pour libérer la mémoire tampon. (Dans la classe de base, Free est une méthode virtuelle pure.)
Configuration requise
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|