feat(voice): fork @discordjs/voice with video receive support
Fork @discordjs/voice 0.19.2 into vendor/discord-voice-fork and patch the voice gateway handshake so Discord sends camera/screen-share RTP video: - Identify payload now declares video:true + streams:[] (derived from Discord-RE/Discord-video-stream) - this is what makes Discord deliver H264 (PT 96-127) to the voice socket. Previously the client never declared video capability, so Discord omitted all video SSRCs/packets. - op-12 Speaking handler maps streams[].ssrc -> videoSSRC alongside the audio SSRC, so ssrcMap carries camera/screen-share stream IDs. - SSRCMap.get() now also resolves video SSRCs (video RTP arrives on a different SSRC than audio), enabling attribution for videoReceiver.ts. - Both dist/index.js (CJS) and dist/index.mjs (ESM) patched; 3 isolated hunks vs upstream, verified by diff. - package.json points @discordjs/voice -> file:vendor/discord-voice-fork (pnpm lockfile updated, CI --frozen-lockfile compatible). - .gitignore: replace global dist/ with per-service explicit patterns so the vendored fork's dist/ is committed while build outputs stay ignored. - tests: +3 SSRCMap videoSSRC cases (190 total, all pass). The receive-side pipeline (H264Depacketizer -> .h264 -> muxToMp4 -> MP4) already exists in videoReceiver.ts; this unblocks it by making Discord actually deliver video packets.
This commit is contained in:
+3
-2
@@ -1,7 +1,9 @@
|
||||
node_modules
|
||||
/recordings
|
||||
.env
|
||||
dist/
|
||||
services/discord-gateway/dist/
|
||||
services/backend/dist/
|
||||
services/frontend/frontend/dist/
|
||||
public/app/
|
||||
.muxer-queue.**
|
||||
.claude/
|
||||
@@ -10,7 +12,6 @@ logs/
|
||||
.codegraph/
|
||||
worktrees/
|
||||
.worktrees/
|
||||
services/frontend/frontend/dist/
|
||||
target/
|
||||
nix/
|
||||
# Gitea CI runner logs
|
||||
|
||||
Reference in New Issue
Block a user