15 _streams_to_aggregate_ids(streams_to_aggregate),
16 _streams_to_sync_ids(streams_to_sync),
41 for (
auto i = 0;
i < comp->get_embedded_frames_count();
i++)
56 std::vector<frame_holder> sync_set;
58 std::vector<frame_holder> async_set;
61 sync_set.push_back(
s.second.clone());
65 async_set.push_back(
s.second.clone());
71 if (!sync_fref || !async_fref)
73 LOG_ERROR(
"Failed to allocate composite frame");
89 std::vector<frame_holder> sync_set;
91 sync_set.push_back(
s.second.clone());
96 LOG_ERROR(
"Failed to allocate composite frame");
107 return _queue->dequeue(item, timeout_ms);
112 return _queue->try_dequeue(item);
static const textual_icon lock
GLsizei GLsizei GLchar * source
virtual void frame_ready(frame_holder result)=0
bool dequeue(frame_holder *item, unsigned int timeout_ms)
std::vector< int > _streams_to_aggregate_ids
frame_holder clone() const
bool try_dequeue(frame_holder *item)
std::map< stream_id, frame_holder > _last_set
aggregator(const std::vector< int > &streams_to_aggregate, const std::vector< int > &streams_to_sync)
std::unique_ptr< single_consumer_frame_queue< frame_holder > > _queue
std::atomic< bool > _accepting
void set_processing_callback(frame_processor_callback_ptr callback) override
void handle_frame(frame_holder frame, synthetic_source_interface *source)
typename ::boost::move_detail::remove_reference< T >::type && move(T &&t) BOOST_NOEXCEPT
frame_interface * get_frame(int i) const
virtual frame_interface * allocate_composite_frame(std::vector< frame_holder > frames)=0
virtual std::shared_ptr< stream_profile_interface > get_stream() const =0
std::vector< int > _streams_to_sync_ids