mirror of
https://github.com/markqvist/LXST.git
synced 2025-12-22 10:57:08 +00:00
47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
import RNS
|
|
import LXST
|
|
import sys
|
|
import time
|
|
|
|
if len(sys.argv) < 2:
|
|
print("No codec specified")
|
|
sys.exit(0)
|
|
else:
|
|
selected_codec = sys.argv[1]
|
|
|
|
if len(sys.argv) >= 4:
|
|
target_frame_ms = int(sys.argv[3])
|
|
else:
|
|
target_frame_ms = 40
|
|
|
|
if len(sys.argv) >= 3 and sys.argv[2].lower() == "file":
|
|
selected_source = LXST.Sources.OpusFileSource("./docs/speech_stereo.opus", loop=True, target_frame_ms=target_frame_ms)
|
|
# selected_source = LXST.Sources.OpusFileSource("./docs/music_stereo.opus", loop=True, target_frame_ms=target_frame_ms)
|
|
# selected_source = LXST.Sources.OpusFileSource("./docs/podcast.opus", loop=True, target_frame_ms=target_frame_ms)
|
|
else:
|
|
selected_source = LXST.Sources.LineSource(target_frame_ms=target_frame_ms)
|
|
|
|
line_sink = LXST.Sinks.LineSink()
|
|
loopback = LXST.Sources.Loopback()
|
|
|
|
if selected_codec.lower() == "raw":
|
|
raw = LXST.Codecs.Raw()
|
|
input_pipeline = LXST.Pipeline(source=selected_source, codec=raw, sink=loopback)
|
|
output_pipeline = LXST.Pipeline(source=loopback, codec=raw, sink=line_sink)
|
|
elif selected_codec.lower() == "codec2":
|
|
codec2 = LXST.Codecs.Codec2(mode=LXST.Codecs.Codec2.CODEC2_1600)
|
|
input_pipeline = LXST.Pipeline(source=selected_source, codec=codec2, sink=loopback)
|
|
output_pipeline = LXST.Pipeline(source=loopback, codec=codec2, sink=line_sink)
|
|
elif selected_codec.lower() == "opus":
|
|
opus = LXST.Codecs.Opus(profile=LXST.Codecs.Opus.PROFILE_VOICE_LOW)
|
|
input_pipeline = LXST.Pipeline(source=selected_source, codec=opus, sink=loopback)
|
|
output_pipeline = LXST.Pipeline(source=loopback, codec=opus, sink=line_sink)
|
|
else:
|
|
print("No valid codec selected")
|
|
sys.exit(0)
|
|
|
|
input_pipeline.start(); output_pipeline.start()
|
|
input()
|
|
input_pipeline.stop()
|
|
|
|
time.sleep(1) |