mpegtspacketizer: Convert PCR times to GStreamer times before comparing them against...
authorSebastian Dröge <sebastian@centricular.com>
Tue, 5 Aug 2014 08:36:17 +0000 (10:36 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Tue, 5 Aug 2014 08:37:41 +0000 (10:37 +0200)
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

index 60cb9a2..9feb8ed 100644 (file)
@@ -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) */