我想调用[ffdshow Video Decoder]来解H264,我是这样做的:
static const GUID FFDSHOW = {0x04FE9017,0xF873,0x410E,{0x87,0x1E,0xAB,0x91,0x66,0x1A,0x4E,0xF7}};////////////////////////////////////////////////////////////////////////////////
CDXGraph::CDXGraph()
{
       mGraph        = NULL;}
 
CDXGraph::~CDXGraph()
{
       Release();
}
 
bool CDXGraph::Create(void)
{
       if (!mGraph)
       {
              if (SUCCEEDED(CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
                     IID_IGraphBuilder, (void **)&mGraph)))
              {
                       return QueryInterfaces();
              }
              mGraph = 0;
       }
       return false;
}bool CDXGraph::QueryInterfaces(void)
{
if (mGraph)
{
HRESULT hr = NOERROR;

IBaseFilter *m_pffdshowvdecoder;
hr = ::CoCreateInstance(FFDSHOW,NULL,CLSCTX_ALL,IID_IBaseFilter,(void**)&m_pffdshowvdecoder);\\这里失败了
if(hr!=S_OK)
{
TRACE("create ffdshow video decoder Failed\n");
Release();
return false;
}
}
return false;
}结果返回失败,不知道原因,通过directshow filter manager 可以在codec list里找到ffdshow Video Decoder,应该是com已经注册了,开始为啥不能实例化呢?应该怎么调用ffdshow Video Decoder呢?