add opus server-side integration
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
from csdr.chain import Chain
|
||||
from pycsdr.modules import AudioResampler, Convert, AdpcmEncoder, Limit
|
||||
from pycsdr.modules import AudioResampler, Convert, AdpcmEncoder, OpusEncoder, Limit
|
||||
from pycsdr.types import Format
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@ class ClientAudioChain(Chain):
|
||||
workers += [converter]
|
||||
if compression == "adpcm":
|
||||
workers += [AdpcmEncoder(sync=True)]
|
||||
elif compression == "opus":
|
||||
workers += [OpusEncoder()]
|
||||
super().__init__(workers)
|
||||
|
||||
def _buildConverter(self):
|
||||
@@ -63,10 +65,18 @@ class ClientAudioChain(Chain):
|
||||
self._updateConverter()
|
||||
|
||||
def setAudioCompression(self, compression: str) -> None:
|
||||
index = self.indexOf(lambda x: isinstance(x, AdpcmEncoder))
|
||||
index = self.indexOf(lambda x: isinstance(x, AdpcmEncoder) or isinstance(x, OpusEncoder))
|
||||
newEncoder = None
|
||||
if compression == "adpcm":
|
||||
newEncoder = AdpcmEncoder(sync=True)
|
||||
elif compression == "opus":
|
||||
newEncoder = OpusEncoder()
|
||||
|
||||
if newEncoder:
|
||||
if index < 0:
|
||||
self.append(AdpcmEncoder(sync=True))
|
||||
self.append(newEncoder)
|
||||
else:
|
||||
self.replace(index, newEncoder)
|
||||
else:
|
||||
if index >= 0:
|
||||
self.remove(index)
|
||||
|
||||
Reference in New Issue
Block a user