Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
Loading...
Searching...
No Matches
roc::pipeline::ReceiverSessionGroup Class Reference

Receiver session group. More...

#include <receiver_session_group.h>

Inheritance diagram for roc::pipeline::ReceiverSessionGroup:
roc::core::NonCopyable< T > roc::rtcp::IReceiverHooks

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.
 
ROC_ATTR_NODISCARD status::StatusCode route_packet (const packet::PacketPtr &packet)
 Route packet to session.
 
core::nanoseconds_t refresh_sessions (core::nanoseconds_t current_time)
 Refresh pipeline according to current time.
 
void reclock_sessions (core::nanoseconds_t playback_time)
 Adjust session clock to match consumer clock.
 
size_t num_sessions () const
 Get number of alive sessions.
 
void get_metrics (ReceiverSessionMetrics *metrics, size_t *metrics_size) const
 Get metrics for all sessions.
 

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: