![]() |
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 |
CChannelList | Defines ordered list of channels |
CChannelMap | Defines multiplication matrix for two channel masks. Instead of defining the whole matrix, it defines a list of pairs of output and input channel numbers and corresponding coefficients. Such representation allows more compact definition in the source code. The actual matrix is built by channel mapper at runtime |
CChannelMapper | Channel mapper. Converts between frames with specified channel masks |
CChannelMapperMatrix | Contain conversation coefficients while mapping surround to surround |
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 |
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 |
CFrame | Audio frame |
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 |
CLatencyMonitor | Latency monitor |
CLatencyMonitorConfig | Parameters for latency monitor |
CLatencyMonitorMetrics | Metrics of latency monitor |
CMixer | Mixer. Mixes multiple input streams into one output stream |
CNullWriter | Null writer |
CPacketizer | Packetizer |
CPcmDecoder | PCM decoder |
CPcmEncoder | PCM encoder |
CPcmFormat | PCM format description |
CPcmMapper | PCM format mapper. Convert between PCM formats |
CPcmTraits | PCM format meta-information |
CPoisonReader | Poisons audio frames before reading them |
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 |
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 buffer |
CBufferFactory | Buffer factory. Allows to instantiate fixed-size buffers |
CCond | Condition variable |
CConsole | Console |
CCrashHandler | Crash handler |
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 |
►CHashmapImpl | Intrusive hash table internal implementation |
CBucket | Bucket container |
►CHashmapNode | Base class for hashmap element |
CHashmapNodeData | Hashmap node data |
CHeapArena | Heap arena implementation |
CIArena | Memory arena interface |
CIPool | Memory pool interface |
CList | Intrusive doubly-linked list |
►CListNode | Base class for list element |
CListNodeData | List node data |
CLogBackend | Log backend |
CLogger | Logger |
CLogMessage | Log message |
CManualAllocation | Allocation policy for objects that does not have automatical deallocation |
CMemoryOps | Memory operations |
CMpscQueue | Thread-safe lock-free node-based intrusive multi-producer single-consumer queue |
CMpscQueueImpl | Multi-producer single-consumer queue internal implementation class |
►CMpscQueueNode | MpscQueue node |
CMpscQueueData | List node data |
CMutex | Mutex |
CNonCopyable | Base class for non-copyable objects |
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 |
CScopedLock | RAII mutex lock |
CScopedPtr | Unique ownrship pointer |
CSemaphore | Semaphore |
CSeqlock | Seqlock |
CSharedPtr | Shared ownership intrusive pointer |
CSingleton | Singleton |
CSlabPool | Memory pool |
►CSlabPoolImpl | Memory pool implementation class |
CSlotHeader | Slot header |
CSlice | Slice |
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 Repair FEC Payload ID |
CLDPC_Source_PayloadID | LDPC 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 |
CAddUdpReceiverPort | Add UDP datagram receiver port |
CAddUdpSenderPort | Add UDP datagram sender port |
CRemovePort | Remove port |
CResolveEndpointAddress | Resolve endpoint address |
CNetworkTask | Base class for network loop tasks |
CResolver | Hostname resolver |
CResolverRequest | Resolver request |
CSocketOptions | Socket options |
CTcpClientConfig | TCP connection parameters |
CTcpConnectionConfig | TCP connection parameters |
CTcpConnectionPort | TCP connection port |
CTcpServerConfig | TCP server parameters |
CTcpServerPort | TCP server |
CUdpReceiverConfig | UDP receiver parameters |
CUdpReceiverPort | UDP receiver |
CUdpSenderConfig | UDP sender parameters |
CUdpSenderPort | UDP sender |
►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 |
CInterleaver | Interleaves packets to transmit them in pseudo random order |
CIParser | Packet parser interface |
CIReader | Packet reader interface |
CIWriter | Packet writer interface |
CPacket | Packet |
CPacketFactory | Packet factory |
CQueue | Packet queue |
CRouter | Route packets to 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 |
CPipelineTask | Base class for pipeline tasks |
CReceiverCommonConfig | Receiver common parameters |
CReceiverConfig | Receiver parameters |
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 |
CReceiverSessionConfig | Receiver session parameters |
CReceiverSessionGroup | Receiver session group |
CReceiverSessionMetrics | Metrics of receiver session (connection from sender) |
CReceiverSlot | Receiver slot |
CReceiverSlotMetrics | Metrics of receiver slot |
CReceiverSource | Receiver source pipeline |
CReceiverState | Receiver pipeline state. Thread-safe |
CSenderConfig | Sender parameters |
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 |
CSenderSessionMetrics | Metrics of sender session (connection to receiver) |
CSenderSink | Sender sink pipeline |
CSenderSlot | Sender slot |
CSenderSlotMetrics | Metrics of sender slot |
CTaskConfig | Task processing parameters |
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 |
CNtpTimestamp | Helper to store 64-bit ntp timestamp in a common way among RTCP |
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 |
CXrDlrrBlock | XR DLRR Report block |
CXrDlrrSubblock | XR DLRR Report sub-block |
CXrPacket | RTCP Extended Report Packet |
CXrRrtrBlock | XR Receiver Reference Time Report block |
CBuilder | RTCP compound packet builder |
►CByeTraverser | BYE packet traverer |
CIterator | Packet iterator |
CComposer | RTCP packet composer |
CIReceiverHooks | Receiver hooks interface |
CISenderHooks | Sender hooks interface |
CLinkMetrics | Metrics for network link. Calculated independently on both sender and receiver |
CParser | RTCP packet parser |
CReceptionMetrics | Metrics sent from receiver to sender per source |
CSdesChunk | Parsed SDES chunk |
CSdesItem | Parsed SDES item |
►CSdesTraverser | SDES packet traverer |
CIterator | Packet iterator |
CSendingMetrics | Metrics sent from sender to receiver |
CSession | RTCP session. Processes incoming RTCP packets and generates outgoing RTCP packets |
►CTraverser | RTCP compound packet traverser |
CIterator | Packet iterator |
►CXrTraverser | XR packet traverser |
CIterator | Packet iterator |
►Nrtp | RTP protocol support |
CComposer | RTP packet composer |
CExtentionHeader | RTP extension header |
CFormat | RTP payload format |
CFormatMap | RTP payload format map. Thread-safe. Returned formats are immutable and can be safely used from any thread |
CHeader | RTP header |
CParser | RTP packet parser |
CPopulator | RTP populator |
CTimestampExtractor | Remembers a recent pair of capture timestamp and rtp ts |
CTimestampInjector | Fills capture timestamps in rtp packets |
CValidator | RTP validator |
CValidatorConfig | Validator parameters |
►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. Base class for PulseAudio source and sink |
CPulseaudioSink | PulseAudio sink, |
CPulseaudioSource | PulseAudio source, |
CPump | Audio pump |
CSoxBackend | SoX backend |
CSoxSink | SoX sink |
CSoxSource | SoX source |