linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
To: "Pali Rohár" <pali.rohar@gmail.com>
Cc: "linux-bluetooth@vger.kernel.org" <linux-bluetooth@vger.kernel.org>
Subject: Re: bluez: dbus method call for switching endpoint
Date: Wed, 11 Jul 2018 16:27:07 +0300	[thread overview]
Message-ID: <CABBYNZJuGT5_zhg-BkAc4XjtVu5His92cHTujrin=SMOVbaodQ@mail.gmail.com> (raw)
In-Reply-To: <20180711082352.oo6srapfnol5nkxq@pali>

Hi Pali,

On Wed, Jul 11, 2018 at 11:23 AM, Pali Roh=C3=A1r <pali.rohar@gmail.com> wr=
ote:
> Hi!
>
> I prepared WIP patch for pulseaudio which adds support for A2DP aptX
> codec (using LGPL libopenaptx library) but there is a one big problem.
>
> https://patchwork.freedesktop.org/patch/236801/
> https://github.com/pali/libopenaptx
>
> bluez dbus API does not provide a way to switch from one codec to
> another once A2DP connection is established.
>
> And to have support for more codecs in pulseaudio (e.g. both SBC and
> aptX) it is needed to export for each codec own endpoint.
>
> I was told that for new connections bluez choose first registered
> endpoint and therefore also codec. But when connection is initiated by
> A2DP device itself, then codec is chosen randomly. And once connection
> is active there is no way to change codec.
>
> Therefore client application (like pulseaudio) have no control on codec
> selection, nor it cannot change codes from one to other.
>
> So for supporting more then one codec in pulseaudio, which means
> anything different as mandatory SBC, it is needed that bluez exports
> some dbus API for changing currently selected codec.
>
> Can you extend bluez daemon for this support?
>
> Also I have an another question, how to get (via dbus API) list of all
> supported codecs by particular A2DP device? This is needed e.g. in GUI
> applications for selecting which codec to use for headset device. And
> select menu should contain only supported codecs.

One way to solve all of these is that we would expose the remote
endpoints using MediaEndpoint1, though only SelectConfiguration would
be really useful here and that doesn't contain the remote capabilities
that probably should be made into properties, along with codec type
and uuid.

Note all of this is only useful as far as manually selecting goes
since I don't think it would be a good idea to torn down streams just
because the codec was not the best one as that may cause the whole
link to be disconnected. Besides a good headset would probably
remember what codec you selected the last time and just connect with
it, this btw is what I would do when operating as a sink.

--=20
Luiz Augusto von Dentz

  reply	other threads:[~2018-07-11 13:27 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-11  8:23 bluez: dbus method call for switching endpoint Pali Rohár
2018-07-11 13:27 ` Luiz Augusto von Dentz [this message]
2018-07-11 14:45   ` Pali Rohár
2018-12-15 20:29     ` Pali Rohár
2018-12-18 16:02       ` Luiz Augusto von Dentz
2018-12-28 19:11         ` Pasi Kärkkäinen
2018-12-28 22:10           ` Luiz Augusto von Dentz
2018-12-29 13:08             ` Pali Rohár
2019-01-08 16:44               ` Luiz Augusto von Dentz
2019-01-08 16:51                 ` Pali Rohár
2019-01-08 16:56                 ` Pali Rohár
2019-01-09 18:03                   ` Pali Rohár
2019-01-09 18:14                     ` Pali Rohár
2019-01-10 11:29                       ` Luiz Augusto von Dentz
2019-01-10 11:59                         ` Pali Rohár
2019-01-26 10:15                           ` Pali Rohár
2019-01-19 17:15                 ` Pali Rohár

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CABBYNZJuGT5_zhg-BkAc4XjtVu5His92cHTujrin=SMOVbaodQ@mail.gmail.com' \
    --to=luiz.dentz@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=pali.rohar@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).