问一个source filter问题

zswolf2000 2007-09-19 06:16:21
自定义一种数据格式,其实就是将若干个jpeg图像链接在一起,我是照着directshow带的那个ball例子改的。
但是例子是RGB32,RGB24的,也就个每个帧大小固定。

pvi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
pvi->bmiHeader.biWidth = m_iImageWidth;
pvi->bmiHeader.biHeight = m_iImageHeight;
pvi->bmiHeader.biPlanes = 1;
pvi->bmiHeader.biSizeImage = GetBitmapSize(&pvi->bmiHeader);//这里是定值!!
pvi->bmiHeader.biClrImportant = 0;

但是我定义的格式,其实每帧就是jpeg图像,是不固定大小的,我怎么处理呢pvi->bmiHeader.biSizeImage直接等于0吗?
还有就是在DecideBufferSize函数中,我开辟多大的sample呢?
...全文
59 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zswolf2000 2007-09-21
  • 打赏
  • 举报
回复
pvi- >bmiHeader.biSizeImage设置多少都无所谓吧,写成0也成吧
zswolf2000 2007-09-20
  • 打赏
  • 举报
回复
To momoFresh :
我觉得应该是
pvi- >bmiHeader.biSizeImage=0;
pmt->SetVariableSize();//pmt是CMediaType的指针
因为jpeg每帧图像是变化的,所以我不知道要分配多少内存。
yyhzpk 2007-09-20
  • 打赏
  • 举报
回复
还是这样用,它只是分配内存时用的尺寸大小
pvi->bmiHeader.biSizeImage = GetBitmapSize(&pvi->bmiHeader);//这里是定值!!
pvi->bmiHeader.biWidth*pvi->bmiHeader.biHeight*1.5肯定够用
momoFresh 2007-09-19
  • 打赏
  • 举报
回复
pvi- >bmiHeader.biSizeImage = (m_iImageWidth*m_iImageHeight)*pvi->bmiHeader.usBitCount)/8;

DecideBufferSize()中同上。

我没有做过jpeg ,你可以设置成上面的值试试。

2,543

社区成员

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

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