[pulseaudio-discuss] [PATCH v2] bluetooth: Add support for automatic switch between hsp and a2dp profiles

Pali Rohár pali.rohar at gmail.com
Fri Oct 31 05:07:37 PDT 2014


On Friday 31 October 2014 12:49:08 Tanu Kaskinen wrote:
> On Tue, 2014-10-28 at 12:33 +0100, Pali Rohár wrote:
> > On Tuesday 28 October 2014 09:44:53 Tanu Kaskinen wrote:
> > > On Sun, 2014-10-19 at 13:42 +0200, Pali Rohár wrote:
> > > > I would like to remind this patch.
> > > > 
> > > > This patch for bluetooth headsets will automatically
> > > > switch between hsp (phone quality input+output) and
> > > > a2dp (full quality output) bluetooth profiles based on
> > > > running pulseaudio clients.
> > > > 
> > > > I you want to use microphone of your bluetooth headset
> > > > you need to switch to hsp profile (manually or somehow
> > > > else... or with this patch).
> > > > 
> > > > This patch will primary use information from
> > > > "media.role" and will switch only if "media.role" is
> > > > phone.
> > > > 
> > > > If "media.role" information is not available (e.g
> > > > pulseaudio client did not set it) then in patch is used
> > > > some heuristic (ignore resample method peaks, ignore
> > > > virtual streams, ignore recording from monitors).
> > > > 
> > > > In previous discussion Arun was against last part --
> > > > using that heuristic and wanted to use only media.role.
> > > > 
> > > > I would like to hear what other developers thinks. There
> > > > are more pulseaudio users who want to see this feature
> > > > in pulseaudio and it is *bad* that user must open
> > > > volume control settings, change bluetooth configuration
> > > > (switch from a2dp to hsp) before he wants to make voice
> > > > call or use blueooth microphone for other purpose.
> > > 
> > > I'd prefer if the patch would switch the profile to hsp
> > > only if a stream has the "phone" role, and only if the
> > > application hasn't explicitly configured any other device
> > > for the stream.
> > 
> > Ok. And what to do when application does not specify any
> > role?
> 
> Nothing.
> 

Ok, what about adding new bool parameter to this module (which 
will be off by default) to use also heuristic when application 
does not specify media.role?

> > > Btw, does this patch actually do what it's supposed to do?
> > > It seems to switch the profile in the source output put
> > > hook, but at that point the stream has already been
> > > routed, so I'd expect the stream to not get routed to the
> > > hsp source, since it didn't exist at the time when the
> > > routing for the stream was decided.
> > 
> > Patch automatically switch between hsp and a2dp mode in
> > source output hook function. Because switching procedure
> > takes some time (and it is asynchronous) it is not finished
> > before returning from hook function.
> 
> As far as I know, switching card profiles is synchronous.
> 
> > Once profile switch is done new source card output
> > appears and can be used for recording audio. When I
> > configured hsp source with high priority in KDE4 multimedia
> > settings PA automatically switch to hsp bluetooth card when
> > it is available for all exiting source streams.
> 
> Ok, so this patch relies on some other policy module to
> automatically move streams when a new sink/source appears. I
> think that's fine for now.

Ok. So only problematic part of my patch is using heuristic when 
application does not provide media.role information?

-- 
Pali Rohár
pali.rohar at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20141031/feab65b0/attachment.sig>


More information about the pulseaudio-discuss mailing list