关于VMR9的一个奇怪问题?困扰了很久。希望各位大虾多多赐教!

极深研几 2004-08-11 07:13:45
上次的不知道为什么不能打开了,重发!
这几个月,一直做一个视频传输系统。服务器端基于硬件采集卡的sdk包,实现了视频预览录制,网络播出组播,我自己写。客户端也是用相应的sdk包实现的网络接受,解码显示,录制和回放文件其中包括实现局部放大功能就是使用的VMR9,这部分代码是别人写的。大概在六月中旬,已经修改了好几次了,正在烦的时候,公司又突然要我改客户端的程序。当时边读代码边改写,测试的过程中发现VMR9在连续回放几次(Win2000下3次)文件之后,没有了图像,CPU占有率也下来了,调试发现问题可能在于IVMRWindowlessControl9的RendEx()函数,记不太清了(写代码的机器不让上网)。调用一定次数就失败。后来又去弄Mp3解码,最近又安排改这个问题。在Winxp下运行的时候发现8次后又出现没有图像的情况,甚至影响到预览图像。即有时用VMR9回放几次到没有图像后,接受网络数据解码预览也没有了图像,后来全屏显示用另外窗口来显示又有图像。切换回原来的窗口时又有了图像。真奇怪,这段时间一直在改也没有解决!对了文件格式MPEG4 divx avi格式。

几点猜测:
1,回放功能封装在一个类CVMRPlay类自定义的中,用一个player指针,每次调用都是new delete,可能是反复new delete导致了资源泄露,从而的后续调用失败。
2,VMR组件本身有这个问题。

本人刚学了些COM,DirecctShow VMR对了解太少,实在找不出其中的原因和解决之道。求各位大虾救出苦海!请大家踊跃发言,帮忙分析原因,解决问题。越快越好!
...全文
282 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jemyzhang 2004-08-15
  • 打赏
  • 举报
回复
解决了就好
极深研几 2004-08-15
  • 打赏
  • 举报
回复
刷新问题,很早遇到过.不是这个问题.
在解码的时候,CPU占有率会上升,但是实际没有,
但是进度又在往前走.不过这个问题解决了.用DirectShow9里的
VMR9->VMRplayer例程CMovie类实现了.
估计可能的原因是原来的调用里接口指针的释放和使用的问题.
实际上找了很久了,但是里面的调用关系有点混乱,没用找到.
有代码的机器上不了网,要不贴出来了.我也很想搞清楚其中的原因.
谢谢!
你的qq多少,过两天来结贴.
极深研几 2004-08-12
  • 打赏
  • 举报
回复
自己顶一下.
会不会是VMR9不兼容呢?
jemyzhang 2004-08-12
  • 打赏
  • 举报
回复
会不会是窗口刷新的问题
jemyzhang 2004-08-12
  • 打赏
  • 举报
回复
你说的情况一般不会出现问题,可能是其他的问题造成的。可否贴出代码
极深研几 2004-08-11
  • 打赏
  • 举报
回复
所以graph每次都不同,有没有可能是graph没有释放,而系统支持的graph的实例的数量有限,从而导致后续播放出现问题。
有IVedioWindow接口指针(pVw)与无图像应该直接相关吧?
极深研几 2004-08-11
  • 打赏
  • 举报
回复
每次播放时,m_pPlayer = new CVMRPlay()一下,重新的生成graph实例,停止播放时Release所有的接口指针,delete m_pPlayer;有一个问题在CVMRPlay::CVMRPlay()中调用了CoInitialize(),CVMRPlay::~CVMRPlay()中调用了CoUninitialize().这会不会有影响呢?
QQ:21848578
jemyzhang 2004-08-11
  • 打赏
  • 举报
回复
你反复播放时的graph是否改动过
代码下载地址: https://pan.quark.cn/s/068306a56640 在交通运输科学范畴内,交通流量分配是探讨交通系统内交通负荷如何在各个道路路段间进行合理分配的核心议题。交通流分配技术主要应用于模拟和推演交通系统的运行状态,旨在为城市规划人员与交通工程师提供优化道路布局的参考,进而缓解交通拥堵现象,提升道路交通的整体效能。以下将对"交通流分配技术"进行深入阐述: 1. **全部或无分配(All-or-Nothing Distribution)** 全部或无分配是一种基础的交通流分配策略。该技术依据最短路径准则,预设所有从发源地(Origin)至目的地(Destination)的车辆都将选择路程最短的路线。倘若存在多条等长路径,则采用随机方式确定其中一条。此类方法未将交通拥堵因素纳入考量,因为一旦选定路径,便假定所有交通量将沿此路径通行,即便这可能导致部分路段出现超负荷状况。 2. **逐步分配(Progressive Assignment)** 逐步分配技术顾及了交通网络的动态特征。该算法通过逐步优化流量配置,力求使网络内行驶的总代价(诸如通行时间、距离等指标)最小化。运算过程始于初始的全部或无分配状态,随后逐步修正路径选择,直至网络达成稳定状态,即每次流量修正后,总代价的变动幅度不再明显。此方法更贴近现实交通场景,因为车辆会依据即时路况选择最优路径。 3. **迭代平均分配(Iterative Average Distribution)** 迭代平均分配是一种对逐步分配技术的优化版本,其更侧重于实现网络流量的均衡化。在每一轮迭代过程中,算法不仅评估当前路径的优化程度,同时参考前一次迭代的流量配置。通过融入平均化理念,该方法能更有效地分散交通...

2,554

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧