社区
多媒体/流媒体开发
帖子详情
directshow 问题
天天学习^好好向上
2009-05-07 04:55:51
我用directshow写了一个程序,就是简单的使用IGraphBuilder直接RenderFile,
但是我在vc环境中debug时,发现生成的filtergraph和 不调试,直接运行,生成filtergraph不一样
在vc环境的解码filter和直接运行的filter用的不是同一个
但是程序是在同一台机器上,难道调试模式和运行模式,对与directshow还有什么不一样吗?
那个大侠遇到过这个问题啊,帮忙解决一下
...全文
92
7
打赏
收藏
directshow 问题
我用directshow写了一个程序,就是简单的使用IGraphBuilder直接RenderFile, 但是我在vc环境中debug时,发现生成的filtergraph和 不调试,直接运行,生成filtergraph不一样 在vc环境的解码filter和直接运行的filter用的不是同一个 但是程序是在同一台机器上,难道调试模式和运行模式,对与directshow还有什么不一样吗? 那个大侠遇到过这个问题啊,帮忙解决一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
UDX协议
2009-05-09
打赏
举报
回复
CyberLink Video/SP Decoder(PDVD7)应该是它有反调试技术。
如果你在debug模式下,他会不加载。
其实很多解码器,压缩器都会保护自己。
天天学习^好好向上
2009-05-09
打赏
举报
回复
我如果在debug模式,那么文件filter链路
MPEG2_ts.MPG->CyberLink Demux(PDVD7)->Microsoft MPEG-2 Video Decocde->VideoRenderer
如果不在debug模式,那么文件filter链路就会变成
MPEG2_ts.MPG->CyberLink Demux(PDVD7)->CyberLink Video/SP Decoder(PDVD7)->VideoRenderer
实际上第二个才是正确的,就是在DEBUG模式下不对,如果程序在debug模式下运行就异常了,不能放映,直接运行就能放映了
天天学习^好好向上
2009-05-09
打赏
举报
回复
我就是在graphedit中看到的,如果在VS2005中运行,graphedit用connect remote 查看,看到使用的解码器,是一个,如果不debug,直接从外部运行,用graphedit用connect remote 查看,看到的却是另外一个解码器,都是同一个程序,同一个机器,结果2种状态却不一样。
然后我找到了另外一个同事用bcb写的一个播放器,对于这个文件,在bcb的debug状态,和直接运行状态,2个的生成的图也不一样。
这directshow也真是太神奇了
天天学习^好好向上
2009-05-09
打赏
举报
回复
确实是这个问题,这个解码器在调试状态无法插入,可能确实保护了
luckyboy101
2009-05-08
打赏
举报
回复
HRESULT AddToRot(IUnknown *pUnkGraph, DWORD *pdwRegister)
{
IMoniker *pMoniker;
IRunningObjectTable *pROT;
if(FAILED(GetRunningObjectTable(0,&pROT)))
{
return E_FAIL;
}
WCHAR wsz[256];
wsprintfW(wsz,L"FilterGraph %08x pid %08x", (DWORD_PTR)pUnkGraph,
GetCurrentProcessId());
HRESULT hr=CreateItemMoniker(L"!", wsz,&pMoniker);
if(SUCCEEDED(hr))
{
hr=pROT->Register(ROTFLAGS_REGISTRATIONKEEPSALIVE,pUnkGraph,
pMoniker,pdwRegister);
pMoniker->Release();
}
pROT->Release();
return hr;
}
void RemoveFromRot(DWORD pdwRegister)
{
IRunningObjectTable *pROT;
if(SUCCEEDED(GetRunningObjectTable(0,&pROT)))
{
pROT->Revoke(pdwRegister);
pROT->Release();
}
}
#ifdef _DEBUG
hr=AddToRot(pGraph,&dwRegister);
#endif
在graphedit中看看vc中的filter
UDX协议
2009-05-07
打赏
举报
回复
一般不会出现,你可以注册到rot上,在ge中可以明确看到不同点。
如果真如你说的不同,请把filter链路的名字排出来,帮你分析一下。
天天学习^好好向上
2009-05-07
打赏
举报
回复
难道没有哪位遇到过这种问题吗?
VS与
directshow
开发版本
问题
关于VS开发环境与
DirectShow
版本
问题
,
DirectShow
已经从DirectX中分离出来。帮助你安装合理的版本
opencv 中使用
directshow
库解决opencv黑屏
问题
将CameraDS.h CameraDS.cpp以及目录
DirectShow
复制到你的项目中 // 2. 菜单 Project->Settings->Settings for:(All configurations)->C/C++->Category(Preprocessor)->Additional include directories // 设置为 ...
vs2010+
directshow
多摄像头编程
编译过程中会出现各种
问题
,把winnt.h中的《》改成“”, 对报错的数据类型单独取出来进行类型定义,即可解决编译错误,通过编译。 2、包含
directshow
文件和库 在项目中包含include:C:\DXSDK\Include C:\DXSDK\...
Directshow
SDK 中文开发技术文档
目前
DirectShow
非常流行,现在市场上最好的书籍就是陆其明的《
DirectShow
开发指南 》而本手册是经验之作,把开发SDK中遇到的
问题
做了分析,希望下载,点评
directShow
写的播放器
刚参加工作时,闲暇时写的.核心部分: MovieDs和MovieRenderCLock 现在网上基本上没有全面,实用的源码.上初学者看完,完全可以完成自己的...有些OnSize 和 OnPaint的函数,解决了很多
directShow
开发人员 回常遇到的
问题
.
多媒体/流媒体开发
2,542
社区成员
20,281
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章