src
pipeline
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
5
#include "
proc/synthetic-stream.h
"
6
#include <
rsutils/concurrency/concurrency.h
>
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
{
21
class
aggregator
:
public
processing_block
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
;
29
void
handle_frame
(
frame_holder
frame
,
synthetic_source_interface
*
source
);
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 Fri Aug 2 2024 08:30:00