video analysis2.0拆分,ffmpeg封装go接口库
zhangmeng
2019-08-07 4eab3ca9bf020df2bb53fa2a36aa4f57d684225c
csrc/buz/recorder.cpp
@@ -31,20 +31,25 @@
        ,file_frame_index_(-1)
        ,file_path_("")
        ,func_rec_info_(nullptr)
        ,thrd_(nullptr)
        {
            // logIt("RECODER ID: %s", id_.c_str());
        }
        Recorder::~Recorder(){
            if (out_ && !stop_recorder_.load()){
                stop_recorder_.store(true);
                cv_.notify_one();
                while(stop_recorder_.load()){
                    logIt("REC WAIT TO QUIT ID %s", id_.c_str());
                    sleep(1);
                }
            }else if (stop_recorder_.load()){
                logIt("REC NORMAL QUIT");
            try
            {
                if (thrd_){
                    stop_recorder_.store(true);
                    cv_.notify_one();
                    thrd_->join();
                    logIt("REC THREAD JOINED, QUIT!!!");
                }
            }
            catch(const std::exception& e)
            {
                logIt("RECODER DESTRUCTOR EXCEPTION: ", e.what());
            }
            
        }
@@ -190,9 +195,10 @@
            logIt("minduration %d maxduration %d curduration %d", minduration, maxduration, end_frame);    
            std::thread([&]{
            thrd_.reset(new std::thread([&]{
                run_thread();
            }).detach();
            }));
            //.detach();
            return 0;
        }
@@ -265,4 +271,4 @@
            }
        }
    }
}
}