Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
ds5-timestamp.h
Go to the documentation of this file.
1 // License: Apache 2.0. See LICENSE file in root directory.
2 // Copyright(c) 2015 Intel Corporation. All Rights Reserved.
3 
4 #pragma once
5 
6 #include "ds5-private.h"
7 
8 #include "algo.h"
9 #include "error-handling.h"
10 
11 namespace librealsense
12 {
14  {
15  std::unique_ptr<frame_timestamp_reader> _backup_timestamp_reader;
16  static const int pins = 2;
17  std::vector<std::atomic<bool>> _has_metadata;
18  bool one_time_note;
19  mutable std::recursive_mutex _mtx;
20 
21  public:
22  ds5_timestamp_reader_from_metadata(std::unique_ptr<frame_timestamp_reader> backup_timestamp_reader);
23 
24  bool has_metadata(const request_mapping& mode, const void * metadata, size_t metadata_size);
25 
27 
28  unsigned long long get_frame_counter(const request_mapping & mode, const platform::frame_object& fo) const override;
29 
30  void reset() override;
31 
33  };
34 
36  {
37  static const int pins = 2;
38  mutable std::vector<int64_t> counter;
39  std::shared_ptr<platform::time_service> _ts;
40  mutable std::recursive_mutex _mtx;
41  public:
42  ds5_timestamp_reader(std::shared_ptr<platform::time_service> ts);
43 
44  void reset() override;
45 
47 
48  unsigned long long get_frame_counter(const request_mapping & mode, const platform::frame_object& fo) const override;
49 
51  };
52 
54  {
55  static const int sensors = 2;
56  bool started;
57  mutable std::vector<int64_t> counter;
58  mutable std::recursive_mutex _mtx;
59  public:
61 
62  void reset() override;
63 
65 
66  bool has_metadata(const request_mapping& mode, const void * metadata, size_t metadata_size) const;
67 
68  unsigned long long get_frame_counter(const request_mapping & mode, const platform::frame_object& fo) const override;
69 
71  };
72 
74  {
75  static const int sensors = 4; // TODO: implement frame-counter for each GPIO or
76  // reading counter field report
77  mutable std::vector<int64_t> counter;
78  mutable std::recursive_mutex _mtx;
79  public:
81 
82  void reset() override;
83 
85 
86  bool has_metadata(const request_mapping& mode, const void * metadata, size_t metadata_size) const;
87 
88  unsigned long long get_frame_counter(const request_mapping & mode, const platform::frame_object& fo) const override;
89 
91  };
92 }
rs2_timestamp_domain get_frame_timestamp_domain(const request_mapping &mode, const platform::frame_object &fo) const override
bool has_metadata(const request_mapping &mode, const void *metadata, size_t metadata_size)
Definition: ds5-timestamp.h:53
unsigned long long get_frame_counter(const request_mapping &mode, const platform::frame_object &fo) const override
Definition: algo.h:16
ds5_timestamp_reader_from_metadata(std::unique_ptr< frame_timestamp_reader > backup_timestamp_reader)
Definition: backend.h:167
Definition: ds5-timestamp.h:73
rs2_time_t get_frame_timestamp(const request_mapping &mode, const platform::frame_object &fo) override
Definition: ds5-timestamp.h:35
double rs2_time_t
Definition: rs_types.h:179
Definition: sensor.h:112
Definition: types.h:606
rs2_timestamp_domain
Specifies the clock in relation to which the frame timestamp was measured.
Definition: rs_frame.h:19