4#ifndef LIBREALSENSE_RS2_PIPELINE_HPP
5#define LIBREALSENSE_RS2_PIPELINE_HPP
31 std::vector<stream_profile> results;
34 std::shared_ptr<rs2_stream_profile_list> list(
42 for (
auto i = 0; i < size; i++)
46 results.push_back(profile);
64 if (s.stream_type() == stream_type && (stream_index == -1 || s.stream_index() == stream_index))
69 throw std::runtime_error(
"Profile does not contain the requested stream");
86 std::shared_ptr<rs2_device> dev(
100 operator bool()
const
102 return _pipeline_profile !=
nullptr;
105 explicit operator std::shared_ptr<rs2_pipeline_profile>() {
return _pipeline_profile; }
107 _pipeline_profile(profile){}
110 std::shared_ptr<rs2_pipeline_profile> _pipeline_profile;
130 _config = std::shared_ptr<rs2_config>(
185 enable_stream(stream_type, -1, width, height, format, framerate);
210 enable_stream(stream_type, stream_index, 0, 0, format, framerate);
317 auto profile = std::shared_ptr<rs2_pipeline_profile>(
340 std::shared_ptr<rs2_config>
get()
const
344 explicit operator std::shared_ptr<rs2_config>()
const
349 config(std::shared_ptr<rs2_config> cfg) : _config(cfg) {}
351 std::shared_ptr<rs2_config> _config;
375 _pipeline = std::shared_ptr<rs2_pipeline>(
395 auto p = std::shared_ptr<rs2_pipeline_profile>(
424 auto p = std::shared_ptr<rs2_pipeline_profile>(
445 auto p = std::shared_ptr<rs2_pipeline_profile>(
473 auto p = std::shared_ptr<rs2_pipeline_profile>(
549 throw std::invalid_argument(
"null frameset");
564 throw std::invalid_argument(
"null frameset");
586 auto p = std::shared_ptr<rs2_pipeline_profile>(
594 operator std::shared_ptr<rs2_pipeline>()
const
598 explicit pipeline(std::shared_ptr<rs2_pipeline> ptr) : _pipeline(ptr) {}
601 std::shared_ptr<rs2_pipeline> _pipeline;
config(std::shared_ptr< rs2_config > cfg)
Definition rs_pipeline.hpp:349
std::shared_ptr< rs2_config > get() const
Definition rs_pipeline.hpp:340
bool can_resolve(std::shared_ptr< rs2_pipeline > p) const
Definition rs_pipeline.hpp:332
void enable_stream(rs2_stream stream_type, int stream_index=-1)
Definition rs_pipeline.hpp:169
void enable_device(const std::string &serial)
Definition rs_pipeline.hpp:234
void enable_device_from_file(const std::string &file_name, bool repeat_playback=true)
Definition rs_pipeline.hpp:249
void enable_stream(rs2_stream stream_type, int stream_index, int width, int height, rs2_format format=RS2_FORMAT_ANY, int framerate=0)
Definition rs_pipeline.hpp:156
void enable_stream(rs2_stream stream_type, rs2_format format, int framerate=0)
Definition rs_pipeline.hpp:195
void enable_record_to_file(const std::string &file_name)
Definition rs_pipeline.hpp:263
config()
Definition rs_pipeline.hpp:127
void disable_stream(rs2_stream stream, int index=-1)
Definition rs_pipeline.hpp:277
void disable_all_streams()
Definition rs_pipeline.hpp:289
void enable_stream(rs2_stream stream_type, int width, int height, rs2_format format=RS2_FORMAT_ANY, int framerate=0)
Definition rs_pipeline.hpp:183
void enable_all_streams()
Definition rs_pipeline.hpp:219
void enable_stream(rs2_stream stream_type, int stream_index, rs2_format format, int framerate=0)
Definition rs_pipeline.hpp:208
pipeline_profile resolve(std::shared_ptr< rs2_pipeline > p) const
Definition rs_pipeline.hpp:314
Definition rs_context.hpp:97
Definition rs_device.hpp:20
const std::shared_ptr< rs2_device > & get() const
Definition rs_device.hpp:162
static void handle(rs2_error *e)
Definition rs_types.hpp:162
Definition rs_frame.hpp:1181
Definition rs_frame.hpp:346
Definition rs_frame.hpp:958
Definition rs_pipeline.hpp:19
friend class config
Definition rs_pipeline.hpp:111
friend class pipeline
Definition rs_pipeline.hpp:112
pipeline_profile()
Definition rs_pipeline.hpp:22
std::vector< stream_profile > get_streams() const
Definition rs_pipeline.hpp:29
pipeline_profile(std::shared_ptr< rs2_pipeline_profile > profile)
Definition rs_pipeline.hpp:106
stream_profile get_stream(rs2_stream stream_type, int stream_index=-1) const
Definition rs_pipeline.hpp:60
device get_device() const
Definition rs_pipeline.hpp:83
Definition rs_pipeline.hpp:363
void set_device(rs2::device *device)
Definition rs_pipeline.hpp:500
void stop()
Definition rs_pipeline.hpp:488
pipeline(std::shared_ptr< rs2_pipeline > ptr)
Definition rs_pipeline.hpp:598
pipeline_profile start(const config &config, S callback)
Definition rs_pipeline.hpp:470
friend class config
Definition rs_pipeline.hpp:602
pipeline_profile get_active_profile() const
Definition rs_pipeline.hpp:583
pipeline_profile start()
Definition rs_pipeline.hpp:392
bool poll_for_frames(frameset *f) const
Definition rs_pipeline.hpp:545
pipeline_profile start(const config &config)
Definition rs_pipeline.hpp:421
pipeline(context ctx=context())
Definition rs_pipeline.hpp:372
bool try_wait_for_frames(frameset *f, unsigned int timeout_ms=RS2_DEFAULT_TIMEOUT) const
Definition rs_pipeline.hpp:560
frameset wait_for_frames(unsigned int timeout_ms=RS2_DEFAULT_TIMEOUT) const
Definition rs_pipeline.hpp:522
pipeline_profile start(S callback)
Definition rs_pipeline.hpp:442
Definition rs_frame.hpp:23
Definition rs_processing_gl.hpp:13
void rs2_config_enable_stream(rs2_config *config, rs2_stream stream, int index, int width, int height, rs2_format format, int framerate, rs2_error **error)
void rs2_delete_config(rs2_config *config)
rs2_pipeline_profile * rs2_config_resolve(rs2_config *config, rs2_pipeline *pipe, rs2_error **error)
int rs2_config_can_resolve(rs2_config *config, rs2_pipeline *pipe, rs2_error **error)
void rs2_config_disable_indexed_stream(rs2_config *config, rs2_stream stream, int index, rs2_error **error)
void rs2_config_enable_device(rs2_config *config, const char *serial, rs2_error **error)
#define RS2_DEFAULT_TIMEOUT
Definition rs_config.h:13
void rs2_config_enable_device_from_file_repeat_option(rs2_config *config, const char *file, int repeat_playback, rs2_error **error)
void rs2_config_disable_all_streams(rs2_config *config, rs2_error **error)
rs2_config * rs2_create_config(rs2_error **error)
void rs2_config_enable_record_to_file(rs2_config *config, const char *file, rs2_error **error)
void rs2_config_enable_all_stream(rs2_config *config, rs2_error **error)
void rs2_delete_device(rs2_device *device)
rs2_pipeline_profile * rs2_pipeline_start_with_config_and_callback_cpp(rs2_pipeline *pipe, rs2_config *config, rs2_frame_callback *callback, rs2_error **error)
void rs2_delete_pipeline(rs2_pipeline *pipe)
void rs2_delete_pipeline_profile(rs2_pipeline_profile *profile)
rs2_pipeline_profile * rs2_pipeline_start_with_callback_cpp(rs2_pipeline *pipe, rs2_frame_callback *callback, rs2_error **error)
rs2_stream_profile_list * rs2_pipeline_profile_get_streams(rs2_pipeline_profile *profile, rs2_error **error)
rs2_pipeline_profile * rs2_pipeline_start(rs2_pipeline *pipe, rs2_error **error)
rs2_pipeline_profile * rs2_pipeline_start_with_config(rs2_pipeline *pipe, rs2_config *config, rs2_error **error)
void rs2_pipeline_set_device(rs2_pipeline *pipe, rs2_device *device, rs2_error **error)
rs2_pipeline * rs2_create_pipeline(rs2_context *ctx, rs2_error **error)
rs2_pipeline_profile * rs2_pipeline_get_active_profile(rs2_pipeline *pipe, rs2_error **error)
rs2_device * rs2_pipeline_profile_get_device(rs2_pipeline_profile *profile, rs2_error **error)
rs2_frame * rs2_pipeline_wait_for_frames(rs2_pipeline *pipe, unsigned int timeout_ms, rs2_error **error)
int rs2_pipeline_try_wait_for_frames(rs2_pipeline *pipe, rs2_frame **output_frame, unsigned int timeout_ms, rs2_error **error)
void rs2_pipeline_stop(rs2_pipeline *pipe, rs2_error **error)
int rs2_pipeline_poll_for_frames(rs2_pipeline *pipe, rs2_frame **output_frame, rs2_error **error)
rs2_stream
Streams are different types of data provided by RealSense devices.
Definition rs_sensor.h:44
const rs2_stream_profile * rs2_get_stream_profile(const rs2_stream_profile_list *list, int index, rs2_error **error)
void rs2_delete_stream_profiles_list(rs2_stream_profile_list *list)
int rs2_get_stream_profiles_count(const rs2_stream_profile_list *list, rs2_error **error)
rs2_format
A stream's format identifies how binary data is encoded within a frame.
Definition rs_sensor.h:62
@ RS2_FORMAT_ANY
Definition rs_sensor.h:63
struct rs2_error rs2_error
Definition rs_types.h:230
struct rs2_frame rs2_frame
Definition rs_types.h:233