From: Tim-Philipp Müller Date: Tue, 29 Sep 2015 23:36:14 +0000 (+0100) Subject: mpegtsmux: fix downstream key unit events handling with hlssink X-Git-Tag: 1.6.1~46 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=30a1f3cdff899aeb0875bc1a450e260d151e1d08;p=platform%2Fupstream%2Fgst-plugins-bad.git mpegtsmux: fix downstream key unit events handling with hlssink The buffer timestamps in the collect function will already be running time, don't try to convert them again to running time, this would yield CLOCK_TIME_NONE now that the segment is shifted to account for negative dts. This fixes x264enc ! mpegtsmux ! hlssink, which was broken because mpegtsmux would send a downstream key unit event with running time NONE and then hlssink would immediately send another one upstream and it would just be a flood of force keyframe events in both directions after the first one. This would then break hlssink because it uses multifilesink in next-file=key-unit-event mode, and starting a new file after every few kB does not work well for HLS. --- diff --git a/gst/mpegtsmux/mpegtsmux.c b/gst/mpegtsmux/mpegtsmux.c index c3a0dbb85..ce00333dc 100644 --- a/gst/mpegtsmux/mpegtsmux.c +++ b/gst/mpegtsmux/mpegtsmux.c @@ -997,8 +997,7 @@ check_pending_key_unit_event (GstEvent * pending_event, GstSegment * segment, timestamp == GST_CLOCK_TIME_NONE) goto out; - running_time = gst_segment_to_running_time (segment, - GST_FORMAT_TIME, timestamp); + running_time = timestamp; GST_INFO ("now %" GST_TIME_FORMAT " wanted %" GST_TIME_FORMAT, GST_TIME_ARGS (running_time), GST_TIME_ARGS (pending_key_unit_ts));