diff --git a/VideoProsessing/src/main.cpp b/VideoProsessing/src/main.cpp index 9670759..e607120 100644 --- a/VideoProsessing/src/main.cpp +++ b/VideoProsessing/src/main.cpp @@ -266,10 +266,21 @@ void warnThread() //刚进入报警状态 isAlarming = true; setGPIOLevel(alarmLevel); - //保存报警图片 - saveAlarmImage(videoDeque.back()); - //保存报警视频 - saveAlarmVideo(videoDeque); + { + lock_guard lk(bufferMutex); + Mat framToSave; + deque bufferToSave; + if(!videoDeque.empty()) + { + framToSave = videoDeque.back().clone(); + bufferToSave = videoDeque; + } + //保存报警图片 + saveAlarmImage(framToSave); + //保存报警视频 + saveAlarmVideo(bufferToSave); + } + cout << "保存成功" << endl; }