From 908e3f3d1f8b258adf7e2dc053a4b33e7a1371fe Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 3 Dec 2020 11:09:13 +0100 Subject: [PATCH] bluez5: only register available A2DP encoder/decoder --- spa/plugins/bluez5/bluez5-dbus.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/spa/plugins/bluez5/bluez5-dbus.c b/spa/plugins/bluez5/bluez5-dbus.c index c4a9df067..a7655cfd2 100644 --- a/spa/plugins/bluez5/bluez5-dbus.c +++ b/spa/plugins/bluez5/bluez5-dbus.c @@ -1331,14 +1331,20 @@ static DBusHandlerResult object_manager_handler(DBusConnection *c, DBusMessage * if (caps_size < 0) continue; - spa_log_info(monitor->log, "register A2DP codec %s", a2dp_codecs[i]->name); - endpoint = spa_aprintf("%s/%s", A2DP_SINK_ENDPOINT, codec->name); - append_a2dp_object(&array, endpoint, SPA_BT_UUID_A2DP_SINK, codec_id, caps, caps_size); - free(endpoint); + if (codec->decode != NULL) { + spa_log_info(monitor->log, "register A2DP codec %s", a2dp_codecs[i]->name); + endpoint = spa_aprintf("%s/%s", A2DP_SINK_ENDPOINT, codec->name); + append_a2dp_object(&array, endpoint, SPA_BT_UUID_A2DP_SINK, + codec_id, caps, caps_size); + free(endpoint); + } - endpoint = spa_aprintf("%s/%s", A2DP_SOURCE_ENDPOINT, codec->name); - append_a2dp_object(&array, endpoint, SPA_BT_UUID_A2DP_SOURCE, codec_id, caps, caps_size); - free(endpoint); + if (codec->encode != NULL) { + endpoint = spa_aprintf("%s/%s", A2DP_SOURCE_ENDPOINT, codec->name); + append_a2dp_object(&array, endpoint, SPA_BT_UUID_A2DP_SOURCE, + codec_id, caps, caps_size); + free(endpoint); + } } dbus_message_iter_close_container(&iter, &array);