diff options
author | Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> | 2020-07-15 16:25:07 +0200 |
---|---|---|
committer | GStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2020-07-28 16:18:45 +0000 |
commit | 5a358b7687c019bca733f211242be544e233871d (patch) | |
tree | 7fee90579ee3caaf97779c85253d5923db96bebe /gst | |
parent | d4caa1b3ae27815162a77410ef2da0d2673150b6 (diff) | |
download | gstreamer-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.c | 25 |
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 |