GNOME Bugzilla – Bug 759740
hlsdemux: pipeline crashes at segment boundaries but playbin works fine
Last modified: 2015-12-22 13:26:17 UTC
Using GIT head of today (5d822d755f43d7e9852338bedb4b6129e164f8c9, 2015-12-21), some pipelines crash. This one works fine: gst-launch-1.0 playbin uri=http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8 This one crashes within one second: gst-launch-1.0 souphttpsrc location=http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8 ! queue ! hlsdemux ! queue ! tsdemux name=t ! h264parse ! queue ! avdec_h264 ! videoconvert ! videoscale ! ximagesink Log: http://pastebin.com/C3a7L1RG (GST_DEBUG=4) This one crashes near the end of the first segment: gst-launch-1.0 souphttpsrc location=http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8 ! queue ! hlsdemux ! tsdemux name=t ! h264parse ! queue ! avdec_h264 ! videoconvert ! videoscale ! ximagesink Log: http://pastebin.com/dkmfkyrL (GST_DEBUG=3) Perhaps it has to do with this (http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=d5e115171b6fecd86ae4f9bb03e8f4becccd4bc9) commit?
> Perhaps it has to do with this > (http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/ > ?id=d5e115171b6fecd86ae4f9bb03e8f4becccd4bc9) commit? Does it work if you revert that commit? :) It should not change behaviour, but perhaps I missed something.
Just reversed the commit and that indeed didn't change anything. Behavior is still as in the first post.
I see no crashes at the logs. Only not-linked errors. hlsdemux exposes new pads when it changes bitrates and that means the application has to listen to the pad-added signals and link new demuxers/decoders on that branch, otherwise it will try to push data on a not-linked pad and get that error. If you use playbin it will do that automatically for you, otherwise you need to write a proper application and handle those scenarios yourself.
I stand corrected. You are absolutely right and your explanation makes perfect sense. Apologies for the fuzz ;)
Not sure if you saw some crash at some point and didn't manage to reproduce it after. commit a072101441a648ccd315a3ed8212071404bacc55 Author: Thiago Santos <thiagoss@osg.samsung.com> Date: Tue Dec 22 10:15:39 2015 -0300 hlsdemux: make sure every bad update_playlist return sets an error Otherwise it segfaults when reporting the error in the bus This fixes a crash on error handling in hlsdemux.