meetecho / janus-gateway

Janus WebRTC Server
https://janus.conf.meetecho.com
GNU General Public License v3.0
8.17k stars 2.47k forks source link

Perform audio-level detection in AudioBridge participant thread #3312

Closed lminiero closed 8 months ago

lminiero commented 9 months ago

This is an attempt to fix #3304, which causes talk-events to stop flowing if RTP stops coming in. The way this patch tries to solve it is by moving the talk-detection stuff to the participant thread, taking advantage of the new jitter buffer refactoring: this allows us to still advance the talk-detection timers even when there's no audio coming in. Notice that this won't work in case the participant is suspended, since in that case we don't perform the pull every 20ms we otherwise do.

I only tested if audio still works, since this required a refactoring of what goes through the jitter buffer (which was needed to pass the parsed audio levels along too). I haven't tested yet if this does indeed solve the issue, so please test and provide feedback.

This is for master, I'll backport to 0.x too after merging if this works.

atoppi commented 8 months ago

lgtm :+1:

lminiero commented 8 months ago

Merging.