DirectShow: 编写输出YUV的Filter,如何写GetMediaType函数?

wmrwinhap 2004-09-09 04:42:36
任一种格式的YUV都可以,盼高人复!
不胜感谢!
...全文
211 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wmrwinhap 2004-09-10
  • 打赏
  • 举报
回复
成功,非常感谢!
DentistryDoctor 2004-09-09
  • 打赏
  • 举报
回复
GetMediaType(int iPosition, CMediaType *pmt)


你可根据情况返正其它格式,但一次只能返正一种格式。
DentistryDoctor 2004-09-09
  • 打赏
  • 举报
回复
CheckPointer(pmt,E_POINTER);

if (iPosition < 0)
{
return E_INVALIDARG;
}

// Have we run off the end of types

if( iPosition > 0 )
{
return VFW_S_NO_MORE_ITEMS;
}

VIDEOINFOHEADER vih;
memset( &vih, 0, sizeof( vih ) );
vih.bmiHeader.biCompression = MAKEFORCC('Y','U','Y','V');
vih.bmiHeader.biBitCount = 16;
vih.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
vih.bmiHeader.biWidth = DEFAULT_WIDTH;//Your size.x
vih.bmiHeader.biHeight = DEFAULT_HEIGHT;//Your size.y
vih.bmiHeader.biPlanes = 1;
vih.bmiHeader.biSizeImage = GetBitmapSize(&vih.bmiHeader);
vih.bmiHeader.biClrImportant = 0;

pmt->SetType(&MEDIATYPE_Video);
pmt->SetFormatType(&FORMAT_VideoInfo);
pmt->SetFormat( (BYTE*) &vih, sizeof( vih ) );
pmt->SetSubtype(&MEDIASUBTYPE_YUY2);
pmt->SetSampleSize(vih.bmiHeader.biSizeImage);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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