读书人

GetDeliveryBuffer 有关问题

发布时间: 2012-02-25 10:01:49 作者: rapoo

GetDeliveryBuffer 问题
CBaseOutputPin::GetDeliveryBuffer 的时候怎么会出现这错误 CO_E_FAILEDTOGETWINDIR

//
// MessageId: CO_E_FAILEDTOGETWINDIR
//
// MessageText:
//
// Unable to obtain the Windows directory
//
#define CO_E_FAILEDTOGETWINDIR _HRESULT_TYPEDEF_(0x80040211L)


这是由什么引起的啊

C/C++ code
IMediaSample *pmediasample;                          BYTE * buf;                          unsigned long state;                          state=(unsigned long)((recv->pfilter)->m_output)->GetDeliveryBuffer(&pmediasample,NULL,NULL,0 );//AM_GBF_PREVFRAMESKIPPED                          pmediasample->GetPointer(&buf);                          memcpy(buf,buffer->GetBuffer(),strlen((char *)buffer->GetBuffer()));                          ((recv->pfilter)->m_output)->Deliver(pmediasample);                          //使用完毕重新放入缓冲池中                          buffer->Release();                          return TRUE;


[解决办法]
是这个错误:VFW_E_NOT_COMMITTED
Cannot allocate a sample when the allocator is not active
看一下outputpin的DecideBufferSize分配成功了没有,还是outputpin没有connnect,还是你的这段代码写得太早了,filter的pin还没有active。

读书人网 >多媒体

热点推荐