From 1d2e7ce97e33c74a949d443a226df531fbf5c7dd Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期三, 25 九月 2019 14:04:09 +0800 Subject: [PATCH] bug fix --- csrc/wrapper.hpp | 30 ++++++++++++++++-------------- 1 files changed, 16 insertions(+), 14 deletions(-) diff --git a/csrc/wrapper.hpp b/csrc/wrapper.hpp index 044b4ba..ed9a9ee 100644 --- a/csrc/wrapper.hpp +++ b/csrc/wrapper.hpp @@ -1,10 +1,6 @@ #ifndef _cffmpeg_wrapper_hpp_ #define _cffmpeg_wrapper_hpp_ -extern "C"{ -#include <libavcodec/avcodec.h> -} - #include <stdint.h> #include <string> @@ -16,11 +12,11 @@ #include "common/callback.hpp" + namespace ffwrapper{ class FormatIn; - - class VideoProp; class CodedData; + class VideoProp; } namespace cffmpeg_wrap{ @@ -37,19 +33,24 @@ std::unique_ptr<ffwrapper::FormatIn> init_reader(const char* input); void init_worker(ffwrapper::FormatIn *in); - void run_worker(std::shared_ptr<ffwrapper::CodedData> data, int64_t &id); + void run_worker(ffwrapper::FormatIn *in, std::shared_ptr<ffwrapper::CodedData> data, int64_t &id); void deinit_worker(); public: int RunStream(const char* input); private: void run_stream_thread(); public: //recorder - void BuildRecorder(const char* id,const char *dir, const int mind, const int maxd); + void BuildRecorder(const char* id,const char *dir, const int mind, const int maxd, const bool audio); int FireRecorder(const char* sid,const int64_t &id); void GetInfoRecorder(std::string &recID, int &index, std::string &path); - void ScalePicture(const int w, const int h, const int flags); - void GB28181(); - void CPUDec(); + void ScalePicture(const int w, const int h, const int flags){ + scale_w_ = w; + scale_h_ = h; + scale_f_ = flags; + } + void GB28181(){gb_ = 1;} + void CPUDec(){cpu_ = 1;} + void AudioSwitch(const bool a); public: //decoder void BuildDecoder(); void GetPicDecoder(unsigned char **data, int *w, int *h, int64_t *id); @@ -59,8 +60,9 @@ // stream 鍙傛暟 std::string input_url_; int scale_w_, scale_h_, scale_f_; - + bool audio_; int gb_, cpu_; + bool run_dec_; // decoder 鍙傛暟 std::unique_ptr<std::thread> thread_; std::atomic_bool stop_stream_; @@ -72,10 +74,10 @@ // 褰曞儚绫�,涓�鐩村瓨鍦� rec* rec_; // 褰曞儚璇锋眰缂撳瓨,绛夊緟runstream鍚庢坊鍔� - std::function<void(ffwrapper::FormatIn*)> fn_rec_lazy_; + std::function<void()> fn_rec_lazy_; }; - uint8_t *DecodeJPEG(const char *file, int *w, int *h); + uint8_t* Decode(const char *file, const int gb, int *w, int *h); 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); -- Gitblit v1.8.0