diff options
author | Jan Schmidt <jan@centricular.com> | 2017-02-09 01:12:56 +1100 |
---|---|---|
committer | Jan Schmidt <jan@centricular.com> | 2017-02-09 10:50:26 +1100 |
commit | dc564727779c25eb81d3c81f32f0c4995cb92662 (patch) | |
tree | 8cdee8050fbce38e450a03c706e6a6869a887314 | |
parent | 69d2f80954bf3b1432b22cb9bd982dd090c6b7c2 (diff) | |
download | gstreamer-plugins-bad-dc564727779c25eb81d3c81f32f0c4995cb92662.tar.gz |
adaptivedemux: Convert premature EOS on non-exposed pads to ERROR
If we need to send EOS on a pad that hasn't prerolled, generate
an error on the bus instead, otherwise the app will have no idea.
Fixes the HLS testFragmentNotFound test, which is waiting
for either EOS or an error.
-rw-r--r-- | gst-libs/gst/adaptivedemux/gstadaptivedemux.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c index a63be65f0..4d8c2b071 100644 --- a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c +++ b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c @@ -3627,7 +3627,13 @@ gst_adaptive_demux_stream_download_loop (GstAdaptiveDemuxStream * stream) end_of_manifest: if (G_UNLIKELY (ret == GST_FLOW_EOS)) { - gst_adaptive_demux_stream_push_event (stream, gst_event_new_eos ()); + if (GST_OBJECT_PARENT (stream->pad) != NULL) { + GST_DEBUG_OBJECT (stream->src, "Pushing EOS on pad"); + gst_adaptive_demux_stream_push_event (stream, gst_event_new_eos ()); + } else { + GST_ERROR_OBJECT (demux, "Can't push EOS on non-exposed pad"); + goto download_error; + } } end: |