From 18a05d269516a5e33d8460291c2f93e73d95adce Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期二, 26 十二月 2023 10:45:31 +0800
Subject: [PATCH] GetYUV format is NV12

---
 csrc/worker/stream.cpp |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/csrc/worker/stream.cpp b/csrc/worker/stream.cpp
index 9fe11da..92bc032 100644
--- a/csrc/worker/stream.cpp
+++ b/csrc/worker/stream.cpp
@@ -6,6 +6,8 @@
 
 #include "../ffmpeg/format/FormatIn.hpp"
 #include "../ffmpeg/data/CodedData.hpp"
+#include "../ffmpeg/log/log.hpp"
+using namespace logif;
 
 namespace cffmpeg_wrap{
     stream::stream(ffwrapper::FormatIn *in, const int maxSize)
@@ -19,18 +21,20 @@
         list_pkt_.clear();
     }
 
-    int stream::SetPacket(std::shared_ptr<ffwrapper::CodedData> data, int64_t &id){
-        if (data){
-
+    int stream::SetPacket(const CPacket &pkt){
+        if (pkt.data){
             // 濡傛灉鍖呮槸闊抽鍖�,浣嗘槸涓嶄娇鐢ㄩ煶棰�,鐩存帴杩斿洖
-            if (!audio_ && streamRef_->isAudioPkt(&data->getAVPacket())){
+            if (!audio_ && streamRef_->isAudioPkt(&pkt.data->getAVPacket())){
                 return 0;
             }
             
             std::lock_guard<std::mutex> locker(mutex_avpkt_);
-            list_pkt_.push_back({data, id});
-            
+            list_pkt_.push_back(pkt);
             while(list_pkt_.size() > max_size_/2*3){
+                CPacket &tmpkt = list_pkt_.front();
+                if (tmpkt.data->getAVPacket().flags & AV_PKT_FLAG_KEY){
+                    break;
+                }
                 list_pkt_.pop_front();
             }
 

--
Gitblit v1.8.0