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 784338 - fragmenteddemux: EOS sent by application is ignored
fragmenteddemux: EOS sent by application is ignored
Status: RESOLVED DUPLICATE of bug 723868
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.11.2
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-06-29 14:01 UTC by taras
Modified: 2017-07-03 19:33 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
adaptivedemux: Allow application to force EOS (2.82 KB, patch)
2017-07-03 19:30 UTC, Nicolas Dufresne (ndufresne)
none Details | Review

Description taras 2017-06-29 14:01:31 UTC
Sending EOS doesn't close the streaming with souphttpsrc plugin.

Reproducable on: 
    - Ubuntu gst ver - 1.8.3
    - Centos gst ver - 1.11.2

Steps to reproduce:
1. Run streaming from online source:
 
gst-launch-1.0 -e souphttpsrc location="http://radioitaliasmi-lh.akamaihd.net/i/radioitaliasmi_1@329643/index_1_a-p.m3u8?sd=10&rebase=on" ! decodebin  ! fakesink

2. Wait for stream to start;
3. Press Ctrl+C to send EOS;
4. Make sure that pipeline is "Waiting for EOS" stuck.
Comment 1 Nicolas Dufresne (ndufresne) 2017-06-29 19:45:45 UTC
This is specific to fragmented stream like this one (HLS). The initial souphttpsrc is only used to download the initial playlist, but later hlsdemux will use it's own souphttpsrc to download the rest. As a side effect, the first souphttpsrc is already marked as EOS when this occured, hence the EOS being ignored.

I'm not totally sure, but maybe we should set the GST_ELEMENT_FLAG_SOURCE on fragmenteddemux based elements. This way, the bin would forward the EOS to that bin, and then we can implement send_event() that will only care about EOS and drop the rest.
Comment 2 Sebastian Dröge (slomo) 2017-06-29 20:36:06 UTC
Thanks for taking the time to report this.
This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find.

*** This bug has been marked as a duplicate of bug 723868 ***
Comment 3 Nicolas Dufresne (ndufresne) 2017-07-03 19:30:58 UTC
Created attachment 354853 [details] [review]
adaptivedemux: Allow application to force EOS

Adaptive demuxers are special demuxers that runs their own sources
internally. In this patch we flag the demuxer as being a source in order
to receive the downstream events. We then handle the EOS event by
resetting the internal state and pushing EOS on all pads.
Comment 4 Nicolas Dufresne (ndufresne) 2017-07-03 19:33:00 UTC
Comment on attachment 354853 [details] [review]
adaptivedemux: Allow application to force EOS

Wrong bug.