From: Brian Gix <bgix@codeaurora.org>
To: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Cc: Arun Raghavan <arun.raghavan@collabora.co.uk>,
linux-bluetooth@vger.kernel.org,
Johan Hedberg <johan.hedberg@gmail.com>
Subject: Re: Switching between SBC and MPEG audio on headsets
Date: Tue, 15 Mar 2011 12:41:06 -0700 [thread overview]
Message-ID: <4D7FC0D2.5080509@codeaurora.org> (raw)
In-Reply-To: <AANLkTimF0Ux=-uQiWaWH14r3_YAuyp2o=QrmyeLkWWeT@mail.gmail.com>
On 3/15/2011 12:29 PM, Luiz Augusto von Dentz wrote:
> Hi,
>
> On Tue, Mar 15, 2011 at 2:01 PM, Johan Hedberg<johan.hedberg@gmail.com> wrote:
>> Hi Arun,
>>
>> On Tue, Mar 15, 2011, Arun Raghavan wrote:
>>> I've been trying to set up PulseAudio to be able to switch the A2DP sink
>>> dynamically between SBC and MPEG modes. I've got this working now [1], but I
>>> did face one problem on the bluez side. When sending a reconfigure request, the
>>> request always goes to the SEID that was used previously (=> always to the SBC
>>> SEID). Trying to reconfigure for MPEG therefore results the headset returning
>>> an error. I'm not very familiar with how this is supposed to work, but the
>>> patch following this mail seems to work (I can now switch back and forth
>>> between SBC and MPEG modes). It basically forces figuring out what remote SEP
>>> to talk to while reconfiguring.
>>>
>>> Is this the right approach?
>>
>> I'm not sure about the places where you set the value to NULL, but the
>> place in close_cfm which you remove isn't acceptable as such. It was
>> originally created to fix the issue reported in this thread:
>> http://marc.info/?l=linux-bluetooth&m=129190286303247&w=2
>>
>> Only a fix which doesn't break the use-case reported there can be
>> accepted upstream. FWIW, the commit that introduced the fix is de96fcd8.
>
> Also the solution should consider a transition and not dropping the
> stream completely before configuring the other, otherwise errors may
> cause a complete disconnect just to switch between endpoints. Actually
> I would suggest configuring both endpoint since the beginning so that
> we only need to suspend/resume to switch between them, but I don't
> think many headsets would be able to handle this situation.
>
I think most headsets will not support this because it would require an
extra L2CAP connection to be maintained.
I don't think there is much of a big deal with closing the first
endpoint relationship prior to configuring the next, becuase the AVDTP
signaling channel will keep the underlying ACL connection open. Headsets
I have worked on in the past would reject a SET_CONFIG if an existing
local/remote SEID relationship already existed, not only for the extra
resources required to maintain the extra L2CAP channel, but also because
the SET_CONFIG is when the hw resources are reserved and configured for
the actual PCM data stream.
And assuming that the ACL doesn't get dropped, the critical re-setup
time is probably most bounded by the underlying hw reconfiguration, and
not so much by the few extra small ACL pkts that need to be exchanged.
--
Brian Gix
bgix@codeaurora.org
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum
next prev parent reply other threads:[~2011-03-15 19:41 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-15 14:27 Switching between SBC and MPEG audio on headsets Arun Raghavan
2011-03-15 14:27 ` [PATCH] Always reset the remote SEP when reconfiguring A2DP Arun Raghavan
2011-03-15 16:30 ` Brian Gix
2011-03-15 17:08 ` Johan Hedberg
2011-03-15 17:11 ` Brian Gix
2011-03-15 16:22 ` Switching between SBC and MPEG audio on headsets Brian Gix
2011-03-15 19:51 ` Arun Raghavan
2011-03-15 20:43 ` Brian Gix
2011-03-16 18:19 ` Arun Raghavan
2011-03-16 20:05 ` [PATCH] Recalculate remote SEP if the codec type changes Arun Raghavan
2011-03-18 9:43 ` Johan Hedberg
2011-03-15 17:01 ` Switching between SBC and MPEG audio on headsets Johan Hedberg
2011-03-15 19:29 ` Luiz Augusto von Dentz
2011-03-15 19:41 ` Brian Gix [this message]
2011-03-15 20:21 ` Luiz Augusto von Dentz
2011-03-15 20:50 ` Brian Gix
2011-03-16 22:38 ` Peter Dons Tychsen
2011-03-16 23:09 ` Brian Gix
2011-03-17 9:35 ` Peter Dons Tychsen
2011-03-17 16:19 ` Brian Gix
2011-03-17 21:33 ` Peter Dons Tychsen
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=4D7FC0D2.5080509@codeaurora.org \
--to=bgix@codeaurora.org \
--cc=arun.raghavan@collabora.co.uk \
--cc=johan.hedberg@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=luiz.dentz@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.