From 68a19a73681301c6712e10d55bc64324716dbd24 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期三, 09 十月 2019 15:38:47 +0800
Subject: [PATCH] split scale

---
 csrc/worker/decoder.hpp |   24 ++++++++++--------------
 1 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/csrc/worker/decoder.hpp b/csrc/worker/decoder.hpp
index ae9fba2..94bbb03 100644
--- a/csrc/worker/decoder.hpp
+++ b/csrc/worker/decoder.hpp
@@ -10,44 +10,40 @@
 #include <condition_variable>
 
 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{
+        AVFrame *frm;
         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::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