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

Sender and receiver processing pipelines. More...

Classes

struct  SenderSinkConfig
 Parameters of sender sink and sender session. More...
 
struct  SenderSlotConfig
 Parameters of sender slot. More...
 
struct  ReceiverCommonConfig
 Parameters common for all receiver sessions. More...
 
struct  ReceiverSessionConfig
 Parameters of receiver session. More...
 
struct  ReceiverSourceConfig
 Parameters of receiver session. More...
 
struct  ReceiverSlotConfig
 Parameters of receiver slot. More...
 
struct  TranscoderConfig
 Converter parameters. More...
 
class  IPipelineTaskCompleter
 Pipeline task completion handler. More...
 
class  IPipelineTaskScheduler
 Pipeline task scheduler interface. PipelineLoop uses this interface to schedule asynchronous work. Method calls may come from different threads, but are serialized. More...
 
struct  SenderParticipantMetrics
 Sender-side metrics specific to one participant (remote receiver). More...
 
struct  SenderSlotMetrics
 Sender-side metrics of the whole slot. More...
 
struct  ReceiverParticipantMetrics
 Receiver-side metrics specific to one participant (remote sender). More...
 
struct  ReceiverSlotMetrics
 Receiver-side metrics of the whole slot. More...
 
struct  PipelineLoopConfig
 Pipeline loop task processing parameters. More...
 
class  PipelineLoop
 Base class for task-based pipelines. More...
 
class  PipelineTask
 Base class for pipeline tasks. More...
 
class  ReceiverEndpoint
 Receiver endpoint sub-pipeline. More...
 
class  ReceiverLoop
 Receiver pipeline loop. More...
 
class  ReceiverSession
 Receiver session sub-pipeline. More...
 
class  ReceiverSessionGroup
 Receiver session group. More...
 
class  ReceiverSessionRouter
 Receiver session router. More...
 
class  ReceiverSlot
 Receiver slot. More...
 
class  ReceiverSource
 Receiver source pipeline. More...
 
class  SenderEndpoint
 Sender endpoint sub-pipeline. More...
 
class  SenderLoop
 Sender pipeline loop. More...
 
class  SenderSession
 Sender session sub-pipeline. More...
 
class  SenderSink
 Sender sink pipeline. More...
 
class  SenderSlot
 Sender slot. More...
 
class  StateTracker
 Pipeline state tracker. More...
 
class  TranscoderSink
 Transcoder sink pipeline. More...
 
class  TranscoderSource
 Transcoder source pipeline. More...
 

Functions

bool validate_endpoint (address::Interface iface, address::Protocol proto)
 Validate endpoint type and protocol. More...
 
bool validate_endpoint_and_pipeline_consistency (packet::FecScheme pipeline_fec_scheme, address::Interface iface, address::Protocol proto)
 Validate consistency of the endpoint and the pipeline FEC scheme. More...
 
bool validate_endpoint_pair_consistency (address::Protocol source_proto, address::Protocol repair_proto)
 Validate consistency of the two endpoints. More...
 

Variables

const size_t DefaultSampleRate = 44100
 Default sample rate, number of samples per second. More...
 
const core::nanoseconds_t DefaultPacketLength = 5 * core::Millisecond
 Default packet length. More...
 
const core::nanoseconds_t DefaultLatency = 200 * core::Millisecond
 Default latency. More...
 

Detailed Description

Sender and receiver processing pipelines.

Function Documentation

◆ validate_endpoint()

bool roc::pipeline::validate_endpoint ( address::Interface  iface,
address::Protocol  proto 
)

Validate endpoint type and protocol.

◆ validate_endpoint_and_pipeline_consistency()

bool roc::pipeline::validate_endpoint_and_pipeline_consistency ( packet::FecScheme  pipeline_fec_scheme,
address::Interface  iface,
address::Protocol  proto 
)

Validate consistency of the endpoint and the pipeline FEC scheme.

◆ validate_endpoint_pair_consistency()

bool roc::pipeline::validate_endpoint_pair_consistency ( address::Protocol  source_proto,
address::Protocol  repair_proto 
)

Validate consistency of the two endpoints.

Variable Documentation

◆ DefaultLatency

const core::nanoseconds_t roc::pipeline::DefaultLatency = 200 * core::Millisecond

Default latency.

Remarks
200ms works well on majority Wi-Fi networks and is not too annoying. However, many networks allow lower latencies, and some networks require higher.

Definition at line 55 of file config.h.

◆ DefaultPacketLength

const core::nanoseconds_t roc::pipeline::DefaultPacketLength = 5 * core::Millisecond

Default packet length.

Remarks
5ms works well on majority Wi-Fi networks and allows rather low latencies. However, a lower length may be required depending on network MTU, e.g. for Internet.

Definition at line 49 of file config.h.

◆ DefaultSampleRate

const size_t roc::pipeline::DefaultSampleRate = 44100

Default sample rate, number of samples per second.

Definition at line 36 of file config.h.