AVIStreamWrite函数没有执行我所设置的次数,不知道错在那里!~~~~(SOS)

wenjhua 2004-10-11 03:48:17
rt:
我的这个函数是:
BOOL CAviFile::AddFrame(LPBYTE lpImgData, LONG lSize, DWORD dwFlags,LONG FrameNum)
{
//添加帧,第一帧确保为关键帧
if((dwFrames!=0)||(dwFlags==AVIIF_KEYFRAME))
{
if(dwFrames==0)
{
MainDlg->m_bStartRecord = TRUE;
}

long err = 0;
err = AVIStreamWrite(psVideo,FrameNum,1,lpImgData,lSize,dwFlags,NULL,NULL);

if(err)
{
MainDlg->bbbbb++;
MainDlg->String.Format("bbbb: %d",MainDlg->bbbbb);
SetWindowText(MainDlg->m_hWnd,MainDlg->String);
return false;
}else{
dwFrames++;
}
}
return TRUE;
}

问题:假如AddFrame()函数执行了200次,但是dwFrames的累加值小于200,就是AVIStreamWrite()有写文件流不成功的,我检查了所传进来的值是准确的,因为我在主函数中用的是同样的值来画图,画图成功,次数也是200。我的错误出在那里啊? 救救我吧!~

...全文
132 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenjhua 2004-10-12
  • 打赏
  • 举报
回复
呵呵,我现在用的就是但线程,不过就是不行!~ 但多线程没有试过,
我也听你的建议做了,我记录了时间,可是写流文件的时间很少,就是几毫秒的时间。(用的函数是GetTickcount())
jyc_nj 2004-10-12
  • 打赏
  • 举报
回复
这倒是,有在单线程里试过没?
Wyhshp 2004-10-11
  • 打赏
  • 举报
回复
可能是你的数据同步没做好,比如还没有写完,又更新数据了。

考虑用多线程并锁定,也许可以解决。
wenjhua 2004-10-11
  • 打赏
  • 举报
回复
怎么没有人理啊!~~~ 郁闷, 晚上再来!~~

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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