Commit 25fc4348 authored by Sebastian Dröge's avatar Sebastian Dröge
Browse files

basesink: Allow update NEWSEGMENT events after EOS

This allows demuxers to update the segment stop of an already
finished stream. This might be needed if some stream goes to
EOS before the duration of the longest stream is known to properly
set the segment stop of all streams to the same value in the end.
parent c2b0e9de
...@@ -3140,6 +3140,7 @@ gst_base_sink_event (GstPad * pad, GstEvent * event) ...@@ -3140,6 +3140,7 @@ gst_base_sink_event (GstPad * pad, GstEvent * event)
case GST_EVENT_NEWSEGMENT: case GST_EVENT_NEWSEGMENT:
{ {
GstFlowReturn ret; GstFlowReturn ret;
gboolean update;
GST_DEBUG_OBJECT (basesink, "newsegment %p", event); GST_DEBUG_OBJECT (basesink, "newsegment %p", event);
...@@ -3147,7 +3148,10 @@ gst_base_sink_event (GstPad * pad, GstEvent * event) ...@@ -3147,7 +3148,10 @@ gst_base_sink_event (GstPad * pad, GstEvent * event)
if (G_UNLIKELY (basesink->flushing)) if (G_UNLIKELY (basesink->flushing))
goto flushing; goto flushing;
if (G_UNLIKELY (basesink->priv->received_eos)) { gst_event_parse_new_segment_full (event, &update, NULL, NULL, NULL, NULL,
NULL, NULL);
if (G_UNLIKELY (basesink->priv->received_eos && !update)) {
/* we can't accept anything when we are EOS */ /* we can't accept anything when we are EOS */
result = FALSE; result = FALSE;
gst_event_unref (event); gst_event_unref (event);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment