AVIStreamGetFrameOpen总是返回NULL
我用二进制打开AVI文件以后发现AVI视频的图像是MJPG格式的,现在我想用API函数来播放这个AVI文件,写好的代码播放没压缩的AVI是可以的,但是播放这个视频图像是MJPG格式时就出了问题,跟踪以后发现是AVIStreamGetFrameOpen总是返回NULL下面是我的代码
PAVIFILE pfile; //avi文件打开对象
AVIFILEINFO pfi; //文件信息
AVISTREAMINFO aviStrInfo;
PAVISTREAM pavi; //流信息
PGETFRAME pgf; //帧信息
AVIFileInit();
AVIFileOpen(&pfile,path,OF_READ | OF_SHARE_EXCLUSIVE,NULL);
AVIFileInfo(pfile,&pfi,sizeof(AVIFILEINFO));
AVIFileGetStream(pfile,&pavi,streamtypeVIDEO,0);
pgf = AVIStreamGetFrameOpen(pavi, NULL);//总是返回NULL
if(NULL == pgf)
{
AVIStreamRelease(pavi);
return NULL;
}
lp=(BYTE *)AVIStreamGetFrame(pgf,shownum);//提取第m_nowshow帧 由于前面返回NULL,接下来的代码就不运行
if(NULL == lp)
{
AVIStreamGetFrameClose(pgf);
AVIStreamRelease(pavi);
return NULL;
}
请高手指点一下,不知道的也请帮顶一下,谢谢啦~~果有描述的不清楚的地方请尽管指出来,我尽力再说详细些~