GNOME Bugzilla – Bug 722442
Internal data stream error in gstoggdemux.c
Last modified: 2015-01-29 18:16:07 UTC
Created attachment 266573 [details] the sample program I was doing some torture testing and I came across this/these internal error(s) in gstoggdemux.c. Attached is some code that sets up a playbin and uses it to play a file passed on the commandline. When "about-to-finish" fires, we load in a new URI (actually,the same one again) which kicks off its decoding process. Really soon after that in the main thread (via idle) we set_state(READY) on the playbin, cancelling the decoding. About one time out of 4 that results in this output: [desrt@moonpix muine]$ ./break silence.ogg using uri file:///home/desrt/muine/silence.ogg got state change: NULL to READY pend PLAYING stream-start got state change: READY to PAUSED pend PLAYING got a 200000 async-done message got a 800 new-clock message got state change: PAUSED to PLAYING pend VOID_PENDING change to ready got state change: PLAYING to PAUSED pend READY debug: gstoggdemux.c(4065): gst_ogg_demux_find_chains (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin1/GstDecodeBin:decodebin1/GstOggDemux:oggdemux1: can't get file length ** (break:16189): CRITICAL **: file /home/desrt/muine/break.vala.c: line 138: uncaught error: Could not demultiplex stream. (gst-stream-error-quark, 9) debug: gstoggdemux.c(4560): gst_ogg_demux_loop (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin1/GstDecodeBin:decodebin1/GstOggDemux:oggdemux1: stream stopped, reason not-supported ** (break:16189): CRITICAL **: file /home/desrt/muine/break.vala.c: line 138: uncaught error: Internal data stream error. (gst-stream-error-quark, 1) debug: gstoggdemux.c(4579): gst_ogg_demux_loop (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin1/GstDecodeBin:decodebin1/GstOggDemux:oggdemux1: EOS before finding a chain ** (break:16189): CRITICAL **: file /home/desrt/muine/break.vala.c: line 138: uncaught error: Could not demultiplex stream. (gst-stream-error-quark, 9) got state change: PAUSED to READY pend VOID_PENDING ^C Build the attached program like so: valac break.vala --pkg gstreamer-1.0 --pkg gio-2.0 This is Fedora 20. $ rpm -qa | grep gstreamer gstreamer1-1.2.2-1.fc20.x86_64 gstreamer-plugins-base-0.10.36-6.fc20.i686 libnice-gstreamer1-0.1.4-2.fc20.x86_64 gstreamer-plugins-ugly-0.10.19-14.fc20.x86_64 gstreamer-plugins-espeak-0.4.0-2.fc19.x86_64 gstreamer-plugins-base-0.10.36-6.fc20.x86_64 gstreamer1-plugins-base-1.2.2-1.fc20.x86_64 gstreamer-0.10.36-6.fc20.x86_64 gstreamer1-plugins-bad-freeworld-1.2.1-2.fc20.x86_64 gstreamer1-plugins-bad-free-1.2.2-1.fc20.x86_64 gstreamer1-devel-1.2.2-1.fc20.x86_64 gstreamer-ffmpeg-0.10.13-10.fc20.x86_64 gstreamer-plugins-good-0.10.31-10.fc20.x86_64 gstreamer-0.10.36-6.fc20.i686 gstreamer-plugins-bad-0.10.23-5.fc20.x86_64 gstreamer1-plugins-good-1.2.2-1.fc20.x86_64 gstreamer1-plugins-ugly-1.2.1-1.fc20.x86_64 gstreamer-devel-0.10.36-6.fc20.x86_64 PackageKit-gstreamer-plugin-0.8.15-2.fc20.x86_64 gstreamer1-libav-1.2.1-1.fc20.x86_64 gstreamer-plugins-bad-free-0.10.23-19.fc20.x86_64 gstreamer-tools-0.10.36-6.fc20.x86_64
Created attachment 266574 [details] two seconds of silence in a .ogg file ...for your testing convenience
commit 9491157f1a10de124f4c17eb06b967357a953c35 Author: Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> Date: Thu Jan 29 17:58:27 2015 +0000 oggdemux: do not throw a flow error on flushing If the streaming task attempts to read a chain while the pipeline is stopping (which can happen if the pipeline stops shortly after start or a new URI being setup in gapless playback case), it will see a flushing return from upstream, and should then also return flushing to the caller, rather than emit a flow error. https://bugzilla.gnome.org/show_bug.cgi?id=722442