77c8454bb2d6ca36381a8b9c9e3bbbbc2fdeddc1
The first streamWatchReceiver only did dave.session.decrypt(msg.subarray(12)) which skipped the outer legacy-AES layer Discord wraps around the DAVE payload on every RTC packet (encrypt = dave.encrypt then aead_aes256_gcm with RTP header as AAD). Port @discordjs/voice VoiceReceiver.decrypt/parsePacket faithfully (header strip incl CSRC+extension+padding, AES-GCM auth tag, then DAVE MediaType.VIDEO). Without this the .h264 would be garbage.
Description
Bete Discord moderation watcher
29 MiB
Languages
TypeScript
95.8%
CSS
1.4%
Shell
1%
Nix
0.9%
PLpgSQL
0.5%
Other
0.4%