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 10976c7..2856d03 100644 --- a/gst/mpegtsmux/tsmux/tsmux.c +++ b/gst/mpegtsmux/tsmux/tsmux.c @@ -1237,17 +1237,24 @@ tsmux_write_null_ts_header (guint8 * buf) } static gint64 -get_current_pcr (TsMux * mux, gint64 cur_ts) +ts_to_pcr (gint64 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 + 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 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 -- 2.7.4