The "Vendor" field is optional, and should have an initialized valid default value. It has the default values in register_endpoint, but not in app_register_endpoint, so make the latter match the former. --- Notes: v2: Let's not use C99 initializers. The uninitialized values cause Pipewire media endpoint registrations to fail, and this makes it work again. Its BAP media endpoints do not have the Vendor field, given that they use LC3, so the struct in app_register_endpoint ends up containing random garbage. The resulting invalid codec/cid/vid value combination is rejected by bt_bap_add_vendor_pac. profiles/audio/media.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/profiles/audio/media.c b/profiles/audio/media.c index d96367454..8a2afd04c 100644 --- a/profiles/audio/media.c +++ b/profiles/audio/media.c @@ -2583,6 +2583,8 @@ static void app_register_endpoint(void *data, void *user_data) dbus_message_iter_get_basic(&iter, &codec); + memset(&vendor, 0, sizeof(vendor)); + if (g_dbus_proxy_get_property(proxy, "Vendor", &iter)) { if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_UINT32) goto fail; -- 2.39.1