summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorJan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>2020-07-15 16:25:07 +0200
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2020-07-28 16:18:45 +0000
commit5a358b7687c019bca733f211242be544e233871d (patch)
tree7fee90579ee3caaf97779c85253d5923db96bebe /gst
parentd4caa1b3ae27815162a77410ef2da0d2673150b6 (diff)
downloadgstreamer-plugins-bad-5a358b7687c019bca733f211242be544e233871d.tar.gz
tsmux: Refactor get_current_pcr
No functional change. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1431>
Diffstat (limited to 'gst')
-rw-r--r--gst/mpegtsmux/tsmux/tsmux.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/gst/mpegtsmux/tsmux/tsmux.c b/gst/mpegtsmux/tsmux/tsmux.c
index 10976c796..2856d0346 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