res_rtp_asterisk: timestamp should be unsigned instead of signed int
authorMorten Tryfoss <morten@tryfoss.no>
Tue, 21 May 2019 16:29:05 +0000 (18:29 +0200)
committerMorten Tryfoss <morten@tryfoss.no>
Tue, 21 May 2019 16:32:57 +0000 (18:32 +0200)
Using timestamp with signed int will cause timestamps exceeding max value
to be negative.
This causes the jitterbuffer to do passthrough of the packet.

ASTERISK-28421

Change-Id: I9dabd0718180f2978856c50f43aac4e52dc3cde9

res/res_rtp_asterisk.c

index c4df6a4..ee1e1c4 100644 (file)
@@ -6728,7 +6728,8 @@ static struct ast_frame *ast_rtp_interpret(struct ast_rtp_instance *instance, st
        unsigned int *rtpheader = (unsigned int*)(read_area);
        struct ast_rtp *rtp = ast_rtp_instance_get_data(instance);
        struct ast_rtp_instance *instance1;
-       int res = length, hdrlen = 12, seqno, timestamp, payloadtype, padding, mark, ext, cc;
+       int res = length, hdrlen = 12, seqno, payloadtype, padding, mark, ext, cc;
+       unsigned int timestamp;
        RAII_VAR(struct ast_rtp_payload_type *, payload, NULL, ao2_cleanup);
        struct frame_list frames;