写了一个简单的filter,派生自CTransInPlaceFilter,重载了Transform(IMediaSample *pSample)函数,想在其中获取图片数据,现在使用这个IMediaSample指针时出现了一个奇怪的问题,使用 AM_MEDIA_TYPE *pType = NULL;
pSample->GetMediaType(&pType); VIDEOINFO *pvi=(VIDEOINFO *)pType->pbFormat;

BITMAPINFOHEADER *pbih = &(pvi->hdr.bmiHeader);发现pbih中只有前面部分数据项是正确的,后面部分均不正确,查看pType->formattype属性发现有VideoInfoHeader2字样,于是修改 VIDEOINFOHEADER2 *pvi=(VIDEOINFOHEADER2 *)pType->pbFormat;

BITMAPINFOHEADER *pbih = &(pvi->hdr.bmiHeader);
错误依然存在,只有部分数据正确,百思不得其解,小弟初次接触这方面开发,对IMediaSample结构理解还不是特别深刻,还请这里的高手指教。