splitmuxsrc: properly set total duration on outgoing segment

We would accidentally pass through the duration value from the
demuxer from a single fragment, which causes problems when
feeding the stream from splitmuxsrc to rtsp-server. Streaming
would stop after one fragment due to that.

https://bugzilla.gnome.org/show_bug.cgi?id=792861
This commit is contained in:
Tim-Philipp Müller 2018-01-25 00:46:57 +00:00
parent 07ae64118d
commit ddd4fe680f

View file

@ -428,6 +428,7 @@ gst_splitmux_handle_event (GstSplitMuxSrc * splitmux,
break;
}
case GST_EVENT_SEGMENT:{
GstClockTime duration;
GstSegment seg;
gst_event_copy_segment (event, &seg);
@ -462,6 +463,15 @@ gst_splitmux_handle_event (GstSplitMuxSrc * splitmux,
}
}
GST_OBJECT_LOCK (splitmux);
duration = splitmux->total_duration;
GST_OBJECT_UNLOCK (splitmux);
if (duration > 0)
seg.duration = duration;
else
seg.duration = GST_CLOCK_TIME_NONE;
GST_INFO_OBJECT (splitpad,
"Forwarding segment %" GST_SEGMENT_FORMAT, &seg);