From f30ad96b3f467739c38ff415e80bffc4afff1da7 Mon Sep 17 00:00:00 2001 From: Viktor Litvinov Date: Wed, 2 Oct 2024 01:57:12 +0200 Subject: [PATCH] res_rtp_asterisk.c: Set Mark on rtp when timestamp skew is too big Set Mark bit in rtp stream when timestamp skew is bigger than MAX_TIMESTAMP_SKEW. Fixes: #927 --- res/res_rtp_asterisk.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index 1953e15e29..60e931c71b 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -5267,6 +5267,11 @@ static int rtp_raw_write(struct ast_rtp_instance *instance, struct ast_frame *fr } if (ast_test_flag(frame, AST_FRFLAG_HAS_TIMING_INFO)) { + if (abs(frame->ts * rate - (int)rtp->lastts) > MAX_TIMESTAMP_SKEW) { + ast_verbose("(%p) RTP audio difference is %d set mark\n", + instance, abs(frame->ts * rate - (int)rtp->lastts)); + mark = 1; + } rtp->lastts = frame->ts * rate; }