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