From 9792631e9d038ac34e287323961b78cc3d470873 Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期二, 24 九月 2019 17:18:11 +0800 Subject: [PATCH] bug fix --- csrc/wrapper.cpp | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-) diff --git a/csrc/wrapper.cpp b/csrc/wrapper.cpp index 3ad04cb..f1520df 100644 --- a/csrc/wrapper.cpp +++ b/csrc/wrapper.cpp @@ -46,6 +46,7 @@ ,audio_(false) ,gb_(0) ,cpu_(0) + ,run_dec_(false) ,thread_(nullptr) ,stop_stream_(false) ,stream_(nullptr) @@ -133,14 +134,17 @@ decoder_ = new decoder(in, scale_w_, scale_h_, scale_f_); rec_->Load(in); - if(fn_rec_lazy_) fn_rec_lazy_(in); + if(fn_rec_lazy_) { + fn_rec_lazy_(); + fn_rec_lazy_ = nullptr; + } } void Wrapper::run_worker(ffwrapper::FormatIn *in, std::shared_ptr<ffwrapper::CodedData> data, int64_t &id){ if (stream_) stream_->SetPacket(data, id); + if (decoder_ && run_dec_) decoder_->SetFrame(data, id); if (rec_->Loaded()) rec_->SetPacket(data, id); - if (decoder_) decoder_->SetFrame(data, id); } void Wrapper::deinit_worker(){ @@ -191,7 +195,7 @@ }else{ std::string rid(id), dir(output); fn_rec_lazy_ = - [=](ffwrapper::FormatIn *in){rec_->NewRec(rid.c_str(), dir.c_str(), mindur, maxdur, audio);}; + [=]{rec_->NewRec(rid.c_str(), dir.c_str(), mindur, maxdur, audio);}; } } @@ -208,7 +212,7 @@ } ////////decoder void Wrapper::BuildDecoder(){ - // use_decoder_ = true; + run_dec_ = true; } void Wrapper::GetPicDecoder(unsigned char **data, int *w, int *h, int64_t *id){ @@ -216,7 +220,7 @@ decoder_->GetFrame(data, w, h, id); } } - + void Wrapper::GetPacket(unsigned char **pktData, int *size, int *key){ if (stream_){ stream_->GetPacket(pktData, size, key); @@ -275,7 +279,7 @@ uint8_t *pic = NULL; *w = *h = 0; - + int tryTime = 0; while (tryTime++ < 100){ -- Gitblit v1.8.0