From 92f68f72f04728749442dce296ebab05f2ee8c33 Mon Sep 17 00:00:00 2001 From: Arnaud de Turckheim Date: Thu, 11 Jan 2024 10:45:45 +0100 Subject: [PATCH] upipe_ts_metadata_generator: fix late input This patch prevent (very) late input from sending multiple late metadata when starting. --- lib/upipe-ts/upipe_ts_metadata_generator.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/upipe-ts/upipe_ts_metadata_generator.c b/lib/upipe-ts/upipe_ts_metadata_generator.c index 2d506de31..7e8672925 100644 --- a/lib/upipe-ts/upipe_ts_metadata_generator.c +++ b/lib/upipe-ts/upipe_ts_metadata_generator.c @@ -201,6 +201,12 @@ static void upipe_ts_mdg_send(struct upipe *upipe) upipe_ts_mdg->max_octetrate = upipe_ts_mdg->size; } + unsigned intervals = (now - cr_sys) / upipe_ts_mdg->interval; + cr_sys += intervals * upipe_ts_mdg->interval; + pts_prog += intervals * upipe_ts_mdg->interval; + uref_clock_set_cr_sys(uref, cr_sys); + uref_clock_set_pts_prog(uref, pts_prog); + upipe_ts_mdg_output(upipe, uref_dup(uref), &upipe_ts_mdg->upump); if (!upipe_ts_mdg->interval)