获取缓冲区

如果您的筛选器具有使用筛选器资源的自定义分配器,则分配器的 IMemAllocator:: GetBuffer 方法应持有流锁,与其他流式处理方法一样:

HRESULT CMyInputAllocator::GetBuffer(
    IMediaSample **ppBuffer,
    REFERENCE_TIME *pStartTime, 
    REFERENCE_TIME *pEndTime,
    DWORD dwFlags)
{
    CAutoLock cObjectLock(&m_csReceive);

    /* Use resources. */

    return CMemAllocator::GetBuffer(ppBuffer, pStartTime, pEndTime, dwFlags);    
}

线程和关键部分