From 93f44a10e2e8942e57e62bb210a2ca7d206a51b7 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期二, 24 九月 2019 11:26:44 +0800
Subject: [PATCH] add rec audio;

---
 csrc/worker/rec.cpp |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/csrc/worker/rec.cpp b/csrc/worker/rec.cpp
index 797e047..d7ce012 100644
--- a/csrc/worker/rec.cpp
+++ b/csrc/worker/rec.cpp
@@ -3,6 +3,10 @@
 #include <unistd.h>
 #include <sys/time.h>
 
+extern "C"{
+#include <libavcodec/avcodec.h>
+}
+
 #include "../ffmpeg/format/FormatIn.hpp"
 #include "../ffmpeg/data/CodedData.hpp"
 #include "../ffmpeg/log/log.hpp"
@@ -181,12 +185,14 @@
         std::lock_guard<std::mutex> l(mtx_pkt_);
         //wait I 
         if (list_pkt_.empty()) {
-            AVPacket &avpkt = data->getAVPacket();
-            if (!(avpkt.flags & AV_PKT_FLAG_KEY)){
+
+            if (!(data->getAVPacket().flags & AV_PKT_FLAG_KEY)){
                 return;
             }
         }
+        
         list_pkt_.push_back({data, id});
+
         // 瓒呰繃缂撳瓨鏈�澶ч暱搴�,鍒犻櫎涓�涓猤op
         shrinkCache();
     }
@@ -194,12 +200,12 @@
     int rec::shrinkCache(){
         //瓒呰繃鏈�澶х紦瀛�,涓㈠純gop
         //缂撳瓨鏈�灏忛暱搴︾殑,鐢ㄤ簬璁板綍
-        while (list_pkt_.size() > minduration_/2) {
+        int md = minduration_ < 201 ? 200 : minduration_;
+        while (list_pkt_.size() > md/2) {
             list_pkt_.pop_front();
             while(!list_pkt_.empty()){
-                auto &cache = list_pkt_.front();
-                AVPacket &avpkt = cache.data->getAVPacket();
-                if (!(avpkt.flags & AV_PKT_FLAG_KEY)){
+                auto &i = list_pkt_.front();
+                if (!(i.data->getAVPacket().flags & AV_PKT_FLAG_KEY)){
                     list_pkt_.pop_front();
                 }else{
                     break;

--
Gitblit v1.8.0