修改捕获图像的大小 directshow

ok,谢谢陆兄的指点,我也是这么做的,见代码,其中pAsfConfig是从asfwriter指针获取的. 
IWMProfile *ppProfile; 
pAsfConfig->GetCurrentProfile (&ppProfile); 

IWMStreamConfig* ppConfig; 
ppProfile->GetStream(0,&ppConfig); //获取视频流的 
/设置视频流的属性 
IWMMediaProps *pMediaProps; 
ppConfig->QueryInterface(IID_IWMMediaProps,(void**)(&pMediaProps)); 
WM_MEDIA_TYPE mediaType; 
DWORD bufsize; 
pMediaProps->GetMediaType(NULL,&bufsize); 
pMediaProps->GetMediaType(&mediaType,&bufsize); 
 
VIDEOINFOHEADER *pVih = reinterpret_cast<VIDEOINFOHEADER*>(mediaType.pbFormat); 
在这里重新设置视频流的属性 
......... 
// 
pMediaProps->SetMediaType(&mediaType); 


我想通过pVih指针设置视频的大小,VIDEOINFOHEADER结构如下: 

typedef struct tagVIDEOINFOHEADER { 
RECT rcSource, 
RECT rcTarget; 
DWORD dwBitRate; 
DWORD dwBitErrorRate; 
REFERENCE_TIME AvgTimePerFrame; 
BITMAPINFOHEADER bmiHeader; 
} VIDEOINFOHEADER; 

因为我看到BITMAPINFOHEADER 结构有两个成员 
LONG biWidth; 
LONG biHeight; 
不知道是否通过这bmiHeader的两个变量来设置视频的宽度和高度,??? 
另:我通过查看GetMediaType返回的媒体类型,发现biWidth和 biHeight都是零?怎么解释啊? 
还请陆兄再次指教 



附:BITMAPINFOHEADER结构 
typedef struct tagBITMAPINFOHEADER { 
DWORD biSize; 
LONG biWidth; 
LONG biHeight; 
WORD biPlanes; 
WORD biBitCount; 
DWORD biCompression; 
DWORD biSizeImage; 
LONG biXPelsPerMeter; 
LONG biYPelsPerMeter; 
DWORD biClrUsed; 
DWORD biClrImportant; 
} BITMAPINFOHEADER; 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值