CBaseAllocator.ReleaseBuffer 方法
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
方法 ReleaseBuffer
會將媒體範例傳回免費的媒體範例清單。 這個方法會實作 IMemAllocator::ReleaseBuffer 方法。
語法
HRESULT ReleaseBuffer(
IMediaSample *pSample
);
參數
-
pSample
-
媒體範例物件的 IMediaSample 介面指標。
傳回值
傳回S_OK。
備註
當媒體範例的參考計數達到零時,範例會呼叫 ReleaseBuffer,而本身會以 參數的形式呼叫 ReleaseBuffer 。 這個方法會執行下列動作。
- 將媒體範例傳回至可用清單, (CBaseAllocator::m_lFree) 。
- 呼叫 CBaseAllocator::NotifySample 方法,以釋放在 呼叫 CBaseAllocator::GetBuffer 方法時封鎖的任何執行緒。
- 如果先前呼叫 CBaseAllocator::SetNotify 方法,請呼叫 IMemAllocatorNotifyCallbackTemp::NotifyRelease 方法。
- 釋放最後一個範例時,如果有擱置 的 CBaseAllocator::D ecommit 呼叫,請呼叫 CBaseAllocator::Free 方法來釋放緩衝區記憶體。 (在基類中, Free 是純虛擬方法。)
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|