CBaseAllocator.ReleaseBuffer method
[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]
The ReleaseBuffer
method returns a media sample to the list of free media samples. This method implements the IMemAllocator::ReleaseBuffer method.
Syntax
HRESULT ReleaseBuffer(
IMediaSample *pSample
);
Parameters
-
pSample
-
Pointer to the IMediaSample interface of the media sample object.
Return value
Returns S_OK.
Remarks
When a media sample's reference count reaches zero, the sample calls ReleaseBuffer with itself as the parameter. This method performs the following actions.
- Returns the media sample to the free list (CBaseAllocator::m_lFree).
- Calls the CBaseAllocator::NotifySample method, which releases any threads that are blocked on calls to the CBaseAllocator::GetBuffer method.
- If the CBaseAllocator::SetNotify method was called previously, calls the IMemAllocatorNotifyCallbackTemp::NotifyRelease method.
- When the last sample is released, if there is a pending CBaseAllocator::Decommit call, calls the CBaseAllocator::Free method to release the buffer memory. (In the base class, Free is a pure virtual method.)
Requirements
Requirement | Value |
---|---|
Header |
|
Library |
|