GNOME Bugzilla – Bug 156063
infinite loop and 100% CPU with some MP3
Last modified: 2005-08-15 01:38:44 UTC
gst-launch-0.8 gnomevfssrc location=00-time_signal.mp3 ! typefind ! spider ! fakesink with <http://www.nottingham.ac.uk/~enxrah/00-time_signal.mp3> This is Debian bug <http://bugs.debian.org/277650>.
I have a number of files that exhibit this behaviour. They are all very short (3 or 4 seconds)
I have a bunch of .mp3 and .ogg files that are showing this as well; all of them are small (one is a 128byte file for a 'data track'). running: gst-launch-0.8 gnomevfssrc location=00-time_signal.mp3 ! spider ! fakesink seems to work for these, as does: gst-launch-0.8 filesrc location=00-time_signal.mp3 ! typefind ! spider ! fakesink Seems to be a combination of gnomevfssrc and typefind. I get the following infinite loop with both: gstevent.c(171):gst_event_new: creating new event type 1: 0x8066608 gstevent.c(92):_gst_event_free: freeing event 0x8066608 gstevent.c(171):gst_event_new: creating new event type 1: 0x8066608 gstevent.c(92):_gst_event_free: freeing event 0x8066608 ... with debug level 4 showed: gstevent.c(171):gst_event_new: creating new event type 1: 0x8066608 gstpad.c(4425):gst_pad_call_get_function:<gnomevfssrc0:src> getfunction returned event 0x8066608 (type 1, refcount 1) gstpad.c(3174):gst_pad_push:<gnomevfssrc0:src> gst_pad_push event 0x8066608 (type 1, refcount 1) gstpad.c(4402):gst_pad_call_chain_function:<typefindelement0:sink> calling chain function with event 0x8066608 (type 1, refcount 1) gstevent.c(92):_gst_event_free: freeing event 0x8066608 gstoptimalscheduler.c(1303):get_group_schedule_function: doing get and push on pad "gnomevfssrc0:src" in group 0x80d3110 gstelement.c(3469):gst_element_set_eos: setting EOS on element gnomevfssrc0 gstevent.c(171):gst_event_new: creating new event type 1: 0x8066608 ...
Using CVS revision HEAD versions of gstreamer, gst-plugins, and gst-ffmpeg (all up-to-date as of 2004-11-02T00:34:34+0000): This pipeline plays the file once, but then seems to loop infinitely until I kill the process: gst-launch-0.8 gnomevfssrc location="00-time_signal.mp3" ! typefind ! spider ! alsasink This does not occur with these pipelines, which all play the file once and then exit: gst-launch-0.8 gnomevfssrc location="00-time_signal.mp3" ! spider ! alsasink gst-launch-0.8 filesrc location="00-time_signal.mp3" ! spider ! alsasink gst-launch-0.8 filesrc location="00-time_signal.mp3" ! typefind ! spider ! alsasink
No longer occurs with current CVS. It was a but in gsttypefindelement. There is another bug for this but I can't find it, so I'll close this separately.
I confirm it is gone.