Audio Core Changelog¶
v0.7.0 - 2022-11-30¶
- Release notes:
The fallback module has been optimized to work better with the Wireless Core’s clear channel assessment (CCA) feature.
The CDC module
module/audio_cdc_module.c/h
has been removed and converted to a regular processing stageprocessing/sac_cdc.c/h
.All endpoints, modules and processing stages prefix has been changed from
audio_
tosac_
.Statistics functions have been moved from
sac_api.c/h
tosac_stats.c/h
.The Audio Core API reference section in the documentation has been enhanced.
The Audio Core Fallback section in the documentation has been enhanced.
A CDC processing stage using clock steering as compensation mechanism
procesing/sac_cdc_clock_steering.c/h
is now available.
Added
Fallback module has the new
get_cca_metrics
public function.New
cca_max_try_count
member insac_fallback_module_cfg_t
.New
sac_cca_metrics_t
type insac_api.h
.New
cca_metrics
member insac_fallback_module_t
.SAC_LINK_MARGIN_SIZE_BYTES
constant insac_api.h
.cdc_inflated_packets_count
andcdc_deflated_packets_count
counters insac_statistics_t
.New API call
sac_pipeline_get_cdc_inflated_packets_count()
.New API call
sac_pipeline_get_cdc_deflated_packets_count()
.New
sac_stats.c/h
files.New API call
sac_pipeline_update_stats()
.New API call
sac_pipeline_format_stats()
.New
consumer_queue_peak_buffer_load
,consumer_link_margin_min_peak
,consumer_cca_fail_count_peak
statistics and getters.
Changed
fallback_set_rx_link_margin
parameter is now auint8_t``instead of ``int16_t
.fallback_update_stats
now has thecca_fail_count
parameter.In
sac_link_margin_metrics_t
,link_margin_accumulator
is now auint32_t
instead of aint32_t
andlink_margin_acc_avg
is now auint8_t
instead of aint16_t
.In
sac_fallback_module_t
,fallback_threshold
,fallback_threshold_default
andfallback_threshold_hysteresis
are now auint8_t
instead of auint16_t
. Also,rx_link_margin_data_rx
is now auint8_t
instead of aint16_t
.Replace
AUDIO_
prefix toSAC_
forsac_bit_depth_t
andsac_word_size_t
members.Rename
audio_endpoint_cfg
tosac_endpoint_cfg
.Rename
sac_mixer_module_init
tosac_mixer_init
.Rename
sac_fallback_module_init
tosac_fallback_init
.Rename
fallback_*
functions tosac_fallback_*
.
Removed
Remove
compression_enabled
field fromsac_compression_instance_t
as well asSAC_COMPRESSION_ENABLE
andSAC_COMPRESSION_DISABLE
fromsac_compression_cmd_t
. Such control should be implemented by the user in the processing stagegate()
function.Remove
packing_enabled
field fromsac_packing_instance_t
as well asSAC_PACKING_ENABLE
andSAC_PACKING_DISABLE
fromsac_packing_cmd_t
. Such control should be implemented by the user in the processing stagegate()
function.
Fixed
Coding style issues.
v0.6.0 - 2022-05-27¶
Added
The Audio Core now supports 20, 24 and 32-bit audio samples.
New processing stage that allows packing of 20 or 24-bit audio samples from 32-bit words.
New sinus generator endpoint that can produce pre-recorded sin waves at a frequency of 1 kHz, 2 kHz and 3 kHz for testing purposes.
New audio mixing module used for mixing up to 3 audio streams into a single one.
audio_protocol_cfg_t now has a sac_mixer_option_t in order to select if the pipeline is producing an audio stream to be mixed or if the pipeline is doing the mixing.
New API call
sac_mixer_module_init()
used to initialize the audio mixer module (if used).New API call
sac_endpoint_link()
used to make 2 endpoints share their audio queue (for use with the audio mixing feature).New API call
sac_pipeline_add_extra_producer()
used to add more than one audio producer in a pipeline (for use with the audio mixing feature).New
SAC_ERR_NULL_PTR
error that happens when a pointer is NULL while it should have been initialized.New
SAC_ERR_MIXER_INIT_FAILURE
error that happens when the mixer is not able to initialize properly due to an erroneous configuration.New audio fallback module.
New API call
sac_fallback_module_init()
used to initialize the audio fallback module (if used).New
producer_packets_corrupted_count
stat.New CRC4 field in audio header used to validate the content of the audio header.
New
gate
function pointer field in the Audio Processing Interface (sac_processing_interface_t
).
Changed
Prefix of the SPARK Audio Core (SAC) API changed from
audio_
tosac_
.audio_protocol.c/h has been renamed to audio_cdc_module.c/h and moved to the module folder.
audio_protocol_cfg_t
has been renamed tosac_pipeline_cfg_t
.Audio core now supports payload size up to 65535 bytes in its pipelines.
Audio payload is now aligned with 32-bit words.
Audio volume processing stage now has the prefix
audio_
on all public functions.The audio processing stage process function now returns a uint16_t payload size.
The bit depth field of the endpoint config structure now has a typedef enum to list all supported bit depths.
The payload size field of the endpoint config structure now has a uint16_t value.
sac_pipeline_process()
now mixes audio packets when the audio mixing feature is enabled.
v0.5.0 - 2022-03-03¶
Added
Audio buffer load check inside audio_pipeline_consume().
A new field in audio_protocol_cfg_t has been added to turn on or off the user data feature. The audio packet trailing byte will not be appended if it is turned off.
Fixed
CDC not properly handling multiple consumers.
v0.4.0 - 2022-02-04¶
Added
New API call audio_processing_stage_init() that initializes a processing stage and returns a reference to it.
New API call audio_pipeline_setup() used to do the final setup of the pipeline before it is operational.
New API call audio_core_get_allocated_bytes() used to know the number of bytes used in the memory pool.
New AUDIO_ERR_PIPELINE_CFG_INVALID error that happens when incompatible pipeline configurations are set.
Changed
audio_pipeline_init() now dynamically allocated the pipeline and returns a reference to it.
audio_endpoint_init() now dynamically allocated the endpoint and returns a reference to it.
Producer endpoint audio_payload_size field needs not to account for audio packet size inflation during subsequent audio processing like in the case of upsampling or decompression. The value must always be set to the exact amount of bytes the produced audio packet is.
The block_size field of the src_cmsis_cfg_t type of the Sampling Rate Converter processing stage has been replace by a payload_size field and a bit_depth field.
A const qualifier has been added to the name field of the audio_processing_t type.
The max_process_count field of the audio_protocol_cfg_t has been removed. Processing stages are allocated dynamically using the chunk of RAM allocated by the application.
Error pointer parameter has been added to audio_endpoint_init() and removed from audio_pipeline_add_processing().
audio_pipeline_stop() no longer de-initializes processing stages.
Removed
WPS audio endpoint. Audio applications must supply their own. A working implementation is provided with the SDK.
v0.3.0 - 2021-12-13¶
Added
Support for multiple audio consumers on a single audio pipeline.
Constant for ADPCM overhead and producer queue size.
Changed
Pipeline configuration variable name from queue_avg_size to cdc_queue_avg_size.
Removed
Generic I2S audio endpoint. Audio applications can create their own specific audio endpoints if needed instead.
Fixed
Coding style.
v0.2.0 - 2021-11-09¶
Changed
Sampling rate converter processing stage filter coefficients when interpolating.
v0.1.0 - 2021-09-30¶
Initial release.