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

wmrwinhap 2004-09-09 04:42:36
任一种格式的YUV都可以,盼高人复!
不胜感谢!
...全文
198 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过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);
  • 打赏
  • 举报
回复
发帖
界面

1.5w+

社区成员

VC/MFC 界面
社区管理员
  • 界面
加入社区
帖子事件
创建了帖子
2004-09-09 04:42
社区公告
暂无公告