我用ball程序显示一个图片,结果怎么是翻过来的?

vcbacker 2004-07-05 06:44:10
我用dx9sdk中的ball那个例子显示一个图片,
显示出来的效果和原图正好是180度翻转,
用graphedt看render的输入是320*-240,
这是怎么回事啊?怎么样设置才能正常显示?
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vcbacker 2004-07-06
  • 打赏
  • 举报
回复
此问题已解决,多谢陆老师指导~~~
vcbacker 2004-07-06
  • 打赏
  • 举报
回复
我直接返回S_FALSE都不行,
HRESULT CBallStream::QueryAccept(const CMediaType *pmt)
{
return S_FALSE;
}
在VMR input0看到的还是320*-240,
vcbacker 2004-07-05
  • 打赏
  • 举报
回复
代码很长并且写的很乱,
The IsStopped method determines whether the filter is currently stopped.
你调用这个函数是起什么作用的?
好像并没有翻转的效果阿...

happydeer 2004-07-05
  • 打赏
  • 举报
回复
不会吧?你把你的output pin上的checkmediatype和getmediatype两个函数的代码贴出来看看?
vcbacker 2004-07-05
  • 打赏
  • 举报
回复
我加了这句代码,结果还是反的,怎么办?
happydeer 2004-07-05
  • 打赏
  • 举报
回复
图像的宽度值的正负表示图像的扫描方式。负数时,图像从上往下扫描;正数时,图像从下往上扫描。

一般我们存储图像数据时,采用的是从下往上扫描的方式。但现在连接的media type显示的图像宽度为负数,也就是,video renderer错把从下往上扫描的图像数据理解成从上往下扫描的了。

简单的解决方法,在output pin的checkmediatype函数中如下修改:
HRESULT CYourOutPin::CheckMediaType(const CMediaType* mtIn)
{
// Dynamic format change will not be allowed!
if (!m_pFilter->IsStopped())
{
return E_INVALIDARG;
}

// Your normal check media type code...
return NOERROR;
}

2,543

社区成员

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

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