sourceFilter非要实现IFileSourceFilter吗?
按照asyncFilter的例子,我改了一下,因为数据是不是从文件得到的,所以CAsysncFilter我没有让它从IFileSourceFilter继承,如下
class CAsyncFilter : public CAsyncReader //, public IFileSourceFilter
结果就会出现异常,出现在
HRESULT
CBaseFilter::StreamTime(CRefTime& rtStream)
{
// Caller must lock for synchronization
// We can't grab the filter lock because we want to be able to call
// this from worker threads without deadlocking
if (m_pClock == NULL) {
return VFW_E_NO_CLOCK;
}
// get the current reference time
//***** 异常指向下面这句*****
HRESULT hr = m_pClock->GetTime((REFERENCE_TIME*)&rtStream);
if (FAILED(hr)) {
return hr;
}
// subtract the stream offset to get stream time
rtStream -= m_tStart;
return S_OK;
}
可以改为从IFileSourceFilter 继承下来就行了,那怕是Load 和 GetCurFile这两个接口里什么也不做。
大家帮我看一下呀?