summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <edward@centricular.com>2024-06-18 09:10:16 +0200
committerBackport Bot <gitlab-backport-bot@gstreamer-foundation.org>2024-06-18 19:03:31 +0100
commitef5fe0b33ba3bd07576833dba26837cc1af49db6 (patch)
treec2e48417e0b8ed5b17f04b43b02f8a90afe444fe
parentaa5092dabff3e696f541b746dae3a4127cda6eda (diff)
tsdemux: Fix maximum PCR/DTS values
* PTS/DTS are stored as 33 bit * PCR is 33bit multiplied by 300 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7058>
-rw-r--r--subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtspacketizer.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtspacketizer.c b/subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtspacketizer.c
index 882948d212..fdc7851dcd 100644
--- a/subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtspacketizer.c
+++ b/subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtspacketizer.c
@@ -31,10 +31,12 @@
/* Skew calculation pameters */
#define MAX_TIME (2 * GST_SECOND)
-/* maximal PCR time */
-#define PCR_MAX_VALUE (((((guint64)1)<<33) * 300) + 298)
+/* 90kHz maximum values, coded in 33bits */
+#define MAX_33BIT (((guint64)1) << 33)
+#define PTS_DTS_MAX_VALUE (MAX_33BIT - 1)
+/* maximal PCR time, 27Mhz, coded with additional 9bits */
+#define PCR_MAX_VALUE (MAX_33BIT * 300 - 1)
#define PCR_GST_MAX_VALUE (PCR_MAX_VALUE * GST_MSECOND / (PCR_MSECOND))
-#define PTS_DTS_MAX_VALUE (((guint64)1) << 33)
#include "mpegtspacketizer.h"
#include "gstmpegdesc.h"