| | |
| | | ,audio_(false) |
| | | ,gb_(0) |
| | | ,cpu_(0) |
| | | ,run_dec_(false) |
| | | ,thread_(nullptr) |
| | | ,stop_stream_(false) |
| | | ,stream_(nullptr) |
| | |
| | | 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(){ |
| | |
| | | }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);}; |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | ////////decoder |
| | | void Wrapper::BuildDecoder(){ |
| | | // use_decoder_ = true; |
| | | run_dec_ = true; |
| | | } |
| | | |
| | | void Wrapper::GetPicDecoder(unsigned char **data, int *w, int *h, int64_t *id){ |
| | |
| | | decoder_->GetFrame(data, w, h, id); |
| | | } |
| | | } |
| | | |
| | | |
| | | void Wrapper::GetPacket(unsigned char **pktData, int *size, int *key){ |
| | | if (stream_){ |
| | | stream_->GetPacket(pktData, size, key); |
| | |
| | | |
| | | uint8_t *pic = NULL; |
| | | *w = *h = 0; |
| | | |
| | | |
| | | int tryTime = 0; |
| | | while (tryTime++ < 100){ |
| | | |