* [PATCH BlueZ v2 1/5] shared/lc3: Rename LC3_BASE
2024-06-25 7:27 [PATCH BlueZ v2 0/5] test-bap: Add Broadcast Source STR MBIS tests Iulia Tanasescu
@ 2024-06-25 7:27 ` Iulia Tanasescu
2024-06-25 10:55 ` test-bap: Add Broadcast Source STR MBIS tests bluez.test.bot
2024-06-25 7:27 ` [PATCH BlueZ v2 2/5] test-bap: Move BASE defines to lc3.h Iulia Tanasescu
` (4 subsequent siblings)
5 siblings, 1 reply; 9+ messages in thread
From: Iulia Tanasescu @ 2024-06-25 7:27 UTC (permalink / raw)
To: linux-bluetooth
Cc: claudia.rosu, mihai-octavian.urzica, vlad.pruteanu,
andrei.istodorescu, luiz.dentz, Iulia Tanasescu
This renames LC3_BASE to LC3_TYPE_BASE, so the meaning
of the define is more clear.
---
src/shared/lc3.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/shared/lc3.h b/src/shared/lc3.h
index 95aa21702..abd9b29a3 100644
--- a/src/shared/lc3.h
+++ b/src/shared/lc3.h
@@ -12,9 +12,9 @@
#define LC3_ID 0x06
-#define LC3_BASE 0x01
+#define LC3_TYPE_BASE 0x01
-#define LC3_FREQ (LC3_BASE)
+#define LC3_FREQ LC3_TYPE_BASE
#define LC3_FREQ_8KHZ BIT(0)
#define LC3_FREQ_11KHZ BIT(1)
#define LC3_FREQ_16KHZ BIT(2)
@@ -32,7 +32,7 @@
LC3_FREQ_44KHZ | \
LC3_FREQ_48KHZ)
-#define LC3_DURATION (LC3_BASE + 1)
+#define LC3_DURATION (LC3_TYPE_BASE + 1)
#define LC3_DURATION_7_5 BIT(0)
#define LC3_DURATION_10 BIT(1)
#define LC3_DURATION_ANY (LC3_DURATION_7_5 | LC3_DURATION_10)
@@ -40,12 +40,12 @@
#define LC3_DURATION_PREFER_10 BIT(5)
-#define LC3_CHAN_COUNT (LC3_BASE + 2)
+#define LC3_CHAN_COUNT (LC3_TYPE_BASE + 2)
#define LC3_CHAN_COUNT_SUPPORT BIT(0)
-#define LC3_FRAME_LEN (LC3_BASE + 3)
+#define LC3_FRAME_LEN (LC3_TYPE_BASE + 3)
-#define LC3_FRAME_COUNT (LC3_BASE + 4)
+#define LC3_FRAME_COUNT (LC3_TYPE_BASE + 4)
#define LC3_CAPABILITIES(_freq, _duration, _chan_count, _len_min, _len_max) \
UTIL_IOV_INIT(0x02, LC3_FREQ, _freq, _freq >> 8, \
--
2.39.2
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH BlueZ v2 2/5] test-bap: Move BASE defines to lc3.h
2024-06-25 7:27 [PATCH BlueZ v2 0/5] test-bap: Add Broadcast Source STR MBIS tests Iulia Tanasescu
2024-06-25 7:27 ` [PATCH BlueZ v2 1/5] shared/lc3: Rename LC3_BASE Iulia Tanasescu
@ 2024-06-25 7:27 ` Iulia Tanasescu
2024-06-25 7:27 ` [PATCH BlueZ v2 3/5] test-bap: Add support to config multiple bsrc streams Iulia Tanasescu
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Iulia Tanasescu @ 2024-06-25 7:27 UTC (permalink / raw)
To: linux-bluetooth
Cc: claudia.rosu, mihai-octavian.urzica, vlad.pruteanu,
andrei.istodorescu, luiz.dentz, Iulia Tanasescu
This moves the BASE related defines introduced in
test-bap to lc3.h.
---
src/shared/lc3.h | 150 ++++++++++++++++++++++++++++++++++++++++++++++
unit/test-bap.c | 151 +----------------------------------------------
2 files changed, 152 insertions(+), 149 deletions(-)
diff --git a/src/shared/lc3.h b/src/shared/lc3.h
index abd9b29a3..944f574b0 100644
--- a/src/shared/lc3.h
+++ b/src/shared/lc3.h
@@ -275,6 +275,156 @@
LC3_CONFIG_48_AC(LC3_CONFIG_DURATION_10, LC3_CONFIG_FRAME_LEN_48_6, \
_ac)
+#define BASE(_pd, _sgrp, _nbis, _cfg...) \
+ _pd & 0xff, _pd >> 8, _pd >> 16, \
+ _sgrp, \
+ _nbis, \
+ _cfg
+
+#define BASE_LC3(_pd, _sgrp, _nbis, _cc...) \
+ BASE(_pd, _sgrp, _nbis, \
+ 0x06, 0x00, 0x00, 0x00, 0x00, \
+ _cc)
+
+#define LC3_CFG(_freq, _dur, _len) \
+ 0x0a, \
+ 0x02, LC3_CONFIG_FREQ, _freq, \
+ 0x02, LC3_CONFIG_DURATION, _dur, \
+ 0x03, LC3_CONFIG_FRAME_LEN, _len, _len >> 8
+
+#define LC3_CFG_8_1 \
+ LC3_CFG(LC3_CONFIG_FREQ_8KHZ, \
+ LC3_CONFIG_DURATION_7_5, \
+ LC3_CONFIG_FRAME_LEN_8_1)
+
+#define BASE_LC3_8_1 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_8_1, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_8_2 \
+ LC3_CFG(LC3_CONFIG_FREQ_8KHZ, \
+ LC3_CONFIG_DURATION_10, \
+ LC3_CONFIG_FRAME_LEN_8_2)
+
+#define BASE_LC3_8_2 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_8_2, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_16_1 \
+ LC3_CFG(LC3_CONFIG_FREQ_16KHZ, \
+ LC3_CONFIG_DURATION_7_5, \
+ LC3_CONFIG_FRAME_LEN_16_1)
+
+#define BASE_LC3_16_1 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_16_1, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_16_2 \
+ LC3_CFG(LC3_CONFIG_FREQ_16KHZ, \
+ LC3_CONFIG_DURATION_10, \
+ LC3_CONFIG_FRAME_LEN_16_2)
+
+#define BASE_LC3_16_2 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_16_2, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_24_1 \
+ LC3_CFG(LC3_CONFIG_FREQ_24KHZ, \
+ LC3_CONFIG_DURATION_7_5, \
+ LC3_CONFIG_FRAME_LEN_24_1)
+
+#define BASE_LC3_24_1 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_24_1, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_24_2 \
+ LC3_CFG(LC3_CONFIG_FREQ_24KHZ, \
+ LC3_CONFIG_DURATION_10, \
+ LC3_CONFIG_FRAME_LEN_24_2)
+
+#define BASE_LC3_24_2 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_24_2, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_32_1 \
+ LC3_CFG(LC3_CONFIG_FREQ_32KHZ, \
+ LC3_CONFIG_DURATION_7_5, \
+ LC3_CONFIG_FRAME_LEN_32_1)
+
+#define BASE_LC3_32_1 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_32_1, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_32_2 \
+ LC3_CFG(LC3_CONFIG_FREQ_32KHZ, \
+ LC3_CONFIG_DURATION_10, \
+ LC3_CONFIG_FRAME_LEN_32_2)
+
+#define BASE_LC3_32_2 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_32_2, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_44_1 \
+ LC3_CFG(LC3_CONFIG_FREQ_44KHZ, \
+ LC3_CONFIG_DURATION_7_5, \
+ LC3_CONFIG_FRAME_LEN_44_1)
+
+#define BASE_LC3_44_1 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_44_1, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_44_2 \
+ LC3_CFG(LC3_CONFIG_FREQ_44KHZ, \
+ LC3_CONFIG_DURATION_10, \
+ LC3_CONFIG_FRAME_LEN_44_2)
+
+#define BASE_LC3_44_2 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_44_2, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_48_1 \
+ LC3_CFG(LC3_CONFIG_FREQ_48KHZ, \
+ LC3_CONFIG_DURATION_7_5, \
+ LC3_CONFIG_FRAME_LEN_48_1)
+
+#define BASE_LC3_48_1 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_48_1, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_48_2 \
+ LC3_CFG(LC3_CONFIG_FREQ_48KHZ, \
+ LC3_CONFIG_DURATION_10, \
+ LC3_CONFIG_FRAME_LEN_48_2)
+
+#define BASE_LC3_48_2 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_48_2, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_48_3 \
+ LC3_CFG(LC3_CONFIG_FREQ_48KHZ, \
+ LC3_CONFIG_DURATION_7_5, \
+ LC3_CONFIG_FRAME_LEN_48_3)
+
+#define BASE_LC3_48_3 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_48_3, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_48_4 \
+ LC3_CFG(LC3_CONFIG_FREQ_48KHZ, \
+ LC3_CONFIG_DURATION_10, \
+ LC3_CONFIG_FRAME_LEN_48_4)
+
+#define BASE_LC3_48_4 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_48_4, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_48_5 \
+ LC3_CFG(LC3_CONFIG_FREQ_48KHZ, \
+ LC3_CONFIG_DURATION_7_5, \
+ LC3_CONFIG_FRAME_LEN_48_5)
+
+#define BASE_LC3_48_5 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_48_5, 0x00, 0x01, 0x00)
+
+#define LC3_CFG_48_6 \
+ LC3_CFG(LC3_CONFIG_FREQ_48KHZ, \
+ LC3_CONFIG_DURATION_10, \
+ LC3_CONFIG_FRAME_LEN_48_6)
+
+#define BASE_LC3_48_6 \
+ BASE_LC3(40000, 1, 1, LC3_CFG_48_6, 0x00, 0x01, 0x00)
+
+#define BASE_VS(_cc) \
+ BASE(40000, 1, 1, \
+ 0xFF, 0x00, 0x00, 0x00, 0x00, \
+ _cc, 0x00, 0x01, 0x00)
+
#define LC3_QOS_UNFRAMED 0x00
#define LC3_QOS_FRAMED 0x01
diff --git a/unit/test-bap.c b/unit/test-bap.c
index 638717afc..c92c4f671 100644
--- a/unit/test-bap.c
+++ b/unit/test-bap.c
@@ -5574,29 +5574,6 @@ static void test_scc(void)
test_str_1_1_1_lc3();
}
-#define LC3_CFG(_freq, _dur, _len) \
- 0x0a, \
- 0x02, 0x01, _freq, \
- 0x02, 0x02, _dur, \
- 0x03, 0x04, _len, _len >> 8
-
-#define BASE(_pd, _sgrp, _nbis, _cfg...) \
- _pd & 0xff, _pd >> 8, _pd >> 16, \
- _sgrp, \
- _nbis, \
- _cfg
-
-#define BASE_LC3(_pd, _sgrp, _nbis, _cc...) \
- BASE(_pd, _sgrp, _nbis, 0x06, 0x00, 0x00, 0x00, 0x00, _cc)
-
-#define LC3_CFG_8_1 \
- LC3_CFG(LC3_CONFIG_FREQ_8KHZ, \
- LC3_CONFIG_DURATION_7_5, \
- LC3_CONFIG_FRAME_LEN_8_1)
-
-#define BASE_LC3_8_1 \
- BASE_LC3(40000, 1, 1, LC3_CFG_8_1, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_8_1_1 = {
.cc = LC3_CONFIG_8_1,
.qos = LC3_QOS_8_1_1_B,
@@ -5613,14 +5590,6 @@ static struct test_config cfg_bsrc_8_1_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_8_2 \
- LC3_CFG(LC3_CONFIG_FREQ_8KHZ, \
- LC3_CONFIG_DURATION_10, \
- LC3_CONFIG_FRAME_LEN_8_2)
-
-#define BASE_LC3_8_2 \
- BASE_LC3(40000, 1, 1, LC3_CFG_8_2, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_8_2_1 = {
.cc = LC3_CONFIG_8_2,
.qos = LC3_QOS_8_2_1_B,
@@ -5637,14 +5606,6 @@ static struct test_config cfg_bsrc_8_2_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_16_1 \
- LC3_CFG(LC3_CONFIG_FREQ_16KHZ, \
- LC3_CONFIG_DURATION_7_5, \
- LC3_CONFIG_FRAME_LEN_16_1)
-
-#define BASE_LC3_16_1 \
- BASE_LC3(40000, 1, 1, LC3_CFG_16_1, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_16_1_1 = {
.cc = LC3_CONFIG_16_1,
.qos = LC3_QOS_16_1_1_B,
@@ -5661,14 +5622,6 @@ static struct test_config cfg_bsrc_16_1_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_16_2 \
- LC3_CFG(LC3_CONFIG_FREQ_16KHZ, \
- LC3_CONFIG_DURATION_10, \
- LC3_CONFIG_FRAME_LEN_16_2)
-
-#define BASE_LC3_16_2 \
- BASE_LC3(40000, 1, 1, LC3_CFG_16_2, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_16_2_1 = {
.cc = LC3_CONFIG_16_2,
.qos = LC3_QOS_16_2_1_B,
@@ -5685,14 +5638,6 @@ static struct test_config cfg_bsrc_16_2_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_24_1 \
- LC3_CFG(LC3_CONFIG_FREQ_24KHZ, \
- LC3_CONFIG_DURATION_7_5, \
- LC3_CONFIG_FRAME_LEN_24_1)
-
-#define BASE_LC3_24_1 \
- BASE_LC3(40000, 1, 1, LC3_CFG_24_1, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_24_1_1 = {
.cc = LC3_CONFIG_24_1,
.qos = LC3_QOS_24_1_1_B,
@@ -5709,14 +5654,6 @@ static struct test_config cfg_bsrc_24_1_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_24_2 \
- LC3_CFG(LC3_CONFIG_FREQ_24KHZ, \
- LC3_CONFIG_DURATION_10, \
- LC3_CONFIG_FRAME_LEN_24_2)
-
-#define BASE_LC3_24_2 \
- BASE_LC3(40000, 1, 1, LC3_CFG_24_2, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_24_2_1 = {
.cc = LC3_CONFIG_24_2,
.qos = LC3_QOS_24_2_1_B,
@@ -5733,14 +5670,6 @@ static struct test_config cfg_bsrc_24_2_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_32_1 \
- LC3_CFG(LC3_CONFIG_FREQ_32KHZ, \
- LC3_CONFIG_DURATION_7_5, \
- LC3_CONFIG_FRAME_LEN_32_1)
-
-#define BASE_LC3_32_1 \
- BASE_LC3(40000, 1, 1, LC3_CFG_32_1, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_32_1_1 = {
.cc = LC3_CONFIG_32_1,
.qos = LC3_QOS_32_1_1_B,
@@ -5757,14 +5686,6 @@ static struct test_config cfg_bsrc_32_1_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_32_2 \
- LC3_CFG(LC3_CONFIG_FREQ_32KHZ, \
- LC3_CONFIG_DURATION_10, \
- LC3_CONFIG_FRAME_LEN_32_2)
-
-#define BASE_LC3_32_2 \
- BASE_LC3(40000, 1, 1, LC3_CFG_32_2, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_32_2_1 = {
.cc = LC3_CONFIG_32_2,
.qos = LC3_QOS_32_2_1_B,
@@ -5781,14 +5702,6 @@ static struct test_config cfg_bsrc_32_2_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_44_1 \
- LC3_CFG(LC3_CONFIG_FREQ_44KHZ, \
- LC3_CONFIG_DURATION_7_5, \
- LC3_CONFIG_FRAME_LEN_44_1)
-
-#define BASE_LC3_44_1 \
- BASE_LC3(40000, 1, 1, LC3_CFG_44_1, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_44_1_1 = {
.cc = LC3_CONFIG_44_1,
.qos = LC3_QOS_44_1_1_B,
@@ -5805,14 +5718,6 @@ static struct test_config cfg_bsrc_44_1_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_44_2 \
- LC3_CFG(LC3_CONFIG_FREQ_44KHZ, \
- LC3_CONFIG_DURATION_10, \
- LC3_CONFIG_FRAME_LEN_44_2)
-
-#define BASE_LC3_44_2 \
- BASE_LC3(40000, 1, 1, LC3_CFG_44_2, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_44_2_1 = {
.cc = LC3_CONFIG_44_2,
.qos = LC3_QOS_44_2_1_B,
@@ -5829,14 +5734,6 @@ static struct test_config cfg_bsrc_44_2_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_48_1 \
- LC3_CFG(LC3_CONFIG_FREQ_48KHZ, \
- LC3_CONFIG_DURATION_7_5, \
- LC3_CONFIG_FRAME_LEN_48_1)
-
-#define BASE_LC3_48_1 \
- BASE_LC3(40000, 1, 1, LC3_CFG_48_1, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_48_1_1 = {
.cc = LC3_CONFIG_48_1,
.qos = LC3_QOS_48_1_1_B,
@@ -5853,14 +5750,6 @@ static struct test_config cfg_bsrc_48_1_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_48_2 \
- LC3_CFG(LC3_CONFIG_FREQ_48KHZ, \
- LC3_CONFIG_DURATION_10, \
- LC3_CONFIG_FRAME_LEN_48_2)
-
-#define BASE_LC3_48_2 \
- BASE_LC3(40000, 1, 1, LC3_CFG_48_2, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_48_2_1 = {
.cc = LC3_CONFIG_48_2,
.qos = LC3_QOS_48_2_1_B,
@@ -5877,14 +5766,6 @@ static struct test_config cfg_bsrc_48_2_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_48_3 \
- LC3_CFG(LC3_CONFIG_FREQ_48KHZ, \
- LC3_CONFIG_DURATION_7_5, \
- LC3_CONFIG_FRAME_LEN_48_3)
-
-#define BASE_LC3_48_3 \
- BASE_LC3(40000, 1, 1, LC3_CFG_48_3, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_48_3_1 = {
.cc = LC3_CONFIG_48_3,
.qos = LC3_QOS_48_3_1_B,
@@ -5901,14 +5782,6 @@ static struct test_config cfg_bsrc_48_3_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_48_4 \
- LC3_CFG(LC3_CONFIG_FREQ_48KHZ, \
- LC3_CONFIG_DURATION_10, \
- LC3_CONFIG_FRAME_LEN_48_4)
-
-#define BASE_LC3_48_4 \
- BASE_LC3(40000, 1, 1, LC3_CFG_48_4, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_48_4_1 = {
.cc = LC3_CONFIG_48_4,
.qos = LC3_QOS_48_4_1_B,
@@ -5925,14 +5798,6 @@ static struct test_config cfg_bsrc_48_4_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_48_5 \
- LC3_CFG(LC3_CONFIG_FREQ_48KHZ, \
- LC3_CONFIG_DURATION_7_5, \
- LC3_CONFIG_FRAME_LEN_48_5)
-
-#define BASE_LC3_48_5 \
- BASE_LC3(40000, 1, 1, LC3_CFG_48_5, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_48_5_1 = {
.cc = LC3_CONFIG_48_5,
.qos = LC3_QOS_48_5_1_B,
@@ -5949,14 +5814,6 @@ static struct test_config cfg_bsrc_48_5_2 = {
.state_func = bsrc_state_cfg,
};
-#define LC3_CFG_48_6 \
- LC3_CFG(LC3_CONFIG_FREQ_48KHZ, \
- LC3_CONFIG_DURATION_10, \
- LC3_CONFIG_FRAME_LEN_48_6)
-
-#define BASE_LC3_48_6 \
- BASE_LC3(40000, 1, 1, LC3_CFG_48_6, 0x00, 0x01, 0x00)
-
static struct test_config cfg_bsrc_48_6_1 = {
.cc = LC3_CONFIG_48_6,
.qos = LC3_QOS_48_6_1_B,
@@ -5983,10 +5840,6 @@ static struct test_config cfg_bsrc_48_6_2 = {
0x10, \
VS_CC
-#define BASE_VS \
- BASE(40000, 1, 1, 0xFF, 0x00, 0x00, 0x00, 0x00, \
- VS_CFG, 0x00, 0x01, 0x00)
-
#define QOS_BCAST \
{ \
.bcast.big = 0x00, \
@@ -6003,7 +5856,7 @@ static struct test_config cfg_bsrc_48_6_2 = {
static struct test_config cfg_bsrc_vs = {
.cc = UTIL_IOV_INIT(VS_CC),
.qos = QOS_BCAST,
- .base = UTIL_IOV_INIT(BASE_VS),
+ .base = UTIL_IOV_INIT(BASE_VS(VS_CFG)),
.vs = true,
.src = true,
.state_func = bsrc_state_cfg,
@@ -7106,7 +6959,7 @@ static struct test_config cfg_bsrc_str_48_6 = {
static struct test_config cfg_bsrc_str_vs = {
.cc = UTIL_IOV_INIT(VS_CC),
.qos = QOS_BCAST,
- .base = UTIL_IOV_INIT(BASE_VS),
+ .base = UTIL_IOV_INIT(BASE_VS(VS_CFG)),
.src = true,
.state_func = bsrc_state_str,
.streams = 1,
--
2.39.2
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH BlueZ v2 3/5] test-bap: Add support to config multiple bsrc streams
2024-06-25 7:27 [PATCH BlueZ v2 0/5] test-bap: Add Broadcast Source STR MBIS tests Iulia Tanasescu
2024-06-25 7:27 ` [PATCH BlueZ v2 1/5] shared/lc3: Rename LC3_BASE Iulia Tanasescu
2024-06-25 7:27 ` [PATCH BlueZ v2 2/5] test-bap: Move BASE defines to lc3.h Iulia Tanasescu
@ 2024-06-25 7:27 ` Iulia Tanasescu
2024-06-25 7:27 ` [PATCH BlueZ v2 4/5] shared/lc3: Add defines for BASE with multiple BISes Iulia Tanasescu
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Iulia Tanasescu @ 2024-06-25 7:27 UTC (permalink / raw)
To: linux-bluetooth
Cc: claudia.rosu, mihai-octavian.urzica, vlad.pruteanu,
andrei.istodorescu, luiz.dentz, Iulia Tanasescu
This adds support to configure multiple bsrc streams.
---
unit/test-bap.c | 52 ++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 45 insertions(+), 7 deletions(-)
diff --git a/unit/test-bap.c b/unit/test-bap.c
index c92c4f671..9b75cfc80 100644
--- a/unit/test-bap.c
+++ b/unit/test-bap.c
@@ -538,15 +538,17 @@ static void bsrc_pac_added(struct bt_bap_pac *pac, void *user_data)
bt_bap_pac_set_ops(pac, &bcast_pac_ops, NULL);
- stream = bt_bap_stream_new(data->bap, pac, NULL,
- &data->cfg->qos,
- &data->cfg->cc);
- g_assert(stream);
+ for (uint8_t i = 0; i < data->cfg->streams; i++) {
+ stream = bt_bap_stream_new(data->bap, pac, NULL,
+ &data->cfg->qos,
+ &data->cfg->cc);
+ g_assert(stream);
- queue_push_tail(data->streams, stream);
+ queue_push_tail(data->streams, stream);
- bt_bap_stream_config(stream, &data->cfg->qos,
- &data->cfg->cc, NULL, data);
+ bt_bap_stream_config(stream, &data->cfg->qos,
+ &data->cfg->cc, NULL, data);
+ }
}
static void bsrc_state_cfg(struct bt_bap_stream *stream, uint8_t old_state,
@@ -5580,6 +5582,7 @@ static struct test_config cfg_bsrc_8_1_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_8_1),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_8_1_2 = {
@@ -5588,6 +5591,7 @@ static struct test_config cfg_bsrc_8_1_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_8_1),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_8_2_1 = {
@@ -5596,6 +5600,7 @@ static struct test_config cfg_bsrc_8_2_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_8_2),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_8_2_2 = {
@@ -5604,6 +5609,7 @@ static struct test_config cfg_bsrc_8_2_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_8_2),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_16_1_1 = {
@@ -5612,6 +5618,7 @@ static struct test_config cfg_bsrc_16_1_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_16_1),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_16_1_2 = {
@@ -5620,6 +5627,7 @@ static struct test_config cfg_bsrc_16_1_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_16_1),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_16_2_1 = {
@@ -5628,6 +5636,7 @@ static struct test_config cfg_bsrc_16_2_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_16_2),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_16_2_2 = {
@@ -5636,6 +5645,7 @@ static struct test_config cfg_bsrc_16_2_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_16_2),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_24_1_1 = {
@@ -5644,6 +5654,7 @@ static struct test_config cfg_bsrc_24_1_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_24_1),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_24_1_2 = {
@@ -5652,6 +5663,7 @@ static struct test_config cfg_bsrc_24_1_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_24_1),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_24_2_1 = {
@@ -5660,6 +5672,7 @@ static struct test_config cfg_bsrc_24_2_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_24_2),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_24_2_2 = {
@@ -5668,6 +5681,7 @@ static struct test_config cfg_bsrc_24_2_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_24_2),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_32_1_1 = {
@@ -5676,6 +5690,7 @@ static struct test_config cfg_bsrc_32_1_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_32_1),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_32_1_2 = {
@@ -5684,6 +5699,7 @@ static struct test_config cfg_bsrc_32_1_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_32_1),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_32_2_1 = {
@@ -5692,6 +5708,7 @@ static struct test_config cfg_bsrc_32_2_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_32_2),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_32_2_2 = {
@@ -5700,6 +5717,7 @@ static struct test_config cfg_bsrc_32_2_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_32_2),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_44_1_1 = {
@@ -5708,6 +5726,7 @@ static struct test_config cfg_bsrc_44_1_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_44_1),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_44_1_2 = {
@@ -5716,6 +5735,7 @@ static struct test_config cfg_bsrc_44_1_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_44_1),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_44_2_1 = {
@@ -5724,6 +5744,7 @@ static struct test_config cfg_bsrc_44_2_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_44_2),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_44_2_2 = {
@@ -5732,6 +5753,7 @@ static struct test_config cfg_bsrc_44_2_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_44_2),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_48_1_1 = {
@@ -5740,6 +5762,7 @@ static struct test_config cfg_bsrc_48_1_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_48_1),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_48_1_2 = {
@@ -5748,6 +5771,7 @@ static struct test_config cfg_bsrc_48_1_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_48_1),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_48_2_1 = {
@@ -5756,6 +5780,7 @@ static struct test_config cfg_bsrc_48_2_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_48_2),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_48_2_2 = {
@@ -5764,6 +5789,7 @@ static struct test_config cfg_bsrc_48_2_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_48_2),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_48_3_1 = {
@@ -5772,6 +5798,7 @@ static struct test_config cfg_bsrc_48_3_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_48_3),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_48_3_2 = {
@@ -5780,6 +5807,7 @@ static struct test_config cfg_bsrc_48_3_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_48_3),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_48_4_1 = {
@@ -5788,6 +5816,7 @@ static struct test_config cfg_bsrc_48_4_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_48_4),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_48_4_2 = {
@@ -5796,6 +5825,7 @@ static struct test_config cfg_bsrc_48_4_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_48_4),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_48_5_1 = {
@@ -5804,6 +5834,7 @@ static struct test_config cfg_bsrc_48_5_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_48_5),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_48_5_2 = {
@@ -5812,6 +5843,7 @@ static struct test_config cfg_bsrc_48_5_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_48_5),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_48_6_1 = {
@@ -5820,6 +5852,7 @@ static struct test_config cfg_bsrc_48_6_1 = {
.base = UTIL_IOV_INIT(BASE_LC3_48_6),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
static struct test_config cfg_bsrc_48_6_2 = {
@@ -5828,6 +5861,7 @@ static struct test_config cfg_bsrc_48_6_2 = {
.base = UTIL_IOV_INIT(BASE_LC3_48_6),
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
#define VS_CC \
@@ -5860,6 +5894,7 @@ static struct test_config cfg_bsrc_vs = {
.vs = true,
.src = true,
.state_func = bsrc_state_cfg,
+ .streams = 1,
};
/* Test Purpose:
@@ -6005,6 +6040,7 @@ static struct test_config cfg_bsrc_8_1_1_estab = {
.qos = LC3_QOS_8_1_1_B,
.src = true,
.state_func = bsrc_state_estab,
+ .streams = 1,
};
/* Test Purpose:
@@ -6049,6 +6085,7 @@ static struct test_config cfg_bsrc_8_1_1_disable = {
.qos = LC3_QOS_8_1_1_B,
.src = true,
.state_func = bsrc_state_disable,
+ .streams = 1,
};
/* Test Purpose:
@@ -6094,6 +6131,7 @@ static struct test_config cfg_bsrc_8_1_1_release = {
.qos = LC3_QOS_8_1_1_B,
.src = true,
.state_func = bsrc_state_release,
+ .streams = 1,
};
/* Test Purpose:
--
2.39.2
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH BlueZ v2 4/5] shared/lc3: Add defines for BASE with multiple BISes
2024-06-25 7:27 [PATCH BlueZ v2 0/5] test-bap: Add Broadcast Source STR MBIS tests Iulia Tanasescu
` (2 preceding siblings ...)
2024-06-25 7:27 ` [PATCH BlueZ v2 3/5] test-bap: Add support to config multiple bsrc streams Iulia Tanasescu
@ 2024-06-25 7:27 ` Iulia Tanasescu
2024-06-25 7:27 ` [PATCH BlueZ v2 5/5] test-bap: Add Broadcast Source STR MBIS tests Iulia Tanasescu
2024-06-25 14:10 ` [PATCH BlueZ v2 0/5] " patchwork-bot+bluetooth
5 siblings, 0 replies; 9+ messages in thread
From: Iulia Tanasescu @ 2024-06-25 7:27 UTC (permalink / raw)
To: linux-bluetooth
Cc: claudia.rosu, mihai-octavian.urzica, vlad.pruteanu,
andrei.istodorescu, luiz.dentz, Iulia Tanasescu
This adds defines for BASE configurations with multiple BISes.
---
src/shared/lc3.h | 53 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
diff --git a/src/shared/lc3.h b/src/shared/lc3.h
index 944f574b0..e7a9277ec 100644
--- a/src/shared/lc3.h
+++ b/src/shared/lc3.h
@@ -425,6 +425,59 @@
0xFF, 0x00, 0x00, 0x00, 0x00, \
_cc, 0x00, 0x01, 0x00)
+#define BASE_LC3_8_1_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_8_1, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_8_2_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_8_2, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_16_1_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_16_1, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_16_2_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_16_2, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_24_1_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_24_1, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_24_2_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_24_2, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_32_1_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_32_1, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_32_2_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_32_2, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_44_1_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_44_1, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_44_2_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_44_2, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_48_1_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_48_1, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_48_2_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_48_2, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_48_3_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_48_3, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_48_4_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_48_4, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_48_5_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_48_5, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_LC3_48_6_MBIS \
+ BASE_LC3(40000, 1, 2, LC3_CFG_48_6, 0x00, 0x01, 0x00, 0x02, 0x00)
+
+#define BASE_VS_MBIS(_cc) \
+ BASE(40000, 1, 2, \
+ 0xFF, 0x00, 0x00, 0x00, 0x00, \
+ _cc, 0x00, 0x01, 0x00, 0x02, 0x00)
+
#define LC3_QOS_UNFRAMED 0x00
#define LC3_QOS_FRAMED 0x01
--
2.39.2
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH BlueZ v2 5/5] test-bap: Add Broadcast Source STR MBIS tests
2024-06-25 7:27 [PATCH BlueZ v2 0/5] test-bap: Add Broadcast Source STR MBIS tests Iulia Tanasescu
` (3 preceding siblings ...)
2024-06-25 7:27 ` [PATCH BlueZ v2 4/5] shared/lc3: Add defines for BASE with multiple BISes Iulia Tanasescu
@ 2024-06-25 7:27 ` Iulia Tanasescu
2024-06-25 14:10 ` [PATCH BlueZ v2 0/5] " patchwork-bot+bluetooth
5 siblings, 0 replies; 9+ messages in thread
From: Iulia Tanasescu @ 2024-06-25 7:27 UTC (permalink / raw)
To: linux-bluetooth
Cc: claudia.rosu, mihai-octavian.urzica, vlad.pruteanu,
andrei.istodorescu, luiz.dentz, Iulia Tanasescu
4.14.3 Broadcast Audio Stream with Multiple BISes - Source
Test Purpose:
Verify that a Broadcast Source IUT can stream multiple
BISes to a Broadcast Sink.
Test Case Configuration:
BAP/BSRC/STR/BV-18-C [BSRC, Multiple BISes, LC3 8_1]
BAP/BSRC/STR/BV-19-C [BSRC, Multiple BISes, LC3 8_2]
BAP/BSRC/STR/BV-20-C [BSRC, Multiple BISes, LC3 16_1]
BAP/BSRC/STR/BV-21-C [BSRC, Multiple BISes, LC3 16_2]
BAP/BSRC/STR/BV-22-C [BSRC, Multiple BISes, LC3 24_1]
BAP/BSRC/STR/BV-23-C [BSRC, Multiple BISes, LC3 24_2]
BAP/BSRC/STR/BV-24-C [BSRC, Multiple BISes, LC3 32_1]
BAP/BSRC/STR/BV-25-C [BSRC, Multiple BISes, LC3 32_2]
BAP/BSRC/STR/BV-26-C [BSRC, Multiple BISes, LC3 44.1_1]
BAP/BSRC/STR/BV-27-C [BSRC, Multiple BISes, LC3 44.1_2]
BAP/BSRC/STR/BV-28-C [BSRC, Multiple BISes, LC3 48_1]
BAP/BSRC/STR/BV-29-C [BSRC, Multiple BISes, LC3 48_2]
BAP/BSRC/STR/BV-30-C [BSRC, Multiple BISes, LC3 48_3]
BAP/BSRC/STR/BV-31-C [BSRC, Multiple BISes, LC3 48_4]
BAP/BSRC/STR/BV-32-C [BSRC, Multiple BISes, LC3 48_5]
BAP/BSRC/STR/BV-33-C [BSRC, Multiple BISes, LC3 48_6]
BAP/BSRC/STR/BV-34-C [BSRC, Multiple BISes, VS]
Pass verdict:
If the Codec ID is LC3, the IUT sends encoded LC3 audio
data in BIS Data PDUs on each synchronized BIS.
If the Codec ID is a vendor-specific Codec ID, the IUT
sends BIS Data PDUs on each synchronized BIS. The parameters
included in the Codec_Specific_Configuration data are as
defined in TSPX_VS_Codec_Specific_Configuration.
If the Codec ID is LC3, each parameter included in
Codec_Specific_Configuration data is formatted in an LTV
structure with the length, type, and value specified in
Table 4.83.
Test Summary
------------
BAP/BSRC/STR/BV-18-C [BSRC, Multiple BISes, LC3 8_1] Passed
BAP/BSRC/STR/BV-19-C [BSRC, Multiple BISes, LC3 8_2] Passed
BAP/BSRC/STR/BV-20-C [BSRC, Multiple BISes, LC3 16_1] Passed
BAP/BSRC/STR/BV-21-C [BSRC, Multiple BISes, LC3 16_2] Passed
BAP/BSRC/STR/BV-22-C [BSRC, Multiple BISes, LC3 24_1] Passed
BAP/BSRC/STR/BV-23-C [BSRC, Multiple BISes, LC3 24_2] Passed
BAP/BSRC/STR/BV-24-C [BSRC, Multiple BISes, LC3 32_1] Passed
BAP/BSRC/STR/BV-25-C [BSRC, Multiple BISes, LC3 32_2] Passed
BAP/BSRC/STR/BV-26-C [BSRC, Multiple BISes, LC3 44.1_1] Passed
BAP/BSRC/STR/BV-27-C [BSRC, Multiple BISes, LC3 44.1_2] Passed
BAP/BSRC/STR/BV-28-C [BSRC, Multiple BISes, LC3 48_1] Passed
BAP/BSRC/STR/BV-29-C [BSRC, Multiple BISes, LC3 48_2] Passed
BAP/BSRC/STR/BV-30-C [BSRC, Multiple BISes, LC3 48_3] Passed
BAP/BSRC/STR/BV-31-C [BSRC, Multiple BISes, LC3 48_4] Passed
BAP/BSRC/STR/BV-32-C [BSRC, Multiple BISes, LC3 48_5] Passed
BAP/BSRC/STR/BV-33-C [BSRC, Multiple BISes, LC3 48_6] Passed
BAP/BSRC/STR/BV-34-C [BSRC, Multiple BISes, VS] Passed
---
unit/test-bap.c | 302 ++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 294 insertions(+), 8 deletions(-)
diff --git a/unit/test-bap.c b/unit/test-bap.c
index 9b75cfc80..9dd7a45e8 100644
--- a/unit/test-bap.c
+++ b/unit/test-bap.c
@@ -6825,27 +6825,86 @@ static void test_bsnk_str(void)
NULL, test_bcast, &cfg_bsnk_str_vs_mbis, IOV_NULL);
}
+static void stream_count_config(void *data, void *user_data)
+{
+ struct bt_bap_stream *stream = data;
+ uint8_t *streams = user_data;
+
+ if (bt_bap_stream_get_state(stream) == BT_BAP_STREAM_STATE_CONFIG)
+ (*streams)++;
+}
+
+static void stream_count_enabling(void *data, void *user_data)
+{
+ struct bt_bap_stream *stream = data;
+ uint8_t *streams = user_data;
+
+ if (bt_bap_stream_get_state(stream) == BT_BAP_STREAM_STATE_ENABLING)
+ (*streams)++;
+}
+
+static void stream_enable(void *data, void *user_data)
+{
+ struct bt_bap_stream *stream = data;
+
+ bt_bap_stream_enable(stream, true, NULL, NULL, NULL);
+}
+
+static void stream_start(void *data, void *user_data)
+{
+ struct bt_bap_stream *stream = data;
+
+ bt_bap_stream_start(stream, NULL, NULL);
+}
+
static void bsrc_state_str(struct bt_bap_stream *stream, uint8_t old_state,
uint8_t new_state, void *user_data)
{
struct test_data *data = user_data;
+ uint8_t streams = 0;
switch (new_state) {
case BT_BAP_STREAM_STATE_CONFIG:
- bt_bap_stream_enable(stream, true, NULL, NULL, NULL);
+ queue_foreach(data->streams, stream_count_config, &streams);
+
+ if (streams == data->cfg->streams)
+ /* After all streams have transitioned to CONFIG
+ * state, enable each one.
+ */
+ queue_foreach(data->streams, stream_enable, NULL);
break;
case BT_BAP_STREAM_STATE_ENABLING:
- data->base = bt_bap_stream_get_base(stream);
+ queue_foreach(data->streams, stream_count_enabling, &streams);
- g_assert(data->base);
- g_assert(data->base->iov_len == data->cfg->base.iov_len);
- g_assert(memcmp(data->base->iov_base, data->cfg->base.iov_base,
- data->base->iov_len) == 0);
+ if (streams == 1) {
+ /* After the first stream has transitioned to ENABLING
+ * state, bt_bap_stream_get_base will generate the
+ * BASE from all previously configured streams.
+ */
+ data->base = bt_bap_stream_get_base(stream);
+
+ g_assert(data->base);
+ g_assert(data->base->iov_len ==
+ data->cfg->base.iov_len);
+ g_assert(memcmp(data->base->iov_base,
+ data->cfg->base.iov_base,
+ data->base->iov_len) == 0);
+ }
- bt_bap_stream_start(stream, NULL, NULL);
+ if (streams == data->cfg->streams)
+ /* After all streams have transitioned to ENABLING
+ * state, start each one.
+ */
+ queue_foreach(data->streams, stream_start, NULL);
break;
case BT_BAP_STREAM_STATE_STREAMING:
- tester_test_passed();
+ queue_foreach(data->streams, stream_count_streaming, &streams);
+
+ if (streams == data->cfg->streams)
+ /* Test is completed after all streams have transitioned
+ * to STREAMING state.
+ */
+ tester_test_passed();
break;
}
}
@@ -7078,9 +7137,236 @@ static void test_bsrc_str_1b(void)
NULL, test_bcast, &cfg_bsrc_str_vs, IOV_NULL);
}
+static struct test_config cfg_bsrc_str_8_1_mbis = {
+ .cc = LC3_CONFIG_8_1,
+ .qos = LC3_QOS_8_1_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_8_1_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_8_2_mbis = {
+ .cc = LC3_CONFIG_8_2,
+ .qos = LC3_QOS_8_2_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_8_2_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_16_1_mbis = {
+ .cc = LC3_CONFIG_16_1,
+ .qos = LC3_QOS_16_1_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_16_1_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_16_2_mbis = {
+ .cc = LC3_CONFIG_16_2,
+ .qos = LC3_QOS_16_2_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_16_2_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_24_1_mbis = {
+ .cc = LC3_CONFIG_24_1,
+ .qos = LC3_QOS_24_1_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_24_1_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_24_2_mbis = {
+ .cc = LC3_CONFIG_24_2,
+ .qos = LC3_QOS_24_2_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_24_2_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_32_1_mbis = {
+ .cc = LC3_CONFIG_32_1,
+ .qos = LC3_QOS_32_1_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_32_1_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_32_2_mbis = {
+ .cc = LC3_CONFIG_32_2,
+ .qos = LC3_QOS_32_2_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_32_2_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_44_1_mbis = {
+ .cc = LC3_CONFIG_44_1,
+ .qos = LC3_QOS_44_1_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_44_1_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_44_2_mbis = {
+ .cc = LC3_CONFIG_44_2,
+ .qos = LC3_QOS_44_2_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_44_2_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_48_1_mbis = {
+ .cc = LC3_CONFIG_48_1,
+ .qos = LC3_QOS_48_1_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_48_1_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_48_2_mbis = {
+ .cc = LC3_CONFIG_48_2,
+ .qos = LC3_QOS_48_2_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_48_2_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_48_3_mbis = {
+ .cc = LC3_CONFIG_48_3,
+ .qos = LC3_QOS_48_3_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_48_3_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_48_4_mbis = {
+ .cc = LC3_CONFIG_48_4,
+ .qos = LC3_QOS_48_4_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_48_4_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_48_5_mbis = {
+ .cc = LC3_CONFIG_48_5,
+ .qos = LC3_QOS_48_5_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_48_5_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_48_6_mbis = {
+ .cc = LC3_CONFIG_48_6,
+ .qos = LC3_QOS_48_6_1_B,
+ .base = UTIL_IOV_INIT(BASE_LC3_48_6_MBIS),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .streams = 2,
+};
+
+static struct test_config cfg_bsrc_str_vs_mbis = {
+ .cc = UTIL_IOV_INIT(VS_CC),
+ .qos = QOS_BCAST,
+ .base = UTIL_IOV_INIT(BASE_VS_MBIS(VS_CFG)),
+ .src = true,
+ .state_func = bsrc_state_str,
+ .vs = true,
+ .streams = 2,
+};
+
+/* Test Purpose:
+ * Verify that a Broadcast Source IUT can stream multiple BISes to
+ * a Broadcast Sink. The verification is performed for each set of
+ * parameters in turn, as specified in Table 4.82.
+ *
+ * Pass verdict:
+ * If the Codec ID is LC3, the IUT sends encoded LC3 audio data in
+ * BIS Data PDUs on each synchronized BIS.
+ *
+ * If the Codec ID is a vendor-specific Codec ID, the IUT sends BIS
+ * Data PDUs on each synchronized BIS. The parameters included in the
+ * Codec_Specific_Configuration data are as defined in
+ * TSPX_VS_Codec_Specific_Configuration.
+ *
+ * If the Codec ID is LC3, each parameter included in
+ * Codec_Specific_Configuration data is formatted in an LTV structure
+ * with the length, type, and value specified in Table 4.83.
+ */
+static void test_bsrc_str_2b(void)
+{
+ define_test("BAP/BSRC/STR/BV-18-C [BSRC, Multiple BISes, LC3 8_1]",
+ NULL, test_bcast, &cfg_bsrc_str_8_1_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-19-C [BSRC, Multiple BISes, LC3 8_2]",
+ NULL, test_bcast, &cfg_bsrc_str_8_2_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-20-C [BSRC, Multiple BISes, LC3 16_1]",
+ NULL, test_bcast, &cfg_bsrc_str_16_1_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-21-C [BSRC, Multiple BISes, LC3 16_2]",
+ NULL, test_bcast, &cfg_bsrc_str_16_2_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-22-C [BSRC, Multiple BISes, LC3 24_1]",
+ NULL, test_bcast, &cfg_bsrc_str_24_1_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-23-C [BSRC, Multiple BISes, LC3 24_2]",
+ NULL, test_bcast, &cfg_bsrc_str_24_2_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-24-C [BSRC, Multiple BISes, LC3 32_1]",
+ NULL, test_bcast, &cfg_bsrc_str_32_1_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-25-C [BSRC, Multiple BISes, LC3 32_2]",
+ NULL, test_bcast, &cfg_bsrc_str_32_2_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-26-C [BSRC, Multiple BISes, LC3 44.1_1]",
+ NULL, test_bcast, &cfg_bsrc_str_44_1_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-27-C [BSRC, Multiple BISes, LC3 44.1_2]",
+ NULL, test_bcast, &cfg_bsrc_str_44_2_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-28-C [BSRC, Multiple BISes, LC3 48_1]",
+ NULL, test_bcast, &cfg_bsrc_str_48_1_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-29-C [BSRC, Multiple BISes, LC3 48_2]",
+ NULL, test_bcast, &cfg_bsrc_str_48_2_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-30-C [BSRC, Multiple BISes, LC3 48_3]",
+ NULL, test_bcast, &cfg_bsrc_str_48_3_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-31-C [BSRC, Multiple BISes, LC3 48_4]",
+ NULL, test_bcast, &cfg_bsrc_str_48_4_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-32-C [BSRC, Multiple BISes, LC3 48_5]",
+ NULL, test_bcast, &cfg_bsrc_str_48_5_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-33-C [BSRC, Multiple BISes, LC3 48_6]",
+ NULL, test_bcast, &cfg_bsrc_str_48_6_mbis, IOV_NULL);
+
+ define_test("BAP/BSRC/STR/BV-34-C [BSRC, Multiple BISes, VS]",
+ NULL, test_bcast, &cfg_bsrc_str_vs_mbis, IOV_NULL);
+}
+
static void test_bsrc_str(void)
{
test_bsrc_str_1b();
+ test_bsrc_str_2b();
}
int main(int argc, char *argv[])
--
2.39.2
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH BlueZ v2 0/5] test-bap: Add Broadcast Source STR MBIS tests
2024-06-25 7:27 [PATCH BlueZ v2 0/5] test-bap: Add Broadcast Source STR MBIS tests Iulia Tanasescu
` (4 preceding siblings ...)
2024-06-25 7:27 ` [PATCH BlueZ v2 5/5] test-bap: Add Broadcast Source STR MBIS tests Iulia Tanasescu
@ 2024-06-25 14:10 ` patchwork-bot+bluetooth
5 siblings, 0 replies; 9+ messages in thread
From: patchwork-bot+bluetooth @ 2024-06-25 14:10 UTC (permalink / raw)
To: Iulia Tanasescu
Cc: linux-bluetooth, claudia.rosu, mihai-octavian.urzica,
vlad.pruteanu, andrei.istodorescu, luiz.dentz
Hello:
This series was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
On Tue, 25 Jun 2024 10:27:06 +0300 you wrote:
> This patch adds BAP unit tests for Broadcast Source streaming with
> multiple BISes (4.14.3 Broadcast Audio Stream with Multiple BISes -
> Source - page 184).
>
> This also moves the BASE defines from test-bap to lc3.h.
>
> Iulia Tanasescu (5):
> shared/lc3: Rename LC3_BASE
> test-bap: Move BASE defines to lc3.h
> test-bap: Add support to config multiple bsrc streams
> shared/lc3: Add defines for BASE with multiple BISes
> test-bap: Add Broadcast Source STR MBIS tests
>
> [...]
Here is the summary with links:
- [BlueZ,v2,1/5] shared/lc3: Rename LC3_BASE
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=13da92529954
- [BlueZ,v2,2/5] test-bap: Move BASE defines to lc3.h
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=98013b74e5b1
- [BlueZ,v2,3/5] test-bap: Add support to config multiple bsrc streams
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=409251a95b6f
- [BlueZ,v2,4/5] shared/lc3: Add defines for BASE with multiple BISes
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=4571cdba13a3
- [BlueZ,v2,5/5] test-bap: Add Broadcast Source STR MBIS tests
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=944909f2b2c8
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 9+ messages in thread