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 736800 - dashdemux: send missing FLUSH_STOP/EOS when no seeking period is found
dashdemux: send missing FLUSH_STOP/EOS when no seeking period is found
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
1.4.1
Other All
: Normal major
: 1.5.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-09-17 13:29 UTC by Matthieu Bouron
Modified: 2014-11-07 22:59 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
[PATCH] dashdemux: send missing FLUSH_STOP when no seeking period is found (1.18 KB, patch)
2014-09-17 13:31 UTC, Matthieu Bouron
needs-work Details | Review
[PATCH] mssdemux: send missing FLUSH_STOP when no fragment period is found (1.11 KB, patch)
2014-09-17 14:31 UTC, Matthieu Bouron
needs-work Details | Review
[PATCH] dashdemux: send missing FLUSH_STOP/EOS when no seeking period is found (1.36 KB, patch)
2014-09-18 13:40 UTC, Matthieu Bouron
needs-work Details | Review
[PATCH] dashdemux: send missing FLUSH_STOP/EOS when no seeking period is found (2.56 KB, patch)
2014-09-24 10:16 UTC, Matthieu Bouron
committed Details | Review

Description Matthieu Bouron 2014-09-17 13:29:56 UTC
Send missing FLUSH_STOP when no seeking period is found, so downstream is not stuck in the flushing state.
Comment 1 Matthieu Bouron 2014-09-17 13:31:21 UTC
Created attachment 286374 [details] [review]
[PATCH] dashdemux: send missing FLUSH_STOP when no seeking period is found
Comment 2 Matthieu Bouron 2014-09-17 14:31:24 UTC
Created attachment 286383 [details] [review]
[PATCH] mssdemux: send missing FLUSH_STOP when no fragment period is found

Same patch apply for mssdemux. I can open a new bug if required.
Comment 3 Thiago Sousa Santos 2014-09-17 21:07:18 UTC
Review of attachment 286374 [details] [review]:

The patch looks good and works. While we are fixing this, the complete fix would be to also send an EOS (from the streaming thread) as the seek position is beyond the media duration. Can you provide a new patch?
Comment 4 Sebastian Dröge (slomo) 2014-09-18 09:57:52 UTC
Comment on attachment 286374 [details] [review]
[PATCH] dashdemux: send missing FLUSH_STOP when no seeking period is found

Missing the EOS part as Thiago said
Comment 5 Sebastian Dröge (slomo) 2014-09-18 09:57:59 UTC
Comment on attachment 286383 [details] [review]
[PATCH] mssdemux: send missing FLUSH_STOP when no fragment period is found

Likewise
Comment 6 Matthieu Bouron 2014-09-18 13:40:44 UTC
Created attachment 286499 [details] [review]
[PATCH] dashdemux: send missing FLUSH_STOP/EOS when no seeking period is found

Patch updated. I think we are pretty safe to send EOS right after the FLUSH_STOP event as gst_dash_demux_stop has been called previously, stopping all tasks.
Comment 7 Sebastian Dröge (slomo) 2014-09-24 07:28:40 UTC
Comment on attachment 286499 [details] [review]
[PATCH] dashdemux: send missing FLUSH_STOP/EOS when no seeking period is found

The EOS event should be sent from the streaming thread, not the seek thread (which is usually the application thread).
Comment 8 Matthieu Bouron 2014-09-24 10:16:22 UTC
Created attachment 286965 [details] [review]
[PATCH] dashdemux: send missing FLUSH_STOP/EOS when no seeking period is found

Patch updated. EOS is now sent from the streaming thread, here is how it happens:
  - stream_eos is set to TRUE from the event handler, then we restart the download tasks after sending FLUSH_STOP,
  - from the download task, gst_dash_demux_download_next_fragment returns GST_FLOW_EOS as stream_eos is set to TRUE and push EOS from the related pad.
Comment 9 Sebastian Dröge (slomo) 2014-09-25 08:09:45 UTC
Comment on attachment 286965 [details] [review]
[PATCH] dashdemux: send missing FLUSH_STOP/EOS when no seeking period is found

Makes sense :) Same change is probably needed in mssdemux? I know that HLS does it already
Comment 10 Thiago Sousa Santos 2014-11-07 22:59:09 UTC
commit 5ae991095d54cd8a93c67ada37376804eca5c3cd
Author: Matthieu Bouron <matthieu.bouron@collabora.com>
Date:   Wed Sep 17 15:22:59 2014 +0200

    dashdemux: send missing FLUSH_STOP/EOS when no seeking period is found
    
    https://bugzilla.gnome.org/show_bug.cgi?id=736800


mssdemux seeks don't fail and it already handles the EOS case correctly.