MAD: MPEG Audio Decoder library and tools has not been updated from 2005 and should be replaced with mpg123 mp3 decoder in oe-core. Reasons: 1. libmad has not been updated from 2005 which might be a cause for security related issues (software vulnerabilities); 2. libmad decoding performance is weak when compared with libmpg123 decoding perfomance; 3. MAD is not optimized for modern processors, while mpg123 is (Neon, SSE, AVX, etc). 4. mpg123 is still maintained/updated, which adds new features (like CPU optimizations), while also minimizing the potential for software vulnerabilities.
References: 1. MP3 Decoder Libraries Compared http://www.wezm.net/technical/2008/04/mp3-decoder-libraries-compared/ 2. mpg123 - Fast console MPEG Audio Player and decoder library http://mpg123.de/ mpg123 is ISO MPEG compliant, as attested by the tests run by the developer on each release. mpg123 is already present in meta-openembedded/meta-multimedia layer.
What does "the default mp3 decoder" mean? Each application typically supports only one or the other, so we can't make a default choice on behalf of the applications. Is this just about the availability of libmpg123, that is, the goal here is to make it easier for applications to use libmpg123 by including it in oe-core?
As far as oe-core is concerned, the only place libmad is used is in gstreamer1.0-plugins-ugly. Need to see what the state of the libmpg123 plugin for GStreamer is.
It's part of -ugly just as libmad.
Reassigning to Alex as he's been doing multimedia work.
Patch is in master: d8afd0c9f2fc302aa6c3e88e452806d51b23e3cd