[pulseaudio-discuss] [PATCH v13 10/10] bluetooth: policy: Treat bi-directional A2DP profiles as suitable for VOIP

Hyperion h1p8r10n at yandex.com
Sat Oct 19 16:48:57 UTC 2019



19.10.2019, 18:16, "Pali Rohár" <pali.rohar at gmail.com>:
> On Saturday 19 October 2019 19:07:44 Tanu Kaskinen wrote:
>>  On Sat, 2019-10-19 at 17:20 +0200, Pali Rohár wrote:
>>  > On Friday 18 October 2019 15:29:43 Tanu Kaskinen wrote:
>>  > > On Thu, 2019-10-17 at 15:34 +0200, Hyperion wrote:
>>  > > > Regression would mean that some devices can't connect anymore : this
>>  > > > won't happen if a workaround is provided, and this workaround won't
>>  > > > be used often.
>>  > > >
>>  > > > Most (99% ?) of the devices will work correctly with my patch (many
>>  > > > of them in XQ mode, and some in legacy mode because they will fall
>>  > > > back to legacy bitpool during negociation)
>>  > > >
>>  > > > The remaining (1% ?) : will need a simple boolean swicth in one of
>>  > > > the PA config files to restrict negociation to legacy bitpool (a
>>  > > > module option ? or daemon.conf ?).
>>  > > >
>>  > > > I think it's really "simple", efficient, and not dependent of any
>>  > > > upcoming Bluez feature.
>>  > > >
>>  > > > "The complex solution is always the best until one find a simpler one"
>>  > >
>>  > > I don't know the number of users who use bluetooth headsets with
>>  > > PulseAudio, but even just 1% regression rate can mean quite a few
>>  > > unhappy users. When your headset suddenly stops working, it's not
>>  > > trivial to figure out that you may need to pass a special argument to
>>  > > module-bluetooth-discover in order to make it work again.
>>  > >
>>  > > It would be better to have a module argument to enable the XQ settings.
>>  >
>>  > Main question, do we really need this special "settings"? Because my
>>  > patch series introduce also SBC XQ profile and basically replaces above
>>  > module parameter, by runtime configuration.
>>  >
>>  > For me above solution looks like a hack. It adds some module parameter
>>  > for tweaking configuration. 

No : if true it would mean that most of PA config options are hacks, since they nearly all rely on
config files options and modules parameters.
It's a clean solution to provide legacy SBC by default and XQ as an option. 

>>  > And what would happen with that parameter
>>  > after we have "proper" support for multiple codecs? 

Having Bluez support codec switching in the future will allow to change codec "at runtime", but it's only for users who care about BT sound quality.

The good solution, imho, would be to use Pali's code, witch is more advanced, WITH ADDED module parameter (sbc_quality= ?) AND ADDED "XQ automatic" mode (my patch).


This way : as long as Bluez has no codec switching, the default mode (without sbc_quality module param OR sbc_quality=legacy) is still "legacy automatic" (current PA code), and with the sbc_quality=XQ codec param : the mode would switch to "XQ automatic" (my patch). 
When Bluez happens to provide codec switching : the sbc_quality module param would keep doing the same thing : activating XQ quality, but then : it will also activate "fixed bitpool XQ modes" and APTX, ... (Pali's patch). Note that the ability of Bluez to do codec switching SHOULD be auto detected.

Note that Linux distribution packagers will be able to package PA with the XQ mode activated by default : freedom for everybody.

>>  > Do we need to
>>  > maintain backward compatibility? Or would we remove that configuration
>>  > and therefore revert to state prior existence of new module parameter
>>  > (which is current situation)?
>>
>>  After your patches there's still the "automatic bitpool" mode
>>  available, right?
>
> Yes, I wanted to have it there for legacy/backward compatibility reasons
> for those devices which could be broken with new settings. That is the
> reason I do not wanted to touch Automatic mode, to have exact same
> behavior as in current (and older) pulseaudio versions.
>
> But if automatic mode is going to be changed, I do not see reason for
> keeping it (the argument for backward compatibility would not apply
> anymore, if it is going to be changed). My patch series with new A2DP
> API can fully replace that automatic mode.
>
> Automatic mode is also main objection against usage of SBC codec (it
> does not specify, say or enforce specific bitrate or quality; it can be
> anything) and also reason why there are vendor codecs like aptX.
> Defining SBC LQ, MQ, HQ or XQ just allows to compare it with other
> codecs and guarantee same settings and quality across all devices.
>
>>  To me it seems that the new option discussed here
>>  would still be useful, if there are users who prefer to use the
>>  automatic bitpool mode.
>
> --
> Pali Rohár
> pali.rohar at gmail.com


More information about the pulseaudio-discuss mailing list