向IGraphBuilder 插入自己的filter后 播放vob文件的不稳定问题(其它文件无碍)

北漂17载 2006-01-04 06:29:05
我自己写了个filter 插到IGraphBuilder中视频解码链路的最后端以试图截获bmp数据,但我发现在播放dvd的vob文件时 有些系统解dvd的videodecoder的filter (如 fraumhofer video decoder)在我通过graphfilter将程序停止 并释放对象后 在播放dvd文件的时候视频的fraumhofer video decoder 不会呗自动插进去了 其它格式文件没问题 .
还有个问题 就是我的filter 不能delete,会出错(我得filter 是一个类 new 以后addfilter 进去的)
...全文
200 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
北漂17载 2006-01-12
  • 打赏
  • 举报
回复
问题找到了 是在去pin的时候 ConnectedTo 函数取到的pin没release 所以视频解码filter没有被释放
多谢各位了 尤其 是 rageliu 我们交个朋友吧 我的 qq:50027482
结贴
rageliu 2006-01-11
  • 打赏
  • 举报
回复
加入你自己的filter时用了AddRef()是不是??结束时对应的有个Release(),接下来才delete
rageliu 2006-01-11
  • 打赏
  • 举报
回复
delete你的filter前先release了吗?
北漂17载 2006-01-11
  • 打赏
  • 举报
回复
计数混乱的问题查到了 是以前的兄弟在debug的代码中的 有遍历pin的代码却没release所致,现在我RemoveFilter然后 release后,原地址空间就已经被清空了,可能数据已经被delete了吧,可 问题依旧。。。
北漂17载 2006-01-11
  • 打赏
  • 举报
回复
我发现release的时候 视频filter内部m_cRef的计数是11 音频的是5 Render的是10 晕菜 如果是1的话就不要delete的
北漂17载 2006-01-10
  • 打赏
  • 举报
回复
首先多些各位的帮助与提示
最近调试的时候我发现,我在delete 我的filter的时候会导致assert错误,错误原因是pin的连接计数不为0,也就是说我做的释放没有成功,而这种失败只在播放系统内部用fraumhofer video decoder 解码器来播放dvd的时候才出现,我怀疑我是不是有哪些接口没有实现,我从CTransInPlaceFilter继承的,然后实现了 Transform CheckInputType DecideBufferSize接口,还插入了一个什么都不做的视频render 从CBaseRenderer继承 实现了
HRESULT CheckMediaType( const CMediaType *pmtIn );
HRESULT DoRenderSample( IMediaSample *pMediaSample );
HRESULT SetMediaType( const CMediaType *pmt );
HRESULT Active();
HRESULT Inactive();
接口
DentistryDoctor 2006-01-07
  • 打赏
  • 举报
回复
或者是否存在内存被破坏的情况?
DentistryDoctor 2006-01-07
  • 打赏
  • 举报
回复
是否已经Release了呢?
rageliu 2006-01-06
  • 打赏
  • 举报
回复
想知道 IGraphBuilder realease 释放后它怎么释放的各个filter

其内部调用了Release().你只需要将你查询得到的接口和创建的组件全部释放,并将new出来的filter释放后delete掉
rageliu 2006-01-05
  • 打赏
  • 举报
回复
用GraphEdit调试看看
rageliu 2006-01-05
  • 打赏
  • 举报
回复
楼主说的不能插入需要的filter,看你说的那个filter的值是可以自动插入的,如果使用一次后不能再使用!请检查是否释放还有这个filter 是否是临界类型,即只能有一个实例再使用!独占方式!!!这样没释放是一定用不了的!!!

不过这种一般是Source Filter 或Render Filter对于Transform Filter应该不是这个原因
rageliu 2006-01-05
  • 打赏
  • 举报
回复
类new出来就是进程内filter不用注册的,在你的Graph里面其他的都用release,就new出来那个filter对象需要delete

楼主说delete出错,应该是资源的释放顺序不对
北漂17载 2006-01-05
  • 打赏
  • 举报
回复
应该是 fraumhofer video decoder 没有正常释放? 在graphedit中无法插入两个这种filter
北漂17载 2006-01-05
  • 打赏
  • 举报
回复
各位老大 有谁做过相关的么 请赐教
北漂17载 2006-01-05
  • 打赏
  • 举报
回复
应该是释放的问题吧 想知道 IGraphBuilder realease 释放后它怎么释放的各个filter 我用IGraphBuilder列举了其内部的filter 然后removefilter 仍然无效
内容概要:本文围绕三相逆变器模型仿真及软开关技术展开研究,基于Simulink平台构建了完整的系统仿真模型,深入分析了三相逆变器的拓扑结构、工作原理与动态响应特性。研究重点聚焦于软开关技术(如零电压开关ZVS、零电流开关ZCS)在逆变器中的应用,通过仿真验证其在降低开关损耗、提高转换效率、减小电磁干扰等方面的显著优势。文章详细阐述了软开关的实现条件与控制策略设计,结合LCL滤波器优化与PWM调制技术,提升了系统整体性能。通过对电压、电流波形及功率因数等关键指标的仿真分析,验证了所提出方案的有效性与可行性,为高性能逆变器的设计与优化提供了理论依据和技术支撑。; 适合人群:具备电力电子、电气工程及其自动化等相关专业背景,熟悉Simulink仿真环境,从事新能源发电、电力变换器设计、微电网控制或电能质量治理等领域研究的科研人员、工程技术人员及研究生。; 使用场景及目标:①用于高校电力电子课程教学与实验,辅助学生理解逆变器工作机理及软开关技术原理;②为工业界高效率逆变电源、光伏并网逆变器、储能变流器等产品的研发提供技术参考;③支持相关领域科研人员开展新型拓扑与先进控制算法的仿真验证与学术论文撰写。; 阅读建议:建议读者结合文中所述Simulink模型进行动手实践,重点关注软开关触发时序、谐振参数设计与系统稳定性之间的关系,同时可延伸学习死区效应补偿、锁相环控制、孤岛检测等相关技术以构建完整的逆变系统知识体系。
内容概要:本文围绕“计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度”展开研究,提出了一种集成电转气(P2G)、碳捕集利用与封存(CCUS)以及垃圾焚烧发电技术的虚拟电厂协同优化调度模型。通过引入碳交易机制,构建以低碳经济为目标的综合能源系统优化框架,采用模型预测控制等先进算法实现多能互补与资源高效利用。研究提供了完整的Matlab仿真代码,涵盖系统建模、约束条件设定、目标函数构建及求解全过程,具备较高的科研参考价值与工程实践意义。; 适合人群:面向具备电力系统、能源系统或自动化等相关专业背景,熟悉Matlab编程环境,从事综合能源系统、低碳调度、虚拟电厂等领域科研工作的研究人员,尤其适用于研究生、高校教师及能源行业技术人员。; 使用场景及目标:①用于虚拟电厂、碳减排与多能协同调度等方向的学术研究与仿真验证;②支撑学位论文撰写、科技项目申报或高水平期刊投稿中的案例分析与算法对比;③掌握碳交易机制下电-气-废协同优化的技术路径与建模方法,提升复杂能源系统优化能力。; 阅读建议:建议结合碳交易政策背景与多能流耦合特性深入理解模型设计逻辑,重点关注Matlab代码中YALMIP工具包的应用与优化变量设置,配合网盘提供的完整资源进行代码调试与情景拓展,按文档结构循序渐进学习以构建系统化知识体系。

19,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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