Parent: 4138972b5b84a4c25c06847c714761495f296b96
Author: Mikel Astiz <mikel.astiz@bmw-carit.de>
Committer: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: 2012-09-14 16:48:24
Tree: 6fcf31cc747363350ed9acc96dfef7088961213f
media: Expose transport state in D-Bus Extend the Media API to expose the transport state in D-Bus, as a property of the transport. This way the clients do not have to find out which is the corresponding profile-specific interface for the transport. Additionally, this state along with the automatic release of transports will allow clients to avoid the "optional release" or "accept remote release" race condition. For example, with HSP/HFP profiles, the problem is the following: 1. User suspends SCO in the remote end. 2. BlueZ signals the Playing->Connected state change in D-Bus. 3. Exactly afterwards, the user resumes SCO in the remote end. 4. In parallel, PulseAudio sees the aforementioned transition to Connected, and thus releases the transport. 5. BlueZ receives a Release() request while SCO is up. So the audio stream will be suspended. The last step is an undesired behavior since the user explicitly wanted to route the audio stream through Bluetooth. The issue is difficult to reproduce but it can easily be solved by exposing the transport state in D-Bus.
Diffstat
| M | audio/transport.c | | | 29 | +++++++++++++++++++++++++++++ |
| M | doc/media-api.txt | | | 8 | ++++++++ |
2 files changed, 37 insertions(+), 0 deletions(-)