Skip to content

Commit 498e35c

Browse files
committed
Replace audioop
1 parent ad2e072 commit 498e35c

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

discord/player.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
from __future__ import annotations
2626

2727
import asyncio
28-
import audioop
2928
import io
3029
import json
3130
import logging
@@ -36,6 +35,8 @@
3635
import threading
3736
import time
3837
import traceback
38+
from math import floor
39+
from itertools import chain
3940
from typing import IO, TYPE_CHECKING, Any, Callable, Generic, TypeVar
4041

4142
from .errors import ClientException
@@ -691,8 +692,16 @@ def cleanup(self) -> None:
691692
self.original.cleanup()
692693

693694
def read(self) -> bytes:
695+
maxval = 0x7FFF
696+
minval = -0x8000
697+
694698
ret = self.original.read()
695-
return audioop.mul(ret, 2, min(self._volume, 2.0))
699+
samples = bytes(chain.from_iterable(
700+
int(floor(min(maxval, max(int.from_bytes(ret[i * 2: (i + 1) * 2], "little", signed=True) * min(self._volume, 2.0), minval))))
701+
.to_bytes(2, "little", signed=True)
702+
for i in range(len(ret) // 2)
703+
))
704+
return samples
696705

697706

698707
class AudioPlayer(threading.Thread):

0 commit comments

Comments
 (0)