From cd3fe8cc1ae9028acb4f630ed16c12f4fb327f3c Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期四, 10 十月 2019 17:35:12 +0800
Subject: [PATCH] add interface out

---
 csrc/worker/decoder.hpp |   38 +++++++++++++++-----------------------
 1 files changed, 15 insertions(+), 23 deletions(-)

diff --git a/csrc/worker/decoder.hpp b/csrc/worker/decoder.hpp
index 3bb3a18..d157d25 100644
--- a/csrc/worker/decoder.hpp
+++ b/csrc/worker/decoder.hpp
@@ -9,53 +9,45 @@
 #include <atomic>
 #include <condition_variable>
 
-#include "../common.hpp"
-
 struct AVFrame;
+struct AVCodecContext;
 
 namespace ffwrapper
 {
     class FormatIn;
-    class cvbridge;
-
+    class CodedData;
 } // namespace ffwrapper
 
 namespace cffmpeg_wrap
 {
-    typedef struct _pic_bgr24{
-        unsigned char *data;
-        int w;
-        int h;
-
+    typedef struct _frm{
+        uint8_t *data;
+        int length;
+        int width;
+        int height;
+        int format;
         int64_t id;
-    }BGR24;
+    }FRM;
 
     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::unique_ptr<std::thread> thread_;
-        std::atomic_bool    stop_;
-
-        std::list<CPacket> list_pkt_;
-        std::mutex mutex_pkt_;
-     	std::condition_variable cv_;
+        std::list<FRM> list_frm_;
+        std::mutex mutex_frm_;
+        
     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);
+        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