From ea10065a58446a0273d78030294035769cf7ccbe Mon Sep 17 00:00:00 2001 From: Rander Wang Date: Mon, 17 Jul 2023 16:58:25 +0800 Subject: [PATCH] ipc4: add S24_4LE_MSB format support For sample format with 24 bits valid sample bit and 32 bits container, valid sample is at msb 24bits if IPC4_TYPE_MSB_INTEGER is set. Signed-off-by: Rander Wang --- src/audio/Kconfig | 12 ++++++++++++ src/include/ipc/stream.h | 1 + src/include/kernel/abi.h | 2 +- test/cmocka/src/audio/selector/selector_test.c | 1 + test/cmocka/src/audio/volume/volume_process.c | 1 + 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/audio/Kconfig b/src/audio/Kconfig index 4f3839fca..be2ff5f36 100644 --- a/src/audio/Kconfig +++ b/src/audio/Kconfig @@ -572,6 +572,12 @@ config FORMAT_S24_3LE help Support packed 24 bit processing data format with sign and in little endian format +config FORMAT_S24_4LE_MSB + bool "Support S24_4LE_MSB" + default y + help + Support 24 bit processing data format with sign and in msb 24 bits format + config FORMAT_S32LE bool "Support S32LE" default y @@ -608,6 +614,12 @@ config PCM_CONVERTER_FORMAT_S24LE help Support 24 bit processing data format with sign and in little endian format +config PCM_CONVERTER_FORMAT_S24_4LE_MSB + bool "Support S24_4LE_MSB" + default y + help + Support 24 bit processing data format with sign and in msb 24 bits format + config PCM_CONVERTER_FORMAT_S24_3LE bool "Support S24_3LE" default n diff --git a/src/include/ipc/stream.h b/src/include/ipc/stream.h index e7eb93407..1c9bd7a82 100644 --- a/src/include/ipc/stream.h +++ b/src/include/ipc/stream.h @@ -56,6 +56,7 @@ enum sof_ipc_frame { SOF_IPC_FRAME_FLOAT, /* other formats here */ SOF_IPC_FRAME_S24_3LE, + SOF_IPC_FRAME_S24_4LE_MSB, SOF_IPC_FRAME_U8, }; diff --git a/src/include/kernel/abi.h b/src/include/kernel/abi.h index 3fcf1c85a..9c7f8afda 100644 --- a/src/include/kernel/abi.h +++ b/src/include/kernel/abi.h @@ -29,7 +29,7 @@ /** \brief SOF ABI version major, minor and patch numbers */ #define SOF_ABI_MAJOR 3 -#define SOF_ABI_MINOR 27 +#define SOF_ABI_MINOR 28 #define SOF_ABI_PATCH 0 /** \brief SOF ABI version number. Format within 32bit word is MMmmmppp */ diff --git a/test/cmocka/src/audio/selector/selector_test.c b/test/cmocka/src/audio/selector/selector_test.c index 7edbe6bde..4bcc8df7f 100644 --- a/test/cmocka/src/audio/selector/selector_test.c +++ b/test/cmocka/src/audio/selector/selector_test.c @@ -440,6 +440,7 @@ static void test_audio_sel(void **state) #endif /* CONFIG_FORMAT_S24LE || CONFIG_FORMAT_S32LE */ /* TODO: add S24_3LE support */ + /* TODO: add S24_4LE_MSB support */ /* TODO: add U8 support */ default: break; diff --git a/test/cmocka/src/audio/volume/volume_process.c b/test/cmocka/src/audio/volume/volume_process.c index eaf3bb8bf..10afdd127 100644 --- a/test/cmocka/src/audio/volume/volume_process.c +++ b/test/cmocka/src/audio/volume/volume_process.c @@ -280,6 +280,7 @@ static void test_audio_vol(void **state) break; /* TODO: add 3LE support */ + /* TODO: add 4LE_MSB support */ /* TODO: add U8 support */ default: break;