diff --git a/src/plugins/janus_audiobridge.c b/src/plugins/janus_audiobridge.c index 4f4fdb618e..6f14142b4f 100644 --- a/src/plugins/janus_audiobridge.c +++ b/src/plugins/janus_audiobridge.c @@ -1130,6 +1130,7 @@ room-: { #include #endif #include +#define GE32(a,b) (((spx_int32_t)((a)-(b)))>=0) #include #include @@ -5913,7 +5914,11 @@ void janus_audiobridge_incoming_rtp(janus_plugin_session *handle, janus_plugin_r jbp.len = 0; jbp.timestamp = ntohl(rtp->timestamp); jbp.span = (participant->codec == JANUS_AUDIOCODEC_OPUS ? 960 : 160); - jitter_buffer_put(participant->jitter, &jbp); + if(GE32(jbp.timestamp + jbp.span + jbp.span, jitter_buffer_get_pointer_timestamp(participant->jitter))) { + jitter_buffer_put(participant->jitter, &jbp); + } else { + janus_audiobridge_buffer_packet_destroy(pkt); + } janus_mutex_unlock(&participant->qmutex); } }