调用Run函数时,内部好像先调用Pause函数,在调用Run函数,我程序不知道为什么在调用Pause后Filter直接析构,在析构出出错 堆栈为:
FltNtrcvr.ax!CMySourceFilter::~CMySourceFilter() 行115 + 0x3b C++
FltNtrcvr.ax!CMySourceFilter::`scalar deleting destructor'() + 0x2b C++
quartz.dll!7cfa208b()
quartz.dll!7cfa20ef()
quartz.dll!7cf8be94()
quartz.dll!7cfa1e72()
FltNtrcvr.ax!CCritSec::Unlock() 行997 + 0xc C++
FltNtrcvr.ax!CBaseReferenceClock::GetTime(__int64 * pTime=0x0012ed68) 行143 C++
003d90f8()
quartz.dll!7cfb8944()
quartz.dll!7cfa452e()
quartz.dll!7cfa44c7()
MyClient.exe!CDXGraph::Run() 行264 + 0x14 C++程序在调用Pause前进入CBaseReferenceClock::GetTime两次 没问题 ,调用完Pause后出现的。我将Pause删除问题仍然存在,麻烦大家帮忙看下,程序可能出现此现象问题的地方。还有源Filter在建立Graph时用传数据么,是不是GetMediaType接口定义好类型就可以了;解码器中传入的是什么数据,像分辨率什么的如何设定的,
FltNtrcvr.ax!CMySourceFilter::~CMySourceFilter() 行115 + 0x3b C++
FltNtrcvr.ax!CMySourceFilter::`scalar deleting destructor'() + 0x2b C++
quartz.dll!7cfa208b()
quartz.dll!7cfa20ef()
quartz.dll!7cf8be94()
quartz.dll!7cfa1e72()
FltNtrcvr.ax!CCritSec::Unlock() 行997 + 0xc C++
FltNtrcvr.ax!CBaseReferenceClock::GetTime(__int64 * pTime=0x0012ed68) 行143 C++
003d90f8()
quartz.dll!7cfb8944()
quartz.dll!7cfa452e()
quartz.dll!7cfa44c7()
MyClient.exe!CDXGraph::Run() 行264 + 0x14 C++程序在调用Pause前进入CBaseReferenceClock::GetTime两次 没问题 ,调用完Pause后出现的。我将Pause删除问题仍然存在,麻烦大家帮忙看下,程序可能出现此现象问题的地方。还有源Filter在建立Graph时用传数据么,是不是GetMediaType接口定义好类型就可以了;解码器中传入的是什么数据,像分辨率什么的如何设定的,
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货