2024-03-13 15:22:55

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ v3 1/4] client/player: Split unicast and broadcast presets

From: Luiz Augusto von Dentz <[email protected]>

Although their name matches unicast and broadcast are not actually the
same when it comes to RTN and Max Latency, so this splits their settings
into 2 presets tables and fix the values for broadcast.
---
client/player.c | 115 +++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 110 insertions(+), 5 deletions(-)

diff --git a/client/player.c b/client/player.c
index a40bf66e3967..cb771447bf4b 100644
--- a/client/player.c
+++ b/client/player.c
@@ -1403,7 +1403,7 @@ static struct codec_preset sbc_presets[] = {
.target_latency = 0x03, \
}

-static struct codec_preset lc3_presets[] = {
+static struct codec_preset lc3_ucast_presets[] = {
/* Table 4.43: QoS configuration support setting requirements */
LC3_PRESET("8_1_1",
LC3_PRESET_8KHZ(LC3_CONFIG_DURATION_7_5, 26u),
@@ -1565,6 +1565,111 @@ static struct codec_preset lc3_presets[] = {
LC3_10_UNFRAMED(2 * 120u, 1u, 20u, 10000u)),
};

+static struct codec_preset lc3_bcast_presets[] = {
+ /* Table 6.4: Broadcast Audio Stream configuration support requirements
+ * for the Broadcast Source and Broadcast Sink
+ */
+ LC3_PRESET("8_1_1",
+ LC3_PRESET_8KHZ(LC3_CONFIG_DURATION_7_5, 26u),
+ LC3_7_5_UNFRAMED(26u, 2u, 8u, 40000u)),
+ LC3_PRESET("8_2_1",
+ LC3_PRESET_8KHZ(LC3_CONFIG_DURATION_10, 30u),
+ LC3_10_UNFRAMED(30u, 2u, 10u, 40000u)),
+ LC3_PRESET("16_1_1",
+ LC3_PRESET_16KHZ(LC3_CONFIG_DURATION_7_5, 30u),
+ LC3_7_5_UNFRAMED(30u, 2u, 8u, 40000u)),
+ LC3_PRESET("16_2_1",
+ LC3_PRESET_16KHZ(LC3_CONFIG_DURATION_10, 40u),
+ LC3_10_UNFRAMED(40u, 2u, 10u, 40000u)),
+ LC3_PRESET("24_1_1",
+ LC3_PRESET_24KHZ(LC3_CONFIG_DURATION_7_5, 45u),
+ LC3_7_5_UNFRAMED(45u, 2u, 8u, 40000u)),
+ LC3_PRESET("24_2_1",
+ LC3_PRESET_24KHZ(LC3_CONFIG_DURATION_10, 60u),
+ LC3_10_UNFRAMED(60u, 2u, 10u, 40000u)),
+ LC3_PRESET("32_1_1",
+ LC3_PRESET_32KHZ(LC3_CONFIG_DURATION_7_5, 60u),
+ LC3_7_5_UNFRAMED(60u, 2u, 8u, 40000u)),
+ LC3_PRESET("32_2_1",
+ LC3_PRESET_32KHZ(LC3_CONFIG_DURATION_10, 80u),
+ LC3_10_UNFRAMED(80u, 2u, 10u, 40000u)),
+ LC3_PRESET("44_1_1",
+ LC3_PRESET_44KHZ(LC3_CONFIG_DURATION_7_5, 98u),
+ QOS_FRAMED_2M(8163u, 98u, 4u, 24u, 40000u)),
+ LC3_PRESET("44_2_1",
+ LC3_PRESET_44KHZ(LC3_CONFIG_DURATION_10, 130u),
+ QOS_FRAMED_2M(10884u, 130u, 4u, 31u, 40000u)),
+ LC3_PRESET("48_1_1",
+ LC3_PRESET_48KHZ(LC3_CONFIG_DURATION_7_5, 75u),
+ LC3_7_5_UNFRAMED(75u, 4u, 15u, 40000u)),
+ LC3_PRESET("48_2_1",
+ LC3_PRESET_48KHZ(LC3_CONFIG_DURATION_10, 100u),
+ LC3_10_UNFRAMED(100u, 4u, 20u, 40000u)),
+ LC3_PRESET("48_3_1",
+ LC3_PRESET_48KHZ(LC3_CONFIG_DURATION_7_5, 90u),
+ LC3_7_5_UNFRAMED(90u, 4u, 15u, 40000u)),
+ LC3_PRESET("48_4_1",
+ LC3_PRESET_48KHZ(LC3_CONFIG_DURATION_10, 120u),
+ LC3_10_UNFRAMED(120u, 4u, 20u, 40000u)),
+ LC3_PRESET("48_5_1",
+ LC3_PRESET_48KHZ(LC3_CONFIG_DURATION_7_5, 117u),
+ LC3_7_5_UNFRAMED(117u, 4u, 15u, 40000u)),
+ LC3_PRESET("48_6_1",
+ LC3_PRESET_48KHZ(LC3_CONFIG_DURATION_10, 155u),
+ LC3_10_UNFRAMED(155u, 4u, 20u, 40000u)),
+ /* Broadcast Audio Stream configuration settings for high-reliability
+ * audio data.
+ */
+ LC3_PRESET_HR("8_1_2",
+ LC3_PRESET_8KHZ(LC3_CONFIG_DURATION_7_5, 26u),
+ LC3_7_5_UNFRAMED(26u, 4u, 45u, 40000u)),
+ LC3_PRESET_HR("8_2_2",
+ LC3_PRESET_8KHZ(LC3_CONFIG_DURATION_10, 30u),
+ LC3_10_UNFRAMED(30u, 4u, 60u, 40000u)),
+ LC3_PRESET_HR("16_1_2",
+ LC3_PRESET_16KHZ(LC3_CONFIG_DURATION_7_5, 30u),
+ LC3_7_5_UNFRAMED(30u, 4u, 45u, 40000u)),
+ LC3_PRESET_HR("16_2_2",
+ LC3_PRESET_16KHZ(LC3_CONFIG_DURATION_10, 40u),
+ LC3_10_UNFRAMED(40u, 4u, 60u, 40000u)),
+ LC3_PRESET_HR("24_1_2",
+ LC3_PRESET_24KHZ(LC3_CONFIG_DURATION_7_5, 45u),
+ LC3_7_5_UNFRAMED(45u, 4u, 45u, 40000u)),
+ LC3_PRESET_HR("24_2_2",
+ LC3_PRESET_24KHZ(LC3_CONFIG_DURATION_10, 60u),
+ LC3_10_UNFRAMED(60u, 4u, 60u, 40000u)),
+ LC3_PRESET_HR("32_1_2",
+ LC3_PRESET_32KHZ(LC3_CONFIG_DURATION_7_5, 60u),
+ LC3_7_5_UNFRAMED(60u, 4u, 45u, 40000u)),
+ LC3_PRESET_HR("32_2_2",
+ LC3_PRESET_32KHZ(LC3_CONFIG_DURATION_10, 80u),
+ LC3_10_UNFRAMED(80u, 4u, 60u, 40000u)),
+ LC3_PRESET_HR("44_1_2",
+ LC3_PRESET_44KHZ(LC3_CONFIG_DURATION_7_5, 98u),
+ QOS_FRAMED_2M(8163u, 4u, 13u, 54u, 40000u)),
+ LC3_PRESET_HR("44_2_2",
+ LC3_PRESET_44KHZ(LC3_CONFIG_DURATION_10, 130u),
+ QOS_FRAMED_2M(10884u, 130u, 4u, 60u, 40000u)),
+ LC3_PRESET_HR("48_1_2",
+ LC3_PRESET_48KHZ(LC3_CONFIG_DURATION_7_5, 75u),
+ LC3_7_5_UNFRAMED(75u, 4u, 50u, 40000u)),
+ LC3_PRESET_HR("48_2_2",
+ LC3_PRESET_48KHZ(LC3_CONFIG_DURATION_10, 100u),
+ LC3_10_UNFRAMED(100u, 4u, 65u, 40000u)),
+ LC3_PRESET_HR("48_3_2",
+ LC3_PRESET_48KHZ(LC3_CONFIG_DURATION_7_5, 90u),
+ LC3_7_5_UNFRAMED(90u, 4u, 50u, 40000u)),
+ LC3_PRESET_HR("48_4_2",
+ LC3_PRESET_48KHZ(LC3_CONFIG_DURATION_10, 120u),
+ LC3_10_UNFRAMED(120u, 4u, 65u, 40000u)),
+ LC3_PRESET_HR("48_5_2",
+ LC3_PRESET_48KHZ(LC3_CONFIG_DURATION_7_5, 117u),
+ LC3_7_5_UNFRAMED(117u, 4u, 50u, 40000u)),
+ LC3_PRESET_HR("48_6_2",
+ LC3_PRESET_48KHZ(LC3_CONFIG_DURATION_10, 155u),
+ LC3_10_UNFRAMED(155u, 4u, 65u, 40000u)),
+};
+
static void print_ltv(const char *str, void *user_data)
{
const char *label = user_data;
@@ -1615,10 +1720,10 @@ static struct preset {
} presets[] = {
PRESET(A2DP_SOURCE_UUID, A2DP_CODEC_SBC, sbc_presets, 6),
PRESET(A2DP_SINK_UUID, A2DP_CODEC_SBC, sbc_presets, 6),
- PRESET(PAC_SINK_UUID, LC3_ID, lc3_presets, 3),
- PRESET(PAC_SOURCE_UUID, LC3_ID, lc3_presets, 3),
- PRESET(BCAA_SERVICE_UUID, LC3_ID, lc3_presets, 3),
- PRESET(BAA_SERVICE_UUID, LC3_ID, lc3_presets, 3),
+ PRESET(PAC_SINK_UUID, LC3_ID, lc3_ucast_presets, 3),
+ PRESET(PAC_SOURCE_UUID, LC3_ID, lc3_ucast_presets, 3),
+ PRESET(BCAA_SERVICE_UUID, LC3_ID, lc3_bcast_presets, 3),
+ PRESET(BAA_SERVICE_UUID, LC3_ID, lc3_bcast_presets, 3),
};

static void parse_vendor_codec(const char *codec, uint16_t *vid, uint16_t *cid)
--
2.43.0



2024-03-13 19:13:29

by bluez.test.bot

[permalink] [raw]
Subject: RE: [BlueZ,v3,1/4] client/player: Split unicast and broadcast presets

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=834998

---Test result---

Test Summary:
CheckPatch FAIL 2.63 seconds
GitLint PASS 1.24 seconds
BuildEll PASS 24.77 seconds
BluezMake PASS 1814.06 seconds
MakeCheck FAIL 11.07 seconds
MakeDistcheck FAIL 36.69 seconds
CheckValgrind FAIL 241.74 seconds
CheckSmatch PASS 355.87 seconds
bluezmakeextell PASS 122.23 seconds
IncrementalBuild PASS 6609.59 seconds
ScanBuild PASS 1033.63 seconds

Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script
Output:
[BlueZ,v3,2/4] client/player: Use macros from lc3.h to define presets
WARNING:REPEATED_WORD: Possible repeated word: 'for'
#97:
This makes use of macros for for lc3.h to define preset configuration

/github/workspace/src/src/13591518.patch total: 0 errors, 1 warnings, 397 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.

/github/workspace/src/src/13591518.patch has style problems, please review.

NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO

NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.


[BlueZ,v3,3/4] shared/lc3: Add definition for broadcast configurations
WARNING:PREFER_DEFINED_ATTRIBUTE_MACRO: Prefer __packed over __attribute__((packed))
#126: FILE: src/shared/bap-defs.h:15:
+#define __packed __attribute__((packed))

/github/workspace/src/src/13591519.patch total: 0 errors, 1 warnings, 853 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.

/github/workspace/src/src/13591519.patch has style problems, please review.

NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO

NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.


[BlueZ,v3,4/4] client/player: Use QOS macros from lc3.h to define presets
WARNING:REPEATED_WORD: Possible repeated word: 'for'
#97:
This makes use of QOS macros for for lc3.h to define preset

/github/workspace/src/src/13591520.patch total: 0 errors, 1 warnings, 597 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.

/github/workspace/src/src/13591520.patch has style problems, please review.

NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO

NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.


##############################
Test: MakeCheck - FAIL
Desc: Run Bluez Make Check
Output:

./test-driver: line 107: 31947 Aborted (core dumped) "$@" > $log_file 2>&1
make[3]: *** [Makefile:11642: test-suite.log] Error 1
make[2]: *** [Makefile:11750: check-TESTS] Error 2
make[1]: *** [Makefile:12179: check-am] Error 2
make: *** [Makefile:12181: check] Error 2
##############################
Test: MakeDistcheck - FAIL
Desc: Run Bluez Make Distcheck
Output:

Package cups was not found in the pkg-config search path.
Perhaps you should add the directory containing `cups.pc'
to the PKG_CONFIG_PATH environment variable
No package 'cups' found
In file included from ../../src/shared/bap.c:30:
../../src/shared/bap.h:13:10: fatal error: src/shared/bap-defs.h: No such file or directory
13 | #include "src/shared/bap-defs.h"
| ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [Makefile:8570: src/shared/libshared_mainloop_la-bap.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:4646: all] Error 2
make: *** [Makefile:12102: distcheck] Error 1
##############################
Test: CheckValgrind - FAIL
Desc: Run Bluez Make Check with Valgrind
Output:

tools/mgmt-tester.c: In function ‘main’:
tools/mgmt-tester.c:12721:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
12721 | int main(int argc, char *argv[])
| ^~~~
./test-driver: line 107: 62238 Aborted (core dumped) "$@" > $log_file 2>&1
make[3]: *** [Makefile:11642: test-suite.log] Error 1
make[2]: *** [Makefile:11750: check-TESTS] Error 2
make[1]: *** [Makefile:12179: check-am] Error 2
make: *** [Makefile:12181: check] Error 2


---
Regards,
Linux Bluetooth