Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
roc::pipeline::ReceiverSessionGroup Class Reference

Receiver session group. More...

#include <receiver_session_group.h>

Inheritance diagram for roc::pipeline::ReceiverSessionGroup:
Collaboration diagram for roc::pipeline::ReceiverSessionGroup:

Public Member Functions

 ReceiverSessionGroup (const ReceiverConfig &receiver_config, ReceiverState &receiver_state, audio::Mixer &mixer, const rtp::FormatMap &format_map, packet::PacketFactory &packet_factory, core::BufferFactory< uint8_t > &byte_buffer_factory, core::BufferFactory< audio::sample_t > &sample_buffer_factory, core::IArena &arena)
 Initialize. More...
 
ROC_ATTR_NODISCARD status::StatusCode route_packet (const packet::PacketPtr &packet)
 Route packet to session. More...
 
core::nanoseconds_t refresh_sessions (core::nanoseconds_t current_time)
 Refresh pipeline according to current time. More...
 
void reclock_sessions (core::nanoseconds_t playback_time)
 Adjust session clock to match consumer clock. More...
 
size_t num_sessions () const
 Get number of alive sessions. More...
 
void get_metrics (ReceiverSessionMetrics *metrics, size_t *metrics_size) const
 Get metrics for all sessions. More...
 

Detailed Description

Receiver session group.

Contains:

  • a set of related receiver sessions

Definition at line 33 of file receiver_session_group.h.

Constructor & Destructor Documentation

◆ ReceiverSessionGroup()

roc::pipeline::ReceiverSessionGroup::ReceiverSessionGroup ( const ReceiverConfig receiver_config,
ReceiverState receiver_state,
audio::Mixer mixer,
const rtp::FormatMap format_map,
packet::PacketFactory packet_factory,
core::BufferFactory< uint8_t > &  byte_buffer_factory,
core::BufferFactory< audio::sample_t > &  sample_buffer_factory,
core::IArena arena 
)

Initialize.

Member Function Documentation

◆ get_metrics()

void roc::pipeline::ReceiverSessionGroup::get_metrics ( ReceiverSessionMetrics metrics,
size_t *  metrics_size 
) const

Get metrics for all sessions.

Remarks
metrics defines array of metrics structs, and metrics_size defines number of array elements. Metrics are written to given array, and metrics_size is updated of actual number of elements written. If there is not enough space for all sessions, result is truncated.

◆ num_sessions()

size_t roc::pipeline::ReceiverSessionGroup::num_sessions ( ) const

Get number of alive sessions.

◆ reclock_sessions()

void roc::pipeline::ReceiverSessionGroup::reclock_sessions ( core::nanoseconds_t  playback_time)

Adjust session clock to match consumer clock.

Remarks
playback_time specified absolute time when first sample of last frame retrieved from pipeline will be actually played on sink

◆ refresh_sessions()

core::nanoseconds_t roc::pipeline::ReceiverSessionGroup::refresh_sessions ( core::nanoseconds_t  current_time)

Refresh pipeline according to current time.

Returns
deadline (absolute time) when refresh should be invoked again if there are no frames

◆ route_packet()

ROC_ATTR_NODISCARD status::StatusCode roc::pipeline::ReceiverSessionGroup::route_packet ( const packet::PacketPtr packet)

Route packet to session.


The documentation for this class was generated from the following file: