GNOME Bugzilla – Bug 400366
Playing Freeformat mp3 384kbit broken
Last modified: 2007-01-26 13:01:13 UTC
A file created by lame with the --freeformat tag won't be played properly (it sounds like rubbish ;) ) by gst 0.10: gst-launch-0.10 playbin uri=file:///...../outfile.mp3 gst-launch 0.8 plays the file properly. Sample to be tested can be made quickly like this: lame --freeformat -b 384 infile.wav outfile.mp3 madplay/libmad will also play the file (it supports playback up to 640 kbit)
Do you use the fluendo mp3 plugin or the mad plugin from gst-plugins-ugly? Files created this way work fine for me with the mad plugin and the latest gstreamer releases. Which versions of gstreamer, gst-plugins-base and gst-plugins-ugly are you using?
Latest with Gentoo at this time: media-libs/gst-plugins-ugly-0.10.4 media-libs/gst-plugins-base-0.10.11 media-libs/gstreamer-0.10.11 Are you using later versions? I don't have the fluendo plugin, so It should be mad.
Could you try if it works with gst-plugins-ugly 0.10.5? Also, just to confirm that this is an mad plugin issue, please try gst-launch-0.10 filesrc location=test.mp3 ! mad ! audioconvert ! alsasink where test.mp3 is such freeformat file.
updated -ugly to 0.10.5 doesn't seem to make a change. The filesrc pipeline sounds the same as playbin.
Uploaded my sample (30 megs) gst-launch-0.10 playbin uri="http://www.xs4all.nl/~jooph54/01.%20Wine,%20Women,%20and%20SongFF.mp3" Its a song by Harvey Danger, who distribute their album online for free, so sharing it like this shouldn't be much of a problem copyright wise.
Hm, still works fine for me with the exact same versions that you have... I assume if you do gst-launch-0.10 filesrc location=01.\ Wine\,\ Women\,\ and\ SongFF.mp3 ! mad ! audioconvert ! wavenc ! filesink location=test.wav The resulting file contains distortion too? Could you please run GST_DEBUG_NO_COLOR=1 GST_DEBUG=mad:5 gst-launch-0.10 filesrc location=01.\ Wine\,\ Women\,\ and\ SongFF.mp3 ! mad ! fakesink &> logfile for some seconds, then abort with ctrl+c and attach the resulting file here
Created attachment 81134 [details] gzipped logfile. Doesn't even run the convert to wav one... gst-launch-0.10 filesrc location=01.\ Wine\,\ Women\,\ and\ SongFF.mp3 ! mad ! audioconvert ! wavenc ! filesink location=test.wav Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock ERROR: from element /pipeline0/filesrc0: Internal data flow error. Additional debug info: gstbasesrc.c(1614): gst_base_src_loop (): /pipeline0/filesrc0: streaming task paused, reason not-negotiated (-4) Execution ended after 72282000 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... FREEING pipeline ... Attaching logfile . Bugs 163867 and 170387 were for a similar issue, back then fixed for 0.8 by Ronald Bultje.. Maybe useful for you ?
How did you upgrade to -ugly 0.10.5? Are you sure it was really your mad 0.10.5 plugin that was used? Did 'gst-inspect-0.10 mad | grep Version' show 0.10.5 before you ran gst-launch-0.10 with that? This sounds a lot like it might be bug #350723 to me. FWIW, I can reproduce the problem with the GStreamer versions in ubuntu edgy (= -ugly 0.10.4), but not with anything more recent (= -ugly 0.10.5). Copying libgstmad.so from my CVS build into ~/.gstreamer-0.10/plugins/ also fixes the problem for me. The problem with wavenc is due to the decoder changing the sample rate from 44100kHz to 48000Hz in the middle of the stream and wavenc can't handle that.
It seems i was bitten by gentoo's 'interesting' habit of apparently having split out some functions from -ugly and some not into seperate packages. Upgraded the seperated out -mad package now to 0.10.5 as well which fixes the problem.
Thanks for confirming.
*** Bug 400986 has been marked as a duplicate of this bug. ***