From 7363d175bd62697a800a724f91795e87a5c6fd3c Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期五, 29 十一月 2019 17:21:41 +0800
Subject: [PATCH] add close push stream

---
 csrc/wrapper.cpp |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/csrc/wrapper.cpp b/csrc/wrapper.cpp
index d1cbfbf..19357c5 100644
--- a/csrc/wrapper.cpp
+++ b/csrc/wrapper.cpp
@@ -46,6 +46,7 @@
     ,gb_(0)
     ,cpu_(0)
     ,run_dec_(false)
+    ,run_stream_(true)
     ,thread_(nullptr)
     ,stop_stream_(false)
     ,stream_(nullptr)
@@ -63,6 +64,7 @@
     ,gb_(0)
     ,cpu_(0)
     ,run_dec_(false)
+    ,run_stream_(true)
     ,thread_(nullptr)
     ,stop_stream_(false)
     ,stream_(nullptr)
@@ -150,7 +152,7 @@
 
         stream_ = new stream(in, 3 * in->getFPS());
         // stream_->AudioSwitch(audio_);
-
+        
         decoder_ = new decoder(in);
 
         rec_->Load(in);
@@ -166,8 +168,8 @@
             p.pts = p.dts = AV_NOPTS_VALUE;
         }
         int flag = 0;
-        if (stream_) stream_->SetPacket(pkt);
-        if (decoder_ && run_dec_) flag = decoder_->SetFrame(pkt);
+        if (run_stream_ && stream_) stream_->SetPacket(pkt);
+        if (run_dec_ && decoder_) flag = decoder_->SetFrame(pkt);
         if (rec_->Loaded()) rec_->SetPacket(pkt);
 
         return flag;
@@ -261,7 +263,6 @@
             [=]{rec_->NewRec(rid.c_str(), dir.c_str(), fid, mindur, maxdur, a);};
         }
     }
-
     int Wrapper::FireRecorder(const char* sid,const int64_t &id){
         if (rec_->Loaded()){
             rec_->FireRecSignal(sid, id);
@@ -284,6 +285,10 @@
         }
     }
     
+    void Wrapper::CloseStream(){
+        run_stream_ = false;
+    }
+
     void Wrapper::GetPacket(unsigned char **pktData, int *size, int *key){
         if (stream_){
             stream_->GetPacket(pktData, size, key);

--
Gitblit v1.8.0