![]() |
Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
|
▼Nroc | Root namespace |
►Naddress | URIs and addresses |
Cendpoint_uri_to_str | Convert EndpointUri to string |
CEndpointUri | Network endpoint URI |
Cio_uri_to_str | Convert IoUri to string |
CIoUri | Audio file or device URI |
CProtocolAttrs | Protocol attributes |
CProtocolMap | Protocol attributes map |
Csocket_addr_to_str | Convert network address to string |
CSocketAddr | Socket address |
►Naudio | Audio frames and audio processing |
CBuiltinResampler | Built-in resampler |
Cchannel_set_to_str | Format ChannelSet to string |
CChannelMapper | Channel mapper |
CChannelMapperMatrix | Channel mapping matrix |
CChannelMapperReader | Channel mapper reader. Reads frames from nested reader and maps them to another channel mask |
CChannelMapperWriter | Channel mapper writer. Reads frames from nested writer and maps them to another channel mask |
CChannelMapRule | Defines multiplication coefficient for a pair of channels |
CChannelMapTable | Defines multiplication matrix for two channel masks |
CChannelMaskName | Defines string name for pre-defined channel mask |
CChannelOrderTable | Defines ordered list of channels |
CChannelPositionName | Defines string name for channel position |
CChannelSet | Channel set. Multi-word bitmask with bits corresponding to enabled channels. Meaning of each channel is defined by ChannelLayout. Order of serialized channels is defined by ChannelOrder |
CDecimationResampler | Decimating resampler |
CDepacketizer | Depacketizer |
CFanout | Fanout. Duplicates audio stream to multiple output writers |
CFeedbackConfig | Feedback monitor configuration |
CFeedbackMonitor | Feedback monitor |
CFrame | Audio frame |
CFrameFactory | Frame factory |
CFreqEstimator | Evaluates sender's frequency to receivers's frequency ratio |
CFreqEstimatorConfig | FreqEstimator tunable parameters |
CIFrameDecoder | Audio frame decoder interface |
CIFrameEncoder | Audio frame encoder interface |
CIFrameReader | Frame reader interface |
CIFrameWriter | Frame writer interface |
CIResampler | Audio writer interface |
CLatencyConfig | Latency settings |
CLatencyMetrics | Latency-related metrics |
CLatencyMonitor | Latency monitor |
CLatencyTuner | Latency tuner |
CMixer | Mixer. Mixes multiple input streams into one output stream |
CNullWriter | Null writer |
CPacketizer | Packetizer |
CPacketizerMetrics | Metrics of packetizer |
CPcmDecoder | PCM decoder |
CPcmEncoder | PCM encoder |
CPcmMapper | PCM format mapper. Convert between PCM formats |
CPcmMapperReader | Pcm mapper reader. Reads frames from nested reader and maps them to another pcm mask |
CPcmMapperWriter | Pcm mapper writer. Reads frames from nested writer and maps them to another pcm mask |
CPcmTraits | PCM format meta-information |
CProfiler | Profiler The role of the profiler is to report the average processing speed (# of samples processed per time unit) during the last N seconds. We want to calculate the average processing speed efficiently (with O(1) complexity, without allocations, and as lightweight as possible). The problems with this are that we have variable-sized frames and SMA requires fixed-size chunks. To efficiently perform this calculation a ring buffer is employed. The idea behind the ring buffer is that each chunk of the buffer is the average speed of 10ms worth of samples. The ring buffer is initialized with fixed size (N * 1000)ms / (10ms) chunks. Within each chunk a weighted mean is used to calculate the average speed during those 10ms. Each frame will contribute a different number of samples to each chunk, the chunk speed is then weighted based on how many samples are contributed at what frame speed. As the chunks get populated the moving average is calculated. When the buffer is not entirely full the cumulative moving average algorithm is used and once the buffer is full the simple moving average algorithm is used |
CProfilerConfig | Profiler Configuration Parameters. Controls profiling interval and duration of each circular buffer chunk |
CProfilingReader | Profiling reader |
CProfilingWriter | Profiling writer |
CResamplerConfig | Resampler config |
CResamplerMap | Factory class for IResampler objects, according to the ResamplerBackend input |
CResamplerReader | Resampler element for reading pipeline |
CResamplerWriter | Resampler element for writing pipeline |
Csample_spec_to_str | Format SampleSpec to string |
CSampleSpec | Sample specification. Describes sample rate and channels |
CSpeexResampler | Speex resampler |
CWatchdog | Watchdog |
CWatchdogConfig | Watchdog parameters |
►Ncore | General-purpose building blocks and platform abstraction layer |
CAlignedStorage | Fixed-size maximum-aligned storage |
CAlignMax | Maximum aligned data unit |
CAlignOps | Alignment operations |
CArenaAllocation | Allocation policy for objects allocated using IArena |
CArray | Dynamic array |
CAtomic | Atomic integer. Provides sequential consistency. For a fine-grained memory order control, see AtomicOps |
CAtomic< T * > | Atomic pointer. Provides sequential consistency. For a fine-grained memory order control, see AtomicOps |
CAtomicOps | Atomic operations. This wrapper exists because on non-C11 compilers we use another implementation |
CBuffer | Fixed-size dynamically-allocated byte buffer |
CCond | Condition variable |
CCrashHandler | Crash handler |
CCsvConfig | CSV write configuration |
CCsvDumper | Asynchronous CSV dumper. Writes entries to CSV file from background thread. Recommended to be used from a single thread |
CCsvEntry | CSV entry. Corresponds to one line in output file |
CCustomAllocation | Allocation policy for objects with custom deallocation function |
CEndianOps | Endian operations |
Cerrno_to_str | Convert errno to string |
CGlobalDestructor | Allows to determine if global library destruction was initiated |
CHashmap | Intrusive hash table |
CHashmapData | Hashmap node internal data |
►CHashmapImpl | Intrusive hash table internal implementation |
CBucket | Bucket container |
CHashmapNode | Base class for Hashmap element |
CHeapArena | Heap arena implementation |
CIArena | Memory arena interface |
CIPool | Memory pool interface |
CLimitedArena | Decorator around IArena to make it memory limited |
CLimitedPool | Decorator around IPool to make it memory limited |
CList | Intrusive doubly-linked list |
CListData | List node internal data |
CListImpl | Intrusive doubly-linked list implementation class. Handles List infrastructure independent of templated type for List. Ownership handling is left to the main List class |
CListNode | Base class for List element |
CLogBackend | Log backend |
CLogger | Logger |
CLogMessage | Log message |
CManualAllocation | Allocation policy for objects that does not have automatic deallocation |
CMemoryLimiter | Memory limiter. This class can be used to keep track of memory being consumed. This is done through the acquire and release methods. The class is used within classes such as LimitedPool, LimitedArena |
CMemoryOps | Memory operations |
CMovStats | Rolling window moving average and variance |
CMpscQueue | Thread-safe lock-free node-based intrusive multi-producer single-consumer queue |
CMpscQueueData | MpscQueue node internal data |
CMpscQueueImpl | Multi-producer single-consumer queue internal implementation class |
CMpscQueueNode | Base class for MpscQueue element |
CMutex | Mutex |
CNonCopyable | Base class for non-copyable objects |
CNoopArenaImpl | Arena implementation that just fails all allocations. Can be used with containers that have embedded capacity and arena, but we want them to use only embedded capacity |
CNoOwnership | No ownership |
COptional | Optionally constructed object |
CPoolAllocation | Allocation policy for objects allocated using IPool |
CPrinter | Printer |
CRateLimiter | Rate limiter |
CRefCounted | Base class for object with reference counter |
CRefCountedImpl | Implementation class for reference counter |
CRefCountedOwnership | Reference counted object ownership |
CRingQueue | Queue on continuous memory buffer |
CScopedLock | RAII mutex lock |
CScopedPtr | Unique ownrship pointer |
CSemaphore | Semaphore |
CSeqlock | Seqlock |
CSeqlockImpl | Seqlock implementation class |
CSharedPtr | Shared ownership intrusive pointer |
CSingleton | Singleton |
CSlabPool | Memory pool |
►CSlabPoolImpl | Memory pool implementation class |
CSlotHeader | Slot header |
CSlice | Slice |
CSpscByteBuffer | Thread-safe lock-free single-producer single-consumer circular buffer of byte chunks |
CSpscRingBuffer | Thread-safe lock-free single-producer single-consumer circular buffer of copyable objects |
CStringBuffer | String buffer |
CStringBuilder | String builder |
CStringList | Dynamic list of strings |
CTempFile | Temporary file |
CThread | Base class for thread objects |
CTicker | Ticker |
CTimer | Thread-safe timer |
►Nctl | Control tasks event loop |
CBasicControlEndpoint | Base class for control endpoints |
CControlInterfaceMap | Control interface map |
►CControlLoop | Control loop thread |
►CTasks | Subclasses for specific tasks |
CAttachSink | Attach sink to endpoint at given URI |
CAttachSource | Attach source to endpoint at given URI |
CBindEndpoint | Bind endpoint on local URI |
CConnectEndpoint | Connect endpoint on remote URI |
CCreateEndpoint | Create endpoint on given interface |
CDeleteEndpoint | Delete endpoint, if it exists |
CDetachSink | Detach sink from endpoint |
CDetachSource | Detach source from endpoint |
CPipelineProcessing | Process pending pipeline tasks on control thread |
CControlTask | Base class for control tasks |
CControlTaskExecutor | Control task executor |
CControlTaskQueue | Control task queue |
CIControlTaskCompleter | Control task completion handler |
CIControlTaskExecutor | Control task executor interface |
►Nfec | FEC support |
CCodecConfig | FEC codec parameters |
CCodecMap | FEC codec map |
CComposer | FECFRAME packet composer |
CIBlockDecoder | FEC block decoder interface |
CIBlockEncoder | FEC block encoder interface |
CLDPC_Repair_PayloadID | LDPC-Staircase Repair FEC Payload ID |
CLDPC_Source_PayloadID | LDPC-Staircase Source FEC Payload ID |
COpenfecDecoder | Decoder implementation using OpenFEC library |
COpenfecEncoder | Encoder implementation using OpenFEC library |
CParser | FECFRAME packet parser |
CReader | FEC reader |
CReaderConfig | FEC reader parameters |
CRS8M_PayloadID | Reed-Solomon Source or Repair Payload ID (for m=8) |
CWriter | FEC writer |
CWriterConfig | FEC writer parameters |
►Nnetio | Network I/O |
CBasicPort | Base class for ports |
CICloseHandler | Close handler interface |
CIConn | Connection interface |
CIConnAcceptor | Connection acceptor interface |
CIConnHandler | Connection event handler interface |
CINetworkTaskCompleter | Network task completion handler |
CIResolverRequestHandler | Resolver request result handler interface |
CITerminateHandler | Termination handler interface |
►CNetworkLoop | Network event loop thread |
►CTasks | Subclasses for specific tasks |
CAddTcpClientPort | Add TCP client port |
CAddTcpServerPort | Add TCP server port |
CAddUdpPort | Add UDP datagram sender/receiver port |
CRemovePort | Remove port |
CResolveEndpointAddress | Resolve endpoint address |
CStartUdpRecv | Start receiving on UDP port |
CStartUdpSend | Start sending on UDP port |
CNetworkTask | Base class for network loop tasks |
CResolver | Hostname resolver |
CResolverRequest | Resolver request |
CSocketOpts | Socket options |
CTcpClientConfig | TCP connection parameters |
CTcpConnectionConfig | TCP connection parameters |
CTcpConnectionPort | TCP connection port |
CTcpServerConfig | TCP server parameters |
CTcpServerPort | TCP server |
CUdpConfig | UDP port parameters |
CUdpPort | UDP sender/receiver port |
►Nnode | High-level sender and receiver nodes |
CContext | Node context |
CContextConfig | Node context config |
CNode | Base class for nodes |
CReceiver | Receiver node |
CReceiverDecoder | Receiver decoder node |
CSender | Sender node |
CSenderEncoder | Sender encoder node |
►Npacket | Network packets and packet processing |
CConcurrentQueue | Concurrent blocking packet queue |
CDelayedReader | Delayed reader |
CFEC | FECFRAME packet |
CIComposer | Packet composer interface |
CILinkMeter | Link meter interface |
CInterleaver | Interleaves packets to transmit them in pseudo random order |
CIParser | Packet parser interface |
CIReader | Packet reader interface |
CISequencer | Packet sequencer. Fills protocol-specific packet headers to form a continous sequence. For example, RTP sequencer fills packet seqnums and timestamps |
CIWriter | Packet writer interface |
CLinkMetrics | Link metrics |
CPacket | Packet |
Cpacket_flags_to_str | Format packet flags to string |
CPacketFactory | Packet factory |
CQueue | Packet queue |
CRouter | Route packets to packet writers |
CRTCP | RTCP compound packet |
CRTP | RTP packet |
CShipper | Prepare a packet for being sent |
CSortedQueue | Sorted packet queue |
CUDP | UDP packet |
►Npipeline | Sender and receiver processing pipelines |
CIPipelineTaskCompleter | Pipeline task completion handler |
CIPipelineTaskScheduler | Pipeline task scheduler interface. PipelineLoop uses this interface to schedule asynchronous work. Method calls may come from different threads, but are serialized |
►CPipelineLoop | Base class for task-based pipelines |
CStats | Task processing statistics |
CPipelineLoopConfig | Pipeline loop task processing parameters |
CPipelineTask | Base class for pipeline tasks |
CReceiverCommonConfig | Parameters common for all receiver sessions |
CReceiverEndpoint | Receiver endpoint sub-pipeline |
►CReceiverLoop | Receiver pipeline loop |
CTask | Base task class |
►CTasks | Subclasses for specific tasks |
CAddEndpoint | Create endpoint on given interface of the slot |
CCreateSlot | Create new slot |
CDeleteSlot | Delete existing slot |
CQuerySlot | Query slot metrics |
CReceiverParticipantMetrics | Receiver-side metrics specific to one participant (remote sender) |
CReceiverSession | Receiver session sub-pipeline |
CReceiverSessionConfig | Parameters of receiver session |
CReceiverSessionGroup | Receiver session group |
CReceiverSessionRouter | Receiver session router |
CReceiverSlot | Receiver slot |
CReceiverSlotConfig | Parameters of receiver slot |
CReceiverSlotMetrics | Receiver-side metrics of the whole slot |
CReceiverSource | Receiver source pipeline |
CReceiverSourceConfig | Parameters of receiver session |
CSenderEndpoint | Sender endpoint sub-pipeline |
►CSenderLoop | Sender pipeline loop |
CTask | Base task class |
►CTasks | Subclasses for specific tasks |
CAddEndpoint | Create endpoint on given interface of the slot |
CCreateSlot | Create new slot |
CDeleteSlot | Delete existing slot |
CQuerySlot | Query slot metrics |
CSenderParticipantMetrics | Sender-side metrics specific to one participant (remote receiver) |
CSenderSession | Sender session sub-pipeline |
CSenderSink | Sender sink pipeline |
CSenderSinkConfig | Parameters of sender sink and sender session |
CSenderSlot | Sender slot |
CSenderSlotConfig | Parameters of sender slot |
CSenderSlotMetrics | Sender-side metrics of the whole slot |
CStateTracker | Pipeline state tracker |
CTranscoderConfig | Converter parameters |
CTranscoderSink | Transcoder sink pipeline |
CTranscoderSource | Transcoder source pipeline |
►Nrtcp | RTCP protocol support |
►Nheader | |
CByePacket | Goodbye RTCP packet (BYE) |
CByeReasonHeader | BYE reason header |
CByeSourceHeader | BYE source header |
CNtpTimestamp32 | 32-bit NTP absolute time (stored as middle 32 bits of 64-bit timestamp) |
CNtpTimestamp64 | 64-bit NTP timestamp |
CPacketHeader | RTCP packet header, common for all RTCP packet types |
CReceiverReportPacket | Receiver Report RTCP packet (RR) |
CReceptionReportBlock | Reception report block |
CSdesChunkHeader | SDES chunk header |
CSdesItemHeader | SDES item header |
CSdesPacket | Source Description RTCP packet (SDES) |
CSenderReportPacket | Sender Report RTCP packet (SR) |
CXrBlockHeader | XR Block Header |
CXrDelayMetricsBlock | XR Delay Metrics Block |
CXrDlrrBlock | XR DLRR Report block |
CXrDlrrSubblock | XR DLRR Report sub-block |
CXrMeasurementInfoBlock | XR Measurement Info Report Block |
CXrPacket | RTCP Extended Report Packet |
CXrQueueMetricsBlock | XR Queue Metrics Block |
CXrRrtrBlock | XR Receiver Reference Time Report block |
CBuilder | RTCP compound packet builder |
►CByeTraverser | BYE packet traverer |
CIterator | Packet iterator |
Ccname_to_str | Get printable representation of CNAME |
CCommunicator | RTCP communicator |
CComposer | RTCP packet composer |
CConfig | RTCP config |
CIParticipant | RTCP participant |
CLossEstimator | Computes fractions loss ration since last report |
CPacketCounter | Computes number of packets in interval |
CParser | RTCP packet parser |
CParticipantInfo | Participant info |
CRecvReport | Receiver report, for inspection on sender |
CReporter | RTCP report processor and generator |
CRttConfig | Round-trip time metrics |
CRttEstimator | Round-trip time estimator. Created inside rtcp::Reporter for each RTP stream. Continously computes RTT and clock offset based on LSR/DLSR or LRR/DLRR timestamps |
CRttMetrics | Round-trip time metrics |
CSdesChunk | Parsed SDES chunk |
CSdesItem | Parsed SDES item |
►CSdesTraverser | SDES packet traverer |
CIterator | Packet iterator |
CSendReport | Sender report, for inspection on receiver |
►CTraverser | RTCP compound packet traverser |
CIterator | Packet iterator |
►CXrTraverser | XR packet traverser |
CIterator | Packet iterator |
►Nrtp | RTP protocol support |
CComposer | RTP packet composer |
CEncoding | RTP encoding |
CEncodingMap | RTP encoding map. Thread-safe. Returned encodings are immutable and can be safely used from any thread |
CExtentionHeader | RTP extension header |
CFilter | RTP filter |
CFilterConfig | RTP filter parameters |
CHeader | RTP header |
CIdentity | RTP participant identity |
CLinkMeter | RTP link meter |
CParser | RTP packet parser |
CSequencer | RTP packet sequencer |
CTimestampExtractor | Remembers a recent pair of capture timestamp and rtp ts |
CTimestampInjector | Fills capture timestamps in rtp packets |
►Nsdp | SDP protocol support |
CConnectionData | SDP connection data field |
CMediaDescription | SDP media description |
CSessionDescription | SDP session description |
►Nsndio | Sound I/O |
CBackendDispatcher | Backend dispatcher |
CBackendMap | Backend map |
CConfig | Sink and source config |
CDriverInfo | Driver information |
CIBackend | Backend interface |
CIDevice | Base interface for sinks and sources |
CISink | Sink interface |
CISource | Source interface |
CPulseaudioBackend | Pulseaudio backend |
CPulseaudioDevice | PulseAudio device. Can be either source or sink depending on constructor parameter |
CPump | Audio pump |
CSndfileBackend | Sndfile backend |
CSndfileSink | Sndfile sink |
CSndfileSource | Sndfile source |
CSoxBackend | SoX backend |
CSoxSink | SoX sink |
CSoxSource | SoX source |
CWavBackend | WAV backend |
►CWavHeader | WAV header |
CWavHeaderData | WAV header data |
CWavSink | WAV sink |
CWavSource | WAV source |
CFileMap | Sndfile driver map |