CBaseAllocator::ReleaseBuffer
ReleaseBuffer メソッドは、フリー メディア サンプルのリストにメディア サンプルを戻す。このメソッドは IMemAllocator::ReleaseBuffer メソッドを実装する。
構文
HRESULT ReleaseBuffer(
IMediaSample *pSample
);
パラメータ
pSample
メディア サンプル オブジェクトの IMediaSample インターフェイスへのポインタ。
戻り値
S_OK を返す。
注意
メディア サンプルの参照カウントがゼロになると、サンプルはサンプル自身をパラメータとして ReleaseBuffer を呼び出す。このメソッドは次の動作を実行する。
- メディア サンプルをフリー リスト (CBaseAllocator::m_lFree) に戻す。
- CBaseAllocator::NotifySample メソッドを呼び出して、 CBaseAllocator::GetBuffer メソッドの呼び出しでブロックされたスレッドを解放する。
- CBaseAllocator::SetNotify メソッドが以前に呼び出されていた場合は、IMemAllocatorNotifyCallbackTemp::NotifyReleaseメソッドを呼び出す。
- 最後のサンプルが解放されるとき、ペンディング状態の CBaseAllocator::Decommit 呼び出しがある場合は、CBaseAllocator::Free メソッドを呼び出してバッファ メモリを解放する。(基底クラスの場合、Free は純粋仮想メソッドである。)
参照