From f8518176d53aa7e08b5049f3a5caa2813c782a2a Mon Sep 17 00:00:00 2001 From: Tyler Stiene Date: Thu, 31 Dec 2020 22:11:08 -0500 Subject: [PATCH] check if fromDiscordMap channel is full --- discord.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/discord.go b/discord.go index 8ff77b8..c3a1d6c 100644 --- a/discord.go +++ b/discord.go @@ -153,10 +153,22 @@ func discordReceivePCM(v *discordgo.VoiceConnection, die chan bool) { OnError("Error decoding opus data", err) continue } + if len(p.PCM) != 960 { + log.Println("Opus size error") + continue + } discordMutex.Lock() - fromDiscordMap[p.SSRC].pcm <- p.PCM[0:480] - fromDiscordMap[p.SSRC].pcm <- p.PCM[480:960] + select { + case fromDiscordMap[p.SSRC].pcm <- p.PCM[0:480]: + default: + log.Println("fromDiscordMap buffer full. Dropping packet") + } + select { + case fromDiscordMap[p.SSRC].pcm <- p.PCM[480:960]: + default: + log.Println("fromDiscordMap buffer full. Dropping packet") + } discordMutex.Unlock() } }