source filter中PIN上的GetFormat写法

w_530016848 2012-09-29 11:04:01
为相机写了个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可以正常运行,可是分辨率永远不能变化。请教各位前辈,该如何实现此接口,小弟不胜感激!

...全文
171 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
w_530016848 2012-09-29
  • 打赏
  • 举报
回复
请教wwwllg大哥,是否会因为DSHOW SDK版本原因导致呢,我的是DX9.0版本的SDK
w_530016848 2012-09-29
  • 打赏
  • 举报
回复
参数中的(*ppmt)->pbFormat 也非空
w_530016848 2012-09-29
  • 打赏
  • 举报
回复
在*ppmt = CreateMediaType(&m_mt); 前后判断,发现 都非空
UDX协议 2012-09-29
  • 打赏
  • 举报
回复
判断一下ppmt 是否为空

2,543

社区成员

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

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