From 5a358b7687c019bca733f211242be544e233871d Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" Date: Wed, 15 Jul 2020 16:25:07 +0200 Subject: [PATCH] tsmux: Refactor get_current_pcr No functional change. Part-of: --- gst/mpegtsmux/tsmux/tsmux.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/gst/mpegtsmux/tsmux/tsmux.c b/gst/mpegtsmux/tsmux/tsmux.c index 10976c796a..2856d03469 100644 --- a/gst/mpegtsmux/tsmux/tsmux.c +++ b/gst/mpegtsmux/tsmux/tsmux.c @@ -1236,18 +1236,25 @@ tsmux_write_null_ts_header (guint8 * buf) *buf++ = 0x10; } +static gint64 +ts_to_pcr (gint64 ts) +{ + if (ts == G_MININT64) { + return 0; + } + + return (ts - TSMUX_PCR_OFFSET) * (TSMUX_SYS_CLOCK_FREQ / TSMUX_CLOCK_FREQ); +} + static gint64 get_current_pcr (TsMux * mux, gint64 cur_ts) { - if (mux->bitrate) - return (CLOCK_BASE - TSMUX_PCR_OFFSET) * 300 + - gst_util_uint64_scale (mux->n_bytes * 8, TSMUX_SYS_CLOCK_FREQ, - mux->bitrate); - else if (cur_ts != G_MININT64) - return (cur_ts - - TSMUX_PCR_OFFSET) * (TSMUX_SYS_CLOCK_FREQ / TSMUX_CLOCK_FREQ); - else - return 0; + if (!mux->bitrate) + return ts_to_pcr (cur_ts); + + return ts_to_pcr (CLOCK_BASE) + + gst_util_uint64_scale (mux->n_bytes * 8, TSMUX_SYS_CLOCK_FREQ, + mux->bitrate); } static gint64