From be9c1d1f659b0ff31f656424c478e83a4f7c53b5 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期五, 20 九月 2019 11:44:19 +0800
Subject: [PATCH] update ffmpeg

---
 csrc/wrapper.cpp |   40 +++++++++++++++++++---------------------
 1 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/csrc/wrapper.cpp b/csrc/wrapper.cpp
index 63bb661..9f0e4e7 100644
--- a/csrc/wrapper.cpp
+++ b/csrc/wrapper.cpp
@@ -44,6 +44,7 @@
     ,scale_w_(0)
     ,scale_h_(0)
     ,scale_f_(SWS_POINT)
+    ,audio_(false)
     ,gb_(0)
     ,cpu_(0)
     ,thread_(nullptr)
@@ -72,20 +73,6 @@
         }
     }
 
-    void Wrapper::ScalePicture(const int w, const int h, const int flags){
-        scale_w_ = w;
-        scale_f_ = flags;
-        scale_h_ = h;
-    }
-
-    void Wrapper::GB28181(){
-        gb_ = 1;
-    }
-
-    void Wrapper::CPUDec(){
-        cpu_ = 1;
-    }
-
     std::unique_ptr<ffwrapper::FormatIn> Wrapper::init_reader(const char* input){
 
         VideoProp prop;
@@ -106,7 +93,7 @@
     	}
         if(flag == 0){
             if(!in->findStreamInfo(NULL)){
-                logIt("yolo can't find video stream\n");
+                logIt("can't find video stream\n");
                 return nullptr;
             }
             
@@ -131,15 +118,26 @@
         return 0;
     }
 
+    void Wrapper::AudioSwitch(const bool a){
+        audio_ = a;
+        if (stream_){
+            stream_->AudioSwitch(a);
+        }
+    }
+
     void Wrapper::init_worker(ffwrapper::FormatIn *in){
         if (rec_->Loaded() && stream_ && decoder_) return;
-        stream_ = new stream(3 * 25);
+        stream_ = new stream(in, 3 * 25);
+        stream_->AudioSwitch(audio_);
+
         decoder_ = new decoder(in, scale_w_, scale_h_, scale_f_);
+        
         rec_->Load(in);
         if(fn_rec_lazy_) fn_rec_lazy_(in);
     }
     
-    void Wrapper::run_worker(std::shared_ptr<ffwrapper::CodedData> data, int64_t &id){
+    void Wrapper::run_worker(ffwrapper::FormatIn *in, std::shared_ptr<ffwrapper::CodedData> data, int64_t &id){
+
         if (stream_) stream_->SetPacket(data);
         if (decoder_) decoder_->SetFrame(data, id);
         if (rec_->Loaded()) rec_->SetPacket(data, id);
@@ -172,7 +170,7 @@
                     break;
     	        }
                 
-                run_worker(data, id);
+                run_worker(in.get(), data, id);
                 id++;
             }
 
@@ -180,14 +178,14 @@
         }
     }
 
-    void Wrapper::BuildRecorder(const char* id, const char *output, const int mindur, const int maxdur){
+    void Wrapper::BuildRecorder(const char* id, const char *output, const int mindur, const int maxdur, const bool audio){
         
         if (rec_->Loaded()){
-            rec_->NewRec(id, output, mindur, maxdur);
+            rec_->NewRec(id, output, mindur, maxdur, audio);
         }else{
             std::string rid(id), dir(output);
             fn_rec_lazy_ = 
-            [=](ffwrapper::FormatIn *in){rec_->NewRec(rid.c_str(), dir.c_str(), mindur, maxdur);};
+            [=](ffwrapper::FormatIn *in){rec_->NewRec(rid.c_str(), dir.c_str(), mindur, maxdur, audio);};
         }
     }
 

--
Gitblit v1.8.0