20e991062cf5751ca199eb97e0a7f1dc61aca9d8
Discord GoLive sends screen-share audio on a separate SSRC from the user's microphone. In @discordjs/voice v0.19, VoiceReceiver.onUdpMessage silently drops packets for SSRCs not in ssrcMap (which is only populated from VOICE_STATE_UPDATE/VOICE_SERVER_UPDATE). This caused screen-share audio to never trigger receiver.speaking and never reach the speakingHandler. Fix: hookScreenShareAudio() wraps onUdpMessage to: 1. Detect incoming RTP packets with unknown SSRCs (OPRUS payload type 120) 2. Infer the owning userId by proximity to known audioSSRC 3. Clone the user's VoiceUserData into ssrcMap under the new SSRC 4. Let the original handler decrypt and forward to the subscription stream 5. Listen on ssrcMap 'create'/'update' events for video SSRC changes Also removes the broken initial approach (polling ssrcMap which never contains screen-share SSRCs).
Description
Bete Discord moderation watcher
26 MiB
Languages
TypeScript
96.9%
Nix
0.9%
Shell
0.8%
CSS
0.6%
PLpgSQL
0.5%
Other
0.3%