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 666735 - Specific MP3 Files play garbled sound
Specific MP3 Files play garbled sound
Status: RESOLVED NOTGNOME
Product: GStreamer
Classification: Platform
Component: dont know
0.10.x
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-12-22 22:05 UTC by smartysmart34
Modified: 2012-02-02 11:44 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description smartysmart34 2011-12-22 22:05:00 UTC
Hi all,

I downloaded two mp3-Files from 7digital.com in November. Directly after downloading they played fine. Last week I tried again and i got garbled sound.

OS: OpenSUSE 11.4/64
Multimedia-Packages from Packman
Players tested: Amarok, Totem, Vlc, smplayer

When I change the KDE Phonon-Backend to xine the files play OK (tested in Amarok). Back to GStreamer: garbled.

Other files downloaded from 7digital before or after play OK. Even with GStreamer as backend.

I mailed one of the files to one of the members of the Packman mailing list. He was able to reproduce the issue. So it's not just my installation.

If required I can mail one of the files to you as well. Just let me know whom to send it to.

The mediainfo of the file:
General
Complete name                    : ./01 Rhymin & Stealin.mp3
Format                           : MPEG Audio
File size                        : 9.47 MiB
Duration                         : 4mn 8s
Overall bit rate                 : 320 Kbps
Album                            : Licensed To Ill
Part/Position                    : 1/1 / 1
Part/Total                       : 1
Track name                       : Rhymin & Stealin
Track name/Position              : 1
Track name/Total                 : 13
Performer                        : The Beastie Boys
Accompaniment                    : The Beastie Boys
Genre                            : Hip Hop
Recorded date                    : 1995
Copyright                        : (P) 1986 UMG Recordings, Inc.
Comment                          : Purchased from 7digital.com

Audio
Format                           : MPEG Audio
Format version                   : Version 1
Format profile                   : Layer 3
Mode                             : Joint stereo
Duration                         : 4mn 8s
Bit rate mode                    : Constant
Bit rate                         : 320 Kbps
Channel(s)                       : 2 channels
Sampling rate                    : 44.1 KHz
Stream size                      : 9.47 MiB (100%)

If you need anything else, please let me know.

Kind regards,
Martin Soltau
Comment 1 Vincent Penquerc'h 2012-01-17 16:52:12 UTC
If you can repro this with only the first few seconds of the file (eg, using dd), it should be OK to post this short sample. If you'd rather not, you can send it to me (address in the link on my name).
Comment 2 Vincent Penquerc'h 2012-01-17 20:35:26 UTC
The file sent by email works fine with a simple playbin2 pipeline (gst-launch and Totem), so this seems like a bug that was fixed already.

In case it's an issue specific to the KDE Phonon backend or amarok, could you try:

gst-launch-0.10 playbin2 uri=file:///..../01\ Rhymin\ \&\ Stealin.mp3

This works fine for me.
Comment 3 smartysmart34 2012-01-31 13:43:06 UTC
Sorry, i answered via Mail a couple of days ago. The above command still plays garbled sound. So no progress there.

What comes to my mind: I am using a 64bit System. What about you? Did you test in 32bit? 

How can I find the exact version of GStreamer used on my system? What is your GStreamer version?

Kind regards,
Martin
Comment 4 Vincent Penquerc'h 2012-01-31 14:02:06 UTC
I am using a 64 bit Linux system, with current git of GStreamer core and plugins. I don't have a 32 bit system to test with.
I just tried again now, and I get correct playback.

To get versions, try:
for core: gst-inspect queue | grep Version
for -base: gst-inspect playbin2 | grep Version
for -good: gst-inspect mpegaudioparse | grep Version
for -ugly: gst-inspect mad | grep Version

Something you could try is to move away /usr/lib/gstreamer-0.10/libgstmpegaudioparse.* and see if that helps. Once you've tried, place those files back there.
Comment 5 Vincent Penquerc'h 2012-01-31 14:23:30 UTC
Also of interest would be whether you still get garbled sound with these commands:

gst-launch-0.10 playbin2 uri=file:///..../01\ Rhymin\ \&\ Stealin.mp3 audio-sink=alsasink

gst-launch-0.10 filesrc location=/..../01\ Rhymin\ \&\ Stealin.mp3 ! mad ! wavenc ! filesink location=/tmp/rs.mp3.wav
gst-launch-0.10 playbin2 uri=file:///tmp/rs.mp3.wav

(the middle launch line might assert at the end, I just found out, looking at it now but it should not be related).
Comment 6 smartysmart34 2012-02-01 07:33:22 UTC
(In reply to comment #4)
> I am using a 64 bit Linux system, with current git of GStreamer core and
> plugins. I don't have a 32 bit system to test with.
> I just tried again now, and I get correct playback.
> 
> To get versions, try:
> for core: gst-inspect queue | grep Version
> for -base: gst-inspect playbin2 | grep Version
> for -good: gst-inspect mpegaudioparse | grep Version
> for -ugly: gst-inspect mad | grep Version
> 
> Something you could try is to move away
> /usr/lib/gstreamer-0.10/libgstmpegaudioparse.* and see if that helps. Once
> you've tried, place those files back there.

Core: Version:  0.10.35
Base: Version:  0.10.35
Good: Version:  0.10.30
Ugly: Not installed
Comment 7 smartysmart34 2012-02-01 07:39:24 UTC
(In reply to comment #5)
> Also of interest would be whether you still get garbled sound with these
> commands:
> 
> gst-launch-0.10 playbin2 uri=file:///..../01\ Rhymin\ \&\ Stealin.mp3
> audio-sink=alsasink
> 
> gst-launch-0.10 filesrc location=/..../01\ Rhymin\ \&\ Stealin.mp3 ! mad !
> wavenc ! filesink location=/tmp/rs.mp3.wav
> gst-launch-0.10 playbin2 uri=file:///tmp/rs.mp3.wav
> 
> (the middle launch line might assert at the end, I just found out, looking at
> it now but it should not be related).

at least this one:

gst-launch-0.10 playbin2 uri=file:///..../01\ Rhymin\ \&\ Stealin.mp3
audio-sink=alsasink

still plays garbled sound

The second does not do anything:
No Element "mad". I guess because the ugly-codecs are not installed
Comment 8 smartysmart34 2012-02-01 07:52:36 UTC
(In reply to comment #6)
> (In reply to comment #4)
> > I am using a 64 bit Linux system, with current git of GStreamer core and
> > plugins. I don't have a 32 bit system to test with.
> > I just tried again now, and I get correct playback.
> > 
> > To get versions, try:
> > for core: gst-inspect queue | grep Version
> > for -base: gst-inspect playbin2 | grep Version
> > for -good: gst-inspect mpegaudioparse | grep Version
> > for -ugly: gst-inspect mad | grep Version
> > 
> > Something you could try is to move away
> > /usr/lib/gstreamer-0.10/libgstmpegaudioparse.* and see if that helps. Once
> > you've tried, place those files back there.
> 
> Core: Version:  0.10.35
> Base: Version:  0.10.35
> Good: Version:  0.10.30
> Ugly: Not installed

By the way:
libgstmpegaudioparse.* is not in that directory. There is a whole bunch of other libgst* files. but no mpegaudioparse. Should I be worried about that?
Comment 9 Vincent Penquerc'h 2012-02-01 12:00:11 UTC
That's interesting.
Do you have a special MP3 decoder plugin by any chance ?
The MAD plugin is the canonical one. There is a ffdec_mp3 from gst-ffmpeg, but this one has 0 rank, so will not be used by playbin2, so... a third one ?
If you're not sure, you can find out by:

GST_DEBUG=*FACTORY*:3 gst-launch-0.10 playbin2 uri=file:///..../01\ Rhymin\ \&\ Stealin.mp3 2>&1 | grep creating.element

then attach the output of this (you can ^C as soon as playback has started).
Comment 10 Tim-Philipp Müller 2012-02-01 12:09:07 UTC
The mp3 parser is now part of libgstaudioparsers.so in -good.

Bug #598335 may be related.
Comment 11 smartysmart34 2012-02-01 14:42:49 UTC
(In reply to comment #10)
> The mp3 parser is now part of libgstaudioparsers.so in -good.
> 
> Bug #598335 may be related.

But this Bug is 2.5 years old. is it really not fixed yet?
Comment 12 smartysmart34 2012-02-01 16:32:49 UTC
(In reply to comment #10)
> The mp3 parser is now part of libgstaudioparsers.so in -good.

I was looking in the wrong directory. under /usr/lib64/gstreamer.... I have a file called libgstaudioparsers.so.

Still no libgstmpegaudioparser but that's OK as far as I understand....
Comment 13 smartysmart34 2012-02-01 16:35:28 UTC
(In reply to comment #9)
> That's interesting.
> Do you have a special MP3 decoder plugin by any chance ?
> The MAD plugin is the canonical one. There is a ffdec_mp3 from gst-ffmpeg, but
> this one has 0 rank, so will not be used by playbin2, so... a third one ?
> If you're not sure, you can find out by:
> 
> GST_DEBUG=*FACTORY*:3 gst-launch-0.10 playbin2 uri=file:///..../01\ Rhymin\ \&\
> Stealin.mp3 2>&1 | grep creating.element
> 
> then attach the output of this (you can ^C as soon as playback has started).

Here you go...
0:00:00.018935341 12779       0x609080 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:375:gst_element_factory_create: creating element "playbin2"                                                                     
0:00:00.019480412 12779       0x609080 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:375:gst_element_factory_create: creating element "uridecodebin"                                                                 
0:00:00.019980930 12779       0x609080 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "filesrc" named "source"                                                       
0:00:00.020121073 12779       0x609080 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:375:gst_element_factory_create: creating element "decodebin2"                                                                   
0:00:00.020200633 12779       0x609080 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "typefind" named "typefind"                                                    
0:00:00.024473288 12779       0x609080 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:375:gst_element_factory_create: creating element "id3demux"                                                                     
0:00:00.025474709 12779       0x609080 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:375:gst_element_factory_create: creating element "mpegaudioparse"                                                               
0:00:00.027695336 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:375:gst_element_factory_create: creating element "flump3dec"                                                                    
0:00:00.043854356 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:375:gst_element_factory_create: creating element "input-selector"                                                               
0:00:00.044062487 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "tee" named "audiotee"                                                         
0:00:00.044413932 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "autoaudiosink" named "audiosink"                                              
0:00:00.044588782 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "fakesink" named "tempsink"                                                    
0:00:00.048552221 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "pulsesink" named "audiosink-actual-sink-pulse"                                
0:00:00.071600586 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "jackaudiosink" named "audiosink-actual-sink-jackaudio"                        
0:00:00.073943619 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "alsasink" named "audiosink-actual-sink-alsa"                                  
0:00:00.077668611 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "bin" named "abin"                                                             
0:00:00.077719803 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "queue" named "aqueue"                                                         
0:00:00.083405827 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "audioconvert" named "aconv"                                                   
0:00:00.084752335 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "audioresample" named "aresample"                                              
0:00:00.086793976 12779       0x75d6e0 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:373:gst_element_factory_create: creating element "volume" named "volume"    

To be honest I do not understand much of this :-(
Comment 14 Vincent Penquerc'h 2012-02-01 16:52:37 UTC
Thanks, the salient part is:
creating element "flump3dec"                                           

This is the Fluendo MP3 decoder, which seems likely to be what produces that issue, since that seems to be the difference between our setups.
You could verify that by removing it (just move the lib to /tmp temporarily) and installing -ugly to get the mad decoder plugin.

If that's confirmed, then you should file a bug on the Fluendo bug tracker.
Comment 15 smartysmart34 2012-02-02 10:03:10 UTC
(In reply to comment #14)
> Thanks, the salient part is:
> creating element "flump3dec"                                           
> 
> This is the Fluendo MP3 decoder, which seems likely to be what produces that
> issue, since that seems to be the difference between our setups.
> You could verify that by removing it (just move the lib to /tmp temporarily)
> and installing -ugly to get the mad decoder plugin.
> 
> If that's confirmed, then you should file a bug on the Fluendo bug tracker.

Just to get this straight: The package providing Fluendo is called 
"gstreamer-0_10-fluendo-mp3". So for me this is clearly a gstreamer package. Or do I get that wrong?  Why would there be another bugzilla besides this one? 
I'm kind of lost. Are you saying that fluendo - while named gstreamer - is from a completely different, unrelated source?

By the way: I uninstalled the package via Yast (OpenSuse) and the mp3-file plays correctly.
But Amarok now complains to not have mp3 support while playing it anyway after I clicked that message away.

That whole gstreamer/mp3/amarok issue kind of bugs me
Comment 16 smartysmart34 2012-02-02 10:16:03 UTC
Just would like to confirm:

Reinstalled the gstreamer-fluendo package from the opensuse-Reporitorys (Package created Feb 20th 2011) and it plays fine

Switched to the gstreamer-fluendo package from packman (created December 2011) and the file plays garbled sound.

So for me this is an issue implemented into Fluendo between feb 2011 and dec 2011.

Can someone now point me to the correct bugtracker?!?

Cheers,
Martin
Comment 17 Vincent Penquerc'h 2012-02-02 10:49:00 UTC
It is a gstreamer plugin made by Fluendo, a third party company.
There would be another bug tracker (I assume) for this plugin because it's made by Fluendo, not us.

That's what happens when you make software that can use plugins: others can make their own plugins too. Like if you use, say, the Adblock plugin for Firefox. It's made by someone else that the Mozilla folks, but it's a Firefox plugin, which works within Firefox.

To summarize:
- GStreamer is a plugin based framework
- GStreamer's own set of plugins includes a MP3 decoder, called mad, in -ugly
- Fluendo has their own MP3 decoder plugin, which you obtained

I thought Fluendo was selling their decoder, so you'd know where to contact them.
The company's website is http://www.fluendo.com/.

So you can either obtained a fixed version of the Fluendo MP3 decoder (from Fluendo), or use the mad decoder that comes with gstreamer's -ugly repo.

Now, since the issue is with a third party decoder, I'll close this as not being a bug in our software. If it turns out it's in fact a gst bug that hits the Fluendo decoder, then please reopen.
Comment 18 Tim-Philipp Müller 2012-02-02 11:44:02 UTC
You could/should probably also file a bug with the distro where you obtained your package from.