12 lock_guard<mutex> lock(
mtx);
14 data_queue.push_back(data);
19 lock_guard<mutex> lock(
mtx);
21 if (!data_queue.size())
24 data_queue.pop_front();
31 lock_guard<mutex> lock(
mtx);
33 auto it = find_if(data_queue.begin(), data_queue.end(),
38 if (it != data_queue.end())
49 lock_guard<mutex> lock(
mtx);
51 return data_queue.size();
56 lock_guard<mutex> lock(
mtx);
58 auto it = find_if(data_queue.begin(), data_queue.end(),
63 if (it != data_queue.end())
72 :event_queue_size(queue_size), events_timeout(timeout)
82 lock_guard<mutex> lock(
mtx);
112 unique_lock<mutex> lock(
mtx);
117 if (!(res =
data_queue[source_id].correct(frame)))
std::atomic< uint32_t > * event_queue_size
const char * rs_stream_to_string(rs_stream stream)
rs_event_source source_id
std::atomic< uint32_t > * events_timeout
void update_source_id(rs_event_source &source_id, const rs_stream stream)
concurrent_queue data_queue[RS_EVENT_SOURCE_COUNT]
void correct_timestamp(frame_interface &frame, rs_stream stream) override
GLbitfield GLuint64 timeout
virtual void set_timestamp(double new_ts)=0
bool correct(frame_interface &frame)
virtual void set_timestamp_domain(rs_timestamp_domain timestamp_domain)=0
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const void * data
~timestamp_corrector() override
bool erase(rs_timestamp_data data)
Timestamp data from the motion microcontroller.
timestamp_corrector(std::atomic< uint32_t > *event_queue_size, std::atomic< uint32_t > *events_timeout)
void push_back_data(rs_timestamp_data data)
rs_stream
Streams are different types of data provided by RealSense devices.
std::condition_variable cv
virtual unsigned long long get_frame_number() const =0
unsigned long long frame_number
void on_timestamp(rs_timestamp_data data) override
rs_event_source
Source device that triggered a specific timestamp event from the motion module.