From f93ee1a42e8c47e472332287b7350b66a6b0fa11 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期五, 24 七月 2020 18:28:57 +0800
Subject: [PATCH] 保存触发id之后的视频作为触发视频

---
 csrc/worker/rec.cpp |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/csrc/worker/rec.cpp b/csrc/worker/rec.cpp
index b5bbd5a..28a7401 100644
--- a/csrc/worker/rec.cpp
+++ b/csrc/worker/rec.cpp
@@ -45,7 +45,7 @@
         list_recInfo_.emplace_back(info);
     }
 
-    void rec::findRecFramesIndex(const int64_t &fired_id, const int duration, int &start, int &end){
+    void rec::findRecFramesIndex(int64_t &fired_id, const int duration, int &start, int &end){
 
         start = end = -1;
 
@@ -84,6 +84,9 @@
             
         }
 
+        // 濡傛灉fired_id鍦╯tartid涔嬪墠,灏嗗叾鏀惧叆start_id涔嬪悗
+        if (start_id > fired_id) fired_id = start_id + duration / 2;
+
         if (end < 0) end = index;
     }
 
@@ -113,8 +116,10 @@
             std::lock_guard<std::mutex> locker(mtx_pkt_);
             logIt("cache size: %ld", list_pkt_.size());
             // 棣栨鑾峰彇褰曞儚淇℃伅,鍏堝瓨涓�涓渶鐭椂闀�
-            findRecFramesIndex(frameID, duration, start, end);
-            rec->StartWritePacket(list_pkt_, frameID, start, end);
+            // maybe fired_id changed by findRecFramesIndex
+            int64_t fired_id = frameID;
+            findRecFramesIndex(fired_id, duration, start, end);
+            rec->StartWritePacket(list_pkt_, fired_id, start, end);
 
             return rec;
         }

--
Gitblit v1.8.0