GNOME Bugzilla – Bug 338711
Internal data flow error with latest updates for FC5 with gstreamer repository
Last modified: 2006-04-22 21:36:30 UTC
Today I just updated some packages with yum, it included the following gstreamer packages: gstreamer-tools.i386 0.10.4.2-0.gst.1.5 gstreamer.i386 0.10.4.2-0.gst.1.5 gstreamer-plugins-base.i386 0.10.5.2-0.gst.1.5 Now Rhythmbox can't play many of my mp3 files. I have 429 files and now only 143 can be played. The error I get is "Internal data flow error. file:///somefile.mp3". This are my gstreamer packages right now: [root@athlon2000 ~]# rpm -qa | grep -i gstreamer gstreamer-ffmpeg-0.10.1-0.gst.1.5 gstreamer-plugins-good-0.10.2-1 gstreamer-plugins-ugly-0.10.3-0.gst.1.5 gstreamer-plugins-base-0.10.5.2-0.gst.1.5 gstreamer-0.10.4.2-0.gst.1.5 gstreamer-tools-0.10.4.2-0.gst.1.5 gstreamer-plugins-bad-0.10.1-0.gst.3.5 Note that gstreamer-plugins-good is still the one that comes with Fedora Core 5. Any plans to update this in the gstreamer repository? Any ideas about this problem? It was working just fine before the update. Note that I don't have gstreamer-universe installed. Should I install it?
Marking as blocker for now, should at least be looked into before the release. There are quite of few similar reports.
This change looks like it might be responsible: 2006-04-05 Michael Smith <msmith@fluendo.com> * gst/gstpipeline.c: (gst_pipeline_init): When we create a pipeline bus, initially create it in flushing mode. Fixes leaks in at least one test, and makes a new pipeline work the same as one that has gone to READY and then back to NULL. Sinks are opened in the NULL => READY transition, so if the bus is by default flushing before the pipeline reaches READY state, error messages sinks post on the bus when opening fails are just dropped.
Confirmed. Not setting the bus to flushing in the gst_pipeline_init() makes totem see the proper error message originally posted by the sink.
*** Bug 338588 has been marked as a duplicate of this bug. ***
William, could you start rhythmbox from the command line like this and then reproduce the error and attach the log: $ GST_DEBUG=*:4 rhythmbox 2>&1 | gzip > dbg.log.gz
this automatic flushing things turns out to be too automatic and introduces inconsistencies. You can turn off the automatic flushing with a property on GstPipeline. Applications that know what they are doing might just want to do that and explicitly flush/read bus messages.
I think i might have been too quick to mark bug #338588 as a duplicate of this bug. I believe there are currently two blocker issues with the core prerelease: (a) the issue discussed here: changes to pipeline bus flushing cause error messages from sinks to be dropped (this is #338588) (b) up until the current prerelease the core didn't always check caps for compatibility properly everywhere. This means that the current core exposes bugs in some elements in the current release of gst-plugins-good (0.10.2), most notably id3demux and apedemux. Those elements don't change/set caps on outgoing buffers correctly in the 0.10.2 release, which might cause 'Internal Flow Error' errors due to non-negotiated flow returns when the core catches incompatible caps. I haven't confirmed this yet, but I am fairly sure this is the case and is what the original bug reported here is about. If this is true, we better release -core, -base, -good together or risk breaking music playback until the next -good release ...
(In reply to comment #5) > William, could you start rhythmbox from the command line like this and then > reproduce the error and attach the log: > > $ GST_DEBUG=*:4 rhythmbox 2>&1 | gzip > dbg.log.gz > I'll do this as soon as I get home tonight.
Created attachment 63841 [details] GST_DEBUG info I decided to run this with totem instead of rhythmbox for practical reasons, still I get the same error message. I did the following to get this log: $ export LANG=en_US.UTF-8 $ GST_DEBUG=*:4 totem 2>&1 | gzip > dbg.log.gz File -> Open... -> (Select an mp3 file) -> Ok -> Internal data flow error That's all, I hope this helps.
Created attachment 63947 [details] [review] patch to core that removes regressions following patch undoes: http://webcvs.freedesktop.org/gstreamer/gstreamer/gst/gstpipeline.c?r1=1.132&r2=1.133 and disables changes done by: http://webcvs.freedesktop.org/gstreamer/gstreamer/gst/gstpad.c?r1=1.498&r2=1.499
commited to head