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

wmrwinhap 2004-09-09 04:42:36
任一种格式的YUV都可以,盼高人复!
不胜感谢!
...全文
166 点赞 收藏 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);
回复
发动态
发帖子
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
社区公告
暂无公告