From: Mikel Astiz <mikel.as...@bmw-carit.de>

With BlueZ 5, if the remote device suspends the audio, the transport
state will change to "idle" and the endpoint is not required to release
the transport, since this could introduce race conditions. Therefore,
ignore the call to pa_bluetooth_transport_release() if the transport is
not acquired any more.
---
 src/modules/bluetooth/bluetooth-util.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/modules/bluetooth/bluetooth-util.c 
b/src/modules/bluetooth/bluetooth-util.c
index d63f189..cd6db4b 100644
--- a/src/modules/bluetooth/bluetooth-util.c
+++ b/src/modules/bluetooth/bluetooth-util.c
@@ -1560,6 +1560,9 @@ void 
pa_bluetooth_transport_release(pa_bluetooth_transport *t) {
 
         pa_assert_se(m = dbus_message_new_method_call(t->owner, t->path, 
"org.bluez.MediaTransport", "Release"));
         pa_assert_se(dbus_message_append_args(m, DBUS_TYPE_STRING, 
&accesstype, DBUS_TYPE_INVALID));
+    } else if (t->state <= PA_BLUETOOTH_TRANSPORT_STATE_IDLE) {
+        pa_log_info("Transport %s auto-released by BlueZ or already released", 
t->path);
+        return;
     } else {
         pa_assert(t->device->discovery->version == BLUEZ_VERSION_5);
         pa_assert_se(m = dbus_message_new_method_call(t->owner, t->path, 
"org.bluez.MediaTransport1", "Release"));
-- 
1.8.1.4

_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to