Метод CBaseAllocator.ReleaseBuffer
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Метод ReleaseBuffer
возвращает пример носителя в список примеров свободных носителей. Этот метод реализует метод IMemAllocator::ReleaseBuffer .
Синтаксис
HRESULT ReleaseBuffer(
IMediaSample *pSample
);
Параметры
-
pSample
-
Указатель на интерфейс IMediaSample примера объекта мультимедиа.
Возвращаемое значение
Возвращает S_OK.
Комментарии
Когда число ссылок примера мультимедиа достигает нуля, образец вызывает ReleaseBuffer с самим собой в качестве параметра . Этот метод выполняет следующие действия.
- Возвращает образец мультимедиа в свободный список (CBaseAllocator::m_lFree).
- Вызывает метод CBaseAllocator::NotifySample , который освобождает все потоки, заблокированные при вызовах метода CBaseAllocator::GetBuffer .
- Если метод CBaseAllocator::SetNotify был вызван ранее, вызывает метод IMemAllocatorNotifyCallbackTemp::NotifyRelease .
- При выпуске последнего примера при наличии ожидающего вызова CBaseAllocator::D ecommit вызывает метод CBaseAllocator::Free , чтобы освободить буферную память. (В базовом классе Free — это чистый виртуальный метод.)
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|