diff --git a/src/switch_rtp.c b/src/switch_rtp.c index ab015251b6..e9270cc4cc 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -7913,8 +7913,20 @@ static int rtp_common_write(switch_rtp_t *rtp_session, } if (rtp_session->flags[SWITCH_RTP_FLAG_NACK]) { + switch_channel_t *channel = switch_core_session_get_channel(rtp_session->session); + int nack_size = 100; + const char *var; + + if ((var = switch_channel_get_variable(channel, "rtp_nack_buffer_size"))) { + int tmp = atoi(var); + + if (tmp > 0 && tmp < 500) { + nack_size = tmp; + } + } + if (!rtp_session->vbw) { - switch_jb_create(&rtp_session->vbw, SJB_VIDEO, 30, 30, rtp_session->pool); + switch_jb_create(&rtp_session->vbw, SJB_VIDEO, nack_size, nack_size, rtp_session->pool); if (rtp_session->vbw) { switch_jb_set_flag(rtp_session->vbw, SJB_QUEUE_ONLY); //switch_jb_debug_level(rtp_session->vbw, 10);