GNOME Bugzilla – Bug 750439
playbin using fdsrc source hangs for with empty input
Last modified: 2015-06-05 08:07:04 UTC
Playbin appears to hang when using an fdsrc that is at eof. I can reproduce this using the standard utilities like so: $ touch empty $ gst-launch-1.0 playbin uri=fd://3 3< empty Setting pipeline to PAUSED ... Pipeline is PREROLLING ... At this point, it hangs until I kill the process. Instead, I would expect the playbin to behave in the same way as if I was using filesrc with the same empty file: $ gst-launch-1.0 playbin uri=file://$PWD/empty Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind: Stream contains no data. Additional debug info: gsttypefindelement.c(1055): gst_type_find_element_loop (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind: Can't typefind empty stream ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... I tested this on an Ubuntu 15.04 amd64 box, which has the 1.4.5-1 GStreamer packages installed.
Running this in a debugger shows that not even any of the fdsrc or other pipeline threads are still running:
+ Trace 235126
Thread 2 (Thread 0x7ffff4a3b700 (LWP 502))
Simpler testcase: gst-launch-1.0 fdsrc fd=3 ! typefind ! fakesink 3< /dev/null commit 91f537edf2946cbb5085782693b6c5111333db5f Author: Sebastian Dröge <sebastian@centricular.com> Date: Fri Jun 5 10:02:04 2015 +0200 typefind: Post an error if we can't typefind the data until EOS https://bugzilla.gnome.org/show_bug.cgi?id=750439