FS-11750: JB fix: avoid infinite loop when chan var rtp_nack_buffer_size is small (initial max_packet_len)
This commit is contained in:
parent
385769344b
commit
f2e7e69be3
|
@ -1256,11 +1256,14 @@ SWITCH_DECLARE(switch_status_t) switch_jb_put_packet(switch_jb_t *jb, switch_rtp
|
||||||
|
|
||||||
add_node(jb, packet, len);
|
add_node(jb, packet, len);
|
||||||
|
|
||||||
if (switch_test_flag(jb, SJB_QUEUE_ONLY) && jb->max_packet_len
|
if (switch_test_flag(jb, SJB_QUEUE_ONLY) && jb->max_packet_len && jb->max_frame_len * 2 > jb->max_packet_len &&
|
||||||
&& jb->allocated_nodes > jb->max_frame_len * 2 - 1) {
|
jb->allocated_nodes > jb->max_frame_len * 2 - 1) {
|
||||||
while ((jb->max_frame_len * 2 - jb->visible_nodes) < jb->max_packet_len) {
|
while ((jb->max_frame_len * 2 - jb->visible_nodes) < jb->max_packet_len) {
|
||||||
drop_oldest_frame(jb);
|
drop_oldest_frame(jb);
|
||||||
}
|
}
|
||||||
|
} else if (switch_test_flag(jb, SJB_QUEUE_ONLY) && jb->max_packet_len && jb->max_frame_len * 2 < jb->max_packet_len) {
|
||||||
|
/* rtp_nack_buffer_size less than initial max_packet_len */
|
||||||
|
drop_oldest_frame(jb);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch_mutex_unlock(jb->mutex);
|
switch_mutex_unlock(jb->mutex);
|
||||||
|
|
Loading…
Reference in New Issue