34 #include <sys/ioctl.h> 35 #include <linux/usb/video.h> 36 #include <linux/uvcvideo.h> 37 #include <linux/videodev2.h> 42 #pragma GCC diagnostic ignored "-Wpedantic" 43 #include "../third-party/libusb/libusb/libusb.h" 44 #pragma GCC diagnostic pop 53 named_mutex(
const std::string& device_path,
unsigned timeout);
69 void create_named_mutex(
const std::string& cam_id);
71 void destroy_named_mutex();
73 std::string _device_path;
78 static int xioctl(
int fh,
int request,
void *arg);
83 buffer(
int fd,
bool use_memory_map,
int index);
103 size_t _original_length;
104 bool _use_memory_map;
108 bool _must_enqueue =
false;
120 libusb_device*)> action);
123 const std::vector<uint8_t>& data,
124 int timeout_ms = 5000,
125 bool require_response =
true)
override;
128 libusb_context* _usb_context;
129 libusb_device* _usb_device =
nullptr;
138 const std::string&)> action);
174 std::vector<stream_profile>
get_profiles()
const override;
176 void lock()
const override;
177 void unlock()
const override;
189 std::string _device_path;
192 int _stop_pipe_fd[2];
194 std::vector<std::shared_ptr<buffer>> _buffers;
197 std::atomic<bool> _is_capturing;
198 std::atomic<bool> _is_alive;
199 std::atomic<bool> _is_started;
200 std::unique_ptr<std::thread> _thread;
201 std::unique_ptr<named_mutex> _named_mtx;
202 bool _use_memory_map;
rs2_option
Defines general configuration controls. These can generally be mapped to camera UVC controls...
Definition: rs_option.h:22