After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 759740 - hlsdemux: pipeline crashes at segment boundaries but playbin works fine
hlsdemux: pipeline crashes at segment boundaries but playbin works fine
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-12-21 14:06 UTC by Arjen Veenhuizen
Modified: 2015-12-22 13:26 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Arjen Veenhuizen 2015-12-21 14:06:37 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?
Comment 1 Tim-Philipp Müller 2015-12-21 14:19:12 UTC
> 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.
Comment 2 Arjen Veenhuizen 2015-12-21 14:37:11 UTC
Just reversed the commit and that indeed didn't change anything. Behavior is still as in the first post.
Comment 3 Thiago Sousa Santos 2015-12-21 23:42:38 UTC
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.
Comment 4 Arjen Veenhuizen 2015-12-22 06:48:05 UTC
I stand corrected. You are absolutely right and your explanation makes perfect sense. Apologies for the fuzz ;)
Comment 5 Thiago Sousa Santos 2015-12-22 13:26:17 UTC
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.