add rec notify, try catch
| | |
| | | } |
| | | |
| | | Recorder::~Recorder(){ |
| | | // if (out_){ |
| | | // stop_recorder_.store(true); |
| | | // cv_.notify_one(); |
| | | // int try_cnt = 0; |
| | | // while(stop_recorder_.load()){ |
| | | // logIt("REC WAIT TO QUIT ID %s", id_.c_str()); |
| | | // if (try_cnt > 100){ |
| | | // logIt("REC TRY %d TIMES TO QUIT..., BREAK!!!", try_cnt); |
| | | // break; |
| | | // } |
| | | // try_cnt++; |
| | | // sleep(1); |
| | | // } |
| | | // }else if (stop_recorder_.load()){ |
| | | // logIt("REC NORMAL QUIT"); |
| | | // } |
| | | |
| | | if (thrd_){ |
| | | stop_recorder_.store(true); |
| | | thrd_->join(); |
| | | logIt("REC THREAD JOINED, 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()); |
| | | } |
| | | |
| | | } |
| | | |
| | | int Recorder::init_writer(){ |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | Wrapper::~Wrapper() |
| | | { |
| | | if(thread_){ |
| | | stop_stream_.store(true); |
| | | thread_->join(); |
| | | } |
| | | if(bridge_){ |
| | | delete bridge_; bridge_ = NULL; |
| | | } |
| | | |
| | | map_rec_.clear(); |
| | | list_rec_pkt_.clear(); |
| | | try |
| | | { |
| | | if(thread_){ |
| | | stop_stream_.store(true); |
| | | thread_->join(); |
| | | } |
| | | if(bridge_){ |
| | | delete bridge_; bridge_ = NULL; |
| | | } |
| | | |
| | | for(auto &i : list_pic_){ |
| | | free(i.data); |
| | | map_rec_.clear(); |
| | | list_rec_pkt_.clear(); |
| | | |
| | | for(auto &i : list_pic_){ |
| | | free(i.data); |
| | | } |
| | | } |
| | | catch(const std::exception& e) |
| | | { |
| | | logIt("WRAPPER EXCEPTION: ", e.what()); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | void Wrapper::ScalePicture(const int w, const int h, const int flags){ |