source filter中PIN上的GetFormat写法
为相机写了个source filter,OutPutPin继承了IAMStreamConfig,实现其接口GetFormat为:
HRESULT STDMETHODCALLTYPE OutPushPin::GetFormat(AM_MEDIA_TYPE **ppmt)
{
*ppmt = CreateMediaType(&m_mt);
// FreeMediaType(**ppmt);
return S_OK;
}
在Amcap9.0 中能正常使用,但是在Amcap9.2中利用Pin属性页切换分辨率,点击任一按钮关闭Pin属性页,接着调用此GetFormat接口后,出现“应用程序发生异常unknown software exception(0Xc0000094),位置为0X0044f8fb。”。 经过试验,发现只要在函数中添加被注释的代码就不会出现这个异常提示,Amcap9.2可以正常运行,可是分辨率永远不能变化。请教各位前辈,该如何实现此接口,小弟不胜感激!