[pulseaudio-discuss] SBC XQ for PA 13.0

Pali Rohár pali.rohar at gmail.com
Sat Dec 7 19:31:50 UTC 2019


On Saturday 07 December 2019 22:13:28 Andrey Semashev wrote:
> On 2019-12-07 21:30, Pali Rohár wrote:
> > On Saturday 07 December 2019 21:09:04 Andrey Semashev wrote:
> > > However, I can still hear compression artefacts on quiet or nearly silent
> > > audio sections, which sound like high-pitch squeaking sounds. It can often
> > > be heard on various music fade out sections. I don't know if this is
> > > inherrent from SBC codec itself or is a deficiency of libsbc implementation,
> > > or the headphones. These artefacts are my main complaint about SBC.
> > 
> > See very nice description about this problem https://habr.com/en/post/456182/
> > Probably your headphones cripple audio by filters when SBC is used...
> 
> Yes, I've read that. That is the reason why I suspect the headphones might
> be the culprit, but I cannot be sure.
> 
> > > Which brings me to my question to PA developers. Would an addition of
> > > support for AAC be possible?
> > 
> > My A2DP patch series brings new pulseaudio API for implementing new A2DP
> > codecs. So yes, additional support for other A2DP codecs with my patch
> > series is possible. My patch series contains support for aptX, aptX-HD
> > and FastStream A2DP codecs.
> 
> Are your patches available in a PR or a git fork somewhere? If I'm going to
> give it a try to add support for AAC, how can I get the up to date PA
> version to develop against?

Patches are available on mailing list, aggregated in patchwork:
https://patchwork.freedesktop.org/series/55117/

Last version is also available in my private git fork (branch a2dp-codecs):
https://gitlab.freedesktop.org/pali/pulseaudio

You can use it as a base for adding a new A2DP codec. Look at how aptX
or FastStream is implemented (they are in separate commits).

> > But... you need a library for encoding and decoding that codec ...
> > 
> > > pulseaudio-modules-bt uses libfdk-aac to implement AAC, and if possible, I
> > > would prefer that library as it provides the best quality available on
> > > Linux. However, if licensing is an issue, there is also a built-in
> > > implementation in ffmpeg.
> > 
> > FDK-AAC library is incompatible with any version of the GNU GPL license
> > and therefore it is not possible to use it in any GPL licensed software,
> > like pulseaudio. See: https://www.gnu.org/licenses/license-list.html#fdk
> 
> Well, incompatibility means the resulting binary is not redistributable.
> Users could still build PA with libfdk-aac locally.

Yes, you are right.

> Or the library could be
> loaded dynamically, if present on the user's system, without having to link
> with it at build time.

Some people says that this is not legal too. Loading library either at
build (link) time is same as at runtime... And FSF has similar
explanation. Main problem is that license of external library does not
allow you to use it in your application. And it does not depend on how
you build your application or how you use that library (dlopen or
stating or dynamic linking). You are still usage same library API. But
I'm not lawyer...

Important it that if there are people who doubt about regular usage then
such functionality would not be included into distribution. And above
dynamic loading via dlopen is a reason for doubt that something is not
there fully legal and can be problematic.

> > If there is other AAC library which license allows usage it in
> > pulseaudio then it could be possible. Just somebody needs to write it.
> 
> The built-in implementation in ffmpeg is under LGPL 2.1, which should be
> compatible.

Yes, LGPL 2.1 is fine.

-- 
Pali Rohár
pali.rohar at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20191207/0a9b2bce/attachment.sig>


More information about the pulseaudio-discuss mailing list