ICDecompress 解压缩AVI 文件的问题!!!
{
HRESULT reval; //返回值
//指定视频结构空间
LPBITMAPINFOHEADER lpsrcfmt;
LPBITMAPINFOHEADER lpdstfmt;
//打开新的文件流
AVIStreamOpenFromFile(&VideoStream, FileName, streamtypeVIDEO, 0, OF_READ, 0);
...
AVIStreamFormatSize(VideoStream, 0, &fmtlen); //获取格式长度
AVIStreamReadFormat(VideoStream, 0, lpsrcfmt, &fmtlen);
...
//目标流结构 拷贝结构
memcpy(VideoDstFmt, VideoSrcFmt, fmtlen);
lpdstfmt->biBitCount = 32;
lpdstfmt->biCompression = BI_RGB;
lpdstfmt->biSizeImage = VideoWidth * VideoHeight * 4; (640*480*4)
....
//获取视频的信息
AVIStreamInfo(VideoStream, &VideoStreamInfo, sizeof(VideoStreamInfo));
VideoBufLen = lpdstfmt->biSizeImage; //缓冲长
//得到一个解压句柄
decomp = ICDecompressOpen(ICTYPE_VIDEO, VideoStreamInfo.fccHandler, lpsrcfmt, lpdstfmt);
rawdata=new DWORD[VideoBufLen]; //分配原始数据空间
VideoDataBuffer=new DWORD[VideoBufLen]; //分配解压后数据空间
// 播放部分 (一帧一帧的读一帧一帧的放)
...
....
AVIStreamRead(VideoStream, frame, 1, VideoDataBuffer, VideoBufLen, 0, 0);//读取一帧
ICDecompress(decomp, 0, lpsrcfmt, rawdata, lpdstfmt, VideoDataBuffer);//解压缩这下针
....
..
}
直到 读取帧的候全都正确,但是在解压缩时却返回错误值 -201,不能解压缩啊
不知道为什么! 哪位大侠做过类似的程序请指教啊!!!!!!