]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_rtp_asterisk.c: Set Mark on rtp when timestamp skew is too big
authorViktor Litvinov <viktor.litvinov@net2phone.com>
Tue, 1 Oct 2024 23:57:12 +0000 (01:57 +0200)
committerAsterisk Development Team <asteriskteam@digium.com>
Thu, 23 Jan 2025 18:39:41 +0000 (18:39 +0000)
Set Mark bit in rtp stream when timestamp skew is bigger than MAX_TIMESTAMP_SKEW.

Fixes: #927
(cherry picked from commit 607de362307714338ab11a48a2d62e30497ca410)

res/res_rtp_asterisk.c

index 1953e15e2942259fe439ffe1b0ea71cdfe19ec23..60e931c71bf032868f9b05e5f96bdc6d14b2ec9b 100644 (file)
@@ -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;
        }