Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
timestamps.h
Go to the documentation of this file.
1#pragma once
2#ifndef LIBREALSENSE_TIMESTAMPS_H
3#define LIBREALSENSE_TIMESTAMPS_H
4
5#include "../include/librealsense/rs.h" // Inherit all type definitions in the public API
6#include <deque>
7#include <condition_variable>
8#include <mutex>
9#include <atomic>
10
11
12namespace rsimpl
13{
15 {
16 virtual ~frame_interface() {}
19 virtual unsigned long long get_frame_number() const = 0;
20 virtual void set_timestamp(double new_ts) = 0;
22 virtual rs_stream get_stream_type()const = 0;
23 };
24
25
27 public:
32 size_t size();
33
34 private:
35 std::deque<rs_timestamp_data> data_queue;
36 std::mutex mtx;
37
38 };
39
41 public:
43 virtual void on_timestamp(rs_timestamp_data data) = 0;
45 virtual void release() = 0;
46 };
47
48
50 public:
51 timestamp_corrector(std::atomic<uint32_t>* event_queue_size, std::atomic<uint32_t>* events_timeout);
53 void on_timestamp(rs_timestamp_data data) override;
55 void release() override {delete this;}
56
57 private:
58 void update_source_id(rs_event_source& source_id, const rs_stream stream);
59
60 std::mutex mtx;
62 std::condition_variable cv;
63 std::atomic<uint32_t>* event_queue_size;
64 std::atomic<uint32_t>* events_timeout;
65
66 };
67
68
69
70} // namespace rsimpl
71#endif // LIBREALSENSE_TIMESTAMPS_H
Definition: timestamps.h:26
bool correct(frame_interface &frame)
void push_back_data(rs_timestamp_data data)
bool erase(rs_timestamp_data data)
Definition: timestamps.h:40
virtual ~timestamp_corrector_interface()
Definition: timestamps.h:42
virtual void on_timestamp(rs_timestamp_data data)=0
virtual void correct_timestamp(frame_interface &frame, rs_stream stream)=0
Definition: timestamps.h:49
timestamp_corrector(std::atomic< uint32_t > *event_queue_size, std::atomic< uint32_t > *events_timeout)
void on_timestamp(rs_timestamp_data data) override
void correct_timestamp(frame_interface &frame, rs_stream stream) override
void release() override
Definition: timestamps.h:55
frame_metadata
Types of value provided from the device with each frame.
Definition: rs.hpp:161
timestamp_domain
Specifies the clock in relation to which the frame timestamp was measured.
Definition: rs.hpp:243
stream
Streams are different types of data provided by RealSense devices.
Definition: rs.hpp:25
Definition: archive.h:13
rs_stream
Streams are different types of data provided by RealSense devices.
Definition: rs.h:34
rs_frame_metadata
Types of value provided from the device with each frame.
Definition: rs.h:204
rs_event_source
Source device that triggered a specific timestamp event from the motion module.
Definition: rs.h:277
@ RS_EVENT_SOURCE_COUNT
Definition: rs.h:285
rs_timestamp_domain
Specifies the clock in relation to which the frame timestamp was measured.
Definition: rs.h:293
Timestamp data from the motion microcontroller.
Definition: rs.h:340
Definition: timestamps.h:15
virtual rs_stream get_stream_type() const =0
virtual void set_timestamp_domain(rs_timestamp_domain timestamp_domain)=0
virtual unsigned long long get_frame_number() const =0
virtual void set_timestamp(double new_ts)=0
virtual ~frame_interface()
Definition: timestamps.h:16
virtual double get_frame_metadata(rs_frame_metadata frame_metadata) const =0
virtual bool supports_frame_metadata(rs_frame_metadata frame_metadata) const =0