CBaseAllocator.ReleaseBuffer-Methode
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]
Die ReleaseBuffer
-Methode gibt ein Medienbeispiel in die Liste der kostenlosen Medienbeispiele zurück. Diese Methode implementiert die IMemAllocator::ReleaseBuffer-Methode .
Syntax
HRESULT ReleaseBuffer(
IMediaSample *pSample
);
Parameter
-
pSample
-
Zeiger auf die IMediaSample-Schnittstelle des Medienbeispielobjekts.
Rückgabewert
Gibt S_OK zurück.
Bemerkungen
Wenn die Referenzanzahl eines Medienbeispiels null erreicht, ruft das Beispiel ReleaseBuffer mit sich selbst als Parameter auf. Diese Methode führt die folgenden Aktionen aus.
- Gibt das Medienbeispiel in die kostenlose Liste zurück (CBaseAllocator::m_lFree).
- Ruft die CBaseAllocator::NotifySample-Methode auf, die alle Threads freigibt, die bei Aufrufen der CBaseAllocator::GetBuffer-Methode blockiert werden.
- Wenn die CBaseAllocator::SetNotify-Methode zuvor aufgerufen wurde, ruft die IMemAllocatorNotifyCallbackTemp::NotifyRelease-Methode auf.
- Wenn das letzte Beispiel veröffentlicht wird und ein CBaseAllocator::D ecommit-Aufruf aussteht, ruft die CBaseAllocator::Free-Methode auf, um den Pufferspeicher freizugeben. (In der Basisklasse ist Free eine reine virtuelle Methode.)
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|