tsdemux: fix latency handling again
authorTim-Philipp Müller <tim@centricular.com>
Sun, 23 Aug 2015 22:38:21 +0000 (23:38 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Mon, 24 Aug 2015 09:46:31 +0000 (10:46 +0100)
The tsdemux latency should always be added to the minimum
latency (which is always a valid clock time value). The
"cleanup" in commit a1f709c2 made it so that it would not
be added if upstream reported 0 as minimum latency (as
e.g. udpsrc would). This broke playback of live mpeg-ts
streaming in some cases, leading to playback stutter due
to a too-small configured latency for the pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=751508

gst/mpegtsdemux/tsdemux.c

index 217d5ad35b0b8cdae178cfccf03023ce6c093279..8971bc828a2ec3f2de8070f4a05e4f480db22e37 100644 (file)
@@ -523,8 +523,7 @@ gst_ts_demux_srcpad_query (GstPad * pad, GstObject * parent, GstQuery * query)
            PTS/DTS. We therefore allow a latency of 700ms for that.
          */
         gst_query_parse_latency (query, &live, &min_lat, &max_lat);
-        if (min_lat)
-          min_lat += TS_LATENCY;
+        min_lat += TS_LATENCY;
         if (GST_CLOCK_TIME_IS_VALID (max_lat))
           max_lat += TS_LATENCY;
         gst_query_set_latency (query, live, min_lat, max_lat);