在transform filter 中改变图片尺寸要如何做?

GrAkiss 2005-03-15 09:16:15
就是媒体类型的设置问题,SDK的所有例子里面INPUT PIN和output PIN的媒体类型都是一样的。
但是由于我要对视频图像进行处理,旋转90度后高和宽会互换,其他都不变,但是这时媒体类型还是变了,要怎么样设置媒体类型呢?我直接在transform()里面用IMEDIASAMPLE->SetMediaType()没用,用m_pOutput->SetMediaType()也不行啊
...全文
541 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
GrAkiss 2005-03-16
  • 打赏
  • 举报
回复
我并不是要支持某种媒体类型的输入,我是要实现这个filter上的输入pin和输出pin有不同的媒体类型,也就是说其实输入pin是无所谓的,无论怎么样都好,但是输出的媒体类型就要根据输入的图像尺寸来定
日总是我哥 2005-03-16
  • 打赏
  • 举报
回复
你并不需要改变参数的直。

你只要确定了参数中的类型是你需要的,return S_OK就可以了吧
我是这么认为:)
GrAkiss 2005-03-16
  • 打赏
  • 举报
回复
是我自己写的filter,应该说是自己改的,我是在sdk的一个例子的基础上改的,只需要在CheckInputType检查媒体类型??那怎么确定是输入的还是输出的媒体类型,我先试试
日总是我哥 2005-03-16
  • 打赏
  • 举报
回复
不知道这个Transform Filter是不是你自己做的,如果是的话,在CheckInputType中来检查媒体类型就是了。
GrAkiss 2005-03-16
  • 打赏
  • 举报
回复
经过实验,发现在CheckTransform()中
if(*mpIn == *mpOut)
{
return NOERROR;
}
这里是关键所在,判断输出的媒体类型是否与输入的媒体类型相同。
将此处的mpIn换成自己想要输出的媒体格式就可以改变输出的媒体类型了.
ps:此处自己指定的媒体类型最好直接从mpIn复制后再修改得到,因为很容易漏掉一些参数或者一些参数不符。例如:CMediaType *pmt = new CMediaType();
memcpy(pmt,mpIn,sizeof(CMediaType));
((VIDEOINFOHEADER*)(pmt->Format()))->bmiHeader.biWidth =600;
((VIDEOINFOHEADER*)(pmt->Format()))->bmiHeader.biHeight =800;

2,553

社区成员

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

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