Diff between d6bfbd28420edf91382635b229b9f8b2f94dc060 and ddfa40977c7e7b8723fc3ba9389822631ddeeb5c

Changed Files

File Additions Deletions Status
src/shared/bap.c +11 -0 modified

Full Patch

diff --git a/src/shared/bap.c b/src/shared/bap.c
index 55f61d9..cf5d810 100644
--- a/src/shared/bap.c
+++ b/src/shared/bap.c
@@ -882,6 +882,12 @@ static void stream_notify_config(struct bt_bap_stream *stream)
 	put_le24(lpac->qos.ppd_min, config->ppd_min);
 	put_le24(lpac->qos.ppd_max, config->ppd_max);
 	config->codec = lpac->codec;
+
+	if (config->codec.id == 0x0ff) {
+		config->codec.vid = cpu_to_le16(config->codec.vid);
+		config->codec.cid = cpu_to_le16(config->codec.cid);
+	}
+
 	config->cc_len = stream->cc->iov_len;
 	memcpy(config->cc, stream->cc->iov_base, stream->cc->iov_len);
 
@@ -4347,6 +4353,11 @@ unsigned int bt_bap_stream_config(struct bt_bap_stream *stream,
 		config.phy = qos->ucast.io_qos.phy;
 		config.codec = stream->rpac->codec;
 
+		if (config.codec.id == 0xff) {
+			config.codec.cid = cpu_to_le16(config.codec.cid);
+			config.codec.vid = cpu_to_le16(config.codec.vid);
+		}
+
 		iov[0].iov_base = &config;
 		iov[0].iov_len = sizeof(config);