欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

directshow创设mpeg1 splitter失败

更新时间: 2014-01-05 03:10:58 责任编辑: Author_N1

 

directshow创建MPEG1 Splitter失败
在directshow中,使用CoCreateInstance创建MPEG1 Splitter失败。
在程序的开始部分已经用CoInitialize初始化,,结束的时候也已经用UnCoInitialize()。在VS2008下开发,使用windows mobile6模拟器进行测试。代码如下:
void CMedia::Decoder( CString m_Mp3File, CString m_AuFile )
{

    HRESULT hr;
//IGraphBuilder *pGB   = NULL;
    hr=CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,IID_IGraphBuilder, (void **)&m_pGB);

    if ( FAILED(hr)) return;

    IPin* pin = NULL;
    IPin* pOut = NULL;

// Have the graph builder construct its the appropriate graph automatically
//hr=pGB->RenderFile(m_Mp3File.AllocSysString(), NULL);
hr = CoCreateInstance(CLSID_AsyncReader, NULL, CLSCTX_INPROC_SERVER,IID_IBaseFilter, (void**)&pFileReader);
if (FAILED(hr))        return;

//MPEG-1 Filter
hr = CoCreateInstance(CLSID_MPEG1Splitter, NULL, CLSCTX_INPROC_SERVER,IID_IBaseFilter, (void**)&pMpeg1Stream);
if (FAILED(hr))        return;

//Mp3 Filter
hr = CoCreateInstance(CLSID_Layer3Decoder, NULL, CLSCTX_INPROC_SERVER,IID_IBaseFilter, (void**)&pMp3Decoder);
if (FAILED(hr))        return;

//Wave Dest Filter
hr = CoCreateInstance(CLSID_WavDest, NULL, CLSCTX_INPROC_SERVER,IID_IBaseFilter, (void**)&pWaveDest);
。。。。。
到 //MPEG-1 Filter
hr = CoCreateInstance(CLSID_MPEG1Splitter, NULL, CLSCTX_INPROC_SERVER,IID_IBaseFilter, (void**)&pMpeg1Stream);这步的时候,hr返回值为0X80040154|没有注册类。。。但是在注册表和graphedit中都查找到CLSID_MPEG1Splitter有注册信息?求问大神这是个什么原因?该怎么解决呢?
--参考方法--
因为没有这个 filter
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:10:58
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19289/
本文WWW.DOC100.NET DOC100.NET版权所有。