Bug 6020 - should libmad be replaced with libmpg123 as the default mp3 decoder?
Summary: should libmad be replaced with libmpg123 as the default mp3 decoder?
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: multimedia (show other bugs)
Version: unspecified
Hardware: All Multiple
: Medium enhancement
Target Milestone: 2.2
Assignee: Alexander Kanavin
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2014-03-20 14:49 UTC by Cristian Iorga
Modified: 2016-06-23 14:24 UTC (History)
5 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Don't know


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Cristian Iorga 2014-03-20 14:49:08 UTC
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.
Comment 1 Cristian Iorga 2014-03-20 14:53:30 UTC
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.
Comment 2 Tanu Kaskinen 2015-12-31 13:09:47 UTC
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?
Comment 3 Ross Burton 2016-03-21 22:51:16 UTC
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.
Comment 4 Ross Burton 2016-03-21 22:54:11 UTC
It's part of -ugly just as libmad.
Comment 5 Ross Burton 2016-04-11 20:55:30 UTC
Reassigning to Alex as he's been doing multimedia work.
Comment 6 Alexander Kanavin 2016-06-23 14:24:31 UTC
Patch is in master: d8afd0c9f2fc302aa6c3e88e452806d51b23e3cd