From 0427c8e85c03033f77acb23f67be7c030177564d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristoffer=20Rist=20Sk=C3=B8ien?= Date: Wed, 7 Sep 2022 15:06:23 +0200 Subject: [PATCH] lc3: Moved LC3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Moved LC3 from separate repo to sdk-nrfxlib Signed-off-by: Kristoffer Rist Skøien --- CMakeLists.txt | 1 + CODEOWNERS | 1 + Kconfig.nrfxlib | 1 + lc3/CMakeLists.txt | 24 ++ lc3/Kconfig | 114 +++++ lc3/README.md | 8 + lc3/codec/inc/LC3API.h | 441 ++++++++++++++++++++ lc3/doc/T2_LC3_API_Documentation_1.5.pdf | Bin 0 -> 354565 bytes lc3/doc/license.txt | 43 ++ lc3/doc/readme.html | 461 +++++++++++++++++++++ lc3/doc/readme.md | 129 ++++++ lc3/doc/release_notes.txt | 73 ++++ lc3/include/sw_codec_lc3.h | 154 +++++++ lc3/lib/nRF5340_CPUAPP/hard-float/libLC3.a | Bin 0 -> 146470 bytes lc3/license.txt | 48 +++ lc3/platform/os/baremetal/inc/osal_types.h | 39 ++ lc3/platform/os/baremetal/src/osal.c | 355 ++++++++++++++++ lc3/platform/os/inc/osal.h | 267 ++++++++++++ lc3/platform/os/inc/osal_packed.h | 52 +++ lc3/src/sw_codec_lc3.c | 351 ++++++++++++++++ 20 files changed, 2562 insertions(+) create mode 100644 lc3/CMakeLists.txt create mode 100644 lc3/Kconfig create mode 100755 lc3/README.md create mode 100755 lc3/codec/inc/LC3API.h create mode 100644 lc3/doc/T2_LC3_API_Documentation_1.5.pdf create mode 100755 lc3/doc/license.txt create mode 100755 lc3/doc/readme.html create mode 100755 lc3/doc/readme.md create mode 100755 lc3/doc/release_notes.txt create mode 100644 lc3/include/sw_codec_lc3.h create mode 100755 lc3/lib/nRF5340_CPUAPP/hard-float/libLC3.a create mode 100644 lc3/license.txt create mode 100755 lc3/platform/os/baremetal/inc/osal_types.h create mode 100755 lc3/platform/os/baremetal/src/osal.c create mode 100755 lc3/platform/os/inc/osal.h create mode 100755 lc3/platform/os/inc/osal_packed.h create mode 100644 lc3/src/sw_codec_lc3.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 87f90c3246..32304d11bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,3 +21,4 @@ add_subdirectory_ifdef(CONFIG_NRF_RPC nrf_rpc) add_subdirectory_ifdef(CONFIG_ZIGBEE zboss) add_subdirectory_ifdef(CONFIG_GZLL gzll) add_subdirectory_ifdef(CONFIG_NRF_DM nrf_dm) +add_subdirectory_ifdef(CONFIG_SW_CODEC_LC3_T2_SOFTWARE lc3) diff --git a/CODEOWNERS b/CODEOWNERS index a948ecd626..f744f3aa77 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -46,3 +46,4 @@ doc/* @b-gent /zephyr/ @carlescufi /nrf_rpc/ @doki-nordic @KAGA164 /nrf_dm/ @Tschet1 @eriksandgren +/lc3/ @koffes @alexsven \ No newline at end of file diff --git a/Kconfig.nrfxlib b/Kconfig.nrfxlib index f85708cb4c..ba7ecc2004 100644 --- a/Kconfig.nrfxlib +++ b/Kconfig.nrfxlib @@ -17,5 +17,6 @@ rsource "openthread/Kconfig" rsource "nrf_802154/zephyr/Kconfig.nrfxlib" rsource "gzll/Kconfig" rsource "nrf_dm/Kconfig" +rsource "lc3/Kconfig" endmenu diff --git a/lc3/CMakeLists.txt b/lc3/CMakeLists.txt new file mode 100644 index 0000000000..9e60aca66c --- /dev/null +++ b/lc3/CMakeLists.txt @@ -0,0 +1,24 @@ +# +# Copyright (c) 2022 Nordic Semiconductor +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +zephyr_sources( + src/sw_codec_lc3.c + platform/os/baremetal/src/osal.c +) + +zephyr_include_directories( + codec/inc + platform/os/inc + platform/os/baremetal/inc + include +) + +nrfxlib_calculate_lib_path(LC3_LIB_DIR SOC_MODE BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +if(NOT LC3_LIB_DIR) + message(WARNING "This combination of SoC and floating point ABI is not supported by the LC3 lib.") +endif() + +target_link_libraries(app PRIVATE ${LC3_LIB_DIR}/libLC3.a) diff --git a/lc3/Kconfig b/lc3/Kconfig new file mode 100644 index 0000000000..7d926bdee6 --- /dev/null +++ b/lc3/Kconfig @@ -0,0 +1,114 @@ +# +# Copyright (c) 2022 Nordic Semiconductor ASA +# +# All rights reserved. +# +# SPDX-License-Identifier: Nordic-5-Clause +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form, except as embedded into a Nordic +# Semiconductor ASA integrated circuit in a product or a software update for +# such product, must reproduce the above copyright notice, this list of +# conditions and the following disclaimer in the documentation and/or other +# materials provided with the distribution. +# +# 3. Neither the name of Nordic Semiconductor ASA nor the names of its +# contributors may be used to endorse or promote products derived from this +# software without specific prior written permission. +# +# 4. This software, with or without modification, must only be used with a +# Nordic Semiconductor ASA integrated circuit. +# +# 5. Any software provided in binary form under this license must not be +# reverse engineered, decompiled, modified and/or disassembled. +# +# THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +config SW_CODEC_LC3_T2_SOFTWARE + bool "Select the T2 Software LC3 codec" + depends on FP_HARDABI + +config LC3_PLC_DISABLED + bool "Override the decoded frame with zeroes if PLC was applied" + default n + +config LC3_ENC_CHAN_MAX + int "Max number of encoder channels" + default 1 + +config LC3_DEC_CHAN_MAX + int "Max number of decoder channels" + default 1 + +menu "Encoder sample rates" + +config LC3_ENC_SAMPLE_RATE_8KHZ_SUPPORT + bool "Support encoding 8 kHz" + default y + +config LC3_ENC_SAMPLE_RATE_16KHZ_SUPPORT + bool "Support encoding 16 kHz" + default y + +config LC3_ENC_SAMPLE_RATE_24KHZ_SUPPORT + bool "Support encoding 24 kHz" + default y + +config LC3_ENC_SAMPLE_RATE_32KHZ_SUPPORT + bool "Support encoding 32 kHz" + default y + +config LC3_ENC_SAMPLE_RATE_441KHZ_SUPPORT + bool "Support encoding 44.1 kHz" + default y + +config LC3_ENC_SAMPLE_RATE_48KHZ_SUPPORT + bool "Support encoding 48 kHz" + default y + +endmenu #Encoder sample rates + +#----------------------------------------------------------------------------# +menu "Decoder sample rates" + +config LC3_DEC_SAMPLE_RATE_8KHZ_SUPPORT + bool "Support decoding 8 kHz" + default y + +config LC3_DEC_SAMPLE_RATE_16KHZ_SUPPORT + bool "Support decoding 16 kHz" + default y + +config LC3_DEC_SAMPLE_RATE_24KHZ_SUPPORT + bool "Support decoding 24 kHz" + default y + +config LC3_DEC_SAMPLE_RATE_32KHZ_SUPPORT + bool "Support decoding 32 kHz" + default y + +config LC3_DEC_SAMPLE_RATE_441KHZ_SUPPORT + bool "Support decoding 44.1 kHz" + default y + +config LC3_DEC_SAMPLE_RATE_48KHZ_SUPPORT + bool "Support decoding 48 kHz" + default y + +endmenu #Decoder sample rates diff --git a/lc3/README.md b/lc3/README.md new file mode 100755 index 0000000000..4cca585acf --- /dev/null +++ b/lc3/README.md @@ -0,0 +1,8 @@ +# Copyright (c) 2022 Nordic Semiconductor ASA + +Scope. LC3 library +---------------------- +- LC3 Library: delivered as .a library format +- The - LC3 Library - contain BT5.2 compliant codec (QDID: 156294) +- Terms and Conditions for LC3 +- For the terms and conditions, see license.txt diff --git a/lc3/codec/inc/LC3API.h b/lc3/codec/inc/LC3API.h new file mode 100755 index 0000000000..df8e79109f --- /dev/null +++ b/lc3/codec/inc/LC3API.h @@ -0,0 +1,441 @@ +/* + * Copyright (c) 2018-2021 T2 Software, Inc. All rights reserved. + * + * SPDX-License-Identifier: LicenseRef-T2-LC3 + */ + +/** @file LC3API.h + * @brief This file contains the API functions for the LC3 Codec implementation. + */ +#ifndef _LC3APIH_ +#define _LC3APIH_ + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************************************************** +* Includes +******************************************************************************/ +#include "osal.h" + +/*! \addtogroup LC3 + * \{ */ + +/****************************************************************************** +* Definitions +******************************************************************************/ + +/** @name LC3 Result Codes + * @anchor LC3ResultCodes */ +/**@{*/ +#define LC3_ERROR_OFFSET (-5000) /*!< \brief Offset for LC3 error values. */ +#define LC3_RESULT_NO_ERROR (0) /*!< \brief Success. */ +#define LC3_RESULT_INVALID_PARAMETER ((LC3_ERROR_OFFSET)-1) /*!< \brief Error: invalid parameter detected. */ +#define LC3_RESULT_INSUFFICIENT_RESOURCES ((LC3_ERROR_OFFSET)-2) /*!< \brief Error: not enough memory available. */ +#define LC3_RESULT_NOT_INITIALIZED ((LC3_ERROR_OFFSET)-3) /*!< \brief Error: not initialized before use. */ +#define LC3_RESULT_UNKNOWN_ERROR ((LC3_ERROR_OFFSET)-4) /*!< \brief Error: unknown error detected. */ +#define LC3_RESULT_INVALID_BITRATE ((LC3_ERROR_OFFSET)-5) /*!< \brief Error: invalid bitrate value. */ +#define LC3_RESULT_INPUT_BUFFER_TOO_SMALL ((LC3_ERROR_OFFSET)-6) /*!< \brief Error: passed buffer size too small for input data. */ +#define LC3_RESULT_OUTPUT_BUFFER_TOO_SMALL ((LC3_ERROR_OFFSET)-7) /*!< \brief Error: passed buffer size too small for output data. */ +#define LC3_RESULT_INVALID_BITSPERSAMPLE ((LC3_ERROR_OFFSET)-8) /*!< \brief Error: invalid bits per sample value. */ +#define LC3_RESULT_INVALID_SAMPLERATE ((LC3_ERROR_OFFSET)-9) /*!< \brief Error: invalid sample rate value. */ +#define LC3_RESULT_BITERRORCONDITION ((LC3_ERROR_OFFSET)-10) /*!< \brief Error: bit error condition detected in bit stream data. */ +#define LC3_RESULT_FEATURE_NOT_SUPPORTED ((LC3_ERROR_OFFSET)-11) /*!< \brief Error: feature not supported in this build. */ +#define LC3_RESULT_STILL_IN_USE ((LC3_ERROR_OFFSET)-12) /*!< \brief Error: Sessions not closed, buffer still in use. */ +#define LC3_RESULT_ALREADY_INITIALIZED ((LC3_ERROR_OFFSET)-13) /*!< \brief Error: Codec already initialized, call LC3Deinitialize first. */ +/**@}*/ + +/** @name LC3 Sample Rate Bits + * @anchor LC3SampleRateBits */ +/**@{*/ +#define LC3_SAMPLE_RATE_NONE (0x00) /*!< \brief No sample rate selected. */ +#define LC3_SAMPLE_RATE_8_KHZ (0x01) /*!< \brief 8 kHz sample rate bit. */ +#define LC3_SAMPLE_RATE_16_KHZ (0x02) /*!< \brief 16 kHz sample rate bit. */ +#define LC3_SAMPLE_RATE_24_KHZ (0x04) /*!< \brief 24 kHz sample rate bit. */ +#define LC3_SAMPLE_RATE_32_KHZ (0x08) /*!< \brief 32 kHz sample rate bit. */ +#define LC3_SAMPLE_RATE_441_KHZ (0x10) /*!< \brief 44.1 kHz sample rate bit. */ +#define LC3_SAMPLE_RATE_48_KHZ (0x20) /*!< \brief 48 kHz sample rate bit. */ +#define LC3_SAMPLE_RATE_ALL (0x1F) /*!< \brief All sample rates selected. */ +/**@}*/ + +/****************************************************************************** +* Module Typedefs +******************************************************************************/ + +/*! \brief LC3 encoder handle type. */ +typedef void * LC3EncoderHandle_t; + +/*! \brief LC3 decoder handle type. */ +typedef void * LC3DecoderHandle_t; + +/** \brief Frame Size for configuration. + * + * Defines the frame size used for global memory configuration purposes. + * Select the specific frame size if only one will be used, otherwise select + * both and the session open call will define which is used for a session. + */ +typedef enum +{ + LC3FrameSize10MsConfig, /*!< \brief 10 msec frame size. */ + LC3FrameSize7_5MsConfig, /*!< \brief 7.5 msec frame size. */ + LC3FrameSizeBothConfig /*!< \brief 7.5 and 10 msec frame size. */ +} LC3FrameSizeConfig_t; + +/** \brief Session Frame Size. + * + * Defines the valid frame sizes for an LC3 codec session. + */ +typedef enum +{ + LC3FrameSize10Ms, /*!< \brief 10 msec frame size. */ + LC3FrameSize7_5Ms /*!< \brief 7.5 msec frame size. */ +} LC3FrameSize_t; + +/** \brief LC3 encoder input PCM data structure. + * + * Structure used to pass an audio frame to the encoder. + * Incoming PCM samples must be linear with a bit depth rounded to + * the nearest byte. A bit depth of 16 uses 2 bytes per sample, bit + * depths of 17-24 use 3 bytes per sample, and bit depths of 25-32 + * use 4 bytes per sample. The number of PCM bytes needed per frame + * can be calculated using LC3PCMBuffersize(). + */ +typedef struct +{ + const void *PCMData; /*!< \brief Pointer to the PCM data to encode. */ + uint16_t PCMDataLength; /*!< \brief Length of PCM data in bytes. */ + uint32_t encodeBitrate; /*!< \brief Bit rate, in bits per second, at which to encode frame. */ + uint16_t bytesRead; /*!< \brief Number of PCM data bytes read. */ +} LC3EncodeInput_t; + +/** \brief LC3 encoder output data structure. + * + * Structure that holds the LC3 encoder output. The output buffer is externally + * allocated and its pointer and available byte length are passed into the LC3 + * Encoder. The number of output bit stream data bytes can be + * calculated with LC3BitstreamBuffersize(). + */ +typedef struct +{ + uint8_t *outputData; /*!< \brief Output buffer pointer. */ + uint16_t outputDataLength; /*!< \brief Output buffer size in bytes. */ + uint16_t bytesWritten; /*!< \brief Number of bit stream bytes written. */ +} LC3EncodeOutput_t; + +/** \brief Bad Frame Indicator (BFI). + * + * Identifies a bit stream data frame's status as known by the device. A frame + * known to contain bit errors or be otherwise corrupted should be passed with + * the BadFrame value when passed to the LC3 decoder. The decoder will detect + * bit errors internally and apply PLC automatically, but if the caller knows + * that the frame is in error, such as from information indicated by a Bluetooth + * controller, then this value is used to skip decoding and immediately execute + * packet loss concealment. + */ +typedef enum +{ + GoodFrame, + BadFrame +} LC3BFI_t; + +/** \brief LC3 decoder input bit stream structure. + * + * Structure used to pass a frame of incoming bit stream data to the LC3 decoder. + * If there is a known problem with the frame, such as an error condition + * indicated by a Bluetooth controller, then badFrameIndicator should be set to + * BadFrame. inputDataLength must represent the number of bytes exactly in the + * frame to be decoded. + */ +typedef struct +{ + const uint8_t *inputData; /*!< \brief Pointer to the input LC3 data to decode. */ + uint16_t inputDataLength; /*!< \brief Number of data bytes in the encoded frame. */ + LC3BFI_t badFrameIndicator; /*!< \brief Frame condition as detected by device. */ +} LC3DecodeInput_t; + +/** \brief LC3 decoder output PCM structure. + * + * This structure is used to hold the decoded PCM audio samples of an audio stream. + * The buffer is externally allocated and its pointer and size are passed to the + * LC3 decoder. bytesWritten contains the number of bytes written to the buffer. + * The number of PCM bytes needed per frame can be calculated with + * LC3PCMBuffersize(). If PLC has been applied to the frame, PLCCounter will + * increment by one. A frame decoded without any bit errors resets PLCCounter + * to zero. + */ +typedef struct +{ + void *PCMData; /*!< \brief Output buffer pointer. */ + uint16_t PCMDataLength; /*!< \brief Output buffer size in bytes. */ + uint16_t bytesWritten; /*!< \brief Number of bytes written to the output buffer. */ + uint16_t PLCCounter; /*!< \brief Number of successive frames to which PLC has been applied. */ +} LC3DecodeOutput_t; + + +/****************************************************************************** +* Function Prototypes +******************************************************************************/ +/**@brief Initializes the LC3 Codec. + * + * This function initializes the LC3 codec for the sample rates(s) specified in + * the encoder/decoder sample rate parameter bit masks. The sample rate bits are + * defined in @ref LC3SampleRateBits. The user must provide all required + * encoder/decoder sample rates to this function. If the exact sample rates + * are unknown, the LC3_SAMPLE_RATE_ALL value should be entered. + * + * frameSizeConfig defines if the codec will support 7.5 msec frames, 10 msec + * frames or both. If the frame size isn't known in advance, setting this to + * both allows each session to use either 7.5 or 10 msec but will use more + * memory. + * + * The uniqueSessions value is the number of unique (sample rates * frame sizes) + * sessions expected to be used simultaneously; the sample rates of 48k and + * 44.1k are considered a single sample rate for this calculation. If nothing + * is known of the expected sessions' sample rates and/or frame sizes, this + * can be set to the number of simultaneous encode + decode sessions. Setting + * this to the total number of (unique sample rates * frame sizes) will + * initialize data tables globally, otherwise they will be initialized as + * needed when sessions are opened. + * + * When LC3_SAMPLE_RATE_ALL and/or LC3FrameSizeBothConfig are used and the + * uniqueSessions value is less than the number of (sample rates * frame sizes), + * the codec allocates the worse case shared memory required based on the + * uniqueSessions value. The LC3EncodeSessionOpen and/or LC3DecodeSessionOpen + * call initializes the tables required for each session's sample rate and + * frame size. In general, the smallest memory footprint will be achieved by + * defining the sample rate bit fields and a single frame size. + * + * This function can allocate its own memory or take a user-provided buffer. It + * can also return the amount of memory needed without initializing. These memory + * options are performed in the following ways: + * + * bufferSize = NULL: Allocates memory needed. The buffer parameter may be NULL. + * + * *bufferSize < memory required by codec: Sets bufferSize's referenced value to + * the total memory required and returns @ref LC3_RESULT_INSUFFICIENT_RESOURCES. The + * caller can then call this function again with a buffer of at least bufferSize's + * referenced value. A size of 0 will always trigger this condition. The buffer + * parameter may be NULL. + * + * *bufferSize >= memory required by codec: Uses the user-provided buffer. + * bufferSize's referenced value is set to the amount of memory used by the codec. + * The buffer parameter may not be NULL. + * + * @param[in] encoderSampleRates Bitfield containing all encoder session sample rates + * required. + * @param[in] decoderSampleRates Bitfield containing all decoder session sample rates + * required. + * @param[in] frameSizeConfig Frame size of 7.5, 10 msec or both. + * @param[in] uniqueSessions The number of unique simultaneous sample rate * frame + * size sessions. + * @param[in] buffer Pointer to a memory buffer. + * @param[in,out] bufferSize Size of the memory buffer passed in, number of bytes + * used returned. + * + * @returns Zero on success or one of the defined @ref LC3ResultCodes "LC3 result codes" on error. + */ +int32_t OSALCALL LC3Initialize(uint8_t encoderSampleRates, uint8_t decoderSampleRates, LC3FrameSizeConfig_t frameSizeConfig, uint8_t uniqueSessions, uint8_t *buffer, uint32_t *bufferSize); + + +/**@brief Deinitializes the LC3 Codec. + * + * This function deinitializes the LC3 Codec. All encoder and decoder sessions + * should be closed before calling this function. Memory passed in the + * LC3Initialize's buffer parameter can be freed only after this function + * returns @ref LC3_RESULT_NO_ERROR. If LC3Initialize allocated memory internally, + * that memory will be freed upon a successful call to this function. + * + * If the result code @ref LC3_RESULT_STILL_IN_USE is returned, there are still + * open sessions. No related resources are freed until all sessions + * associated with the handle are closed. + * + * @returns Zero on success or one of the defined @ref LC3ResultCodes "LC3 result codes" on error. + */ +int32_t OSALCALL LC3Deinitialize(void); + + +/**@brief Opens and initializes an LC3 Encoder session. + * + * This function initializes the LC3 encoder in preparation for encoding one stream + * of audio. It allocates the memory needed for the session's processing, including + * any used for tracking progress from frame to frame, and initializes the allocated + * memory. + * + * A non-NULL handle to the encoder session is returned when successful. The handle + * value is passed to future calls of LC3EncodeSessionData() and + * LC3EncodeSessionClose() for this session. + * + * This function can allocate its own memory or take a user-provided buffer. It + * can also return the amount of memory needed without initializing. These memory + * options are performed in the following ways: + * + * bufferSize = NULL: Allocates memory needed. The buffer parameter may be NULL. + * + * *bufferSize < memory required by encoder: Sets bufferSize's referenced value + * to the total memory required and returns @ref LC3_RESULT_INSUFFICIENT_RESOURCES. The + * caller can then call this function again with a buffer of at least bufferSize's + * referenced value. A size of 0 will always trigger this condition. The buffer + * parameter may be NULL. + * + * *bufferSize >= memory required by encoder: Uses the user-provided buffer. + * bufferSize's referenced value is set to the amount of memory used by the encoder. + * The buffer parameter may not be NULL. + * + * @param[in] sampleRate Input PCM sample rate in Hz. + * @param[in] bitsPerSample Input PCM bits per sample. + * @param[in] frameSize Frame size of 7.5 or 10 msec. + * @param[in] buffer Pointer to a memory buffer. + * @param[in,out] bufferSize Size of the memory buffer passed in, number of bytes used returned. + * @param[out] result Pointer to an LC3 Return Code integer. + * + * @returns Non-NULL LC3EncoderHandle_t on success or NULL on failure. + */ +LC3EncoderHandle_t OSALCALL LC3EncodeSessionOpen(uint16_t sampleRate, uint8_t bitsPerSample, LC3FrameSize_t frameSize, uint8_t *buffer, uint16_t *bufferSize, int32_t *result); + + +/**@brief Encodes a frame of data using LC3. + * + * This function processes the audio frame data passed in the encodeInput structure. + * It returns the encoded data in the encodeOutput structure. + * + * @param[in] encodeHandle Handle to an encoder instance. + * @param[in] encodeInput Pointer to a structure pointing to the frame's audio + * samples to encode. + * @param[in] encodeOutput Pointer to a structure to receive the frame's encoded data. + * + * @returns Zero on success or one of the defined @ref LC3ResultCodes "LC3 result codes" on error. + */ +int32_t OSALCALL LC3EncodeSessionData(LC3EncoderHandle_t encodeHandle, LC3EncodeInput_t *encodeInput, LC3EncodeOutput_t *encodeOutput); + + +/**@brief Closes an LC3 Encoder session. + * + * This function closes the encodeHandle's session and releases allocated session memory. + * Memory passed in the LC3EncodeSessionOpen's buffer parameter can be freed after + * this returns. The encodeHandle is no longer valid and should not be reused. + * + * @param[in] encodeHandle Handle to the encoder instance to close. + * + * @returns None. + */ +void OSALCALL LC3EncodeSessionClose(LC3EncoderHandle_t encodeHandle); + + +/**@brief Opens and initializes an LC3 Decoder session. + * + * This function initializes the LC3 decoder in preparation for decoding one stream + * of audio. It allocates the memory needed for the session's processing, including + * any used for tracking progress from frame to frame, and initializes the allocated + * memory. + * + * A non-NULL handle to the decoder session is returned when successful. The handle + * value is passed to future calls of LC3DecodeSessionData() and + * LC3DecodeSessionClose() for this session. + * + * This function can allocate its own memory or take a user-provided buffer. It + * can also return the amount of memory needed without initializing. These memory + * options are performed in the following ways: + * + * bufferSize = NULL: Allocates memory needed. The buffer parameter may be NULL. + * + * *bufferSize < memory required by decoder: Sets bufferSize's referenced value + * to the total memory required and returns @ref LC3_RESULT_INSUFFICIENT_RESOURCES. The + * caller can then call this function again with a buffer of at least bufferSize's + * referenced value. A size of 0 will always trigger this condition. The buffer + * parameter may be NULL. + * + * *bufferSize >= memory required by decoder: Uses the user-provided buffer. + * bufferSize's referenced value is set to the amount of memory used by the decoder. + * The buffer parameter may not be NULL. + * + * @param[in] sampleRate Output PCM sample rate in Hz. + * @param[in] bitsPerSample Output PCM bits per sample. + * @param[in] frameSize Frame size of 7.5 or 10 msec. + * @param[in] buffer Pointer to a memory buffer. + * @param[in, out] bufferSize Size of the memory buffer passed in, number of bytes used returned. + * @param[out] result Pointer to an LC3 Return Code integer value. + * + * @returns Non-NULL LC3DecoderHandle_t on success or NULL on failure. + */ +LC3DecoderHandle_t OSALCALL LC3DecodeSessionOpen(uint16_t sampleRate, uint8_t bitsPerSample, LC3FrameSize_t frameSize, uint8_t *buffer, uint16_t *bufferSize, int32_t *result); + + +/**@brief Decodes a frame of data using LC3. + * + * Processes the frame of encoded bit stream data passed by the decodeInput structure. + * Returns the decoded audio PCM data via the decodeOutput structure. + * + * This function will automatically apply packet loss concealment (PLC) to any frame where + * the decode input's badFrameIndicator is set to BadFrame or if the bit stream data contains + * errors. The caller should set badFrameIndicator to BadFrame if the caller knows in advance + * of bit stream errors; this allows the decoder to skip decoding and directly apply PLC. If + * the caller is unaware of bit stream errors, but they are present, the decoder will detect + * them regardless. When PLC is applied successfully, this function still returns + * @ref LC3_RESULT_NO_ERROR as when a frame is decoded successfully, but the decode output's + * PLCCounter parameter is incremented. Upon a successful decode, PLCCounter is reset. + * Therefore, a non-zero PLCCounter indicates PLC has been applied to the current frame. + * + * @param[in] decodeHandle Handle to a decoder instance. + * @param[in] decodeInput Pointer to a structure pointing to the encoded bit stream frame + * to decode. + * @param[in] decodeOutput Pointer to a structure to receive the frame's decoded PCM data. + * + * @returns Zero on success or one of the defined @ref LC3ResultCodes "LC3 result codes" on error. + */ +int32_t OSALCALL LC3DecodeSessionData(LC3DecoderHandle_t decodeHandle, LC3DecodeInput_t *decodeInput, LC3DecodeOutput_t *decodeOutput); + + +/**@brief Closes an LC3 Decoder session. + * + * This function closes the decodeHandle's session and and releases allocated session memory. + * Memory passed in the LC3DecodeSessionOpen's buffer parameter can be freed after + * this returns. The decodeHandle is no longer valid and should not be reused. + * + * @param[in] decodeHandle Handle to the decoder instance to close. + * + * @returns None. + */ +void OSALCALL LC3DecodeSessionClose(LC3DecoderHandle_t decodeHandle); + + +/**@brief Calculates the buffer size required for bit stream data. + * + * Returns the minimum buffer size in bytes needed to hold a frame of bit stream data + * for the specified sample rate and bit rate. + * + * The maxBitRate parameter is the maximum bitrate value that will be passed + * to LC3EncodeSessionData() at any point during the session's encoding. + * + * @param[in] sampleRate Sample rate. + * @param[in] maxBitRate Session's maximum encoding bit rate. + * @param[in] frameSize Frame size of 7.5 or 10 msec. + * @param[out] result Pointer to an LC3 Return Code integer. + * + * @returns Bit stream buffer size on success or 0 on error. + */ +uint16_t OSALCALL LC3BitstreamBuffersize(uint16_t sampleRate, uint32_t maxBitRate, LC3FrameSize_t frameSize, int32_t *result); + + +/**@brief Calculates the buffer size required for PCM data. + * + * Returns the minimum buffer size in bytes needed to hold a frame of PCM data + * for the specified sample rate and bit depth. A bitDepth value in the range + * (16,24] uses a 3 byte/sample PCM output while (24,32] uses 4 bytes/sample. + * + * @param[in] sampleRate Sample rate. + * @param[in] bitDepth Bit depth of generated PCM data. + * @param[in] frameSize Frame size of 7.5 or 10 msec. + * @param[out] result Pointer to an LC3 Return Code integer. + * + * @returns PCM buffer size on success or 0 on error. + */ +uint16_t OSALCALL LC3PCMBuffersize(uint16_t sampleRate, uint8_t bitDepth, LC3FrameSize_t frameSize, int32_t *result); + +/*! \} */ /* LC3 */ + +#ifdef __cplusplus +}; +#endif + +#endif /* _LC3APIH_ */ diff --git a/lc3/doc/T2_LC3_API_Documentation_1.5.pdf b/lc3/doc/T2_LC3_API_Documentation_1.5.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3d953792b2b6084addaa0bd750de0b144227cbd8 GIT binary patch literal 354565 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

mju#BD#i{ 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

k@8UCpnFhOQ72%6!HbE=ndV76A% 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 kVwoBnYW#hOtp+^i + + +readme_dist + + + + +

T2 SOFTWARE LC3

+

Integration and distribution information for T2 Software, Inc.'s LC3 codec library.

+

OVERVIEW:

+

This distribution provides a means for integrating into your application, as well as an application for using the LC3 codec on a desktop computer.

+

DIRECTORIES:

+
    +
  • +apps +
      +
    • Demo/utility applications
    • +
    +
  • +
  • +codec +
      +
    • Library and header for use in your application +
    • +
    +
  • +
  • +doc +
      +
    • API documentation
    • +
    +
  • +
  • +platform +
      +
    • Platform abstraction layer
    • +
    +
  • +
+

INTEGRATION:

+

The LC3 library can be integrated into your application via the following steps:

+
    +
  1. Port memory functions to your platform if needed
  2. +
  3. Update your project with the necessary files
  4. +
+

PLATFORM

+

The directory "platform/os/baremetal" contains an abstraction layer that uses the stdlib heap functions (malloc/free).

+

If you need to use a different heap, then create a new directory platform/os/[PLATFORM] where [PLATFORM] is the name of your platform and modify the functions as needed.

+

If you will be providing your own buffers directly to the LC3 APIs, then the heap functions will not be called. You may stub these platform functions if malloc() and free() are not present in your project in that case.

+

BUILD

+

The following are the necessary components for integrating LC3 into your project:

+
    +
  • +Link +
      +
    • codec/[CODEC_TYPE]/lib/[PLATFORM]libLC3.a
    • +
    +
  • +
  • +Header file +
      +
    • codec/inc/LC3API.h
    • +
    +
  • +
  • +Include directories +
      +
    • platform/os/inc
    • +
    • platform/os/[PLATFORM]/inc
    • +
    +
  • +
  • +C Files +
      +
    • platform/os/[PLATFORM]/src/osal.c
    • +
    +
  • +
+

Also ensure you are using the appropriate compiler flags for either hard or soft float and that the corresponding math library is linked.

+

APPLICATION:

+

T2_LC3

+

T2_LC3 is an application that allows you to use the LC3 codec on a desktop computer. It is able to both encode WAV files into a binary format, and decode binary files back into WAV files.

+

Builds of T2_LC3 are provided for PC.

+

Usage

+

Usage: [mode] [options] [input] [output] [bitrate]

+

Where [mode] is:

+
    +
  • -E for encode mode.
  • +
  • -D for decode mode.
  • +
  • Omitted for encode/decode mode (encode, then decode).
  • +
+

Where [options] are all optional and may include:

+
    +
  • +

    -bps [bit depth]

    +
      +
    • Sets the output bit depth, defaults to 16 bits. 16, 24, or 32 are allowed.
    • +
    • Valid in encode/decode or decode mode.
    • +
    +
  • +
  • +

    -frame_ms [value]

    +
      +
    • Set the frame size, defaults to 10 msec. 10 - 10 msec; 7.5 - 7.5 msec.
    • +
    +
  • +
  • +

    -swf [file]

    +
      +
    • Uses a variable bit rate pattern read from the given file. The file format is binary with every two little endian bytes representing the total number of bytes per second for all channels. The pattern defined by the file is repeated when the codec reaches the end of the file. Valid in encode or encode/decode mode.
    • +
    +
  • +
  • +

    -epf [file]

    +
      +
    • Uses a pattern file designating lost frames. The file format is binary with every non-zero 16 bit value indicating a frame loss. The pattern defined by the file is repeated when the codec reaches the end of the file. Valid in decode or encode/decode mode.
    • +
    +
  • +
  • +

    -edf [file]

    +
      +
    • Creates a frame loss pattern file by capturing the decode frame results. The file format is binary with every non-zero 16 bit value indicating a detected errored. Valid in decode or encode/decode mode.
    • +
    +
  • +
  • +

    -dc [value]

    +
      +
    • Enables delay compensation by removing the first 1/4 frame of the decoder output when the value is set to 1. Disables delay compensation by including the first 1/4 frame of the decoder output when the value is set to 0. Default value is enabled.
    • +
    +
  • +
+

Where [input] is:

+
    +
  • A WAV file in encode or encode/decode mode.
  • +
  • A binary file in decode mode.
  • +
+

Where [output] is:

+
    +
  • A binary file in encode mode.
  • +
  • A WAV file in decode or encode/decode mode.
  • +
+

Where [bitrate] is:

+
    +
  • Bits per second in encode or encode/decode mode.
  • +
  • Ignored in decode mode.
  • +
+

Example Commands

+

An example encode command is:

+
    +
  • T2_LC3 -E input.wav tmp.bin 80000
  • +
+

An example decode command is:

+
    +
  • T2_LC3 -D tmp.bin output.wav
  • +
+

An example encode/decode command (10 msec frame) is:

+
    +
  • T2_LC3 input.wav output.wav 80000
  • +
+

An example encode/decode command (7.5 msec frame) is:

+
    +
  • T2_LC3 -frame_ms 7.5 input.wav output.wav 80000
  • +
+

An example encode/decode command with a specified output bit depth is:

+
    +
  • T2_LC3 -bps 24 input.wav output.wav 80000
  • +
+

An example encode/decode command with a specified output bit depth and delay compensation disabled is:

+
    +
  • T2_LC3 -bps 24 -dc 0 input.wav output.wav 80000
  • +
+ + + + diff --git a/lc3/doc/readme.md b/lc3/doc/readme.md new file mode 100755 index 0000000000..aebcb9c6a0 --- /dev/null +++ b/lc3/doc/readme.md @@ -0,0 +1,129 @@ +# T2 SOFTWARE LC3 + +Integration and distribution information for T2 Software, Inc.'s LC3 codec library. + +## OVERVIEW: + +This distribution provides a means for integrating into your application, as well as an application for using the LC3 codec on a desktop computer. + +## DIRECTORIES: + +- apps + - Demo/utility applications +- codec + - Library and header for use in your application +- doc + - API documentation +- platform + - Platform abstraction layer + +## INTEGRATION: + +The LC3 library can be integrated into your application via the following steps: + +1. Port memory functions to your platform if needed +2. Update your project with the necessary files + +### PLATFORM + +The directory "platform/os/baremetal" contains an abstraction layer that uses the stdlib heap functions (malloc/free). + +If you need to use a different heap, then create a new directory platform/os/[PLATFORM] where [PLATFORM] is the name of your platform and modify the functions as needed. + +If you will be providing your own buffers directly to the LC3 APIs, then the heap functions will not be called. You may stub these platform functions if malloc() and free() are not present in your project in that case. + +### BUILD + +The following are the necessary components for integrating LC3 into your project: + +- Link + - codec/[CODEC_TYPE]/lib/[PLATFORM]libLC3.a +- Header file + - codec/inc/LC3API.h +- Include directories + - platform/os/inc + - platform/os/[PLATFORM]/inc +- C Files + - platform/os/[PLATFORM]/src/osal.c + +Also ensure you are using the appropriate compiler flags for either hard or soft float and that the corresponding math library is linked. + +## APPLICATION: + +### T2_LC3 + +T2_LC3 is an application that allows you to use the LC3 codec on a desktop computer. It is able to both encode WAV files into a binary format, and decode binary files back into WAV files. + +Builds of T2_LC3 are provided for PC. + +#### Usage + +Usage: [mode] [options] [input] [output] [bitrate] + +Where [mode] is: + +- -E for encode mode. +- -D for decode mode. +- Omitted for encode/decode mode (encode, then decode). + +Where [options] are all optional and may include: + +- -bps [bit depth] + - Sets the output bit depth, defaults to 16 bits. 16, 24, or 32 are allowed. + - Valid in encode/decode or decode mode. + +- -frame_ms [value] + - Set the frame size, defaults to 10 msec. 10 - 10 msec; 7.5 - 7.5 msec. + +- -swf [file] + - Uses a variable bit rate pattern read from the given file. The file format is binary with every two little endian bytes representing the total number of bytes per second for all channels. The pattern defined by the file is repeated when the codec reaches the end of the file. Valid in encode or encode/decode mode. + +- -epf [file] + - Uses a pattern file designating lost frames. The file format is binary with every non-zero 16 bit value indicating a frame loss. The pattern defined by the file is repeated when the codec reaches the end of the file. Valid in decode or encode/decode mode. + +- -edf [file] + - Creates a frame loss pattern file by capturing the decode frame results. The file format is binary with every non-zero 16 bit value indicating a detected errored. Valid in decode or encode/decode mode. + +- -dc [value] + - Enables delay compensation by removing the first 1/4 frame of the decoder output when the value is set to 1. Disables delay compensation by including the first 1/4 frame of the decoder output when the value is set to 0. Default value is enabled. + +Where [input] is: + +- A WAV file in encode or encode/decode mode. +- A binary file in decode mode. + +Where [output] is: + +- A binary file in encode mode. +- A WAV file in decode or encode/decode mode. + +Where [bitrate] is: + +- Bits per second in encode or encode/decode mode. +- Ignored in decode mode. + +#### Example Commands + +An example encode command is: + +- T2_LC3 -E input.wav tmp.bin 80000 + +An example decode command is: + +- T2_LC3 -D tmp.bin output.wav + +An example encode/decode command (10 msec frame) is: + +- T2_LC3 input.wav output.wav 80000 + +An example encode/decode command (7.5 msec frame) is: + +- T2_LC3 -frame\_ms 7.5 input.wav output.wav 80000 + +An example encode/decode command with a specified output bit depth is: + +- T2_LC3 -bps 24 input.wav output.wav 80000 + +An example encode/decode command with a specified output bit depth and delay compensation disabled is: + +- T2_LC3 -bps 24 -dc 0 input.wav output.wav 80000 \ No newline at end of file diff --git a/lc3/doc/release_notes.txt b/lc3/doc/release_notes.txt new file mode 100755 index 0000000000..7e72404d43 --- /dev/null +++ b/lc3/doc/release_notes.txt @@ -0,0 +1,73 @@ +LC3 version 1.0.4, release type 1.1 + +Build information: + * Platform: ARM Cortex-M33, Cortex-M44 + * Compiler: ARM v6, -Ofast + * Hard floating point, fixed point + +Changes in 1.0.4: + * Replace floating point stdlib dependencies in data path with T2 functions + * LTPF decoder optimizations, fixed point + +Changes in 1.0.3: + * MDCT optimizations + * LTPF optimizations + * Arithmetic encoding optimizations + +Changes in 1.0.2: + * Platform-specific optimizations + +Changes in 1.0.1: + * Fixed point optimizations. + +Changes in 1.0.0: + * ARC LTPF SIMD optimizations + +Changes in 0.9.14: + * ARM optimizations + +Changes in 0.9.13: + * Add compile option to separate encode/decode memory + +Changes in 0.9.12: + * ARM optimizations + +Changes in 0.9.11: + * ARM optimizations + +Changes in 0.9.10: + * Incorporate all technical errata up to 15138 + +Changes in 0.9.9: + * Non-functional changes + +Changes in 0.9.8: + * Fixed point memory optimizations + * Fixed point 7.5 ms frame size conformance improvements, meets stricter 0.06 ODG threshold in conformance tests + * Fix scaling for > 16 bit PCM output in fixed point + +Changes in 0.9.7: + * Fix for Glockenspiel 24 kHz / 48 kbps / 7.5 ms exceeding 0.06 ODG in floating point encode/decode test + * Performance optimizations + +Changes in 0.9.6: + * Added 7.5 ms support for floating point + +Changes in 0.9.5: + * Fixed point memory optimizations + +Changes in 0.9.4: + * Added 24 and 32 bit PCM input and output to T2_LC3. + * Optimizations in pitch lag detection + * Added API for amount of packet loss correction (PLC) applied + * Added API for providing static buffers + * Added error code offset to avoid value conflict with other modules + * Added API for the number of bytes read from encoder input. + +Changes in 0.9.3: + * Fixed an issue in T2_LC3 where decoding a single frame resulted in 1/4 frame of additional PCM output. + +Changes in 0.9.2: + * Added x64 Linux build T2_LC3 + * Added support for multi-channel WAV files to T2_LC3 application + * Removed a DLL dependency from T2_LC3 Windows build diff --git a/lc3/include/sw_codec_lc3.h b/lc3/include/sw_codec_lc3.h new file mode 100644 index 0000000000..3a0eed3f73 --- /dev/null +++ b/lc3/include/sw_codec_lc3.h @@ -0,0 +1,154 @@ +/* + * Copyright (c) 2021 Nordic Semiconductor ASA + * + * All rights reserved. + * + * SPDX-License-Identifier: Nordic-5-Clause + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef __SW_CODEC_LC3_H__ +#define __SW_CODEC_LC3_H__ + +#include + +#define LC3_USE_BITRATE_FROM_INIT 0 + +/**@brief Runs the LC3 encoder + * + * @param[in] pcm_data Buffer containing PCM data + * @param[in] pcm_data_size Number of bytes in pcm_data. Note that + * pcm_data is uint16_t *. + * @param[in] enc_bitrate Bitrate of encoded mono stream (bps). + * If set to LC3_USE_BITRATE_FROM_INIT + * the bitrate given to + * sw_codec_lc3_enc_init() will be used. + * Consult the LC3 doc for legal values. + * @param[in] audio_ch Index to which channel is being encoded + * @param[in] lc3_data_buf_size Size of supplied LC3 buffer. + * + * @param[out] lc3_data Pointer to LC3 data output buffer. + * @param[out] lc3_data_wr_size Number of bytes written to lc3_data. + * + * + * @note The return codes from Zephyr and LC3 may overlap. + * + * @return 0 on success. -EPERM Encoder is not initialized. + * -EINVAL Too few PCM bytes given to encode. + * Other errors. Refer to LC3 documentation. + */ +int sw_codec_lc3_enc_run(void const *const pcm_data, uint32_t pcm_data_size, uint32_t enc_bitrate, + uint8_t audio_ch, uint16_t lc3_data_buf_size, uint8_t *const lc3_data, + uint16_t *const lc3_data_wr_size); + +/**@brief Runs the LC3 decoder + * + * @param[in] lc3_data Buffer containing LC3 data. + * @param[in] lc3_data_size Number of bytes in lc3_data. + * @param[in] pcm_data_buf_size Size of supplied pcm_data buffer + * @param[in] audio_ch Index to which channel is being decoded + * + * @param[out] pcm_data Pointer to PCM data output buffer. + * @param[out] pcm_data_wr_size Number of bytes written to pcm_data + * @param[out] bad_frame Bad frame indicator. Refer to LC3 doc. + * + * + * @note The return codes from Zephyr and LC3 may overlap. + * + * @return 0 on success. -EPERM Decoder is not initialized. + * Other errors. Refer to LC3 documentation. + */ +int sw_codec_lc3_dec_run(uint8_t const *const lc3_data, uint16_t lc3_data_size, + uint16_t pcm_data_buf_size, uint8_t audio_ch, void *const pcm_data, + uint16_t *const pcm_data_wr_size, bool bad_frame); + +/**@brief Closes the LC3 encoder and frees allocated RAM + * + * @return 0 on success. -EALREADY if already un-initialized. + */ +int sw_codec_lc3_enc_uninit_all(void); + +/**@brief Closes the LC3 decoder and frees allocated RAM + * + * @return 0 on success. -EALREADY if already un-initialized. + */ +int sw_codec_lc3_dec_uninit_all(void); + +/**@brief Initializes the LC3 Codec + * + * @note: For documentation, see LC3API.h (/codec/inc/LC3API.h) + */ +int sw_codec_lc3_init(uint8_t *sw_codec_lc3_buffer, uint32_t *sw_codec_lc3_buffer_size, + uint16_t framesize_us); + +/**@brief Initializes the LC3 encoder and allocates required RAM + * + * @param[in] pcm_sample_rate Sample rate in Hz (typ. 16000 or 48000) + * @param[in] pcm_bit_depth Number of bits in sample (typ. 16 or 24) + * @param[in] framesize_us Frame size in microseconds + * @param[in] enc_bitrate Bitrate of encoded mono stream (bps) + * (typ. 24000 - 160000). Consult the LC3 + * doc for legal values. + * @param[in] num_channels Number of channels to initialize + * + * @param[out] pcm_bytes_req PCM bytes required to encode a frame. + * + * @note The return codes from Zephyr and LC3 may overlap. + * + * @return 0 on success. -EALREADY if already initialized. + * -EPERM 0 bytes required from PCM sample. + * Other errors. Refer to LC3 documentation. + */ +int sw_codec_lc3_enc_init(uint16_t pcm_sample_rate, uint8_t pcm_bit_depth, uint16_t framesize_us, + uint32_t enc_bitrate, uint8_t num_channels, + uint16_t *const pcm_bytes_req); + +/**@brief Initializes the LC3 decoder and allocates required RAM + * + * @param[in] pcm_sample_rate Sample rate in Hz (typ. 16000 or 48000) + * @param[in] pcm_bit_depth Output PCM bits per sample. + * @param[in] framesize_us Frame size in microseconds + * @param[in] num_channels Number of channels to initialize + * + * @note The return codes from Zephyr and LC3 may overlap. + * + * @return 0 on success. -EALREADY if already initialized. + * Other errors. Refer to LC3 documentation. + */ +int sw_codec_lc3_dec_init(uint16_t pcm_sample_rate, uint8_t pcm_bit_depth, uint16_t framesize_us, + uint8_t num_channels); + +#endif /* __SW_CODEC_LC3_H__ */ diff --git a/lc3/lib/nRF5340_CPUAPP/hard-float/libLC3.a b/lc3/lib/nRF5340_CPUAPP/hard-float/libLC3.a new file mode 100755 index 0000000000000000000000000000000000000000..49fbb850292fd0f512103a0a2fb5ed36921fefd9 GIT binary patch literal 146470 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 literal 0 HcmV?d00001 diff --git a/lc3/license.txt b/lc3/license.txt new file mode 100644 index 0000000000..034e6a7c17 --- /dev/null +++ b/lc3/license.txt @@ -0,0 +1,48 @@ +LicenseID: LicenseRef-T2-LC3 + +ExtractedText: +Copyright T2 Software, Inc. 2018-2021. All rights reserved. + +This Bluetooth LC implementation software (the Software) is compliant to Bluetooth Special Interest +Group specification “LC3, Low Complexity Communication Codec Version 1.0”, and is owned and +licensed by T2 Software, Inc. The LC3 technology as such was developed and is owned by Fraunhofer- +Gesellschaft and the rights thereto are made available to interested parties through the product +certification by Bluetooth Special Interest Group. + +T2 Software, Inc. make the Software available in binary form to customers of Nordic Semiconductor +ASA integrated circuits on the following terms and conditions: + +1. The Software may only be used and incorporated into Nordic Semiconductor ASA integrated + circuits in a product or a software update for such product. +2. The Software may not be modified, translated, decompiled, reverse-engineered, + disassembled or otherwise reduced to source code or human perceivable form. +3. Neither the name of T2 Software, Inc. or Nordic Semiconductor ASA may be used to endorse + or promote products derived from this Software without specific prior written permission. +4. T2 Software, Inc. reserve all rights related to the Software not expressly granted herein. T2 + Software, Inc. is and remain the sole owner of all right, title and interest whatsoever in and + to the Software, except for open-source components to which T2 Software, Inc. has obtained + the right to grant this license. +5. The Software is not fault tolerant and is not designed or intended for use as on-line control + equipment in hazardous or “life and death” environments requiring fail-safe performance, + such as in the operation of nuclear facilities, aircraft navigation or communications, + air traffic control, direct life support machines, or weapons systems, in which the failure + of the Software could lead directly to death, personal injury, or severe physical or + environmental damage, i.e., “Critical Control Applications”. + +THIS SOFTWARE IS PROVIDED BY T2 SOFTWARE, INC. AND NORDIC SEMICONDUCTOR ASA “AS IS” AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL T2 SOFTWARE, INC. OR NORDIC SEMICONDUCTOR ASA BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + +The following tags tell the "west ncs-sbom" tool which files are covered +by the license information above. +SPDX-License-Identifier: LicenseRef-T2-LC3 +NCS-SBOM-Apply-To-File: ./**/*.a diff --git a/lc3/platform/os/baremetal/inc/osal_types.h b/lc3/platform/os/baremetal/inc/osal_types.h new file mode 100755 index 0000000000..01ee998b81 --- /dev/null +++ b/lc3/platform/os/baremetal/inc/osal_types.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2018-2021 T2 Software, Inc. All rights reserved. + * + * SPDX-License-Identifier: LicenseRef-T2-LC3 + */ + +#ifndef __OSAL_TYPES_H__ +#define __OSAL_TYPES_H__ + +#include +#include + +/**@brief OSAL calling convention. + */ +#define OSALCALL + + /**@brief Defines packed message macros. + */ +#define PACKED_BEGIN +#define PACKED_END + +/**@brief Defines the OSAL boolean value. + */ + +typedef int bool_t; + +#ifndef TRUE +#define TRUE (1 == 1) +#endif + +#ifndef FALSE +#define FALSE (1 == 2) +#endif + +#ifndef NULL +#define NULL (void *)0 +#endif + +#endif // __OSAL_TYPES_H__ diff --git a/lc3/platform/os/baremetal/src/osal.c b/lc3/platform/os/baremetal/src/osal.c new file mode 100755 index 0000000000..c80b1503d7 --- /dev/null +++ b/lc3/platform/os/baremetal/src/osal.c @@ -0,0 +1,355 @@ +/* + * Copyright (c) 2018-2021 T2 Software, Inc. All rights reserved. + * + * SPDX-License-Identifier: LicenseRef-T2-LC3 + */ + +#include +#include +#include "osal.h" + +#define OSAL_NUM_DEBUG_MEM_ENTRIES 50 + +#if OSAL_NUM_DEBUG_MEM_ENTRIES > 0 +#include +#include +#include +#endif + +/**@brief Internal memory debug entry type. + */ +typedef struct OSAL_Mem_Debug_Entry_s +{ + void *Buffer; + size_t Length; +} OSAL_Mem_Debug_Entry_t; + +#if OSAL_NUM_DEBUG_MEM_ENTRIES > 0 +static OSAL_Mem_Debug_Entry_t OSALMemDebugEntries[OSAL_NUM_DEBUG_MEM_ENTRIES]; +static size_t OSALMemDebugHighWaterMark; +#endif + +/**@brief Allocates heap memory. + * + * @param[in] Size Size of the memory to allocate. + * + * @returns Pointer to the memory allocated or NULL upon failure. + */ +void *OSAL_Malloc(size_t Size) +{ +#if OSAL_NUM_DEBUG_MEM_ENTRIES > 0 + uint16_t Index; + size_t CurrentHeapUsage = 0; +#endif + void *RetVal; + + RetVal = malloc(Size); + +#if OSAL_NUM_DEBUG_MEM_ENTRIES > 0 + // If memory debug is enabled, store the pointer and size. + if (RetVal) + { + // Find an empty memory entry. + for (Index = 0; Index < OSAL_NUM_DEBUG_MEM_ENTRIES; Index++) + { + if (OSALMemDebugEntries[Index].Buffer == NULL) + { + // Store the pointer and length. + OSALMemDebugEntries[Index].Buffer = RetVal; + OSALMemDebugEntries[Index].Length = Size; + break; + } + } + + // Ensure we found an entry. + assert(Index != OSAL_NUM_DEBUG_MEM_ENTRIES); + + // Sum each memory entry. + for (Index = 0; Index < OSAL_NUM_DEBUG_MEM_ENTRIES; Index++) + { + CurrentHeapUsage += OSALMemDebugEntries[Index].Length; + } + + // Update the high water mark if needed. + if(CurrentHeapUsage > OSALMemDebugHighWaterMark) + { + OSALMemDebugHighWaterMark = CurrentHeapUsage; + } + } +#endif + + return RetVal; +} + +/**@brief Frees heap memory. + * + * @param[in] Ptr Pointer to the memory that was allocated in a call to + OSAL_Malloc(). + */ +void OSAL_Free(void *Ptr) +{ +#if OSAL_NUM_DEBUG_MEM_ENTRIES > 0 + uint16_t Index; +#endif + free(Ptr); + +#if OSAL_NUM_DEBUG_MEM_ENTRIES > 0 + // If memory debug is enabled, remove the pointer and size. + if (Ptr) + { + // Find an empty memory entry. + for (Index = 0; Index < OSAL_NUM_DEBUG_MEM_ENTRIES; Index++) + { + if (OSALMemDebugEntries[Index].Buffer == Ptr) + { + // Clear the pointer and length. + OSALMemDebugEntries[Index].Buffer = NULL; + OSALMemDebugEntries[Index].Length = 0; + break; + } + } + + // Ensure we found an entry. + assert(Index != OSAL_NUM_DEBUG_MEM_ENTRIES); + } +#endif +} + +#if OSAL_NUM_DEBUG_MEM_ENTRIES > 0 +/**@brief Gets the heap usage. + * + * @param[out] HighWaterMark Optional pointer to the high water mark heap value. + * @param ResetHighWaterMark Flag whether to reset the high water mark or not. + * + * @returns Current heap usage in bytes. + */ +size_t OSAL_Current_Heap_Usage(size_t *HighWaterMark, bool_t ResetHighWaterMark) +{ + uint16_t Index; + size_t RetVal = 0; + + // Set the caller's high water mark. + if (HighWaterMark) + { + *HighWaterMark = OSALMemDebugHighWaterMark; + } + + // Reset the high water mark. + if (ResetHighWaterMark) + { + OSALMemDebugHighWaterMark = 0; + } + + // Sum each memory entry. + for (Index = 0; Index < OSAL_NUM_DEBUG_MEM_ENTRIES; Index++) + { + RetVal += OSALMemDebugEntries[Index].Length; + } + + return RetVal; +} +#endif + +/**@brief Sets buffer entries to a value. + * + * @param[in] ptr Pointer to the buffer to set. + * @param[in] value Value to set the buffer to. + * @param[in] num Size of the buffer. + * + * @returns Pointer to the input buffer. + */ +void *OSAL_Memset(void *Ptr, int Value, size_t Num) +{ + void *RetVal; + + RetVal = memset(Ptr, Value, Num); + + return RetVal; +} + +/**@brief Copies data from one buffer to another. + * + * @param[in] Dst Copy destination buffer. + * @param[in] Src Copy source buffer. + * @param[in] Num Size of the data to copy. + * + * @returns Pointer to the destination buffer. + */ +void *OSAL_Memcpy(void *dst, const void *src, size_t Num) +{ + void *RetVal; + + RetVal = memcpy(dst, src, Num); + + return RetVal; +} + +/**@brief Compares data between two buffers. + * + * @param[in] Ptr1 Pointer to first buffer. + * @param[in] Ptr2 Pointer to second buffer. + * @param[in] Num Size of the data to compare. + * + * @returns < 0 if the first non-matching byte has a lower value in ptr1 than in ptr2. + * > 0 if the first non-matching byte has a greater value in ptr1 than in ptr2. + * 0 if the data in both buffers matches. + */ +int OSAL_Memcmp(const void *Ptr1, const void *Ptr2, size_t Num) +{ + int RetVal; + + RetVal = memcmp(Ptr1, Ptr2, Num); + + return RetVal; +} + +/**@brief Creates a mutex. + * + * @param[in] owned Creates the mutex as owned if TRUE or unowned if FALSE. + * + * @returns Handle to the created mutex upon successor NULL upon failure. + */ +OSAL_Mutex_t OSAL_Create_Mutex(bool_t Owned) +{ + return (OSAL_Mutex_t)NULL; +} + +/**@brief Destroys a mutex. + * + * @param[in] mutex Handle to the mutex returned from OSAL_Create_Mutex(). + */ +void OSAL_Close_Mutex(OSAL_Mutex_t Mutex) +{ +} + +/**@brief Waits for ownership of a mutex. + * + * @param[in] Mutex Handle to the mutex returned from OSAL_Create_Mutex(). + * @param[in] Timeout Value in milliseconds to wait for the mutex or OSAL_TIMEOUT_INFINITE + * to wait forever. + * + * @returns TRUE upon success or FALSE upon failure. + */ +bool_t OSAL_Wait_Mutex(OSAL_Mutex_t Mutex, unsigned long Timeout) +{ + return FALSE; +} + +/**@brief Releases ownership of a mutex. + * + * @param[in] mutex Handle to the mutex returned from OSAL_Create_Mutex(). + */ +void OSAL_Release_Mutex(OSAL_Mutex_t Mutex) +{ +} + +/**@brief Creates a timer. + * + * @param[in] Delay Interval on which to trigger the timer. + * @param[in] Start Start the timer at creation or not. + * @param[in] Type Periodic or one-shot timer. + * @param[in] TimerFunction Timer handler function. + * @param[in] Data Pointer to application data to be provided as an argument to the timer function call. + * + * @returns Handle to the created timer upon successor NULL upon failure. + */ +OSAL_Timer_t OSAL_Create_Timer(uint32_t Delay, bool_t Start, OSAL_Timer_Type_t Type, OSAL_Timer_Function_t TimerFunction, void *Data) +{ + return (OSAL_Timer_t)NULL; +} + +/**@brief Starts a timer. + * + * @param[in] Timer Handle to the timer returned from OSAL_Create_Timer(). + * + * @returns OSAL_STATUS_SUCCESS upon success or other status value upon failure. + */ +int OSAL_Start_Timer(OSAL_Timer_t Timer) +{ + return OSAL_STATUS_INTERNAL_ERROR; +} + +/**@brief Frees a timer. + * + * @param[in] Timer Handle to the timer returned from OSAL_Create_Timer(). + */ +void OSAL_Close_Timer(OSAL_Timer_t Timer) +{ +} + +/**@brief Creates a thread. + * + * @param[in] StackSize Stack size of the thread; may be 0 for the default thread stack size. + * @param[in] ThreadFunction Timer handler function. + * @param[in] Data Pointer to application data to be provided as an argument to the thread function call. + * + * @returns Handle to the created thread upon successor NULL upon failure. + */ +OSAL_Thread_t OSAL_Create_Thread(uint32_t StackSize, OSAL_Thread_Function_t ThreadFunction, void *Data) +{ + return (OSAL_Thread_t)NULL; +} + +/**@brief Creates an event. + * + * @returns Handle to the created thread upon successor NULL upon failure. + */ +OSAL_Event_t OSAL_Create_Event(void) +{ + return (OSAL_Event_t)NULL; +} + +/**@brief Waits for one or more event bits to be set. + * + * @param[in] Event Handle to the event returned from OSAL_Create_Event(). + * @param[in] Flags Bitmask of the event bits to wait for, must include at least one bit. + * @param[in] FlagsSet Bitmask of the events that were set. + * @param[in] Reset If TRUE, resets the event bits that were set. + * @param[in] Timeout Value in milliseconds to wait for the event or OSAL_TIMEOUT_INFINITE to wait forever. + * + * @returns OSAL_STATUS_SUCCESS upon success or other status value upon failure. + */ +int OSAL_Wait_Event(OSAL_Event_t Event, uint32_t Flags, uint32_t *FlagsSet, bool_t Reset, int Timeout) +{ + return OSAL_STATUS_INTERNAL_ERROR; +} + +/**@brief Sets an event. + * + * @param[in] Event Handle to the event returned from OSAL_Create_Event(). + * @param[in] Flags Bitmask of the event bits to set, must include at least one bit. + * + * @returns OSAL_STATUS_SUCCESS upon success or other status value upon failure. + */ +int OSAL_Set_Event(OSAL_Event_t Event, uint32_t Flags) +{ + return OSAL_STATUS_INTERNAL_ERROR; +} + +/**@brief Resets an event. + * + * @param[in] Event Handle to the event returned from OSAL_Create_Event(). + * @param[in] Flags Bitmask of the event bits to reset, must include at least one bit. + * + * @returns OSAL_STATUS_SUCCESS upon success or other status value upon failure. + */ +int OSAL_Reset_Event(OSAL_Event_t Event, uint32_t Flags) +{ + return OSAL_STATUS_INTERNAL_ERROR; +} + +/**@brief Frees an event. + * + * @param[in] Event Handle to the event returned from OSAL_Create_Event(). + */ +void OSAL_Close_Event(OSAL_Event_t Event) +{ +} + +/**@brief Outputs Message to Console. + * + * @param[in] Format String and Parameters. + */ +void OSAL_OutputMessage(const char *DebugString, ...) +{ +} diff --git a/lc3/platform/os/inc/osal.h b/lc3/platform/os/inc/osal.h new file mode 100755 index 0000000000..12ed14807d --- /dev/null +++ b/lc3/platform/os/inc/osal.h @@ -0,0 +1,267 @@ +/* + * Copyright (c) 2018-2021 T2 Software, Inc. All rights reserved. + * + * SPDX-License-Identifier: LicenseRef-T2-LC3 + */ + +#ifndef __OSAL_H__ +#define __OSAL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "stddef.h" +#include "osal_types.h" + +/**@brief OSAL status values. + */ +#define OSAL_STATUS_SUCCESS ( 0) +#define OSAL_STATUS_INVALID_PARAMETER (-1) +#define OSAL_STATUS_OUT_OF_MEMORY (-2) +#define OSAL_STATUS_INTERNAL_ERROR (-3) + +/**@brief Infinite timeout value. + */ +#define OSAL_TIMEOUT_INFINITE (0xFFFFFFFF) + +/**@brief OSAL mutex handle. + */ +typedef void *OSAL_Mutex_t; + +/**@brief OSAL timer handle. + */ +typedef void *OSAL_Timer_t; + +/**@brief OSAL thread handle. + */ +typedef void *OSAL_Thread_t; + +/**@brief OSAL event handle. + */ +typedef void *OSAL_Event_t; + +/**@brief OSAL timer types. + */ +typedef enum +{ + OSAL_TIMER_PERIODIC, + OSAL_TIMER_ONE_SHOT +} OSAL_Timer_Type_t; + +/**@brief Timer function type. + */ +typedef void(*OSAL_Timer_Function_t)(OSAL_Timer_t TimerHandle, void *CallbackData); + +/**@brief Thread function type. + */ +typedef void(*OSAL_Thread_Function_t)(OSAL_Thread_t ThreadHandle, void *Data); + +/**@brief Allocates heap memory. + * + * @param[in] Size Size of the memory to allocate. + * + * @returns Pointer to the memory allocated or NULL upon failure. + */ +void *OSAL_Malloc(size_t Size); + +/**@brief Frees heap memory. + * + * @param[in] Ptr Pointer to the memory that was allocated in a call to + OSAL_Malloc(). + */ +void OSAL_Free(void *Ptr); + +/**@brief Sets buffer entries to a value. + * + * @param[in] ptr Pointer to the buffer to set. + * @param[in] value Value to set the buffer to. + * @param[in] num Size of the buffer. + * + * @returns Pointer to the input buffer. + */ +void *OSAL_Memset(void *Ptr, int Value, size_t Num); + +/**@brief Copies data from one buffer to another. + * + * @param[in] Dst Copy destination buffer. + * @param[in] Src Copy source buffer. + * @param[in] Num Size of the data to copy. + * + * @returns Pointer to the destination buffer. + */ +void *OSAL_Memcpy(void *Dst, const void *Src, size_t Num); + +/**@brief Compares data between two buffers. + * + * @param[in] Ptr1 Pointer to first buffer. + * @param[in] Ptr2 Pointer to second buffer. + * @param[in] Num Size of the data to compare. + * + * @returns < 0 if the first non-matching byte has a lower value in ptr1 than in ptr2. + * > 0 if the first non-matching byte has a greater value in ptr1 than in ptr2. + * 0 if the data in both buffers matches. + */ +int OSAL_Memcmp(const void *Ptr1, const void *Ptr2, size_t Num); + +/**@brief Creates a mutex. + * + * @param[in] owned Creates the mutex as owned if TRUE or unowned if FALSE. + * + * @returns Handle to the created mutex upon successor NULL upon failure. + */ +OSAL_Mutex_t OSAL_Create_Mutex(bool_t Owned); + +/**@brief Destroys a mutex. + * + * @param[in] mutex Handle to the mutex returned from OSAL_Create_Mutex(). + */ +void OSAL_Close_Mutex(OSAL_Mutex_t Mutex); + +/**@brief Waits for ownership of a mutex. + * + * @param[in] Mutex Handle to the mutex returned from OSAL_Create_Mutex(). + * @param[in] Timeout Value in milliseconds to wait for the mutex or OSAL_TIMEOUT_INFINITE + * to wait forever. + * + * @returns TRUE upon success or FALSE upon failure. + */ +bool_t OSAL_Wait_Mutex(OSAL_Mutex_t Mutex, unsigned long Timeout); + +/**@brief Releases ownership of a mutex. + * + * @param[in] mutex Handle to the mutex returned from OSAL_Create_Mutex(). + */ +void OSAL_Release_Mutex(OSAL_Mutex_t Mutex); + +/**@brief Creates a timer. + * + * @param[in] Delay Interval on which to trigger the timer. + * @param[in] Start Start the timer at creation or not. + * @param[in] Type Periodic or one-shot timer. + * @param[in] TimerFunction Timer handler function. + * @param[in] Data Pointer to application data to be provided as an argument to the timer function call. + * + * @returns Handle to the created timer upon successor NULL upon failure. + */ +OSAL_Timer_t OSAL_Create_Timer(uint32_t Delay, bool_t Start, OSAL_Timer_Type_t Type, OSAL_Timer_Function_t TimerFunction, void *Data); + +/**@brief Starts a timer. + * + * @param[in] Timer Handle to the timer returned from OSAL_Create_Timer(). + * + * @returns OSAL_STATUS_SUCCESS upon success or other status value upon failure. + */ +int OSAL_Start_Timer(OSAL_Timer_t Timer); + +/**@brief Frees a timer. + * + * @param[in] Timer Handle to the timer returned from OSAL_Create_Timer(). + */ +void OSAL_Close_Timer(OSAL_Timer_t Timer); + +/**@brief Creates a thread. + * + * @param[in] StackSize Stack size of the thread; may be 0 for the default thread stack size. + * @param[in] ThreadFunction Timer handler function. + * @param[in] Data Pointer to application data to be provided as an argument to the thread function call. + * + * @returns Handle to the created thread upon successor NULL upon failure. + */ +OSAL_Thread_t OSAL_Create_Thread(uint32_t StackSize, OSAL_Thread_Function_t ThreadFunction, void *Data); + +/**@brief Creates an event. + * + * @returns Handle to the created thread upon successor NULL upon failure. + */ +OSAL_Event_t OSAL_Create_Event(void); + +/**@brief Waits for one or more event bits to be set. + * + * @param[in] Event Handle to the event returned from OSAL_Create_Event(). + * @param[in] Flags Bitmask of the event bits to wait for, must include at least one bit. + * @param[in] FlagsSet Bitmask of the events that were set. + * @param[in] Reset If TRUE, resets the event bits that were set. + * @param[in] Timeout Value in milliseconds to wait for the event or OSAL_TIMEOUT_INFINITE to wait forever. + * + * @returns OSAL_STATUS_SUCCESS upon success or other status value upon failure. + */ +int OSAL_Wait_Event(OSAL_Event_t Event, uint32_t Flags, uint32_t *FlagsSet, bool_t Reset, int Timeout); + +/**@brief Sets an event. + * + * @param[in] Event Handle to the event returned from OSAL_Create_Event(). + * @param[in] Flags Bitmask of the event bits to set. + * + * @returns OSAL_STATUS_SUCCESS upon success or other status value upon failure. + */ +int OSAL_Set_Event(OSAL_Event_t Event, uint32_t Flags); + +/**@brief Resets an event. + * + * @param[in] Event Handle to the event returned from OSAL_Create_Event(). + * @param[in] Flags Bitmask of the event bits to reset. + * + * @returns OSAL_STATUS_SUCCESS upon success or other status value upon failure. + */ +int OSAL_Reset_Event(OSAL_Event_t Event, uint32_t Flags); + +/**@brief Frees an event. + * + * @param[in] Event Handle to the event returned from OSAL_Create_Event(). + */ +void OSAL_Close_Event(OSAL_Event_t Event); + +/**@brief Outputs Message to Console. + * + * @param[in] Format String and Parameters. + */ +void OSAL_OutputMessage(const char *DebugString, ...); + +/**@brief Initializes output message buffer for OSAL_OutputMessage. + * + * @param[in] bufPtr Pointer to memory block for OSAL_OutputMessage output. + * @param[in] size Size of memory block. + */ +void OSAL_OutputMessageInit(char *bufPtr, uint16_t size); + +/**@brief Sends data in debug output buffer. + * + */ +void OSAL_OutputMessageFlush(void); + +/**@brief Outputs a Dump of the supplied Data. + * + * @param[in] dataLength Length of the Data to Dump. + * @param[in] dataPtr Pointer to the Data to Dump. + * + * @return OSAL_STATUS_SUCCESS upon success or other status value upon failure. + */ +int OSAL_DumpData(unsigned int dataLength, const unsigned char *dataPtr, int size); + +#if defined LC3_CYCLES_PER_BLOCK && __arc__ +/**@brief Start Cycle Count. + * This function calls the external function for saving the starting cycle + * count for a blockNumber. This function is a workaround to link the + * libLC3.a with the Cycle Block Count in the ARC makefile environment. + * + * @param[in] blockNumber Index to the cycle block count to start. + */ +void OSAL_CycleCountStart(uint8_t blockNumber); + +/**@brief End Cycle Count. + * This function calls the external function for ending the cycle + * count for a blockNumber. This function is a workaround to link the + * libLC3.a with the Cycle Block Count in the ARC makefile environment. + * + * @param[in] blockNumber Index to the cycle block count to end. + */ +void OSAL_CycleCountEnd(uint8_t blockNumber); +#endif + + +#ifdef __cplusplus +}; +#endif + +#endif // __OSAL_H__ diff --git a/lc3/platform/os/inc/osal_packed.h b/lc3/platform/os/inc/osal_packed.h new file mode 100755 index 0000000000..6406206031 --- /dev/null +++ b/lc3/platform/os/inc/osal_packed.h @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2018-2021 T2 Software, Inc. All rights reserved. + * + * SPDX-License-Identifier: LicenseRef-T2-LC3 + */ + +#ifndef __OSAL_PACKED_H__ +#define __OSAL_PACKED_H__ + +#include "osal.h" + +#define READ_LE_8(_x) (((uint8_t )(((uint8_t *)(_x))[0] << 0x00))) +#define READ_LE_16(_x) (((uint16_t)(((uint8_t *)(_x))[0] << 0x00)) | \ + ((uint16_t)(((uint8_t *)(_x))[1] << 0x08))) +#define READ_LE_32(_x) (((uint32_t)(((uint8_t *)(_x))[0] << 0x00)) | \ + ((uint32_t)(((uint8_t *)(_x))[1] << 0x08)) | \ + ((uint32_t)(((uint8_t *)(_x))[2] << 0x10)) | \ + ((uint32_t)(((uint8_t *)(_x))[3] << 0x18))) +#define READ_LE_64(_x) (((uint64_t)(((uint8_t *)(_x))[0] << 0x00)) | \ + ((uint64_t)(((uint8_t *)(_x))[1] << 0x08)) | \ + ((uint64_t)(((uint8_t *)(_x))[2] << 0x10)) | \ + ((uint64_t)(((uint8_t *)(_x))[3] << 0x18)) | \ + ((uint64_t)(((uint8_t *)(_x))[4] << 0x20)) | \ + ((uint64_t)(((uint8_t *)(_x))[5] << 0x28)) | \ + ((uint64_t)(((uint8_t *)(_x))[6] << 0x30)) | \ + ((uint64_t)(((uint8_t *)(_x))[7] << 0x38))) + +#define WRITE_LE_8(_x, _y) do { \ + ((uint8_t *)(_x))[0] = (((uint8_t )(_y)) >> 0x00) & 0xFF; \ + } while(0) +#define WRITE_LE_16(_x, _y) do { \ + ((uint8_t *)(_x))[0] = (((uint16_t)(_y)) >> 0x00) & 0xFF; \ + ((uint8_t *)(_x))[1] = (((uint16_t)(_y)) >> 0x08) & 0xFF; \ + } while(0) +#define WRITE_LE_32(_x, _y) do { \ + ((uint8_t *)(_x))[0] = (((uint32_t)(_y)) >> 0x00) & 0xFF; \ + ((uint8_t *)(_x))[1] = (((uint32_t)(_y)) >> 0x08) & 0xFF; \ + ((uint8_t *)(_x))[2] = (((uint32_t)(_y)) >> 0x10) & 0xFF; \ + ((uint8_t *)(_x))[3] = (((uint32_t)(_y)) >> 0x18) & 0xFF; \ + } while(0) +#define WRITE_LE_64(_x, _y) do { \ + ((uint8_t *)(_x))[0] = (((uint32_t)(_y)) >> 0x00) & 0xFF; \ + ((uint8_t *)(_x))[1] = (((uint32_t)(_y)) >> 0x08) & 0xFF; \ + ((uint8_t *)(_x))[2] = (((uint32_t)(_y)) >> 0x10) & 0xFF; \ + ((uint8_t *)(_x))[3] = (((uint32_t)(_y)) >> 0x18) & 0xFF; \ + ((uint8_t *)(_x))[4] = (((uint32_t)(_y)) >> 0x20) & 0xFF; \ + ((uint8_t *)(_x))[5] = (((uint32_t)(_y)) >> 0x28) & 0xFF; \ + ((uint8_t *)(_x))[6] = (((uint32_t)(_y)) >> 0x30) & 0xFF; \ + ((uint8_t *)(_x))[7] = (((uint32_t)(_y)) >> 0x38) & 0xFF; \ + } while(0) + +#endif // __OSAL_PACKED_H__ diff --git a/lc3/src/sw_codec_lc3.c b/lc3/src/sw_codec_lc3.c new file mode 100644 index 0000000000..b2972a0d1b --- /dev/null +++ b/lc3/src/sw_codec_lc3.c @@ -0,0 +1,351 @@ +/* + * Copyright (c) 2021 Nordic Semiconductor ASA + * + * All rights reserved. + * + * SPDX-License-Identifier: Nordic-5-Clause + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be + * reverse engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include "sw_codec_lc3.h" +#include "LC3API.h" + +#include +LOG_MODULE_REGISTER(sw_codec_lc3); + +#define ENC_BITRATE_WRN_LVL_LOW 24000 +#define ENC_BITRATE_WRN_LVL_HIGH 160000 + +static uint16_t enc_pcm_bytes_req; +static uint32_t m_enc_bitrate; + +static LC3EncoderHandle_t enc_handle_ch[CONFIG_LC3_ENC_CHAN_MAX]; +static LC3DecoderHandle_t dec_handle_ch[CONFIG_LC3_DEC_CHAN_MAX]; + +static uint8_t enc_num_instances; +static uint8_t dec_num_instances; + +int sw_codec_lc3_enc_run(void const *const pcm_data, uint32_t pcm_data_size, uint32_t enc_bitrate, + uint8_t audio_ch, uint16_t lc3_data_buf_size, uint8_t *const lc3_data, + uint16_t *const lc3_data_wr_size) +{ + int ret; + /* Number of PCM bytes read */ + uint16_t bytes_read = 0; + + if (pcm_data_size < enc_pcm_bytes_req) { + LOG_ERR("Too few PCM samples to encode. Bytes required %d, input is %d", + enc_pcm_bytes_req, pcm_data_size); + return -EINVAL; + } + + if (audio_ch >= enc_num_instances) { + LOG_ERR("Trying to use audio_ch outside of allowed range"); + return -EINVAL; + } + + LC3EncodeInput_t LC3EncodeInput = { .PCMData = (void *)pcm_data, + .PCMDataLength = pcm_data_size, + .bytesRead = bytes_read }; + + if (enc_bitrate == LC3_USE_BITRATE_FROM_INIT) { + LC3EncodeInput.encodeBitrate = m_enc_bitrate; + } else { + LC3EncodeInput.encodeBitrate = enc_bitrate; + } + + LC3EncodeOutput_t LC3EncodeOutput = { .outputData = lc3_data, + .outputDataLength = lc3_data_buf_size, + .bytesWritten = 0 }; + + if (!enc_handle_ch[audio_ch]) { + LOG_ERR("LC3 enc ch:%d is not initialized", audio_ch); + return -EPERM; + } + ret = LC3EncodeSessionData(enc_handle_ch[audio_ch], &LC3EncodeInput, &LC3EncodeOutput); + if (ret) { + return ret; + } + + *lc3_data_wr_size = LC3EncodeOutput.bytesWritten; + + return 0; +} + +int sw_codec_lc3_dec_run(uint8_t const *const lc3_data, uint16_t lc3_data_size, + uint16_t pcm_data_buf_size, uint8_t audio_ch, void *const pcm_data, + uint16_t *const pcm_data_wr_size, bool bad_frame) +{ + int ret; + LC3BFI_t frame_status; + uint16_t plc_counter = 0; + + if (audio_ch >= dec_num_instances) { + LOG_ERR("Trying to use audio_ch outside of allowed range"); + return -EINVAL; + } + + if (bad_frame) { + frame_status = BadFrame; + } else { + frame_status = GoodFrame; + } + + LC3DecodeInput_t LC3DecodeInput = { .inputData = (uint8_t *)lc3_data, + .inputDataLength = lc3_data_size, + frame_status }; + LC3DecodeOutput_t LC3DecodeOutput = { .PCMData = pcm_data, + .PCMDataLength = pcm_data_buf_size, + .bytesWritten = 0, + .PLCCounter = plc_counter }; + + if (!dec_handle_ch[audio_ch]) { + LOG_ERR("LC3 dec ch:%d is not initialized", audio_ch); + return -EPERM; + } + ret = LC3DecodeSessionData(dec_handle_ch[audio_ch], &LC3DecodeInput, &LC3DecodeOutput); + if (ret) { + return ret; + } + + /* A non-zero PLCCounter indicates PLC has been applied to the current frame. + * Upon a successful decode, PLCCounter is reset. + */ + if (LC3DecodeOutput.PLCCounter > 0 && IS_ENABLED(CONFIG_LC3_PLC_DISABLED)) + { + /* Write a blank frame (all 0) into buffer. */ + memset(pcm_data, 0, pcm_data_buf_size); + } + + *pcm_data_wr_size = LC3DecodeOutput.bytesWritten; + + return 0; +} + +int sw_codec_lc3_enc_uninit_all(void) +{ + for (uint8_t i = 0; i < enc_num_instances; i++) { + if (enc_handle_ch[i] != NULL) { + LC3EncodeSessionClose(enc_handle_ch[i]); + enc_handle_ch[i] = NULL; + } else { + LOG_ERR("Encoder:%d already unitialized", i); + return -EALREADY; + } + } + + return 0; +} + +int sw_codec_lc3_dec_uninit_all(void) +{ + for (uint8_t i = 0; i < dec_num_instances; i++) { + if (dec_handle_ch[i] != NULL) { + LC3DecodeSessionClose(dec_handle_ch[i]); + dec_handle_ch[i] = NULL; + } else { + LOG_ERR("Decoder:%d already unitialized", i); + return -EALREADY; + } + } + + return 0; +} + +int sw_codec_lc3_init(uint8_t *sw_codec_lc3_buffer, uint32_t *sw_codec_lc3_buffer_size, + uint16_t framesize_us) +{ + int ret; + uint8_t enc_sample_rates = 0; + uint8_t dec_sample_rates = 0; + + /* Set unique session to 0 for using the default sharing memory setting. + * + * This could lead to higher heap consumtion, but is able to manipulate + * different sample rate setting between encoder/decoder. + */ + uint8_t unique_session = 0; + + /* Check supported sample rates for encoder */ + if (IS_ENABLED(CONFIG_LC3_ENC_SAMPLE_RATE_8KHZ_SUPPORT)) { + enc_sample_rates |= LC3_SAMPLE_RATE_8_KHZ; + } + if (IS_ENABLED(CONFIG_LC3_ENC_SAMPLE_RATE_16KHZ_SUPPORT)) { + enc_sample_rates |= LC3_SAMPLE_RATE_16_KHZ; + } + if (IS_ENABLED(CONFIG_LC3_ENC_SAMPLE_RATE_24KHZ_SUPPORT)) { + enc_sample_rates |= LC3_SAMPLE_RATE_24_KHZ; + } + if (IS_ENABLED(CONFIG_LC3_ENC_SAMPLE_RATE_32KHZ_SUPPORT)) { + enc_sample_rates |= LC3_SAMPLE_RATE_32_KHZ; + } + if (IS_ENABLED(CONFIG_LC3_ENC_SAMPLE_RATE_441KHZ_SUPPORT)) { + enc_sample_rates |= LC3_SAMPLE_RATE_441_KHZ; + } + if (IS_ENABLED(CONFIG_LC3_ENC_SAMPLE_RATE_48KHZ_SUPPORT)) { + enc_sample_rates |= LC3_SAMPLE_RATE_48_KHZ; + } + + /* Check supported sample rates for decoder */ + if (IS_ENABLED(CONFIG_LC3_DEC_SAMPLE_RATE_8KHZ_SUPPORT)) { + dec_sample_rates |= LC3_SAMPLE_RATE_8_KHZ; + } + if (IS_ENABLED(CONFIG_LC3_DEC_SAMPLE_RATE_16KHZ_SUPPORT)) { + dec_sample_rates |= LC3_SAMPLE_RATE_16_KHZ; + } + if (IS_ENABLED(CONFIG_LC3_DEC_SAMPLE_RATE_24KHZ_SUPPORT)) { + dec_sample_rates |= LC3_SAMPLE_RATE_24_KHZ; + } + if (IS_ENABLED(CONFIG_LC3_DEC_SAMPLE_RATE_32KHZ_SUPPORT)) { + dec_sample_rates |= LC3_SAMPLE_RATE_32_KHZ; + } + if (IS_ENABLED(CONFIG_LC3_DEC_SAMPLE_RATE_441KHZ_SUPPORT)) { + dec_sample_rates |= LC3_SAMPLE_RATE_441_KHZ; + } + if (IS_ENABLED(CONFIG_LC3_DEC_SAMPLE_RATE_48KHZ_SUPPORT)) { + dec_sample_rates |= LC3_SAMPLE_RATE_48_KHZ; + } + + LC3FrameSize_t framesize; + + switch (framesize_us) { + case 7500: + framesize = LC3FrameSize7_5Ms; + break; + case 10000: + framesize = LC3FrameSize10Ms; + break; + default: + LOG_ERR("Unsupported framesize: %d", framesize_us); + return -EINVAL; + } + + ret = LC3Initialize(enc_sample_rates, dec_sample_rates, framesize, unique_session, + sw_codec_lc3_buffer, sw_codec_lc3_buffer_size); + return ret; +} + +int sw_codec_lc3_enc_init(uint16_t pcm_sample_rate, uint8_t pcm_bit_depth, uint16_t framesize_us, + uint32_t enc_bitrate, uint8_t num_channels, uint16_t *const pcm_bytes_req) +{ + int ret; + LC3FrameSize_t framesize; + + switch (framesize_us) { + case 7500: + framesize = LC3FrameSize7_5Ms; + break; + case 10000: + framesize = LC3FrameSize10Ms; + break; + default: + LOG_ERR("Unsupported framesize: %d", framesize_us); + return -EINVAL; + } + + if (enc_bitrate == 0) { + LOG_ERR("LC3 enc_bitrate is 0"); + return -EINVAL; + } else if (enc_bitrate <= ENC_BITRATE_WRN_LVL_LOW) { + LOG_WRN("LC3 enc_bitrate: %d : likely too low", enc_bitrate); + } else if (enc_bitrate >= ENC_BITRATE_WRN_LVL_HIGH) { + LOG_WRN("LC3 enc_bitrate: %d : likely too high", enc_bitrate); + } + + enc_pcm_bytes_req = LC3PCMBuffersize(pcm_sample_rate, pcm_bit_depth, framesize, &ret); + *pcm_bytes_req = enc_pcm_bytes_req; + + if (enc_pcm_bytes_req == 0) { + LOG_ERR("Required PCM bytes to encode LC3 is zero."); + return -EPERM; + } + + for (uint8_t i = 0; i < num_channels; i++) { + if (enc_handle_ch[i]) { + LOG_ERR("LC3 enc ch: %d already initialized", i); + return -EALREADY; + } + enc_handle_ch[i] = LC3EncodeSessionOpen(pcm_sample_rate, pcm_bit_depth, framesize, + NULL, NULL, &ret); + if (ret) { + return ret; + } + } + + m_enc_bitrate = enc_bitrate; + + enc_num_instances = num_channels; + + return ret; +} + +int sw_codec_lc3_dec_init(uint16_t pcm_sample_rate, uint8_t pcm_bit_depth, uint16_t framesize_us, + uint8_t num_channels) +{ + int ret; + + LC3FrameSize_t framesize; + + switch (framesize_us) { + case 7500: + framesize = LC3FrameSize7_5Ms; + break; + case 10000: + framesize = LC3FrameSize10Ms; + break; + default: + LOG_ERR("Unsupported framesize: %d", framesize_us); + return -EINVAL; + } + + for (uint8_t i = 0; i < num_channels; i++) { + if (dec_handle_ch[i]) { + LOG_ERR("LC3 dec ch: %d already initialized", i); + return -EALREADY; + } + dec_handle_ch[i] = LC3DecodeSessionOpen(pcm_sample_rate, pcm_bit_depth, framesize, + NULL, NULL, &ret); + if (ret) { + return ret; + } + } + + dec_num_instances = num_channels; + + return 0; +}