diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 1ff8190c1..d01827a2c 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -5,6 +5,6 @@ contact_links: url: https://discourse.libretime.org/ about: Please find existing questions and discussions here. - - name: LibreTime Chat - url: https://chat.libretime.org/ + - name: LibreTime Chat (#libretime:matrix.org) + url: https://matrix.to/#/#libretime:matrix.org about: Discuss with the LibreTime community. diff --git a/.github/workflows/housekeeping.yml b/.github/workflows/housekeeping.yml index 0c683cc86..a46556b3b 100644 --- a/.github/workflows/housekeeping.yml +++ b/.github/workflows/housekeeping.yml @@ -83,8 +83,8 @@ jobs: the next month. Please chat to us on the [forum](https://discourse.libretime.org/) or - ask for help on our [chat](https://chat.libretime.org/) if you have any - questions or need further support with getting this issue resolved. + ask for help on [#libretime:matrix.org](https://matrix.to/#/#libretime:matrix.org) + if you have any questions or need further support with getting this issue resolved. You may also label an issue as *pinned* if you would like to make sure that it does not get closed by this bot. @@ -93,8 +93,8 @@ jobs: did not receive any further inputs. Feel free to let us know on the [forum](https://discourse.libretime.org/) or - ask for help on our [chat](https://chat.libretime.org/) if you feel this - issue should not have been closed. + ask for help on [#libretime:matrix.org](https://matrix.to/#/#libretime:matrix.org) + if you feel this issue should not have been closed. Thank you for your contributions. days-before-issue-stale: 150 diff --git a/README.md b/README.md index f514374a1..d4b05741d 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,8 @@ we have a forum at [discourse.libretime.org](https://discourse.libretime.org). We are moving towards using the forum to provide community support and reserving the github issue queue for confirmed bugs and well-formed feature requests. -You can also contact us through our [Mattermost instance](https://chat.libretime.org) +You can also contact us through [Matrix +(#libretime:matrix.org)](https://matrix.to/#/#libretime:matrix.org) where you can talk with other users and developers. ## Contributors diff --git a/docs/releases/_release-head.md b/docs/releases/_release-head.md index 6b82da085..ba566aaaf 100644 --- a/docs/releases/_release-head.md +++ b/docs/releases/_release-head.md @@ -6,7 +6,7 @@ import TarballLink from '@site/src/components/TarballLink'; Please report new issues and/or feature requests in [the issue tracker](https://github.com/libretime/libretime/issues). -For general discussion or if you need help, you can join the [discourse](https://discourse.libretime.org/) forum or chat on the [mattermost](https://chat.libretime.org/) server. +For general discussion or if you need help, you can join the [discourse](https://discourse.libretime.org/) forum or chat on [#libretime:matrix.org](https://matrix.to/#/#libretime:matrix.org). ::: diff --git a/playout/libretime_playout/liquidsoap/templates/outputs.liq.j2 b/playout/libretime_playout/liquidsoap/templates/outputs.liq.j2 index 42ebaac90..06b21efc1 100644 --- a/playout/libretime_playout/liquidsoap/templates/outputs.liq.j2 +++ b/playout/libretime_playout/liquidsoap/templates/outputs.liq.j2 @@ -32,8 +32,8 @@ {%- elif audio.format == "aac" -%} %fdkaac( - bitrate=bitrate={{ audio.bitrate }}, - aot={{ "mpeg4_he_aac_v2" if audio.bitrate <= 64 else "mpeg4_aac_lc" }}, + bitrate={{ audio.bitrate }}, + aot={{ ("mpeg4_he_aac_v2" if audio.bitrate <= 64 else "mpeg4_aac_lc") | quote }}, afterburner={{ "false" if audio.bitrate <= 128 else "true" }}, sbr_mode=true ) diff --git a/playout/tests/liquidsoap/entrypoint_test.py b/playout/tests/liquidsoap/entrypoint_test.py index 516e5292d..c92a68ec7 100644 --- a/playout/tests/liquidsoap/entrypoint_test.py +++ b/playout/tests/liquidsoap/entrypoint_test.py @@ -1,5 +1,5 @@ from pathlib import Path -from subprocess import check_call +from subprocess import CalledProcessError, check_call, check_output from unittest import mock import pytest @@ -10,7 +10,7 @@ from libretime_playout.liquidsoap.models import Info, StreamPreferences from libretime_playout.liquidsoap.version import get_liquidsoap_version from .conftest import LIQ_VERSION -from .fixtures import TEST_STREAM_CONFIGS +from .fixtures import TEST_STREAM_CONFIGS, make_config_with_stream @pytest.mark.parametrize( @@ -73,3 +73,44 @@ def test_liquidsoap_syntax(tmp_path: Path, stream_config): ) check_call(["liquidsoap", "--check", str(entrypoint_filepath)]) + + +@pytest.mark.skipif( + LIQ_VERSION >= (2, 0, 0), + reason="unsupported liquidsoap >= 2.0.0", +) +def test_liquidsoap_unsupported_output_aac(tmp_path: Path): + entrypoint_filepath = tmp_path / "radio.liq" + log_filepath = tmp_path / "radio.log" + + entrypoint_filepath.write_text( + generate_entrypoint( + log_filepath=log_filepath, + config=make_config_with_stream( + outputs={ + "icecast": [ + { + "enabled": True, + "mount": "main.aac", + "source_password": "hackme", + "audio": {"format": "aac", "bitrate": 128}, + } + ] + } + ), + preferences=StreamPreferences( + input_fade_transition=0.0, + message_format=0, + message_offline="LibreTime - offline", + ), + info=Info( + station_name="LibreTime", + ), + version=get_liquidsoap_version(), + ), + encoding="utf-8", + ) + + with pytest.raises(CalledProcessError) as exception: + check_output(["liquidsoap", "--check", str(entrypoint_filepath)]) + assert b"You must be missing an optional dependency." in exception.value.stdout