aggregator.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 #pragma once
4 
7 #include <vector>
8 #include <memory>
9 #include <map>
10 #include <mutex>
11 #include <atomic>
12 
13 
14 namespace librealsense
15 {
16  class synthetic_source_interface;
17  class frame_holder;
18 
19  namespace pipeline
20  {
22  {
23  std::mutex _mutex;
24  std::map<int /*stream_id*/, frame_holder> _last_set;
25  std::unique_ptr<single_consumer_frame_queue<frame_holder>> _queue;
26  std::vector<int> _streams_to_aggregate_ids;
27  std::vector<int> _streams_to_sync_ids;
28  std::atomic<bool> _accepting;
30  public:
31  aggregator(const std::vector<int>& streams_to_aggregate, const std::vector<int>& streams_to_sync);
32  bool dequeue(frame_holder* item, unsigned int timeout_ms);
33  bool try_dequeue(frame_holder* item);
34  void start();
35  void stop();
36  };
37  }
38 }
librealsense
Definition: algo.h:18
concurrency.h
librealsense::pipeline::aggregator::_queue
std::unique_ptr< single_consumer_frame_queue< frame_holder > > _queue
Definition: aggregator.h:25
librealsense::synthetic_source_interface
Definition: synthetic-source-interface.h:29
librealsense::pipeline::aggregator::stop
void stop()
Definition: aggregator.cpp:118
librealsense::pipeline::aggregator::try_dequeue
bool try_dequeue(frame_holder *item)
Definition: aggregator.cpp:108
librealsense::pipeline::aggregator::_streams_to_sync_ids
std::vector< int > _streams_to_sync_ids
Definition: aggregator.h:27
synthetic-stream.h
librealsense::frame_holder
Definition: frame-holder.h:15
librealsense::pipeline::aggregator::_last_set
std::map< int, frame_holder > _last_set
Definition: aggregator.h:24
librealsense::pipeline::aggregator::start
void start()
Definition: aggregator.cpp:113
librealsense::pipeline::aggregator::aggregator
aggregator(const std::vector< int > &streams_to_aggregate, const std::vector< int > &streams_to_sync)
Definition: aggregator.cpp:14
source
GLsizei GLsizei GLchar * source
Definition: glad/glad/glad.h:2828
librealsense::frame
Definition: frame.h:19
librealsense::pipeline::aggregator::dequeue
bool dequeue(frame_holder *item, unsigned int timeout_ms)
Definition: aggregator.cpp:103
test-d405-calibration-stream.pipeline
pipeline
Definition: test-d405-calibration-stream.py:21
librealsense::pipeline::aggregator::_streams_to_aggregate_ids
std::vector< int > _streams_to_aggregate_ids
Definition: aggregator.h:26
librealsense::pipeline::aggregator
Definition: aggregator.h:21
librealsense::pipeline::aggregator::_mutex
std::mutex _mutex
Definition: aggregator.h:23
librealsense::processing_block
Definition: synthetic-stream.h:53
librealsense::pipeline::aggregator::_accepting
std::atomic< bool > _accepting
Definition: aggregator.h:28
librealsense::pipeline::aggregator::handle_frame
void handle_frame(frame_holder frame, synthetic_source_interface *source)
Definition: aggregator.cpp:26


librealsense2
Author(s): LibRealSense ROS Team
autogenerated on Mon Apr 22 2024 02:12:54