video analysis2.0拆分,ffmpeg封装go接口库
zhangmeng
2019-11-29 7363d175bd62697a800a724f91795e87a5c6fd3c
csrc/wrapper.cpp
@@ -46,6 +46,7 @@
    ,gb_(0)
    ,cpu_(0)
    ,run_dec_(false)
    ,run_stream_(true)
    ,thread_(nullptr)
    ,stop_stream_(false)
    ,stream_(nullptr)
@@ -63,6 +64,7 @@
    ,gb_(0)
    ,cpu_(0)
    ,run_dec_(false)
    ,run_stream_(true)
    ,thread_(nullptr)
    ,stop_stream_(false)
    ,stream_(nullptr)
@@ -150,7 +152,7 @@
        stream_ = new stream(in, 3 * in->getFPS());
        // stream_->AudioSwitch(audio_);
        decoder_ = new decoder(in);
        rec_->Load(in);
@@ -166,8 +168,8 @@
            p.pts = p.dts = AV_NOPTS_VALUE;
        }
        int flag = 0;
        if (stream_) stream_->SetPacket(pkt);
        if (decoder_ && run_dec_) flag = decoder_->SetFrame(pkt);
        if (run_stream_ && stream_) stream_->SetPacket(pkt);
        if (run_dec_ && decoder_) flag = decoder_->SetFrame(pkt);
        if (rec_->Loaded()) rec_->SetPacket(pkt);
        return flag;
@@ -261,7 +263,6 @@
            [=]{rec_->NewRec(rid.c_str(), dir.c_str(), fid, mindur, maxdur, a);};
        }
    }
    int Wrapper::FireRecorder(const char* sid,const int64_t &id){
        if (rec_->Loaded()){
            rec_->FireRecSignal(sid, id);
@@ -284,6 +285,10 @@
        }
    }
    
    void Wrapper::CloseStream(){
        run_stream_ = false;
    }
    void Wrapper::GetPacket(unsigned char **pktData, int *size, int *key){
        if (stream_){
            stream_->GetPacket(pktData, size, key);