Another day, another library mess.

The AMR speech codec comes in two variants, wide-band and narrow-band.
The only complete implementation I'm aware of is the reference library
from 3GPP.  Although the code is readily available, using it is somewhat
of a legal grey area.  It is not generally available as a distro package.

Then there is the OpenCORE library[1].  Although in part based on the
3GPP code, it is apparently somehow blessed to make it legal.  However,
it only includes decoding.  Yet another library, vo-amrwbenc, can encode
the WB variant but not NB.  Both of these tend to have distro packages.

SoX has support for both the 3GPP and OpenCORE libraries with an unholy
amount of #ifdeffery.  It is made extra convoluted by the option to load
the libraries using dlopen() rather than linking directly.

Whatever shall we do?  I'm trying to clean up the build system, and I
keep stumbling over these things.  On the one hand, I don't like
removing features.  On the other, the lack of any clean AMRNB encoder
suggests that maybe nobody needs one.  I am also concerned about the
security risks brought on by using unmaintained libraries like these.

[1] https://sourceforge.net/projects/opencore-amr/

-- 
Måns Rullgård


_______________________________________________
SoX-devel mailing list
SoX-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sox-devel

Reply via email to