After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 781929 - audioringbuffer: mpegaudioversion 3 (MP3 2.5) is refused
audioringbuffer: mpegaudioversion 3 (MP3 2.5) is refused
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
1.10.4
Other Linux
: Normal normal
: 1.13.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-04-29 02:53 UTC by Nicolas Dufresne (ndufresne)
Modified: 2017-05-16 19:39 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
audioringbuffer: Accept MPEG 1 layer 3 version 2.5 (1.17 KB, patch)
2017-04-29 03:04 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review
alsasink: Accept MPEG 1 layer 3 version 2.5 (847 bytes, patch)
2017-04-29 03:04 UTC, Nicolas Dufresne (ndufresne)
none Details | Review
pulse: Accept MPEG 1 layer 3 version 2.5 (983 bytes, patch)
2017-04-29 03:06 UTC, Nicolas Dufresne (ndufresne)
none Details | Review
alsasink: Accept MPEG 1 layer 3 version 2.5 (844 bytes, patch)
2017-04-29 03:11 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review
pulse: Accept MPEG 1 layer 3 version 2.5 (980 bytes, patch)
2017-04-29 03:13 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review

Description Nicolas Dufresne (ndufresne) 2017-04-29 02:53:43 UTC
First, my apologies if there is some mistake in this report, I'm not very knowledgeable in MPEG audio version. What I understood is that mpegaudioparse will parse mpeg audio 1, layer 1 / 3. Additionally, it parses the 3 generations of MP3. Those a commonly named as 1, 2 and 2.5, which we map into mpegaudioversion as 1, 2 and 3.

First issue I found, is that mpegaudioversion 3 is rejected by the audioringbuffer. Now, on wikipedia this is considered non-standard, but it's widely used to transport human voice, as it reduces the bitrate. I think we enable support for this in the audioringbuffer, sinks can still control their template caps.

Second issue, while the code in mpegaudioparse can produce 1, 2 and 3, the template advertise only 1 and 3.

Third issue, lame and mpegaudioparse disagree. An example:

gst-launch-1.0 -v audiotestsrc ! audio/x-raw,rate=8000 ! lamemp3enc  ! mpegaudioparse ! fakesink

8kHz is only supported for generation 2.5, lame report mpgeaudioversion=2, mpegaudioparse will report 3 correctly. (maybe this should be filed seperatly ?)
Comment 1 Nicolas Dufresne (ndufresne) 2017-04-29 03:04:07 UTC
Created attachment 350702 [details] [review]
audioringbuffer: Accept MPEG 1 layer 3 version 2.5
Comment 2 Nicolas Dufresne (ndufresne) 2017-04-29 03:04:11 UTC
Created attachment 350703 [details] [review]
alsasink: Accept MPEG 1 layer 3 version 2.5
Comment 3 Nicolas Dufresne (ndufresne) 2017-04-29 03:06:03 UTC
Created attachment 350704 [details] [review]
pulse: Accept MPEG 1 layer 3 version 2.5
Comment 4 Nicolas Dufresne (ndufresne) 2017-04-29 03:08:03 UTC
Review of attachment 350703 [details] [review]:

Oops, no comments.
Comment 5 Nicolas Dufresne (ndufresne) 2017-04-29 03:08:15 UTC
Review of attachment 350704 [details] [review]:

Sams.
Comment 6 Nicolas Dufresne (ndufresne) 2017-04-29 03:11:05 UTC
Created attachment 350705 [details] [review]
alsasink: Accept MPEG 1 layer 3 version 2.5
Comment 7 Nicolas Dufresne (ndufresne) 2017-04-29 03:13:42 UTC
Created attachment 350706 [details] [review]
pulse: Accept MPEG 1 layer 3 version 2.5
Comment 8 Nicolas Dufresne (ndufresne) 2017-04-29 03:15:18 UTC
mpegaudioparse was fine of course, if you can see that a [ if not a { ;-P. Let me know if / when these should get in.
Comment 9 Nicolas Dufresne (ndufresne) 2017-05-16 19:37:44 UTC
Attachment 350702 [details] pushed as 1ceb40c - audioringbuffer: Accept MPEG 1 layer 3 version 2.5
Attachment 350705 [details] pushed as e0d793f - alsasink: Accept MPEG 1 layer 3 version 2.5
Comment 10 Nicolas Dufresne (ndufresne) 2017-05-16 19:38:16 UTC
Attachment 350706 [details] pushed as bd2ce0f - pulse: Accept MPEG 1 layer 3 version 2.5