Fix of the heap fragmentation issue that caused
phone crash when trying to play music files
while connecting USB cable in a certain order.
Audio stream buffering length was slightly
reduced, so that smaller contiguous block of
heap is required to store audio buffer.
Fix of the issue that caused system crash when
trying to play 96kHz FLAC file with USB cable
connected. The reason of the issue was the lack
of FreeRTOS heap space left, what caused
pvPortMalloc() to fail when allocating
memory for stream buffer.
Additionally minor code cleanup.
Updated FreeRTOS source code to 10.4.6.
Moved FreeRTOS sources to the third-party directory.
Added necessary changes to the CMake configuration.
Split FreeRTOSConfig.h. From now, each board has its own.
Added missing log headers.
Minor refactor of the module-os cmake.
Fixed stack overflows in bell application main and time service.
Fixed HSP sound quality issues:
- fixed HF caused by invalid output block size during interpolation of
the bluetooth input,
- increased block size to increase time send interval to 8ms
Fixed issue with error handling when writing to overflowed stream.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Add voice transcoding during phone call with two basic transforms:
- sample rate downscaling by a factor of 2 with a decimator
- sample rate upscaling by a factor of 2 with an interpolator (no
low-pass filter)
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Replace faulty implementation which produced ambiguous results with one
which is suited for both phone calls and music playback requirements,
including A2DP and HSP Bluetooth profiles.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Add a mechanism to apply a data transform on the stream's input. An
example mono to stereo transform is provided.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Add basic playback capability using Bluetooth A2DP profile.
Only stereo/44100/16bit files are supported at the moment
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Reduce audio delay by reducing audio buffer size in router operation.
Audio streams are now created directly in the operations, not in the
audio service, which gives more flexibility.
Audio Buffer size is calculated based on endpoints (source, sink) and
operation capabilities. This commit also enables allocations in a
non-cacheable region of OCRAM for endpoints that use DMA for data
transport.
Introduce power-of-two operations that use built-in functions and
possibly dedicated hardware instructions of an MCU. These operations
are required by the audio stream buffer size calculation algorithm.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>