Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
|
▼Nroc | Root namespace |
►Naddress | URIs and addresses |
CEndpointUri | Network endpoint URI |
Cendpoint_uri_to_str | Convert EndpointUri to string |
CIoUri | Audio file or device URI |
Cio_uri_to_str | Convert IoUri to string |
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 |
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 |
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 |
Cchannel_set_to_str | Format ChannelSet to string |
CChannelPositionName | Defines string name for channel position |
CChannelMaskName | Defines string name for pre-defined channel mask |
CChannelMapRule | Defines multiplication coefficient for a pair of channels |
CChannelMapTable | Defines multiplication matrix for two channel masks |
CChannelOrderTable | Defines ordered list of channels |
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 |
CFreqEstimatorConfig | FreqEstimator tunable parameters |
CFreqEstimator | Evaluates sender's frequency to receivers's frequency ratio |
CIFrameDecoder | Audio frame decoder interface |
CIFrameEncoder | Audio frame encoder interface |
CIFrameReader | Frame reader interface |
CIFrameWriter | Frame writer interface |
CIResampler | Audio writer interface |
CLatencyMonitor | Latency monitor |
CLatencyConfig | Latency settings |
CLatencyMetrics | Latency-related metrics |
CLatencyTuner | Latency tuner |
CMixer | Mixer. Mixes multiple input streams into one output stream |
CNullWriter | Null writer |
CPacketizerMetrics | Metrics of packetizer |
CPacketizer | Packetizer |
CPcmDecoder | PCM decoder |
CPcmEncoder | PCM encoder |
CPcmTraits | PCM format meta-information |
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 |
CProfilerConfig | Profiler Configuration Parameters. Controls profiling interval and duration of each circular buffer chunk |
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 |
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 |
CSampleSpec | Sample specification. Describes sample rate and channels |
Csample_spec_to_str | Format SampleSpec to string |
CSpeexResampler | Speex resampler |
CWatchdogConfig | Watchdog parameters |
CWatchdog | Watchdog |
►Ncore | General-purpose building blocks and platform abstraction layer |
CAlignMax | Maximum aligned data unit |
CAlignOps | Alignment operations |
CAlignedStorage | Fixed-size maximum-aligned storage |
CArenaAllocation | Allocation policy for objects allocated using IArena |
CPoolAllocation | Allocation policy for objects allocated using IPool |
CCustomAllocation | Allocation policy for objects with custom deallocation function |
CManualAllocation | Allocation policy for objects that does not have automatic deallocation |
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 |
CBuffer | Fixed-size dynamically-allocated byte buffer |
CCsvEntry | CSV entry. Corresponds to one line in output file |
CCsvConfig | CSV write configuration |
CCsvDumper | Asynchronous CSV dumper. Writes entries to CSV file from background thread. Recommended to be used from a single thread |
CEndianOps | Endian operations |
CGlobalDestructor | Allows to determine if global library destruction was initiated |
CHashmap | Intrusive hash table |
►CHashmapImpl | Intrusive hash table internal implementation |
CBucket | Bucket container |
CHashmapData | Hashmap node internal data |
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 |
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 |
CListData | List node internal data |
CListNode | Base class for List element |
CLogMessage | Log message |
CLogger | Logger |
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 |
CMpscQueueImpl | Multi-producer single-consumer queue internal implementation class |
CMpscQueueData | MpscQueue node internal data |
CMpscQueueNode | Base class for MpscQueue element |
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 |
COptional | Optionally constructed object |
CSharedPtr | Shared ownership intrusive pointer |
CRefCountedOwnership | Reference counted object ownership |
CNoOwnership | No ownership |
CPrinter | Printer |
CRateLimiter | Rate limiter |
CRefCounted | Base class for object with reference counter |
CRefCountedImpl | Implementation class for reference counter |
CRingQueue | Queue on continuous memory buffer |
CScopedLock | RAII mutex lock |
CScopedPtr | Unique ownrship pointer |
CSeqlock | Seqlock |
CSeqlockImpl | Seqlock implementation class |
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 |
CLogBackend | Log backend |
CAtomicOps | Atomic operations. This wrapper exists because on non-C11 compilers we use another implementation |
CSemaphore | Semaphore |
CCond | Condition variable |
CCrashHandler | Crash handler |
Cerrno_to_str | Convert errno to string |
CMutex | Mutex |
CSingleton | Singleton |
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 |
CIControlTaskExecutor | Control task executor interface |
CControlTaskExecutor | Control task executor |
CControlTaskQueue | Control task queue |
CIControlTaskCompleter | Control task completion handler |
Nerror | Error codes |
►Nfec | FEC support |
CCodecConfig | FEC codec parameters |
CCodecMap | FEC codec map |
CComposer | FECFRAME packet composer |
CLDPC_Source_PayloadID | LDPC-Staircase Source FEC Payload ID |
CLDPC_Repair_PayloadID | LDPC-Staircase Repair FEC Payload ID |
CRS8M_PayloadID | Reed-Solomon Source or Repair Payload ID (for m=8) |
CIBlockDecoder | FEC block decoder interface |
CIBlockEncoder | FEC block encoder interface |
CParser | FECFRAME packet parser |
CReaderConfig | FEC reader parameters |
CReader | FEC reader |
COpenfecDecoder | Decoder implementation using OpenFEC library |
COpenfecEncoder | Encoder implementation using OpenFEC library |
CWriterConfig | FEC writer parameters |
CWriter | FEC writer |
►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 |
CTcpConnectionConfig | TCP connection parameters |
CTcpClientConfig | TCP connection parameters |
CTcpConnectionPort | TCP connection port |
CTcpServerConfig | TCP server parameters |
CTcpServerPort | TCP server |
CUdpConfig | UDP port parameters |
CUdpPort | UDP sender/receiver port |
CSocketOpts | Socket options |
►Nnode | High-level sender and receiver nodes |
CContextConfig | Node context config |
CContext | Node context |
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 |
CLinkMetrics | Link metrics |
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 |
CPacket | Packet |
CPacketFactory | Packet factory |
Cpacket_flags_to_str | Format packet flags to string |
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 |
CSenderSinkConfig | Parameters of sender sink and sender session |
CSenderSlotConfig | Parameters of sender slot |
CReceiverCommonConfig | Parameters common for all receiver sessions |
CReceiverSessionConfig | Parameters of receiver session |
CReceiverSourceConfig | Parameters of receiver session |
CReceiverSlotConfig | Parameters of receiver slot |
CTranscoderConfig | Converter parameters |
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 |
CSenderParticipantMetrics | Sender-side metrics specific to one participant (remote receiver) |
CSenderSlotMetrics | Sender-side metrics of the whole slot |
CReceiverParticipantMetrics | Receiver-side metrics specific to one participant (remote sender) |
CReceiverSlotMetrics | Receiver-side metrics of the whole slot |
CPipelineLoopConfig | Pipeline loop task processing parameters |
►CPipelineLoop | Base class for task-based pipelines |
CStats | Task processing statistics |
CPipelineTask | Base class for pipeline tasks |
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 |
CReceiverSession | Receiver session sub-pipeline |
CReceiverSessionGroup | Receiver session group |
CReceiverSessionRouter | Receiver session router |
CReceiverSlot | Receiver slot |
CReceiverSource | Receiver source pipeline |
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 |
CSenderSession | Sender session sub-pipeline |
CSenderSink | Sender sink pipeline |
CSenderSlot | Sender slot |
CStateTracker | Pipeline state tracker |
CTranscoderSink | Transcoder sink pipeline |
CTranscoderSource | Transcoder source pipeline |
►Nrtcp | RTCP protocol support |
►Nheader | |
CPacketHeader | RTCP packet header, common for all RTCP packet types |
CNtpTimestamp64 | 64-bit NTP timestamp |
CNtpTimestamp32 | 32-bit NTP absolute time (stored as middle 32 bits of 64-bit timestamp) |
CReceptionReportBlock | Reception report block |
CReceiverReportPacket | Receiver Report RTCP packet (RR) |
CSenderReportPacket | Sender Report RTCP packet (SR) |
CSdesChunkHeader | SDES chunk header |
CSdesItemHeader | SDES item header |
CSdesPacket | Source Description RTCP packet (SDES) |
CByeSourceHeader | BYE source header |
CByeReasonHeader | BYE reason header |
CByePacket | Goodbye RTCP packet (BYE) |
CXrPacket | RTCP Extended Report Packet |
CXrBlockHeader | XR Block Header |
CXrRrtrBlock | XR Receiver Reference Time Report block |
CXrDlrrSubblock | XR DLRR Report sub-block |
CXrDlrrBlock | XR DLRR Report block |
CXrMeasurementInfoBlock | XR Measurement Info Report Block |
CXrDelayMetricsBlock | XR Delay Metrics Block |
CXrQueueMetricsBlock | XR Queue Metrics 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 |
CReporter | RTCP report processor and generator |
CSendReport | Sender report, for inspection on receiver |
CRecvReport | Receiver report, for inspection on sender |
CRttConfig | Round-trip time metrics |
CRttMetrics | 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 |
CSdesChunk | Parsed SDES chunk |
CSdesItem | Parsed SDES item |
►CSdesTraverser | SDES packet traverer |
CIterator | Packet iterator |
►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 |
CFilterConfig | RTP filter parameters |
CFilter | RTP filter |
CHeader | RTP header |
CExtentionHeader | RTP extension 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 |
CPump | Audio pump |
CPulseaudioBackend | Pulseaudio backend |
CPulseaudioDevice | PulseAudio device. Can be either source or sink depending on constructor parameter |
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 |
Nstatus |