From d42f702ea93b3d34a300ad2f1f72db4d7bb9cc80 Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期一, 22 七月 2019 09:58:55 +0800 Subject: [PATCH] update --- csrc/wrapper.hpp | 22 ++++++++++++++++++++-- 1 files changed, 20 insertions(+), 2 deletions(-) diff --git a/csrc/wrapper.hpp b/csrc/wrapper.hpp index f242ee7..c8d928b 100644 --- a/csrc/wrapper.hpp +++ b/csrc/wrapper.hpp @@ -15,7 +15,8 @@ namespace ffwrapper{ class FormatIn; - + class FormatOut; + class VideoProp; class CodedData; class FrameData; @@ -26,6 +27,7 @@ enum WORKER{ WORKER_RECORDER = 0, WORKER_DECODER, + WORKER_ENCODER, }; namespace cffmpeg_wrap{ @@ -49,7 +51,7 @@ private: std::unique_ptr<ffwrapper::FormatIn> init_reader(const char* input); - ffwrapper::FormatIn* init_reader_gb28181(const char* input); + // ffwrapper::FormatIn* init_reader_gb28181(const char* input); void init_worker(ffwrapper::FormatIn *in); int init_recorder(ffwrapper::FormatIn *in, std::string dir, const int mind, const int maxd); void run_worker(ffwrapper::FormatIn *in, buz::avpacket &pkt); @@ -71,11 +73,18 @@ FUNC_REC func); void ScalePicture(const int w, const int h, const int flags); + void UseGB28181(); + void UseCPU(); public: //decoder void BuildDecoder(); void GetPicDecoder(unsigned char **data, int *w, int *h); //active api void ActiveDecoder(FUNC_DEC fn); + + public: + void BuildEncoder(const char *file, const int w, const int h, const int fps, const int br, const int gi); + int init_encoder(ffwrapper::FormatIn *in, const char *file, const int w, const int h, const int fps, const int br, const int gi); + private: std::string input_url_; @@ -102,10 +111,19 @@ FUNC_DEC func_dec_; int scale_w_, scale_h_, scale_f_; + int gb_, cpu_; //////////////////test frame to bgr24 public: uint8_t *decodeJPEG(const char *file, int *w, int *h); + + private: + ffwrapper::FormatOut *encoder_; }; + + void *CreateEncoder(const int w, const int h, const int fps, const int br, const int scale_flag, const int gi); + void DestroyEncoder(void *h); + int Encode(void *hdl, uint8_t *in, const int w, const int h, uint8_t **out, int *size, int *key); + } #endif \ No newline at end of file -- Gitblit v1.8.0