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/decoder.hpp |   30 ++++++++++++------------------
 1 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/csrc/worker/decoder.hpp b/csrc/worker/decoder.hpp
index ae9fba2..7f87180 100644
--- a/csrc/worker/decoder.hpp
+++ b/csrc/worker/decoder.hpp
@@ -10,44 +10,38 @@
 #include <condition_variable>
 
 struct AVFrame;
+struct AVCodecContext;
+
+class CPacket;
 
 namespace ffwrapper
 {
     class FormatIn;
-    class cvbridge;
     class CodedData;
 } // namespace ffwrapper
 
 namespace cffmpeg_wrap
 {
-    typedef struct _pic_bgr24{
-        unsigned char *data;
-        int w;
-        int h;
-
-        int64_t id;
-    }BGR24;
-
     class decoder
     {
     private:
-        ffwrapper::cvbridge *conv_;
-        int conv_w_, conv_h_, conv_flag_;
 
         ffwrapper::FormatIn *decRef_;
-
-        std::list<BGR24> list_pic_;
-        std::mutex mutex_pic_;
+        
+        std::list<CPacket> list_pkt_;
+        std::mutex mutex_pkt_;
+        
+        int64_t next_idx_;
 
     private:
         int initDecoder();
-        int saveFrame(AVFrame *frame, int64_t &id);
     public: 
         void Start();
-        int SetFrame(std::shared_ptr<ffwrapper::CodedData> data, int64_t &id);
-        void GetFrame(unsigned char **data, int *w, int *h, int64_t *id);
+        int SetFrame(const CPacket &pkt);
+        void GetFrame(unsigned char **data, int *w, int *h, int *format, int *length, int64_t *id);
+    
     public:
-        decoder(ffwrapper::FormatIn *dec, const int w, const int h, const int f);
+        explicit decoder(ffwrapper::FormatIn *dec);
         ~decoder();
     };
     

--
Gitblit v1.8.0