Victor Gaydov
Victor Gaydov
## Summary [packet::IComposer](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_packet/icomposer.h) is interface for protocol-specific serializators. See [documentation](https://roc-streaming.org/toolkit/docs/internals/packets_frames.html). Currently its methods return bool (true on success or false on error). We need to replace bool with [status::StatusCode](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_status/status_code.h) and...
Add `resize()` method to [core::RingQueue](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_core/ring_queue.h) (fifo on top of ring buffer). Example of similar method can be found in [core::Array](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_core/array.h). Note how it invokes constructors and destructors of the elements....
We have two interfaces [IFrameEncoder](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_audio/iframe_encoder.h) and [IFrameDecoder](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_audio/iframe_decoder.h) that are used to encode audio samples into packet payload and decode it back. Currently they're implemented using PcmEncoder and PcmDecoder (for uncompressed...
We have [IResampler](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_audio/iresampler.h) interface that abstracts sample rate conversion backend. There are two major implementations: hand-crafted [BuiltinResampler](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_audio/builtin_resampler.h), and [SpeexResampler](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_audio/target_speexdsp/roc_audio/speex_resampler.h) that uses SpeexDSP library. Now we need to add another implementation,...
## Summary [fec::IBlockEncoder](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_fec/iblock_encoder.h) and [fec::IBlockDecoder](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_fec/iblock_decoder.h) are interfaces for codec-specific encoding and decoding of FEC packets used for packet loss recovery. See [documentation](https://roc-streaming.org/toolkit/docs/internals/fec.html). They both have `begin_block()` method which can report...
## Background [StateTracker](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_pipeline/state_tracker.h) is a small class that holds counters of active sessions and pending packets and computes current pipeline state based on that counters: if there are sessions or...
[test::Proxy](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/tests/public_api/test_helpers/proxy.h) is a class that we use in integration tests for [C API](https://roc-streaming.org/toolkit/docs/api.html). Proxy is inserted between sender and receiver. Instead of connecting sender to receiver, we connect sender to...
We have two classes [fec::BlockReader](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_fec/block_reader.h) and [fec::BlockWriter](https://github.com/roc-streaming/roc-toolkit/blob/develop/src/internal_modules/roc_fec/block_writer.h) that implement generation and processing of [FEC packets](https://roc-streaming.org/toolkit/docs/internals/fec.html). Internally they use fec::IBlockDecoder and fec::IBlockEncoder, which define FEC-scheme-specific codec, e.g. Reed Solomon or LDPC-Staircase....
There are two problems: * issues when building benchmarks for ARM * high memory usage in some benchmarks that preallocate big arrays The goal is to build & run all...
The build system has support for non-linux/non-macos *nix targets, but we didn't test it, besides Debian/Hurd. We're looking for someone who have FreeBSD installed and could run build and test,...