Skip to content

Commit fe8e602

Browse files
committed
try to fix things
1 parent 94d3082 commit fe8e602

File tree

11 files changed

+61
-101
lines changed

11 files changed

+61
-101
lines changed

discord/opus.py

Lines changed: 5 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
from .sinks import RawData
4343

4444
if TYPE_CHECKING:
45+
from discord.voice.client import VoiceClient
46+
4547
T = TypeVar("T")
4648
APPLICATION_CTL = Literal["audio", "voip", "lowdelay"]
4749
BAND_CTL = Literal["narrow", "medium", "wide", "superwide", "full"]
@@ -346,9 +348,9 @@ class OpusError(DiscordException):
346348
The error code returned.
347349
"""
348350

349-
def __init__(self, code: int):
351+
def __init__(self, code: int = 0, message: str | None = None):
350352
self.code: int = code
351-
msg = _lib.opus_strerror(self.code).decode("utf-8")
353+
msg = message or _lib.opus_strerror(self.code).decode("utf-8")
352354
_log.info('"%s" has happened', msg)
353355
super().__init__(msg)
354356

@@ -523,7 +525,7 @@ def _get_last_packet_duration(self):
523525

524526
def decode(self, data, *, fec=False):
525527
if data is None and fec:
526-
raise OpusError("Invalid arguments: FEC cannot be used with null data")
528+
raise OpusError(message="Invalid arguments: FEC cannot be used with null data")
527529

528530
if data is None:
529531
frame_size = self._get_last_packet_duration() or self.SAMPLES_PER_FRAME
@@ -545,62 +547,3 @@ def decode(self, data, *, fec=False):
545547
)
546548

547549
return array.array("h", pcm[: ret * channel_count]).tobytes()
548-
549-
550-
class DecodeManager(threading.Thread, _OpusStruct):
551-
def __init__(self, client: VoiceRecorderClient):
552-
super().__init__(daemon=True, name="DecodeManager")
553-
554-
self.client: VoiceRecorderClient = client
555-
self.decode_queue: list[RawData] = []
556-
557-
self.decoder: dict[int, Decoder] = {}
558-
559-
self._end_thread = threading.Event()
560-
561-
def decode(self, opus_frame: RawData):
562-
if not isinstance(opus_frame, RawData):
563-
raise TypeError("opus_frame should be a RawData object.")
564-
self.decode_queue.append(opus_frame)
565-
566-
def run(self):
567-
while not self._end_thread.is_set():
568-
try:
569-
data = self.decode_queue.pop(0)
570-
except IndexError:
571-
time.sleep(0.001)
572-
continue
573-
574-
try:
575-
if data.decrypted_data is None:
576-
continue
577-
else:
578-
data.decoded_data = self.get_decoder(data.ssrc).decode(
579-
data.decrypted_data
580-
)
581-
except OpusError:
582-
_log.exception(
583-
"Error occurred while decoding opus frame.", exc_info=True
584-
)
585-
continue
586-
587-
self.client.receive_audio(data)
588-
589-
def stop(self) -> None:
590-
while self.decoding:
591-
time.sleep(0.1)
592-
self.decoder = {}
593-
gc.collect()
594-
_log.debug("Decoder Process Killed")
595-
self._end_thread.set()
596-
597-
def get_decoder(self, ssrc: int) -> Decoder:
598-
d = self.decoder.get(ssrc)
599-
if d is not None:
600-
return d
601-
self.decoder[ssrc] = Decoder()
602-
return self.decoder[ssrc]
603-
604-
@property
605-
def decoding(self) -> bool:
606-
return bool(self.decode_queue)

discord/sinks/errors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ class FFmpegNotFound(SinkException):
104104
"""
105105

106106

107-
class NoUserAdio(SinkException):
107+
class NoUserAudio(SinkException):
108108
"""Exception thrown when you try to format the audio of a user not saved in a sink.
109109
110110
.. versionadded:: 2.7

discord/sinks/m4a.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
from .core import CREATE_NO_WINDOW, RawData, Sink, SinkFilter, SinkHandler
4040
from .enums import SinkFilteringMode
41-
from .errors import FFmpegNotFound, M4ASinkError, MaxProcessesCountReached, NoUserAdio
41+
from .errors import FFmpegNotFound, M4ASinkError, MaxProcessesCountReached, NoUserAudio
4242

4343
if TYPE_CHECKING:
4444
from discord import abc
@@ -188,7 +188,7 @@ def format_user_audio(
188188
data = self.__audio_data.pop(user_id)
189189
except KeyError:
190190
_log.info("There is no audio data for %s, ignoring.", user_id)
191-
raise NoUserAdio
191+
raise NoUserAudio
192192

193193
temp_path = f"{user_id}-{time.time()}-recording.m4a.tmp"
194194
args = [

discord/sinks/mka.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
from .core import CREATE_NO_WINDOW, RawData, Sink, SinkFilter, SinkHandler
3838
from .enums import SinkFilteringMode
39-
from .errors import FFmpegNotFound, MaxProcessesCountReached, MKASinkError, NoUserAdio
39+
from .errors import FFmpegNotFound, MaxProcessesCountReached, MKASinkError, NoUserAudio
4040

4141
if TYPE_CHECKING:
4242
from discord import abc
@@ -186,7 +186,7 @@ def format_user_audio(
186186
data = self.__audio_data.pop(user_id)
187187
except KeyError:
188188
_log.info("There is no audio data for %s, ignoring.", user_id)
189-
raise NoUserAdio
189+
raise NoUserAudio
190190

191191
args = [
192192
executable,

discord/sinks/mkv.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
from .core import RawData, Sink, SinkFilter, SinkHandler
3838
from .enums import SinkFilteringMode
39-
from .errors import FFmpegNotFound, MaxProcessesCountReached, MKVSinkError, NoUserAdio
39+
from .errors import FFmpegNotFound, MaxProcessesCountReached, MKVSinkError, NoUserAudio
4040

4141
if TYPE_CHECKING:
4242
from discord import abc
@@ -186,7 +186,7 @@ def format_user_audio(
186186
data = self.__audio_data.pop(user_id)
187187
except KeyError:
188188
_log.info("There is no audio data for %s, ignoring.", user_id)
189-
raise NoUserAdio
189+
raise NoUserAudio
190190

191191
args = [
192192
executable,

discord/sinks/mp3.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
from .core import CREATE_NO_WINDOW, RawData, Sink, SinkFilter, SinkHandler
3838
from .enums import SinkFilteringMode
39-
from .errors import FFmpegNotFound, MaxProcessesCountReached, MP3SinkError, NoUserAdio
39+
from .errors import FFmpegNotFound, MaxProcessesCountReached, MP3SinkError, NoUserAudio
4040

4141
if TYPE_CHECKING:
4242
from discord import abc
@@ -186,7 +186,7 @@ def format_user_audio(
186186
data = self.__audio_data.pop(user_id)
187187
except KeyError:
188188
_log.info("There is no audio data for %s, ignoring.", user_id)
189-
raise NoUserAdio
189+
raise NoUserAudio
190190

191191
args = [
192192
executable,

discord/sinks/mp4.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
from .core import CREATE_NO_WINDOW, RawData, Sink, SinkFilter, SinkHandler
4040
from .enums import SinkFilteringMode
41-
from .errors import FFmpegNotFound, MaxProcessesCountReached, MP4SinkError, NoUserAdio
41+
from .errors import FFmpegNotFound, MaxProcessesCountReached, MP4SinkError, NoUserAudio
4242

4343
if TYPE_CHECKING:
4444
from discord import abc
@@ -188,7 +188,7 @@ def format_user_audio(
188188
data = self.__audio_data.pop(user_id)
189189
except KeyError:
190190
_log.info("There is no audio data for %s, ignoring.", user_id)
191-
raise NoUserAdio
191+
raise NoUserAudio
192192

193193
temp_path = f"{user_id}-{time.time()}-recording.mp4.tmp"
194194
args = [

discord/sinks/ogg.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
from .core import CREATE_NO_WINDOW, RawData, Sink, SinkFilter, SinkHandler
3838
from .enums import SinkFilteringMode
39-
from .errors import FFmpegNotFound, MaxProcessesCountReached, NoUserAdio, OGGSinkError
39+
from .errors import FFmpegNotFound, MaxProcessesCountReached, NoUserAudio, OGGSinkError
4040

4141
if TYPE_CHECKING:
4242
from discord import abc
@@ -186,7 +186,7 @@ def format_user_audio(
186186
data = self.__audio_data.pop(user_id)
187187
except KeyError:
188188
_log.info("There is no audio data for %s, ignoring.", user_id)
189-
raise NoUserAdio
189+
raise NoUserAudio
190190

191191
args = [
192192
executable,

discord/sinks/pcm.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
from .core import RawData, Sink, SinkFilter, SinkHandler
3434
from .enums import SinkFilteringMode
35-
from .errors import NoUserAdio
35+
from .errors import NoUserAudio
3636

3737
if TYPE_CHECKING:
3838
from discord import abc
@@ -157,7 +157,7 @@ def format_user_audio(
157157
try:
158158
data = self.__audio_data.pop(user_id)
159159
except KeyError:
160-
raise NoUserAdio
160+
raise NoUserAudio
161161

162162
data.seek(0)
163163

discord/sinks/wave.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
from .core import RawData, Sink, SinkFilter, SinkHandler
3535
from .enums import SinkFilteringMode
36-
from .errors import NoUserAdio
36+
from .errors import NoUserAudio
3737

3838
if TYPE_CHECKING:
3939
from discord import abc
@@ -166,7 +166,7 @@ def format_user_audio(
166166
try:
167167
data = self.__audio_data.pop(user_id)
168168
except KeyError:
169-
raise NoUserAdio
169+
raise NoUserAudio
170170

171171
decoder = self.client.decoder
172172

0 commit comments

Comments
 (0)