From 2e52e4ba32bb9532448c4ea2ca983596e04bc71c Mon Sep 17 00:00:00 2001 From: Nojay-Games <51847204+Nojay-Games@users.noreply.github.com> Date: Mon, 10 May 2021 18:05:35 +0200 Subject: [PATCH 1/2] Fix memory leak Fix a memory leak caused by the stream not ending when the opus decoder stream is destroyed. --- src/client/voice/receiver/Receiver.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/client/voice/receiver/Receiver.js b/src/client/voice/receiver/Receiver.js index 605d992710c2..06f88e928f37 100644 --- a/src/client/voice/receiver/Receiver.js +++ b/src/client/voice/receiver/Receiver.js @@ -48,6 +48,7 @@ class VoiceReceiver extends EventEmitter { const stream = this.packets.makeStream(user.id, end); if (mode === 'pcm') { const decoder = new prism.opus.Decoder({ channels: 2, rate: 48000, frameSize: 960 }); + decoder.on('close', () => stream.destroy()); stream.pipe(decoder); return decoder; } From cd6757b505a5fea954c8fbca07d87b510a637d46 Mon Sep 17 00:00:00 2001 From: Nojay-Games <51847204+Nojay-Games@users.noreply.github.com> Date: Tue, 11 May 2021 07:19:39 +0200 Subject: [PATCH 2/2] Change on to once Co-authored-by: Vlad Frangu --- src/client/voice/receiver/Receiver.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/voice/receiver/Receiver.js b/src/client/voice/receiver/Receiver.js index 06f88e928f37..600b63589dab 100644 --- a/src/client/voice/receiver/Receiver.js +++ b/src/client/voice/receiver/Receiver.js @@ -48,7 +48,7 @@ class VoiceReceiver extends EventEmitter { const stream = this.packets.makeStream(user.id, end); if (mode === 'pcm') { const decoder = new prism.opus.Decoder({ channels: 2, rate: 48000, frameSize: 960 }); - decoder.on('close', () => stream.destroy()); + decoder.once('close', () => stream.destroy()); stream.pipe(decoder); return decoder; }