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