]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-5203 --resolve
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 27 Mar 2013 16:09:07 +0000 (11:09 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 27 Mar 2013 16:09:07 +0000 (11:09 -0500)
src/switch_rtp.c

index fee2f954160611606b6b7128f5de7779cb9da250..21f17985377941aea3f35857680a5a6fffaa8673 100644 (file)
@@ -4232,6 +4232,11 @@ static int rtp_common_write(switch_rtp_t *rtp_session,
                }
        }
 
+       if (m) {
+               rtp_session->last_write_ts = RTP_TS_RESET;
+               rtp_session->ts = 0;
+       }
+
        /* If the marker was set, and the timestamp seems to have started over - set a new SSRC, to indicate this is a new stream */
        if (m && !switch_test_flag(rtp_session, SWITCH_RTP_FLAG_SECURE_SEND) && (rtp_session->rtp_bugs & RTP_BUG_CHANGE_SSRC_ON_MARKER) && 
                (rtp_session->last_write_ts == RTP_TS_RESET || (rtp_session->ts <= rtp_session->last_write_ts && rtp_session->last_write_ts > 0))) {
@@ -4357,7 +4362,7 @@ static int rtp_common_write(switch_rtp_t *rtp_session,
 
        this_ts = ntohl(send_msg->header.ts);
 
-       if ((this_ts < rtp_session->last_write_ts) && ((rtp_session->last_write_ts - this_ts) > 16000)) {
+       if (abs(rtp_session->last_write_ts - this_ts) > 16000) {
                rtp_session->last_write_ts = RTP_TS_RESET;
        }