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. 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 |
CChannelMapRule | Defines multiplication coefficient for a pair 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 |
CChannelList | Defines ordered list of channels |
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 |
CDecimationResampler | Decimating resampler |
CDepacketizer | Depacketizer |
CFanout | Fanout. Duplicates audio stream to multiple output writers |
CFrame | Audio frame |
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 |
CLatencyMonitorConfig | Parameters for latency monitor |
CLatencyMonitorMetrics | Metrics of latency monitor |
CLatencyMonitor | 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 |
CPcmTraits | PCM format meta-information |
CPcmMapper | PCM format mapper. Convert between PCM formats |
CPoisonReader | Poisons audio frames before reading them |
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 |
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 automatical 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 buffer |
CBufferFactory | Buffer factory. Allows to instantiate fixed-size buffers |
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 |
►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 |
CLogMessage | Log message |
CLogger | Logger |
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 |
CNonCopyable | Base class for non-copyable objects |
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 |
CScopedLock | RAII mutex lock |
CScopedPtr | Unique ownrship pointer |
CSeqlock | Seqlock |
CSlabPool | Memory pool |
►CSlabPoolImpl | Memory pool implementation class |
CSlotHeader | Slot header |
CSlice | Slice |
CStringBuffer | String buffer |
CStringBuilder | String builder |
CStringList | Dynamic list of strings |
CConsole | Console |
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 |
►Nfec | FEC support |
CCodecConfig | FEC codec parameters |
CCodecMap | FEC codec map |
CComposer | FECFRAME packet composer |
CLDPC_Source_PayloadID | LDPC Source FEC Payload ID |
CLDPC_Repair_PayloadID | LDPC 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 |
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 |
CTcpConnectionConfig | TCP connection parameters |
CTcpClientConfig | 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 |
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 |
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 |
CTaskConfig | Task processing parameters |
CSenderConfig | Sender parameters |
CReceiverSessionConfig | Receiver session parameters |
CReceiverCommonConfig | Receiver common parameters |
CReceiverConfig | Receiver parameters |
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 |
CSenderSessionMetrics | Metrics of sender session (connection to receiver) |
CSenderSlotMetrics | Metrics of sender slot |
CReceiverSessionMetrics | Metrics of receiver session (connection from sender) |
CReceiverSlotMetrics | Metrics of receiver slot |
►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 |
CReceiverSlot | Receiver slot |
CReceiverSource | Receiver source pipeline |
CReceiverState | Receiver pipeline state. Thread-safe |
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 |
CTranscoderSink | Transcoder sink pipeline |
CTranscoderSource | Transcoder source pipeline |
►Nrtcp | RTCP protocol support |
►Nheader | |
CNtpTimestamp | Helper to store 64-bit ntp timestamp in a common way among RTCP |
CPacketHeader | RTCP packet header, common for all RTCP packet types |
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 |
CBuilder | RTCP compound packet builder |
►CByeTraverser | BYE packet traverer |
CIterator | Packet iterator |
CComposer | RTCP packet composer |
CIReceiverHooks | Receiver hooks interface |
CISenderHooks | Sender hooks interface |
CSendingMetrics | Metrics sent from sender to receiver |
CReceptionMetrics | Metrics sent from receiver to sender per source |
CLinkMetrics | Metrics for network link. Calculated independently on both sender and receiver |
CParser | RTCP packet parser |
CSdesChunk | Parsed SDES chunk |
CSdesItem | Parsed SDES item |
►CSdesTraverser | SDES packet traverer |
CIterator | Packet iterator |
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 |
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 |
CExtentionHeader | RTP extension 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 |
CValidatorConfig | Validator parameters |
CValidator | RTP validator |
►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. Base class for PulseAudio source and sink |
CPulseaudioSink | PulseAudio sink, |
CPulseaudioSource | PulseAudio source, |
CSoxBackend | SoX backend |
CSoxSink | SoX sink |
CSoxSource | SoX source |