From 9f186c6ab32c1e949916d385186b2d400190add6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 5 Aug 2014 10:36:17 +0200 Subject: [PATCH] mpegtspacketizer: Convert PCR times to GStreamer times before comparing them against 500 * GST_MSECOND Otherwise it will believe to detect PCR gaps already when there's a very small gap of a few milliseconds, breaking playback of some files. --- gst/mpegtsdemux/mpegtspacketizer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gst/mpegtsdemux/mpegtspacketizer.c b/gst/mpegtsdemux/mpegtspacketizer.c index 60cb9a2..9feb8ed 100644 --- a/gst/mpegtsdemux/mpegtspacketizer.c +++ b/gst/mpegtsdemux/mpegtspacketizer.c @@ -1962,7 +1962,8 @@ record_pcr (MpegTSPacketizer2 * packetizer, MpegTSPCR * pcrtable, return; } /* If PCR diff is greater than 500ms, create new group */ - if (G_UNLIKELY (corpcr - current->pending[current->last].pcr > + if (G_UNLIKELY (PCRTIME_TO_GSTTIME (corpcr) - + PCRTIME_TO_GSTTIME (current->pending[current->last].pcr) > 500 * PCR_MSECOND)) { GST_DEBUG ("New PCR more than 500ms away, handling discont"); /* Take values from current and put them in the current group (closing it) */ -- 2.7.4