ICDecompress 解压缩AVI 文件的问题!!!

Michael_g 2005-05-30 04:28:24
{
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,不能解压缩啊
不知道为什么! 哪位大侠做过类似的程序请指教啊!!!!!!
...全文
239 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Michael_g 2005-05-31
  • 打赏
  • 举报
回复
那最大支持多大的录像解压呢,我所用的原大小是640*480
蒋晟 2005-05-31
  • 打赏
  • 举报
回复
#define ICERR_BADIMAGESIZE -201L
The specified image size is invalid.
fairyprince 2005-05-31
  • 打赏
  • 举报
回复
在解压之前用 ICDecompressBegin 打开压缩
之后用 ICDecompressEnd 结束压缩
Michael_g 2005-05-31
  • 打赏
  • 举报
回复
请做过用VFW解压视频的程序啊? 谁能帮我解决这个问题给 200 分

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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