Croc::core::AlignedStorage< Size > | Fixed-size maximum-aligned storage |
Croc::core::AlignedStorage< 0 *sizeof(T)> | |
Croc::core::AlignedStorage< 0 *SlotSize > | |
Croc::core::AlignedStorage< NumEmbeddedBuckets *sizeof(roc::core::HashmapImpl::Bucket)> | |
Croc::core::AlignedStorage< sizeof(T) > | |
Croc::core::AlignedStorage< sizeof(T)> | |
Croc::core::AlignMax | Maximum aligned data unit |
Croc::core::AlignOps | Alignment operations |
►CAllocationPolicy | |
Croc::core::RefCounted< T, AllocationPolicy > | Base class for object with reference counter |
►Croc::core::ArenaAllocation | Allocation policy for objects allocated using IArena |
►Croc::core::RefCounted< ReceiverSlot, core::ArenaAllocation > | |
Croc::pipeline::ReceiverSlot | Receiver slot |
►Croc::core::RefCounted< MediaDescription, core::ArenaAllocation > | |
Croc::sdp::MediaDescription | SDP media description |
►Croc::core::RefCounted< BasicPort, core::ArenaAllocation > | |
►Croc::netio::BasicPort | Base class for ports |
Croc::netio::TcpConnectionPort | TCP connection port |
Croc::netio::TcpServerPort | TCP server |
Croc::netio::UdpPort | UDP sender/receiver port |
►Croc::core::RefCounted< IResampler, core::ArenaAllocation > | |
►Croc::audio::IResampler | Audio writer interface |
Croc::audio::BuiltinResampler | Built-in resampler |
Croc::audio::DecimationResampler | Decimating resampler |
Croc::audio::SpeexResampler | Speex resampler |
►Croc::core::RefCounted< ReceiverSession, core::ArenaAllocation > | |
Croc::pipeline::ReceiverSession | Receiver session sub-pipeline |
►Croc::core::RefCounted< BasicControlEndpoint, core::ArenaAllocation > | |
Croc::ctl::BasicControlEndpoint | Base class for control endpoints |
►Croc::core::RefCounted< ReceiverEndpoint, core::ArenaAllocation > | |
Croc::pipeline::ReceiverEndpoint | Receiver endpoint sub-pipeline |
►Croc::core::RefCounted< SenderSlot, core::ArenaAllocation > | |
Croc::pipeline::SenderSlot | Sender slot |
Croc::core::AtomicOps | Atomic operations. This wrapper exists because on non-C11 compilers we use another implementation |
Croc::core::HashmapImpl::Bucket | Bucket container |
Croc::rtcp::header::ByePacket | Goodbye RTCP packet (BYE) |
Croc::rtcp::header::ByeReasonHeader | BYE reason header |
Croc::rtcp::header::ByeSourceHeader | BYE source header |
Croc::rtcp::ByeTraverser | BYE packet traverer |
Croc::audio::ChannelMapRule | Defines multiplication coefficient for a pair of channels |
Croc::audio::ChannelMapTable | Defines multiplication matrix for two channel masks |
Croc::audio::ChannelMaskName | Defines string name for pre-defined channel mask |
Croc::audio::ChannelOrderTable | Defines ordered list of channels |
Croc::audio::ChannelPositionName | Defines string name for channel position |
Croc::audio::ChannelSet | 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 |
Croc::fec::CodecConfig | FEC codec parameters |
Croc::rtcp::Config | RTCP config |
Croc::sndio::Config | Sink and source config |
Croc::sdp::ConnectionData | SDP connection data field |
Croc::node::ContextConfig | Node context config |
Croc::core::CsvConfig | CSV write configuration |
Croc::core::CsvEntry | CSV entry. Corresponds to one line in output file |
Croc::core::CustomAllocation | Allocation policy for objects with custom deallocation function |
Croc::sndio::DriverInfo | Driver information |
Croc::rtp::Encoding | RTP encoding |
Croc::core::EndianOps | Endian operations |
Croc::rtp::ExtentionHeader | RTP extension header |
Croc::packet::FEC | FECFRAME packet |
Croc::audio::FeedbackConfig | Feedback monitor configuration |
CFileMap | Sndfile driver map |
Croc::rtp::FilterConfig | RTP filter parameters |
Croc::audio::FreqEstimatorConfig | FreqEstimator tunable parameters |
Croc::core::GlobalDestructor | Allows to determine if global library destruction was initiated |
Croc::core::HashmapData | Hashmap node internal data |
Croc::core::HashmapImpl | Intrusive hash table internal implementation |
Croc::rtp::Header | RTP header |
►Croc::core::IArena | Memory arena interface |
Croc::core::HeapArena | Heap arena implementation |
Croc::core::LimitedArena | Decorator around IArena to make it memory limited |
Croc::core::NoopArenaImpl | 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 |
►Croc::sndio::IBackend | Backend interface |
Croc::sndio::PulseaudioBackend | Pulseaudio backend |
Croc::sndio::SndfileBackend | Sndfile backend |
Croc::sndio::SoxBackend | SoX backend |
Croc::sndio::WavBackend | WAV backend |
►Croc::fec::IBlockDecoder | FEC block decoder interface |
Croc::fec::OpenfecDecoder | Decoder implementation using OpenFEC library |
►Croc::fec::IBlockEncoder | FEC block encoder interface |
Croc::fec::OpenfecEncoder | Encoder implementation using OpenFEC library |
►Croc::netio::ICloseHandler | Close handler interface |
Croc::netio::NetworkLoop | Network event loop thread |
Croc::netio::TcpServerPort | TCP server |
►Croc::packet::IComposer | Packet composer interface |
Croc::fec::Composer< PayloadID, Type, Pos > | FECFRAME packet composer |
Croc::rtcp::Composer | RTCP packet composer |
Croc::rtp::Composer | RTP packet composer |
►Croc::netio::IConn | Connection interface |
Croc::netio::TcpConnectionPort | TCP connection port |
Croc::netio::IConnAcceptor | Connection acceptor interface |
Croc::ctl::IControlTaskCompleter | Control task completion handler |
►Croc::ctl::IControlTaskExecutor | Control task executor interface |
►Croc::ctl::ControlTaskExecutor< ControlLoop > | |
Croc::ctl::ControlLoop | Control loop thread |
Croc::ctl::ControlTaskExecutor< E > | Control task executor |
►Croc::sndio::IDevice | Base interface for sinks and sources |
►Croc::sndio::ISink | Sink interface |
Croc::pipeline::SenderLoop | Sender pipeline loop |
Croc::pipeline::SenderSink | Sender sink pipeline |
Croc::pipeline::TranscoderSink | Transcoder sink pipeline |
Croc::sndio::PulseaudioDevice | PulseAudio device. Can be either source or sink depending on constructor parameter |
Croc::sndio::SndfileSink | Sndfile sink |
Croc::sndio::SoxSink | SoX sink |
Croc::sndio::WavSink | WAV sink |
►Croc::sndio::ISource | Source interface |
Croc::pipeline::ReceiverLoop | Receiver pipeline loop |
Croc::pipeline::ReceiverSource | Receiver source pipeline |
Croc::pipeline::TranscoderSource | Transcoder source pipeline |
Croc::sndio::PulseaudioDevice | PulseAudio device. Can be either source or sink depending on constructor parameter |
Croc::sndio::SndfileSource | Sndfile source |
Croc::sndio::SoxSource | SoX source |
Croc::sndio::WavSource | WAV source |
►Croc::audio::IFrameDecoder | Audio frame decoder interface |
Croc::audio::PcmDecoder | PCM decoder |
►Croc::audio::IFrameEncoder | Audio frame encoder interface |
Croc::audio::PcmEncoder | PCM encoder |
►Croc::packet::ILinkMeter | Link meter interface |
Croc::rtp::LinkMeter | RTP link meter |
Croc::netio::INetworkTaskCompleter | Network task completion handler |
►Croc::packet::IParser | Packet parser interface |
Croc::fec::Parser< PayloadID, Type, Pos > | FECFRAME packet parser |
Croc::rtcp::Parser | RTCP packet parser |
Croc::rtp::Parser | RTP packet parser |
►Croc::rtcp::IParticipant | RTCP participant |
Croc::pipeline::ReceiverSessionGroup | Receiver session group |
Croc::pipeline::SenderSession | Sender session sub-pipeline |
Croc::pipeline::IPipelineTaskCompleter | Pipeline task completion handler |
►Croc::pipeline::IPipelineTaskScheduler | Pipeline task scheduler interface. PipelineLoop uses this interface to schedule asynchronous work. Method calls may come from different threads, but are serialized |
Croc::node::Receiver | Receiver node |
Croc::node::ReceiverDecoder | Receiver decoder node |
Croc::node::Sender | Sender node |
Croc::node::SenderEncoder | Sender encoder node |
►Croc::core::IPool | Memory pool interface |
Croc::core::SlabPool< Stream, PreallocatedStreams > | |
Croc::core::SlabPool< SourceNode, PreallocatedSources > | |
Croc::core::SlabPool< roc::core::Buffer > | |
Croc::core::SlabPool< Route, PreallocatedRoutes > | |
Croc::core::SlabPool< roc::packet::Packet > | |
Croc::core::SlabPool< Address, PreallocatedAddresses > | |
Croc::core::SlabPool< Slot > | |
Croc::core::SlabPool< Node, PreallocatedNodes > | |
Croc::core::LimitedPool | Decorator around IPool to make it memory limited |
Croc::core::SlabPool< T, EmbeddedCapacity > | Memory pool |
►Croc::packet::IReader | Packet reader interface |
Croc::fec::Reader | FEC reader |
Croc::packet::ConcurrentQueue | Concurrent blocking packet queue |
Croc::packet::DelayedReader | Delayed reader |
Croc::packet::Queue | Packet queue |
Croc::packet::SortedQueue | Sorted packet queue |
Croc::rtp::Filter | RTP filter |
Croc::rtp::LinkMeter | RTP link meter |
Croc::rtp::TimestampInjector | Fills capture timestamps in rtp packets |
►Croc::netio::IResolverRequestHandler | Resolver request result handler interface |
Croc::netio::NetworkLoop | Network event loop thread |
►Croc::packet::ISequencer | Packet sequencer. Fills protocol-specific packet headers to form a continous sequence. For example, RTP sequencer fills packet seqnums and timestamps |
Croc::rtp::Sequencer | RTP packet sequencer |
Croc::rtcp::ByeTraverser::Iterator | Packet iterator |
Croc::rtcp::SdesTraverser::Iterator | Packet iterator |
Croc::rtcp::Traverser::Iterator | Packet iterator |
Croc::rtcp::XrTraverser::Iterator | Packet iterator |
►Croc::netio::ITerminateHandler | Termination handler interface |
Croc::netio::NetworkLoop | Network event loop thread |
Croc::netio::TcpServerPort | TCP server |
►Croc::packet::IWriter | Packet writer interface |
Croc::fec::Writer | FEC writer |
Croc::netio::UdpPort | UDP sender/receiver port |
Croc::packet::ConcurrentQueue | Concurrent blocking packet queue |
Croc::packet::Interleaver | Interleaves packets to transmit them in pseudo random order |
Croc::packet::Queue | Packet queue |
Croc::packet::Router | Route packets to packet writers |
Croc::packet::Shipper | Prepare a packet for being sent |
Croc::packet::SortedQueue | Sorted packet queue |
Croc::pipeline::ReceiverEndpoint | Receiver endpoint sub-pipeline |
Croc::pipeline::SenderEndpoint | Sender endpoint sub-pipeline |
Croc::rtp::LinkMeter | RTP link meter |
Croc::rtp::TimestampExtractor | Remembers a recent pair of capture timestamp and rtp ts |
Croc::audio::LatencyConfig | Latency settings |
Croc::audio::LatencyMetrics | Latency-related metrics |
Croc::fec::LDPC_Repair_PayloadID | LDPC-Staircase Repair FEC Payload ID |
Croc::fec::LDPC_Source_PayloadID | LDPC-Staircase Source FEC Payload ID |
Croc::packet::LinkMetrics | Link metrics |
Croc::core::ListData | List node internal data |
Croc::core::LogMessage | Log message |
Croc::rtcp::LossEstimator | Computes fractions loss ration since last report |
►Croc::core::ManualAllocation | Allocation policy for objects that does not have automatic deallocation |
►Croc::core::RefCounted< Context, core::ManualAllocation > | |
Croc::node::Context | Node context |
►Croc::core::RefCounted< IConnHandler, core::ManualAllocation > | |
Croc::netio::IConnHandler | Connection event handler interface |
Croc::core::MemoryOps | Memory operations |
Croc::core::MovStats< T > | Rolling window moving average and variance |
Croc::core::MpscQueueData | MpscQueue node internal data |
Croc::core::MpscQueueImpl | Multi-producer single-consumer queue internal implementation class |
►Croc::core::NonCopyable< Tag > | Base class for non-copyable objects |
Croc::core::Array< roc::sndio::IBackend *, MaxBackends > | |
Croc::core::Array< Route, 2 > | |
Croc::core::Array< roc::core::Slice< uint8_t > > | |
Croc::core::Array< roc::rtcp::RecvReport, PreallocatedStreams > | |
Croc::core::Array< roc::pipeline::ReceiverParticipantMetrics, 8 > | |
Croc::core::Array< float > | |
Croc::core::Array< roc::sndio::DriverInfo, MaxDrivers > | |
Croc::core::Array< SharedPtr< Packet > > | |
Croc::core::Array< size_t > | |
Croc::core::Array< unsigned, 2 > | |
Croc::core::Array< Address *, PreallocatedAddresses > | |
Croc::core::Array< char, 32 > | |
Croc::core::Array< void * > | |
Croc::core::Array< char > | |
Croc::core::Array< sox_sample_t > | |
Croc::core::Array< bool > | |
Croc::core::Array< sample_t > | |
Croc::core::Array< roc::pipeline::SenderParticipantMetrics, 8 > | |
Croc::core::Array< roc::sdp::ConnectionData, 1 > | |
Croc::core::Array< Stream *, PreallocatedStreams > | |
Croc::core::Atomic< uint32_t > | |
Croc::core::Atomic< int > | |
Croc::core::Atomic< int32_t > | |
Croc::core::Atomic< size_t > | |
Croc::core::Atomic< roc::packet::IWriter * > | |
Croc::core::Atomic< roc::packet::IReader * > | |
Croc::core::Atomic< roc::core::Semaphore * > | |
Croc::core::Hashmap< Stream, PreallocatedStreams > | |
Croc::core::Hashmap< CnameNode, PreallocatedRoutes, roc::core::NoOwnership > | |
Croc::core::Hashmap< SessionNode, PreallocatedRoutes, roc::core::NoOwnership > | |
Croc::core::Hashmap< AddressNode, PreallocatedRoutes, roc::core::NoOwnership > | |
Croc::core::Hashmap< Address, PreallocatedAddresses > | |
Croc::core::Hashmap< Slot > | |
Croc::core::Hashmap< Node, PreallocatedNodes > | |
Croc::core::Hashmap< SourceNode, PreallocatedRoutes, roc::core::NoOwnership > | |
Croc::core::List< SourceNode > | |
Croc::core::List< roc::ctl::BasicControlEndpoint > | |
Croc::core::List< roc::audio::IFrameWriter, roc::core::NoOwnership > | |
Croc::core::List< roc::ctl::ControlTask, roc::core::NoOwnership > | |
Croc::core::List< Slot, roc::core::NoOwnership > | |
Croc::core::List< Slab, roc::core::NoOwnership > | |
Croc::core::List< roc::audio::IFrameReader, roc::core::NoOwnership > | |
Croc::core::List< roc::sdp::MediaDescription > | |
Croc::core::List< roc::pipeline::ReceiverSlot > | |
Croc::core::List< Route > | |
Croc::core::List< roc::pipeline::SenderSlot > | |
Croc::core::List< roc::netio::TcpConnectionPort > | |
Croc::core::List< roc::packet::Packet > | |
Croc::core::List< roc::netio::BasicPort > | |
Croc::core::List< Stream, roc::core::NoOwnership > | |
Croc::core::List< roc::pipeline::ReceiverSession > | |
Croc::core::List< Address, roc::core::NoOwnership > | |
Croc::core::MpscQueue< roc::pipeline::PipelineTask, roc::core::NoOwnership > | |
Croc::core::MpscQueue< roc::ctl::ControlTask, roc::core::NoOwnership > | |
Croc::core::MpscQueue< roc::packet::Packet > | |
Croc::core::MpscQueue< roc::netio::NetworkTask, roc::core::NoOwnership > | |
Croc::core::Optional< roc::audio::Watchdog > | |
Croc::core::Optional< roc::audio::ResamplerWriter > | |
Croc::core::Optional< roc::sndio::WavHeader > | |
Croc::core::Optional< roc::rtp::TimestampExtractor > | |
Croc::core::Optional< roc::fec::Writer > | |
Croc::core::Optional< roc::rtp::Composer > | |
Croc::core::Optional< roc::audio::LatencyMonitor > | |
Croc::core::Optional< roc::rtp::TimestampInjector > | |
Croc::core::Optional< roc::packet::Router > | |
Croc::core::Optional< roc::rtcp::Communicator > | |
Croc::core::Optional< roc::packet::SortedQueue > | |
Croc::core::Optional< roc::audio::FreqEstimator > | |
Croc::core::Optional< roc::pipeline::ReceiverEndpoint > | |
Croc::core::Optional< IBufferWriter, ROC_MAX(sizeof(StaticBufferWriter), sizeof(DynamicBufferWriter))> | |
Croc::core::Optional< roc::core::SlabPool< roc::core::Buffer > > | |
Croc::core::Optional< roc::pipeline::SenderEndpoint > | |
Croc::core::Optional< roc::audio::ChannelMapperReader > | |
Croc::core::Optional< roc::packet::DelayedReader > | |
Croc::core::Optional< ArenaAllocation > | |
Croc::core::Optional< roc::audio::PcmMapperWriter > | |
Croc::core::Optional< roc::packet::Shipper > | |
Croc::core::Optional< roc::core::SlabPool< roc::packet::Packet > > | |
Croc::core::Optional< roc::audio::PcmMapperReader > | |
Croc::core::Optional< roc::audio::ResamplerReader > | |
Croc::core::Optional< roc::rtp::Filter > | |
Croc::core::Optional< roc::packet::Interleaver > | |
Croc::core::Optional< roc::core::Ticker > | |
Croc::core::Optional< roc::audio::Mixer > | |
Croc::core::Optional< roc::fec::Reader > | |
Croc::core::Optional< roc::rtcp::Parser > | |
Croc::core::Optional< roc::core::Semaphore > | |
Croc::core::Optional< roc::rtp::Identity > | |
Croc::core::Optional< roc::audio::Depacketizer > | |
Croc::core::Optional< roc::rtp::LinkMeter > | |
Croc::core::Optional< roc::rtp::Parser > | |
Croc::core::Optional< roc::sndio::WavBackend > | |
Croc::core::Optional< roc::audio::FeedbackMonitor > | |
Croc::core::Optional< roc::rtp::Sequencer > | |
Croc::core::Optional< roc::audio::ProfilingReader > | |
Croc::core::Optional< roc::rtcp::Composer > | |
Croc::core::Optional< roc::core::RateLimiter > | |
Croc::core::Optional< roc::audio::ProfilingWriter > | |
Croc::core::Optional< roc::audio::ChannelMapperWriter > | |
Croc::core::Optional< roc::audio::Packetizer > | |
Croc::core::Optional< roc::packet::ConcurrentQueue > | |
Croc::core::RefCounted< ReceiverSlot, core::ArenaAllocation > | |
Croc::core::RefCounted< Context, core::ManualAllocation > | |
Croc::core::RefCounted< MediaDescription, core::ArenaAllocation > | |
Croc::core::RefCounted< Address, core::PoolAllocation > | |
Croc::core::RefCounted< BasicPort, core::ArenaAllocation > | |
Croc::core::RefCounted< IResampler, core::ArenaAllocation > | |
Croc::core::RefCounted< Route, core::PoolAllocation > | |
Croc::core::RefCounted< ReceiverSession, core::ArenaAllocation > | |
Croc::core::RefCounted< BasicControlEndpoint, core::ArenaAllocation > | |
Croc::core::RefCounted< Node, core::PoolAllocation > | |
Croc::core::RefCounted< ReceiverEndpoint, core::ArenaAllocation > | |
Croc::core::RefCounted< Slot, core::PoolAllocation > | |
►Croc::core::RefCounted< Buffer, PoolAllocation > | |
Croc::core::Buffer | Fixed-size dynamically-allocated byte buffer |
Croc::core::RefCounted< SenderSlot, core::ArenaAllocation > | |
Croc::core::RefCounted< Stream, core::PoolAllocation > | |
Croc::core::RefCounted< SourceNode, core::PoolAllocation > | |
Croc::core::RefCounted< IConnHandler, core::ManualAllocation > | |
►Croc::core::RefCounted< Packet, core::PoolAllocation > | |
Croc::packet::Packet | Packet |
Croc::core::ScopedPtr< roc::fec::IBlockEncoder > | |
Croc::core::ScopedPtr< roc::packet::IParser > | |
Croc::core::ScopedPtr< roc::audio::IFrameDecoder > | |
Croc::core::ScopedPtr< roc::fec::IBlockDecoder > | |
Croc::core::ScopedPtr< roc::packet::IComposer > | |
Croc::core::ScopedPtr< roc::audio::IFrameEncoder > | |
Croc::core::Seqlock< nanoseconds_t > | |
Croc::core::Seqlock< uint64_t > | |
Croc::core::Seqlock< core::nanoseconds_t > | |
Croc::core::SlabPool< Stream, PreallocatedStreams > | |
Croc::core::SlabPool< SourceNode, PreallocatedSources > | |
Croc::core::SlabPool< roc::core::Buffer > | |
Croc::core::SlabPool< Route, PreallocatedRoutes > | |
Croc::core::SlabPool< roc::packet::Packet > | |
Croc::core::SlabPool< Address, PreallocatedAddresses > | |
Croc::core::SlabPool< Slot > | |
Croc::core::SlabPool< Node, PreallocatedNodes > | |
Croc::core::SpscRingBuffer< roc::core::CsvEntry > | |
Croc::address::EndpointUri | Network endpoint URI |
Croc::address::IoUri | Audio file or device URI |
Croc::address::ProtocolMap | Protocol attributes map |
Croc::address::endpoint_uri_to_str | Convert EndpointUri to string |
Croc::address::io_uri_to_str | Convert IoUri to string |
Croc::address::socket_addr_to_str | Convert network address to string |
Croc::audio::BuiltinResampler | Built-in resampler |
Croc::audio::ChannelMapper | Channel mapper |
Croc::audio::ChannelMapperMatrix | Channel mapping matrix |
Croc::audio::ChannelMapperReader | Channel mapper reader. Reads frames from nested reader and maps them to another channel mask |
Croc::audio::ChannelMapperWriter | Channel mapper writer. Reads frames from nested writer and maps them to another channel mask |
Croc::audio::DecimationResampler | Decimating resampler |
Croc::audio::Depacketizer | Depacketizer |
Croc::audio::Fanout | Fanout. Duplicates audio stream to multiple output writers |
Croc::audio::FeedbackMonitor | Feedback monitor |
Croc::audio::Frame | Audio frame |
Croc::audio::FrameFactory | Frame factory |
Croc::audio::FreqEstimator | Evaluates sender's frequency to receivers's frequency ratio |
Croc::audio::LatencyMonitor | Latency monitor |
Croc::audio::LatencyTuner | Latency tuner |
Croc::audio::Mixer | Mixer. Mixes multiple input streams into one output stream |
Croc::audio::NullWriter | Null writer |
Croc::audio::Packetizer | Packetizer |
Croc::audio::PcmDecoder | PCM decoder |
Croc::audio::PcmEncoder | PCM encoder |
Croc::audio::PcmMapper | PCM format mapper. Convert between PCM formats |
Croc::audio::PcmMapperReader | Pcm mapper reader. Reads frames from nested reader and maps them to another pcm mask |
Croc::audio::PcmMapperWriter | Pcm mapper writer. Reads frames from nested writer and maps them to another pcm mask |
Croc::audio::Profiler | 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 |
Croc::audio::ProfilingReader | Profiling reader |
Croc::audio::ProfilingWriter | Profiling writer |
Croc::audio::ResamplerMap | Factory class for IResampler objects, according to the ResamplerBackend input |
Croc::audio::ResamplerReader | Resampler element for reading pipeline |
Croc::audio::ResamplerWriter | Resampler element for writing pipeline |
Croc::audio::SpeexResampler | Speex resampler |
Croc::audio::Watchdog | Watchdog |
Croc::audio::channel_set_to_str | Format ChannelSet to string |
Croc::audio::sample_spec_to_str | Format SampleSpec to string |
Croc::core::Array< T, EmbeddedCapacity > | Dynamic array |
Croc::core::Atomic< T > | Atomic integer. Provides sequential consistency. For a fine-grained memory order control, see AtomicOps |
Croc::core::Atomic< T * > | Atomic pointer. Provides sequential consistency. For a fine-grained memory order control, see AtomicOps |
Croc::core::Cond | Condition variable |
Croc::core::CrashHandler | Crash handler |
Croc::core::Hashmap< T, EmbeddedCapacity, OwnershipPolicy, Node > | Intrusive hash table |
Croc::core::HeapArena | Heap arena implementation |
Croc::core::LimitedArena | Decorator around IArena to make it memory limited |
Croc::core::List< T, OwnershipPolicy, Node > | Intrusive doubly-linked list |
Croc::core::ListImpl | Intrusive doubly-linked list implementation class. Handles List infrastructure independent of templated type for List. Ownership handling is left to the main List class |
Croc::core::LogBackend | Log backend |
Croc::core::LogBackend | Log backend |
Croc::core::Logger | Logger |
Croc::core::MemoryLimiter | 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 |
Croc::core::MpscQueue< T, OwnershipPolicy, Node > | Thread-safe lock-free node-based intrusive multi-producer single-consumer queue |
Croc::core::Mutex | Mutex |
Croc::core::NoopArenaImpl | 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 |
Croc::core::Optional< T, Size > | Optionally constructed object |
Croc::core::Printer | Printer |
Croc::core::RateLimiter | Rate limiter |
Croc::core::RingQueue< T, EmbeddedCapacity > | Queue on continuous memory buffer |
Croc::core::ScopedLock< Mutex > | RAII mutex lock |
Croc::core::ScopedPtr< T, AllocationPolicy > | Unique ownrship pointer |
Croc::core::Semaphore | Semaphore |
Croc::core::Semaphore | Semaphore |
Croc::core::Seqlock< T > | Seqlock |
Croc::core::Singleton< T > | Singleton |
Croc::core::SlabPool< T, EmbeddedCapacity > | Memory pool |
Croc::core::SlabPoolImpl | Memory pool implementation class |
Croc::core::SpscByteBuffer | Thread-safe lock-free single-producer single-consumer circular buffer of byte chunks |
Croc::core::SpscRingBuffer< T > | Thread-safe lock-free single-producer single-consumer circular buffer of copyable objects |
Croc::core::StringBuffer | String buffer |
Croc::core::StringBuilder | String builder |
Croc::core::StringList | Dynamic list of strings |
Croc::core::TempFile | Temporary file |
Croc::core::Ticker | Ticker |
Croc::core::Timer | Thread-safe timer |
Croc::core::errno_to_str | Convert errno to string |
Croc::ctl::ControlInterfaceMap | Control interface map |
Croc::ctl::ControlLoop | Control loop thread |
Croc::fec::CodecMap | FEC codec map |
Croc::fec::Composer< PayloadID, Type, Pos > | FECFRAME packet composer |
Croc::fec::OpenfecDecoder | Decoder implementation using OpenFEC library |
Croc::fec::OpenfecEncoder | Encoder implementation using OpenFEC library |
Croc::fec::Parser< PayloadID, Type, Pos > | FECFRAME packet parser |
Croc::fec::Reader | FEC reader |
Croc::fec::Writer | FEC writer |
Croc::netio::Resolver | Hostname resolver |
►Croc::node::Node | Base class for nodes |
Croc::node::Receiver | Receiver node |
Croc::node::ReceiverDecoder | Receiver decoder node |
Croc::node::Sender | Sender node |
Croc::node::SenderEncoder | Sender encoder node |
Croc::packet::ConcurrentQueue | Concurrent blocking packet queue |
Croc::packet::DelayedReader | Delayed reader |
Croc::packet::Interleaver | Interleaves packets to transmit them in pseudo random order |
Croc::packet::PacketFactory | Packet factory |
Croc::packet::Queue | Packet queue |
Croc::packet::Router | Route packets to packet writers |
Croc::packet::Shipper | Prepare a packet for being sent |
Croc::packet::SortedQueue | Sorted packet queue |
Croc::packet::packet_flags_to_str | Format packet flags to string |
►Croc::pipeline::PipelineLoop | Base class for task-based pipelines |
Croc::pipeline::ReceiverLoop | Receiver pipeline loop |
Croc::pipeline::SenderLoop | Sender pipeline loop |
Croc::pipeline::ReceiverSessionGroup | Receiver session group |
Croc::pipeline::ReceiverSessionRouter | Receiver session router |
Croc::pipeline::ReceiverSource | Receiver source pipeline |
Croc::pipeline::SenderEndpoint | Sender endpoint sub-pipeline |
Croc::pipeline::SenderSession | Sender session sub-pipeline |
Croc::pipeline::SenderSink | Sender sink pipeline |
Croc::pipeline::StateTracker | Pipeline state tracker |
Croc::pipeline::TranscoderSink | Transcoder sink pipeline |
Croc::pipeline::TranscoderSource | Transcoder source pipeline |
Croc::rtcp::Builder | RTCP compound packet builder |
Croc::rtcp::Communicator | RTCP communicator |
Croc::rtcp::Composer | RTCP packet composer |
Croc::rtcp::Parser | RTCP packet parser |
Croc::rtcp::Reporter | RTCP report processor and generator |
Croc::rtcp::cname_to_str | Get printable representation of CNAME |
Croc::rtp::Composer | RTP packet composer |
Croc::rtp::EncodingMap | RTP encoding map. Thread-safe. Returned encodings are immutable and can be safely used from any thread |
Croc::rtp::Filter | RTP filter |
Croc::rtp::Identity | RTP participant identity |
Croc::rtp::LinkMeter | RTP link meter |
Croc::rtp::Parser | RTP packet parser |
Croc::rtp::Sequencer | RTP packet sequencer |
Croc::rtp::TimestampExtractor | Remembers a recent pair of capture timestamp and rtp ts |
Croc::rtp::TimestampInjector | Fills capture timestamps in rtp packets |
Croc::sdp::SessionDescription | SDP session description |
Croc::sndio::BackendDispatcher | Backend dispatcher |
Croc::sndio::BackendMap | Backend map |
Croc::sndio::PulseaudioBackend | Pulseaudio backend |
Croc::sndio::PulseaudioDevice | PulseAudio device. Can be either source or sink depending on constructor parameter |
Croc::sndio::Pump | Audio pump |
Croc::sndio::SndfileBackend | Sndfile backend |
Croc::sndio::SndfileSink | Sndfile sink |
Croc::sndio::SndfileSource | Sndfile source |
Croc::sndio::SoxBackend | SoX backend |
Croc::sndio::SoxSink | SoX sink |
Croc::sndio::SoxSource | SoX source |
Croc::sndio::WavBackend | WAV backend |
Croc::sndio::WavSink | WAV sink |
Croc::sndio::WavSource | WAV source |
►Croc::core::NonCopyable< HashmapNode< void > > | |
Croc::core::HashmapNode< Tag > | Base class for Hashmap element |
►Croc::core::NonCopyable< LimitedPool > | |
Croc::core::LimitedPool | Decorator around IPool to make it memory limited |
►Croc::core::NonCopyable< ListNode< void > > | |
►Croc::core::ListNode< Tag > | Base class for List element |
►Croc::audio::IFrameReader | Frame reader interface |
Croc::audio::ChannelMapperReader | Channel mapper reader. Reads frames from nested reader and maps them to another channel mask |
Croc::audio::Depacketizer | Depacketizer |
Croc::audio::LatencyMonitor | Latency monitor |
Croc::audio::Mixer | Mixer. Mixes multiple input streams into one output stream |
Croc::audio::PcmMapperReader | Pcm mapper reader. Reads frames from nested reader and maps them to another pcm mask |
Croc::audio::ProfilingReader | Profiling reader |
Croc::audio::ResamplerReader | Resampler element for reading pipeline |
Croc::audio::Watchdog | Watchdog |
Croc::sndio::ISource | Source interface |
►Croc::audio::IFrameWriter | Frame writer interface |
Croc::audio::ChannelMapperWriter | Channel mapper writer. Reads frames from nested writer and maps them to another channel mask |
Croc::audio::Fanout | Fanout. Duplicates audio stream to multiple output writers |
Croc::audio::FeedbackMonitor | Feedback monitor |
Croc::audio::NullWriter | Null writer |
Croc::audio::Packetizer | Packetizer |
Croc::audio::PcmMapperWriter | Pcm mapper writer. Reads frames from nested writer and maps them to another pcm mask |
Croc::audio::ProfilingWriter | Profiling writer |
Croc::audio::ResamplerWriter | Resampler element for writing pipeline |
Croc::sndio::ISink | Sink interface |
Croc::ctl::BasicControlEndpoint | Base class for control endpoints |
►Croc::ctl::ControlTask | Base class for control tasks |
Croc::ctl::ControlLoop::Tasks::AttachSink | Attach sink to endpoint at given URI |
Croc::ctl::ControlLoop::Tasks::AttachSource | Attach source to endpoint at given URI |
Croc::ctl::ControlLoop::Tasks::BindEndpoint | Bind endpoint on local URI |
Croc::ctl::ControlLoop::Tasks::ConnectEndpoint | Connect endpoint on remote URI |
Croc::ctl::ControlLoop::Tasks::CreateEndpoint | Create endpoint on given interface |
Croc::ctl::ControlLoop::Tasks::DeleteEndpoint | Delete endpoint, if it exists |
Croc::ctl::ControlLoop::Tasks::DetachSink | Detach sink from endpoint |
Croc::ctl::ControlLoop::Tasks::DetachSource | Detach source from endpoint |
Croc::ctl::ControlLoop::Tasks::PipelineProcessing | Process pending pipeline tasks on control thread |
Croc::netio::BasicPort | Base class for ports |
Croc::packet::Packet | Packet |
Croc::pipeline::ReceiverEndpoint | Receiver endpoint sub-pipeline |
Croc::pipeline::ReceiverSession | Receiver session sub-pipeline |
Croc::pipeline::ReceiverSlot | Receiver slot |
Croc::pipeline::SenderSlot | Sender slot |
Croc::sdp::MediaDescription | SDP media description |
►Croc::core::NonCopyable< MpscQueueNode< void > > | |
►Croc::core::MpscQueueNode< Tag > | Base class for MpscQueue element |
Croc::ctl::ControlTask | Base class for control tasks |
►Croc::netio::NetworkTask | Base class for network loop tasks |
Croc::netio::NetworkLoop::Tasks::AddTcpClientPort | Add TCP client port |
Croc::netio::NetworkLoop::Tasks::AddTcpServerPort | Add TCP server port |
Croc::netio::NetworkLoop::Tasks::AddUdpPort | Add UDP datagram sender/receiver port |
Croc::netio::NetworkLoop::Tasks::RemovePort | Remove port |
Croc::netio::NetworkLoop::Tasks::ResolveEndpointAddress | Resolve endpoint address |
Croc::netio::NetworkLoop::Tasks::StartUdpRecv | Start receiving on UDP port |
Croc::netio::NetworkLoop::Tasks::StartUdpSend | Start sending on UDP port |
Croc::packet::Packet | Packet |
►Croc::pipeline::PipelineTask | Base class for pipeline tasks |
►Croc::pipeline::ReceiverLoop::Task | Base task class |
Croc::pipeline::ReceiverLoop::Tasks::AddEndpoint | Create endpoint on given interface of the slot |
Croc::pipeline::ReceiverLoop::Tasks::CreateSlot | Create new slot |
Croc::pipeline::ReceiverLoop::Tasks::DeleteSlot | Delete existing slot |
Croc::pipeline::ReceiverLoop::Tasks::QuerySlot | Query slot metrics |
►Croc::pipeline::SenderLoop::Task | Base task class |
Croc::pipeline::SenderLoop::Tasks::AddEndpoint | Create endpoint on given interface of the slot |
Croc::pipeline::SenderLoop::Tasks::CreateSlot | Create new slot |
Croc::pipeline::SenderLoop::Tasks::DeleteSlot | Delete existing slot |
Croc::pipeline::SenderLoop::Tasks::QuerySlot | Query slot metrics |
►Croc::core::NonCopyable< RefCounted< T, AllocationPolicy > > | |
Croc::core::RefCounted< T, AllocationPolicy > | Base class for object with reference counter |
►Croc::core::NonCopyable< Thread > | |
►Croc::core::Thread | Base class for thread objects |
Croc::core::CsvDumper | Asynchronous CSV dumper. Writes entries to CSV file from background thread. Recommended to be used from a single thread |
Croc::ctl::ControlTaskQueue | Control task queue |
Croc::netio::NetworkLoop | Network event loop thread |
Croc::core::NoOwnership< T > | No ownership |
Croc::rtcp::header::NtpTimestamp32 | 32-bit NTP absolute time (stored as middle 32 bits of 64-bit timestamp) |
Croc::rtcp::header::NtpTimestamp64 | 64-bit NTP timestamp |
Croc::rtcp::PacketCounter | Computes number of packets in interval |
Croc::rtcp::header::PacketHeader | RTCP packet header, common for all RTCP packet types |
Croc::audio::PacketizerMetrics | Metrics of packetizer |
Croc::rtcp::ParticipantInfo | Participant info |
Croc::audio::PcmTraits | PCM format meta-information |
Croc::pipeline::PipelineLoopConfig | Pipeline loop task processing parameters |
►Croc::core::PoolAllocation | Allocation policy for objects allocated using IPool |
Croc::core::RefCounted< Address, core::PoolAllocation > | |
Croc::core::RefCounted< Route, core::PoolAllocation > | |
Croc::core::RefCounted< Node, core::PoolAllocation > | |
Croc::core::RefCounted< Slot, core::PoolAllocation > | |
Croc::core::RefCounted< Buffer, PoolAllocation > | |
Croc::core::RefCounted< Stream, core::PoolAllocation > | |
Croc::core::RefCounted< SourceNode, core::PoolAllocation > | |
Croc::core::RefCounted< Packet, core::PoolAllocation > | |
Croc::audio::ProfilerConfig | Profiler Configuration Parameters. Controls profiling interval and duration of each circular buffer chunk |
Croc::address::ProtocolAttrs | Protocol attributes |
Croc::fec::ReaderConfig | FEC reader parameters |
Croc::pipeline::ReceiverCommonConfig | Parameters common for all receiver sessions |
Croc::pipeline::ReceiverParticipantMetrics | Receiver-side metrics specific to one participant (remote sender) |
Croc::rtcp::header::ReceiverReportPacket | Receiver Report RTCP packet (RR) |
Croc::pipeline::ReceiverSessionConfig | Parameters of receiver session |
Croc::pipeline::ReceiverSlotConfig | Parameters of receiver slot |
Croc::pipeline::ReceiverSlotMetrics | Receiver-side metrics of the whole slot |
Croc::pipeline::ReceiverSourceConfig | Parameters of receiver session |
Croc::rtcp::header::ReceptionReportBlock | Reception report block |
Croc::rtcp::RecvReport | Receiver report, for inspection on sender |
Croc::core::RefCountedImpl | Implementation class for reference counter |
Croc::core::RefCountedOwnership< T > | Reference counted object ownership |
Croc::audio::ResamplerConfig | Resampler config |
Croc::netio::ResolverRequest | Resolver request |
Croc::fec::RS8M_PayloadID | Reed-Solomon Source or Repair Payload ID (for m=8) |
Croc::packet::RTCP | RTCP compound packet |
Croc::packet::RTP | RTP packet |
Croc::rtcp::RttConfig | Round-trip time metrics |
Croc::rtcp::RttEstimator | 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 |
Croc::rtcp::RttMetrics | Round-trip time metrics |
Croc::audio::SampleSpec | Sample specification. Describes sample rate and channels |
Croc::rtcp::SdesChunk | Parsed SDES chunk |
Croc::rtcp::header::SdesChunkHeader | SDES chunk header |
Croc::rtcp::SdesItem | Parsed SDES item |
Croc::rtcp::header::SdesItemHeader | SDES item header |
Croc::rtcp::header::SdesPacket | Source Description RTCP packet (SDES) |
Croc::rtcp::SdesTraverser | SDES packet traverer |
Croc::pipeline::SenderParticipantMetrics | Sender-side metrics specific to one participant (remote receiver) |
Croc::rtcp::header::SenderReportPacket | Sender Report RTCP packet (SR) |
Croc::pipeline::SenderSinkConfig | Parameters of sender sink and sender session |
Croc::pipeline::SenderSlotConfig | Parameters of sender slot |
Croc::pipeline::SenderSlotMetrics | Sender-side metrics of the whole slot |
Croc::rtcp::SendReport | Sender report, for inspection on receiver |
Croc::core::SeqlockImpl | Seqlock implementation class |
Croc::core::SharedPtr< T, OwnershipPolicy > | Shared ownership intrusive pointer |
Croc::core::SharedPtr< Buffer > | |
Croc::core::SharedPtr< Packet > | |
Croc::core::SharedPtr< roc::audio::IResampler > | |
Croc::core::SharedPtr< roc::ctl::BasicControlEndpoint > | |
Croc::core::SharedPtr< roc::netio::BasicPort > | |
Croc::core::SharedPtr< roc::netio::IConnHandler > | |
Croc::core::SharedPtr< roc::node::Context > | |
Croc::core::SharedPtr< roc::pipeline::ReceiverSession > | |
Croc::core::Slice< T > | Slice |
Croc::core::Slice< audio::sample_t > | |
Croc::core::Slice< sample_t > | |
Croc::core::Slice< uint8_t > | |
Croc::core::SlabPoolImpl::SlotHeader | Slot header |
Croc::address::SocketAddr | Socket address |
Croc::netio::SocketOpts | Socket options |
Croc::pipeline::PipelineLoop::Stats | Task processing statistics |
Croc::ctl::ControlLoop::Tasks | Subclasses for specific tasks |
Croc::netio::NetworkLoop::Tasks | Subclasses for specific tasks |
Croc::pipeline::ReceiverLoop::Tasks | Subclasses for specific tasks |
Croc::pipeline::SenderLoop::Tasks | Subclasses for specific tasks |
►Croc::netio::TcpConnectionConfig | TCP connection parameters |
Croc::netio::TcpClientConfig | TCP connection parameters |
Croc::netio::TcpServerConfig | TCP server parameters |
Croc::pipeline::TranscoderConfig | Converter parameters |
Croc::rtcp::Traverser | RTCP compound packet traverser |
Croc::packet::UDP | UDP packet |
Croc::netio::UdpConfig | UDP port parameters |
Croc::audio::WatchdogConfig | Watchdog parameters |
Croc::sndio::WavHeader | WAV header |
Croc::sndio::WavHeader::WavHeaderData | WAV header data |
Croc::fec::WriterConfig | FEC writer parameters |
Croc::rtcp::header::XrBlockHeader | XR Block Header |
Croc::rtcp::header::XrDelayMetricsBlock | XR Delay Metrics Block |
Croc::rtcp::header::XrDlrrBlock | XR DLRR Report block |
Croc::rtcp::header::XrDlrrSubblock | XR DLRR Report sub-block |
Croc::rtcp::header::XrMeasurementInfoBlock | XR Measurement Info Report Block |
Croc::rtcp::header::XrPacket | RTCP Extended Report Packet |
Croc::rtcp::header::XrQueueMetricsBlock | XR Queue Metrics Block |
Croc::rtcp::header::XrRrtrBlock | XR Receiver Reference Time Report block |
Croc::rtcp::XrTraverser | XR packet traverser |