From ccd3293f3d6458ceca0f96c6a190dc50b3a1afc0 Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Thu, 25 Apr 2013 18:23:02 -0400 Subject: [PATCH] CC-4417: Opus codec support --- python_apps/pypo/liquidsoap_scripts/aac.liq | 68 +++++ .../pypo/liquidsoap_scripts/aacplus.liq | 68 +++++ .../pypo/liquidsoap_scripts/ls_lib.liq | 280 ++---------------- python_apps/pypo/liquidsoap_scripts/mp3.liq | 68 +++++ python_apps/pypo/liquidsoap_scripts/ogg.liq | 60 ++++ python_apps/pypo/liquidsoap_scripts/opus.liq | 68 +++++ 6 files changed, 349 insertions(+), 263 deletions(-) create mode 100644 python_apps/pypo/liquidsoap_scripts/aac.liq create mode 100644 python_apps/pypo/liquidsoap_scripts/aacplus.liq create mode 100644 python_apps/pypo/liquidsoap_scripts/mp3.liq create mode 100644 python_apps/pypo/liquidsoap_scripts/ogg.liq create mode 100644 python_apps/pypo/liquidsoap_scripts/opus.liq diff --git a/python_apps/pypo/liquidsoap_scripts/aac.liq b/python_apps/pypo/liquidsoap_scripts/aac.liq new file mode 100644 index 000000000..6990ea89d --- /dev/null +++ b/python_apps/pypo/liquidsoap_scripts/aac.liq @@ -0,0 +1,68 @@ + if bitrate == 24 then + if stereo then + ignore(output_stereo(%aac(bitrate = 24, channels = 2), !source)) + else + ignore(output_mono(%aac(bitrate = 24, channels = 1), mean(!source))) + end + elsif bitrate == 32 then + if stereo then + ignore(output_stereo(%aac(bitrate = 32, channels = 2), !source)) + else + ignore(output_mono(%aac(bitrate = 32, channels = 1), mean(!source))) + end + elsif bitrate == 48 then + if stereo then + ignore(output_stereo(%aac(bitrate = 48, channels = 2), !source)) + else + ignore(output_mono(%aac(bitrate = 48, channels = 1), mean(!source))) + end + elsif bitrate == 64 then + if stereo then + ignore(output_stereo(%aac(bitrate = 64, channels = 2), !source)) + else + ignore(output_mono(%aac(bitrate = 64, channels = 1), mean(!source))) + end + elsif bitrate == 96 then + if stereo then + ignore(output_stereo(%aac(bitrate = 96, channels = 2), !source)) + else + ignore(output_mono(%aac(bitrate = 96, channels = 1), mean(!source))) + end + elsif bitrate == 128 then + if stereo then + ignore(output_stereo(%aac(bitrate = 128, channels = 2), !source)) + else + ignore(output_mono(%aac(bitrate = 128, channels = 1), mean(!source))) + end + elsif bitrate == 160 then + if stereo then + ignore(output_stereo(%aac(bitrate = 160, channels = 2), !source)) + else + ignore(output_mono(%aac(bitrate = 160, channels = 1), mean(!source))) + end + elsif bitrate == 192 then + if stereo then + ignore(output_stereo(%aac(bitrate = 192, channels = 2), !source)) + else + ignore(output_mono(%aac(bitrate = 192, channels = 1), mean(!source))) + end + elsif bitrate == 224 then + if stereo then + ignore(output_stereo(%aac(bitrate = 224, channels = 2), !source)) + else + ignore(output_mono(%aac(bitrate = 224, channels = 1), mean(!source))) + end + elsif bitrate == 256 then + if stereo then + ignore(output_stereo(%aac(bitrate = 256, channels = 2), !source)) + else + ignore(output_mono(%aac(bitrate = 256, channels = 1), mean(!source))) + end + elsif bitrate == 320 then + if stereo then + ignore(output_stereo(%aac(bitrate = 320, channels = 2), !source)) + else + ignore(output_mono(%aac(bitrate = 320, channels = 1), mean(!source))) + end + end + diff --git a/python_apps/pypo/liquidsoap_scripts/aacplus.liq b/python_apps/pypo/liquidsoap_scripts/aacplus.liq new file mode 100644 index 000000000..6cd2545d7 --- /dev/null +++ b/python_apps/pypo/liquidsoap_scripts/aacplus.liq @@ -0,0 +1,68 @@ + if bitrate == 24 then + if stereo then + ignore(output_stereo(%aacplus(bitrate = 24, channels = 2), !source)) + else + ignore(output_mono(%aacplus(bitrate = 24, channels = 1), mean(!source))) + end + elsif bitrate == 32 then + if stereo then + ignore(output_stereo(%aacplus(bitrate = 32, channels = 2), !source)) + else + ignore(output_mono(%aacplus(bitrate = 32, channels = 1), mean(!source))) + end + elsif bitrate == 48 then + if stereo then + ignore(output_stereo(%aacplus(bitrate = 48, channels = 2), !source)) + else + ignore(output_mono(%aacplus(bitrate = 48, channels = 1), mean(!source))) + end + elsif bitrate == 64 then + if stereo then + ignore(output_stereo(%aacplus(bitrate = 64, channels = 2), !source)) + else + ignore(output_mono(%aacplus(bitrate = 64, channels = 1), mean(!source))) + end + elsif bitrate == 96 then + if stereo then + ignore(output_stereo(%aacplus(bitrate = 96, channels = 2), !source)) + else + ignore(output_mono(%aacplus(bitrate = 96, channels = 1), mean(!source))) + end + elsif bitrate == 128 then + if stereo then + ignore(output_stereo(%aacplus(bitrate = 128, channels = 2), !source)) + else + ignore(output_mono(%aacplus(bitrate = 128, channels = 1), mean(!source))) + end + elsif bitrate == 160 then + if stereo then + ignore(output_stereo(%aacplus(bitrate = 160, channels = 2), !source)) + else + ignore(output_mono(%aacplus(bitrate = 160, channels = 1), mean(!source))) + end + elsif bitrate == 192 then + if stereo then + ignore(output_stereo(%aacplus(bitrate = 192, channels = 2), !source)) + else + ignore(output_mono(%aacplus(bitrate = 192, channels = 1), mean(!source))) + end + elsif bitrate == 224 then + if stereo then + ignore(output_stereo(%aacplus(bitrate = 224, channels = 2), !source)) + else + ignore(output_mono(%aacplus(bitrate = 224, channels = 1), mean(!source))) + end + elsif bitrate == 256 then + if stereo then + ignore(output_stereo(%aacplus(bitrate = 256, channels = 2), !source)) + else + ignore(output_mono(%aacplus(bitrate = 256, channels = 1), mean(!source))) + end + elsif bitrate == 320 then + if stereo then + ignore(output_stereo(%aacplus(bitrate = 320, channels = 2), !source)) + else + ignore(output_mono(%aacplus(bitrate = 320, channels = 1), mean(!source))) + end + end + diff --git a/python_apps/pypo/liquidsoap_scripts/ls_lib.liq b/python_apps/pypo/liquidsoap_scripts/ls_lib.liq index 09f3d3017..9afa28db9 100644 --- a/python_apps/pypo/liquidsoap_scripts/ls_lib.liq +++ b/python_apps/pypo/liquidsoap_scripts/ls_lib.liq @@ -123,201 +123,15 @@ def output_to(output_type, type, bitrate, host, port, pass, mount_point, url, de on_error = on_error, on_connect = on_connect) if type == "mp3" then - if bitrate == 24 then - if stereo then - ignore(output_stereo(%mp3(bitrate = 24, stereo = true), !source)) - else - ignore(output_mono(%mp3(bitrate = 24, stereo = false), mean(!source))) - end - elsif bitrate == 32 then - if stereo then - ignore(output_stereo(%mp3(bitrate = 32, stereo = true), !source)) - else - ignore(output_mono(%mp3(bitrate = 32, stereo = false), mean(!source))) - end - elsif bitrate == 48 then - if stereo then - ignore(output_stereo(%mp3(bitrate = 48, stereo = true), !source)) - else - ignore(output_mono(%mp3(bitrate = 48, stereo = false), mean(!source))) - end - elsif bitrate == 64 then - if stereo then - ignore(output_stereo(%mp3(bitrate = 64, stereo = true), !source)) - else - ignore(output_mono(%mp3(bitrate = 64, stereo = false), mean(!source))) - end - elsif bitrate == 96 then - if stereo then - ignore(output_stereo(%mp3(bitrate = 96, stereo = true), !source)) - else - ignore(output_mono(%mp3(bitrate = 96, stereo = false), mean(!source))) - end - elsif bitrate == 128 then - if stereo then - ignore(output_stereo(%mp3(bitrate = 128, stereo = true), !source)) - else - ignore(output_mono(%mp3(bitrate = 128, stereo = false), mean(!source))) - end - elsif bitrate == 160 then - if stereo then - ignore(output_stereo(%mp3(bitrate = 160, stereo = true), !source)) - else - ignore(output_mono(%mp3(bitrate = 160, stereo = false), mean(!source))) - end - elsif bitrate == 192 then - if stereo then - ignore(output_stereo(%mp3(bitrate = 192, stereo = true), !source)) - else - ignore(output_mono(%mp3(bitrate = 192, stereo = false), mean(!source))) - end - elsif bitrate == 224 then - if stereo then - ignore(output_stereo(%mp3(bitrate = 224, stereo = true), !source)) - else - ignore(output_mono(%mp3(bitrate = 224, stereo = false), mean(!source))) - end - elsif bitrate == 256 then - if stereo then - ignore(output_stereo(%mp3(bitrate = 256, stereo = true), !source)) - else - ignore(output_mono(%mp3(bitrate = 256, stereo = false), mean(!source))) - end - elsif bitrate == 320 then - if stereo then - ignore(output_stereo(%mp3(bitrate = 320, stereo = true), !source)) - else - ignore(output_mono(%mp3(bitrate = 320, stereo = false), mean(!source))) - end - end - elsif type == "xxx" then - if not icecast_vorbis_metadata then - source := add(normalize=false, [amplify(0.00001, noise()), !source]) - end - - if bitrate == 24 or bitrate == 32 or bitrate == 48 then - if stereo then - ignore(output_stereo(%vorbis(quality=-0.1, channels = 2), !source)) - else - ignore(output_mono(%vorbis(quality=-0.1, channels = 1), mean(!source))) - end - elsif bitrate == 64 then - if stereo then - ignore(output_stereo(%vorbis(quality=0, channels = 2), !source)) - else - ignore(output_mono(%vorbis(quality=0, channels = 1), mean(!source))) - end - elsif bitrate == 96 then - if stereo then - ignore(output_stereo(%vorbis(quality=0.2, channels = 2), !source)) - else - ignore(output_mono(%vorbis(quality=0.2, channels = 1), mean(!source))) - end - elsif bitrate == 128 then - if stereo then - ignore(output_stereo(%vorbis(quality=0.4, channels = 2), !source)) - else - ignore(output_mono(%vorbis(quality=0.4, channels = 1), mean(!source))) - end - elsif bitrate == 160 then - if stereo then - ignore(output_stereo(%vorbis(quality=0.5, channels = 2), !source)) - else - ignore(output_mono(%vorbis(quality=0.5, channels = 1), mean(!source))) - end - elsif bitrate == 192 then - if stereo then - ignore(output_stereo(%vorbis(quality=0.6, channels = 2), !source)) - else - ignore(output_mono(%vorbis(quality=0.6, channels = 1), mean(!source))) - end - elsif bitrate == 224 then - if stereo then - ignore(output_stereo(%vorbis(quality=0.7, channels = 2), !source)) - else - ignore(output_mono(%vorbis(quality=0.7, channels = 1), mean(!source))) - end - elsif bitrate == 256 then - if stereo then - ignore(output_stereo(%vorbis(quality=0.8, channels = 2), !source)) - else - ignore(output_mono(%vorbis(quality=0.8, channels = 1), mean(!source))) - end - elsif bitrate == 320 then - if stereo then - ignore(output_stereo(%vorbis(quality=0.9, channels = 2), !source)) - else - ignore(output_mono(%vorbis(quality=0.9, channels = 1), mean(!source))) - end - end + %include "mp3.liq" + elsif type == "ogg" then + %include "ogg.liq" + elsif type == "opus" then + %include "opus.liq" + elsif type == "aac" then + %include "aac.liq" else - if bitrate == 24 then - if stereo then - ignore(output_stereo(%opus(bitrate = 24, channels = 2), !source)) - else - ignore(output_mono(%opus(bitrate = 24, channels = 1), mean(!source))) - end - elsif bitrate == 32 then - if stereo then - ignore(output_stereo(%opus(bitrate = 32, channels = 2), !source)) - else - ignore(output_mono(%opus(bitrate = 32, channels = 1), mean(!source))) - end - elsif bitrate == 48 then - if stereo then - ignore(output_stereo(%opus(bitrate = 48, channels = 2), !source)) - else - ignore(output_mono(%opus(bitrate = 48, channels = 1), mean(!source))) - end - elsif bitrate == 64 then - if stereo then - ignore(output_stereo(%opus(bitrate = 64, channels = 2), !source)) - else - ignore(output_mono(%opus(bitrate = 64, channels = 1), mean(!source))) - end - elsif bitrate == 96 then - if stereo then - ignore(output_stereo(%opus(bitrate = 96, channels = 2), !source)) - else - ignore(output_mono(%opus(bitrate = 96, channels = 1), mean(!source))) - end - elsif bitrate == 128 then - if stereo then - ignore(output_stereo(%opus(bitrate = 128, channels = 2), !source)) - else - ignore(output_mono(%opus(bitrate = 128, channels = 1), mean(!source))) - end - elsif bitrate == 160 then - if stereo then - ignore(output_stereo(%opus(bitrate = 160, channels = 2), !source)) - else - ignore(output_mono(%opus(bitrate = 160, channels = 1), mean(!source))) - end - elsif bitrate == 192 then - if stereo then - ignore(output_stereo(%opus(bitrate = 192, channels = 2), !source)) - else - ignore(output_mono(%opus(bitrate = 192, channels = 1), mean(!source))) - end - elsif bitrate == 224 then - if stereo then - ignore(output_stereo(%opus(bitrate = 224, channels = 2), !source)) - else - ignore(output_mono(%opus(bitrate = 224, channels = 1), mean(!source))) - end - elsif bitrate == 256 then - if stereo then - ignore(output_stereo(%opus(bitrate = 256, channels = 2), !source)) - else - ignore(output_mono(%opus(bitrate = 256, channels = 1), mean(!source))) - end - elsif bitrate == 320 then - if stereo then - ignore(output_stereo(%opus(bitrate = 320, channels = 2), !source)) - else - ignore(output_mono(%opus(bitrate = 320, channels = 1), mean(!source))) - end - end + %include "aacplus.liq" end else user_ref = ref user @@ -325,7 +139,7 @@ def output_to(output_type, type, bitrate, host, port, pass, mount_point, url, de user_ref := "source" end - output.shoutcast_mono = output.shoutcast(id = "shoutcast_stream_#{stream}", + output_mono = output.shoutcast(id = "shoutcast_stream_#{stream}", host = host, port = port, password = pass, @@ -337,7 +151,7 @@ def output_to(output_type, type, bitrate, host, port, pass, mount_point, url, de on_error = on_error, on_connect = on_connect) - output.shoutcast_stereo = output.shoutcast(id = "shoutcast_stream_#{stream}", + output_stereo = output.shoutcast(id = "shoutcast_stream_#{stream}", host = host, port = port, password = pass, @@ -349,73 +163,13 @@ def output_to(output_type, type, bitrate, host, port, pass, mount_point, url, de on_error = on_error, on_connect = on_connect) - if bitrate == 24 then - if stereo then - ignore(output.shoutcast_stereo(%mp3(bitrate = 24, stereo = true), !source)) - else - ignore(output.shoutcast_mono(%mp3(bitrate = 24, stereo = false), mean(!source))) - end - elsif bitrate == 32 then - if stereo then - ignore(output.shoutcast_stereo(%mp3(bitrate = 32, stereo = true), !source)) - else - ignore(output.shoutcast_mono(%mp3(bitrate = 32, stereo = false), mean(!source))) - end - elsif bitrate == 48 then - if stereo then - ignore(output.shoutcast_stereo(%mp3(bitrate = 48, stereo = true), !source)) - else - ignore(output.shoutcast_mono(%mp3(bitrate = 48, stereo = false), mean(!source))) - end - elsif bitrate == 64 then - if stereo then - ignore(output.shoutcast_stereo(%mp3(bitrate = 64, stereo = true), !source)) - else - ignore(output.shoutcast_mono(%mp3(bitrate = 64, stereo = false), mean(!source))) - end - elsif bitrate == 96 then - if stereo then - ignore(output.shoutcast_stereo(%mp3(bitrate = 96, stereo = true), !source)) - else - ignore(output.shoutcast_mono(%mp3(bitrate = 96, stereo = false), mean(!source))) - end - elsif bitrate == 128 then - if stereo then - ignore(output.shoutcast_stereo(%mp3(bitrate = 128, stereo = true), !source)) - else - ignore(output.shoutcast_mono(%mp3(bitrate = 128, stereo = false), mean(!source))) - end - elsif bitrate == 160 then - if stereo then - ignore(output.shoutcast_stereo(%mp3(bitrate = 160, stereo = true), !source)) - else - ignore(output.shoutcast_mono(%mp3(bitrate = 160, stereo = false), mean(!source))) - end - elsif bitrate == 192 then - if stereo then - ignore(output.shoutcast_stereo(%mp3(bitrate = 192, stereo = true), !source)) - else - ignore(output.shoutcast_mono(%mp3(bitrate = 192, stereo = false), mean(!source))) - end - elsif bitrate == 224 then - if stereo then - ignore(output.shoutcast_stereo(%mp3(bitrate = 224, stereo = true), !source)) - else - ignore(output.shoutcast_mono(%mp3(bitrate = 224, stereo = false), mean(!source))) - end - elsif bitrate == 256 then - if stereo then - ignore(output.shoutcast_stereo(%mp3(bitrate = 256, stereo = true), !source)) - else - ignore(output.shoutcast_mono(%mp3(bitrate = 256, stereo = false), mean(!source))) - end - elsif bitrate == 320 then - if stereo then - ignore(output.shoutcast_stereo(%mp3(bitrate = 320, stereo = true), !source)) - else - ignore(output.shoutcast_mono(%mp3(bitrate = 320, stereo = false), mean(!source))) - end - end + if type == "mp3" then + %include "mp3.liq" + elsif type == "aac" then + %include "aac.liq" + else + %include "aacplus.liq" + end end end diff --git a/python_apps/pypo/liquidsoap_scripts/mp3.liq b/python_apps/pypo/liquidsoap_scripts/mp3.liq new file mode 100644 index 000000000..d403f54d1 --- /dev/null +++ b/python_apps/pypo/liquidsoap_scripts/mp3.liq @@ -0,0 +1,68 @@ + if bitrate == 24 then + if stereo then + ignore(output_stereo(%mp3(bitrate = 24, stereo = true), !source)) + else + ignore(output_mono(%mp3(bitrate = 24, stereo = false), mean(!source))) + end + elsif bitrate == 32 then + if stereo then + ignore(output_stereo(%mp3(bitrate = 32, stereo = true), !source)) + else + ignore(output_mono(%mp3(bitrate = 32, stereo = false), mean(!source))) + end + elsif bitrate == 48 then + if stereo then + ignore(output_stereo(%mp3(bitrate = 48, stereo = true), !source)) + else + ignore(output_mono(%mp3(bitrate = 48, stereo = false), mean(!source))) + end + elsif bitrate == 64 then + if stereo then + ignore(output_stereo(%mp3(bitrate = 64, stereo = true), !source)) + else + ignore(output_mono(%mp3(bitrate = 64, stereo = false), mean(!source))) + end + elsif bitrate == 96 then + if stereo then + ignore(output_stereo(%mp3(bitrate = 96, stereo = true), !source)) + else + ignore(output_mono(%mp3(bitrate = 96, stereo = false), mean(!source))) + end + elsif bitrate == 128 then + if stereo then + ignore(output_stereo(%mp3(bitrate = 128, stereo = true), !source)) + else + ignore(output_mono(%mp3(bitrate = 128, stereo = false), mean(!source))) + end + elsif bitrate == 160 then + if stereo then + ignore(output_stereo(%mp3(bitrate = 160, stereo = true), !source)) + else + ignore(output_mono(%mp3(bitrate = 160, stereo = false), mean(!source))) + end + elsif bitrate == 192 then + if stereo then + ignore(output_stereo(%mp3(bitrate = 192, stereo = true), !source)) + else + ignore(output_mono(%mp3(bitrate = 192, stereo = false), mean(!source))) + end + elsif bitrate == 224 then + if stereo then + ignore(output_stereo(%mp3(bitrate = 224, stereo = true), !source)) + else + ignore(output_mono(%mp3(bitrate = 224, stereo = false), mean(!source))) + end + elsif bitrate == 256 then + if stereo then + ignore(output_stereo(%mp3(bitrate = 256, stereo = true), !source)) + else + ignore(output_mono(%mp3(bitrate = 256, stereo = false), mean(!source))) + end + elsif bitrate == 320 then + if stereo then + ignore(output_stereo(%mp3(bitrate = 320, stereo = true), !source)) + else + ignore(output_mono(%mp3(bitrate = 320, stereo = false), mean(!source))) + end + end + diff --git a/python_apps/pypo/liquidsoap_scripts/ogg.liq b/python_apps/pypo/liquidsoap_scripts/ogg.liq new file mode 100644 index 000000000..178bdf531 --- /dev/null +++ b/python_apps/pypo/liquidsoap_scripts/ogg.liq @@ -0,0 +1,60 @@ + if not icecast_vorbis_metadata then + source := add(normalize=false, [amplify(0.00001, noise()), !source]) + end + + if bitrate == 24 or bitrate == 32 or bitrate == 48 then + if stereo then + ignore(output_stereo(%vorbis(quality=-0.1, channels = 2), !source)) + else + ignore(output_mono(%vorbis(quality=-0.1, channels = 1), mean(!source))) + end + elsif bitrate == 64 then + if stereo then + ignore(output_stereo(%vorbis(quality=0, channels = 2), !source)) + else + ignore(output_mono(%vorbis(quality=0, channels = 1), mean(!source))) + end + elsif bitrate == 96 then + if stereo then + ignore(output_stereo(%vorbis(quality=0.2, channels = 2), !source)) + else + ignore(output_mono(%vorbis(quality=0.2, channels = 1), mean(!source))) + end + elsif bitrate == 128 then + if stereo then + ignore(output_stereo(%vorbis(quality=0.4, channels = 2), !source)) + else + ignore(output_mono(%vorbis(quality=0.4, channels = 1), mean(!source))) + end + elsif bitrate == 160 then + if stereo then + ignore(output_stereo(%vorbis(quality=0.5, channels = 2), !source)) + else + ignore(output_mono(%vorbis(quality=0.5, channels = 1), mean(!source))) + end + elsif bitrate == 192 then + if stereo then + ignore(output_stereo(%vorbis(quality=0.6, channels = 2), !source)) + else + ignore(output_mono(%vorbis(quality=0.6, channels = 1), mean(!source))) + end + elsif bitrate == 224 then + if stereo then + ignore(output_stereo(%vorbis(quality=0.7, channels = 2), !source)) + else + ignore(output_mono(%vorbis(quality=0.7, channels = 1), mean(!source))) + end + elsif bitrate == 256 then + if stereo then + ignore(output_stereo(%vorbis(quality=0.8, channels = 2), !source)) + else + ignore(output_mono(%vorbis(quality=0.8, channels = 1), mean(!source))) + end + elsif bitrate == 320 then + if stereo then + ignore(output_stereo(%vorbis(quality=0.9, channels = 2), !source)) + else + ignore(output_mono(%vorbis(quality=0.9, channels = 1), mean(!source))) + end + end + diff --git a/python_apps/pypo/liquidsoap_scripts/opus.liq b/python_apps/pypo/liquidsoap_scripts/opus.liq new file mode 100644 index 000000000..36082c6fd --- /dev/null +++ b/python_apps/pypo/liquidsoap_scripts/opus.liq @@ -0,0 +1,68 @@ + if bitrate == 24 then + if stereo then + ignore(output_stereo(%opus(bitrate = 24, channels = 2), !source)) + else + ignore(output_mono(%opus(bitrate = 24, channels = 1), mean(!source))) + end + elsif bitrate == 32 then + if stereo then + ignore(output_stereo(%opus(bitrate = 32, channels = 2), !source)) + else + ignore(output_mono(%opus(bitrate = 32, channels = 1), mean(!source))) + end + elsif bitrate == 48 then + if stereo then + ignore(output_stereo(%opus(bitrate = 48, channels = 2), !source)) + else + ignore(output_mono(%opus(bitrate = 48, channels = 1), mean(!source))) + end + elsif bitrate == 64 then + if stereo then + ignore(output_stereo(%opus(bitrate = 64, channels = 2), !source)) + else + ignore(output_mono(%opus(bitrate = 64, channels = 1), mean(!source))) + end + elsif bitrate == 96 then + if stereo then + ignore(output_stereo(%opus(bitrate = 96, channels = 2), !source)) + else + ignore(output_mono(%opus(bitrate = 96, channels = 1), mean(!source))) + end + elsif bitrate == 128 then + if stereo then + ignore(output_stereo(%opus(bitrate = 128, channels = 2), !source)) + else + ignore(output_mono(%opus(bitrate = 128, channels = 1), mean(!source))) + end + elsif bitrate == 160 then + if stereo then + ignore(output_stereo(%opus(bitrate = 160, channels = 2), !source)) + else + ignore(output_mono(%opus(bitrate = 160, channels = 1), mean(!source))) + end + elsif bitrate == 192 then + if stereo then + ignore(output_stereo(%opus(bitrate = 192, channels = 2), !source)) + else + ignore(output_mono(%opus(bitrate = 192, channels = 1), mean(!source))) + end + elsif bitrate == 224 then + if stereo then + ignore(output_stereo(%opus(bitrate = 224, channels = 2), !source)) + else + ignore(output_mono(%opus(bitrate = 224, channels = 1), mean(!source))) + end + elsif bitrate == 256 then + if stereo then + ignore(output_stereo(%opus(bitrate = 256, channels = 2), !source)) + else + ignore(output_mono(%opus(bitrate = 256, channels = 1), mean(!source))) + end + elsif bitrate == 320 then + if stereo then + ignore(output_stereo(%opus(bitrate = 320, channels = 2), !source)) + else + ignore(output_mono(%opus(bitrate = 320, channels = 1), mean(!source))) + end + end +