[pulseaudio-discuss] SBC XQ for PA 13.0

Andrey Semashev andrey.semashev at gmail.com
Mon Dec 9 12:16:20 UTC 2019

On 2019-12-09 14:56, Pali Rohár wrote:
> On Monday 09 December 2019 14:47:26 Andrey Semashev wrote:
>> As a user, I don't know whether I can use SBC XQ. I don't know whether its
>> bitrate will fit in my radio conditions. If my device happens to support SBC
>> XQ, that is the codec that will get picked upon connection. Please, correct
>> me if I'm wrong, but I don't see a way to influence that.
> You can ask same question for aptX-HD codec. It has also fixed high
> bitrate.

If there is no way to switch between aptX-HD and aptX without device 
reconnection then that's a limitation of this particular codec and 
there's nothing we can do about it. This is not the case for SBC, if I 
understand correctly.

>> SBC XQ is high quality and high bitrate, true, but PA should adapt to the
>> actual use conditions.
> SBC XQ is defined with usage of one specific bitpool value.

Correct me if I'm wrong, but regardless of the quality there is only one 
codec defined by A2DP - SBC. A2DP also defines several bitpool values 
that should be used for this codec, which are commonly called LQ, MQ and 
HQ. XQ is not formally defined by A2DP, but is actually supported by 
devices. If all this is correct, I don't see why PA couldn't switch 
between XQ and HQ the same way it switches from HQ to MQ in automatic mode.

>> More so if it actually has the means to do so. If PA
>> detects that SBC XQ does not fit in BT bandwidth, it should gradually drop
>> quality.
> Maybe we can implement disconnecting SBC XQ profile when problem happen
> and connect again with SBC in Automatic quality.

I'm not sure I understand the technical details of this, but if it 
happens transparently to the user then that would be fine.

> But there is another problem. People who chose high quality codec do not
> want to see that application itself without their instruction decide to
> change codec to low quality. This is reason why non-SBC codecs are used.
> Because they provide one fixed quality which is same whatever bluetooth
> adapter or headphone you will use. SBC is criticized for a long time
> because current implementations automatically choose some quality which
> is not under user control. So for these reasons there is SBC LQ, MQ, HQ
> and XQ. You can choose what you want to use. By default is automatic
> mode which decreasing quality.

I think the main criticism toward SBC is poor quality. A fair deal of 
that criticism is misattributed to the codec itself and in fact is 
caused by poor implementation in devices. But I can be reasonably sure 
that for an average user signal stability always comes first, and 
quality second.

I don't mind if there is a way to force a specific quality profile or 
codec in PA. In fact, that would probably be useful for working around 
various problems (e.g. when a device declares it supports XQ but 
actually doesn't work). However, in the automatic mode, which should be 
the default, XQ should be no different from the other profiles and 
participate in quality adaptation.

More information about the pulseaudio-discuss mailing list