directshow采集问题

langzi8818 2005-11-15 01:45:04
hr = m_pCamOutPin->EnumMediaTypes( &pMedia );
if(SUCCEEDED(hr))
{

while(pMedia->Next(1, &pmt, 0) == S_OK)
{
if( pmt->formattype == FORMAT_VideoInfo )
{
VIDEOINFOHEADER *vih = (VIDEOINFOHEADER *)pmt->pbFormat;
// printf("Size %i %i\n", vih->bmiHeader.biWidth, vih->bmiHeader.biHeight );
if( vih->bmiHeader.biWidth == width && vih->bmiHeader.biHeight == height )
{
pfnt = pmt;

// printf("found mediatype with %i %i\n", vih->bmiHeader.biWidth, vih->bmiHeader.biHeight );
//char test[100];
//sprintf(test,"Width=%d\nHeight=%d",vih->bmiHeader.biWidth, vih->bmiHeader.biHeight);
//MessageBox(test);
break;
}
DeleteMediaType( pmt );
}
}
pMedia->Release();
}


其中这段比较有什么用???
好象没有也可以的!
请高手指点
if( vih->bmiHeader.biWidth == width && vih->bmiHeader.biHeight == height )
{
pfnt = pmt;

// printf("found mediatype with %i %i\n", vih->bmiHeader.biWidth, vih->bmiHeader.biHeight );
//char test[100];
//sprintf(test,"Width=%d\nHeight=%d",vih->bmiHeader.biWidth, vih->bmiHeader.biHeight);
//MessageBox(test);
break;
}
...全文
112 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lazio88 2005-11-16
  • 打赏
  • 举报
回复
每个采集设备都有多种媒体类型和不同的图像尺寸,比如RGB24类型对应320×240,YUY2对应680×480,这段代码的意思是要匹配到图像尺寸为width×height的媒体类型,作为采集选用的媒体类型。
lazio88 2005-11-16
  • 打赏
  • 举报
回复
若不选择系统采用默认的媒体类型和默认的图像尺寸。
langzi8818 2005-11-16
  • 打赏
  • 举报
回复
哦,谢谢。
但是不选择也可以是吧

19,468

社区成员

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

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