18 #include "scanner/video/video_decoder.h" 20 #include <condition_variable> 37 VideoDecoderType decoder_type);
40 void initialize(
const std::vector<proto::DecodeArgs>& encoded_data);
42 void get_frames(u8* buffer, i32 num_frames);
44 void set_profiler(
Profiler* profiler);
49 void set_feeder_idx(i32 data_idx);
51 const i32 MAX_BUFFERED_FRAMES = 8;
57 VideoDecoderType decoder_type_;
58 std::unique_ptr<VideoDecoder> decoder_;
59 std::atomic<bool> feeder_waiting_;
60 std::thread feeder_thread_;
61 std::atomic<bool> not_done_;
66 std::atomic<i32> reset_current_frame_;
67 std::vector<proto::DecodeArgs> encoded_data_;
69 std::atomic<i64> next_frame_;
70 std::atomic<i64> frames_retrieved_;
71 std::atomic<i64> frames_to_get_;
73 std::atomic<i32> retriever_data_idx_;
74 std::atomic<i32> retriever_valid_idx_;
76 std::atomic<bool> skip_frames_;
77 std::atomic<bool> seeking_;
78 std::atomic<i32> feeder_data_idx_;
79 std::atomic<i64> feeder_valid_idx_;
80 std::atomic<i64> feeder_current_frame_;
81 std::atomic<i64> feeder_next_frame_;
83 std::atomic<size_t> feeder_buffer_offset_;
84 std::atomic<i64> feeder_next_keyframe_;
85 std::mutex feeder_mutex_;
86 std::condition_variable wake_feeder_;
Definition: profiler.h:40
VideoDecoder.
Definition: video_decoder.h:38
Definition: database.cpp:36
FrameInfo.
Definition: frame.h:34
Definition: decoder_automata.h:28