]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-8004 #resolve [Send keyframe on recv nack with multiples]
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 19 Aug 2015 18:14:24 +0000 (13:14 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 19 Aug 2015 18:14:24 +0000 (13:14 -0500)
src/switch_rtp.c

index 9e427dc821ff0f7146c52ba1092305129c4a89b5..fc14807608910c7b4c0ab7990daac09c8bc46b30 100644 (file)
@@ -5570,6 +5570,8 @@ static void handle_nack(switch_rtp_t *rtp_session, uint32_t nack)
        for (i = 0; i < 16; i++) {
                if (blp & (1 << i)) {
                        switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(rtp_session->session), SWITCH_LOG_DEBUG1, "Also Got NACK for seq %u\n", ntohs(seq) + i + 1);
+                       /* If they are missing more than one, may as well gen a key frame for good measure */
+                       switch_core_media_gen_key_frame(rtp_session->session);
                        if (switch_vb_get_packet_by_seq(rtp_session->vbw, htons(ntohs(seq) + i + 1), (switch_rtp_packet_t *) &send_msg, &bytes) == SWITCH_STATUS_SUCCESS) {
                                if (rtp_session->flags[SWITCH_RTP_FLAG_DEBUG_RTP_WRITE]) {
                                        switch_log_printf(SWITCH_CHANNEL_SESSION_LOG_CLEAN(rtp_session->session), SWITCH_LOG_CONSOLE,