bug fixed file frmaes statistic
| | |
| | | |
| | | void Wrapper::run_stream_thread(){ |
| | | |
| | | int64_t rebootime = -1; |
| | | int64_t file_rebootime = 0; |
| | | int64_t file_frame = 0; |
| | | |
| | | while(!stop_stream_.load()){ |
| | | auto in = init_reader(input_url_.c_str()); |
| | |
| | | sleep(2); |
| | | continue; |
| | | } |
| | | |
| | | rebootime++; |
| | | |
| | | fps_ = in->getFPS(); |
| | | |
| | |
| | | bool exist = access(input_url_.c_str(), 0) == 0; |
| | | if (exist){ |
| | | wTime <<= 1; |
| | | file_rebootime++; |
| | | } |
| | | int64_t file_frame = 0; |
| | | |
| | | logIt("WAIT TIME PER FRAME: %d", wTime); |
| | | |
| | |
| | | |
| | | deinit_worker(); |
| | | if (exist) { |
| | | if (file_frame == 0 && rebootime > 3){ |
| | | // 三次一帧都没解出来,退出 |
| | | if (file_frame == 0 && file_rebootime > 3){ |
| | | file_finished_ = true; |
| | | break; |
| | | } |
| | | // 最小需要解出多少帧 |
| | | if (file_frame < min_duration_ * fps_){ |
| | | continue; |
| | | } |
| | | logIt("libcffmpeg.so-> local file %s run %lld time, all frames %lld", input_url_.c_str(), rebootime, file_frame); |
| | | logIt("libcffmpeg.so-> local file %s run %lld time, all frames %lld", input_url_.c_str(), file_rebootime, file_frame); |
| | | file_finished_ = true; |
| | | break; |
| | | } |