CBaseAllocator::ReleaseBuffer
Microsoft DirectShow 9.0 |
CBaseAllocator::ReleaseBuffer
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
** Header:** Declared in Amfilter.h; include Streams.h.
** Library:** Use Strmbase.lib (retail builds) or Strmbasd.lib (debug builds).
See Also