33 if (!_is_locked)
return;
49 bool _is_locked =
true;
65 typedef std::function<void(frame_holder, syncronization_environment)>
sync_callback;
72 virtual void set_callback(sync_callback f) = 0;
73 virtual const std::vector<stream_id>& get_streams()
const = 0;
74 virtual const std::vector<rs2_stream>& get_streams_types()
const = 0;
75 virtual std::string get_name()
const = 0;
81 matcher(std::vector<stream_id> streams_id = {});
83 virtual void set_callback(sync_callback f);
84 const std::vector<stream_id>& get_streams()
const override;
85 const std::vector<rs2_stream>& get_streams_types()
const override;
90 virtual std::string get_name()
const;
91 bool get_active()
const;
92 void set_active(
const bool active);
120 virtual bool skip_missing_stream(std::vector<matcher*> synced,
matcher* missing) = 0;
121 virtual void clean_inactive_streams(
frame_holder& f) = 0;
125 std::string frames_to_string(std::vector<librealsense::matcher*> matchers);
127 std::shared_ptr<matcher> find_matcher(
const frame_holder& f);
130 virtual void update_next_expected(
const frame_holder& f) = 0;
133 std::map<stream_id, std::shared_ptr<matcher>>
_matchers;
145 bool skip_missing_stream(std::vector<matcher*> synced,
matcher* missing)
override;
147 void update_next_expected(
const frame_holder& f)
override;
150 std::map<matcher*,unsigned long long> _last_arrived;
161 bool skip_missing_stream(std::vector<matcher*> synced,
matcher* missing)
override;
162 void update_next_expected(
const frame_holder & f)
override;
166 bool are_equivalent(
double a,
double b,
int fps);
167 std::map<matcher*, double> _last_arrived;
168 std::map<matcher*, unsigned int> _fps;
std::map< matcher *, double > _next_expected
Definition: sync.h:134
sync_callback _callback
Definition: sync.h:97
std::function< void(frame_holder, syncronization_environment)> sync_callback
Definition: sync.h:65
sync_lock(std::mutex &mutex)
Definition: sync.h:22
single_consumer_queue< frame_holder > & matches
Definition: sync.h:61
std::vector< rs2_stream > _streams_type
Definition: sync.h:96
std::map< stream_id, std::shared_ptr< matcher > > _matchers
Definition: sync.h:133
callbacks_heap _callback_inflight
Definition: sync.h:98
~sync_lock()
Definition: sync.h:39
void unlock_preemptively()
Definition: sync.h:27
std::string _name
Definition: sync.h:99
synthetic_source_interface * source
Definition: sync.h:59
rs2_stream
Streams are different types of data provided by RealSense devices.
Definition: rs_sensor.h:37
std::map< matcher *, rs2_timestamp_domain > _next_expected_domain
Definition: sync.h:135
Definition: concurrency.h:15
int stream_id
Definition: sync.h:17
Definition: processing.h:19
std::map< matcher *, single_consumer_queue< frame_holder > > _frames_queue
Definition: sync.h:132
std::vector< stream_id > _streams_id
Definition: sync.h:95