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

vcbacker 2004-07-05 06:44:10
我用dx9sdk中的ball那个例子显示一个图片,
显示出来的效果和原图正好是180度翻转,
用graphedt看render的输入是320*-240,
这是怎么回事啊?怎么样设置才能正常显示?
...全文
79 点赞 收藏 6
写回复
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;
}
回复 点赞
发动态
发帖子
多媒体/流媒体开发
创建于2007-08-27

2052

社区成员

2.0w+

社区内容

专题开发/技术/项目 多媒体/流媒体开发
社区公告
暂无公告