Commit Graph

302 Commits

Author SHA1 Message Date
renovate[bot] bcddc90fe8
chore(deps): update dependency sentry-sdk to >=1.15.0,<1.22 (#2526)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-26 12:38:23 +02:00
jo b2fc3a5ecf feat(playout): allow harbor ssl configuration 2023-04-24 14:58:34 +01:00
renovate[bot] 5a083886c5
chore(deps): update dependency sentry-sdk to >=1.15.0,<1.21 (#2514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-19 17:13:47 +02:00
renovate[bot] 76343117f5
chore(deps): update dependency sentry-sdk to >=1.15.0,<1.20 (#2499)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-04 14:16:06 +02:00
jo 43cc2bc4f0 chore: fix comment wording 2023-04-03 15:29:36 +01:00
jo ce27615a24 refactor(playout): rename PypoLiquidsoap to Liquidsoap 2023-04-03 15:29:36 +01:00
jo f68bc2da88 refactor(playout): remove irrelevant try/except 2023-04-03 15:29:36 +01:00
jo 964ee7e07c refactor(playout): add ended check to event class 2023-04-03 15:29:36 +01:00
jo 161f2ccdcb refactor(playout): merge liquidsoap modules 2023-04-03 15:29:36 +01:00
jo 4c63ef71fc feat(playout): replace thread timeout with socket timeout
Prefer the lower level socket timeout feature, to the hand made threaded
timeout. The thread timeout does not raise or log the errors that may occur
during the communication with liquidsoap, and we should handle them
instead.
2023-04-03 15:29:36 +01:00
Jonas L 6b6e8951d1
fix(playout): remove unused ecasound package (#2496)
The recorder has been removed, so the ecasound package isn't used anymore.
2023-04-03 14:48:08 +01:00
jo 028eafb1b6 test(playout): liquidsoap wait for version 2023-03-30 20:49:07 +01:00
jo 6acce9b87d test(playout): move liq_conn fixture to conftest 2023-03-30 20:49:07 +01:00
jo 6412b17996 fix(playout): catch oserror in liquidsoap client
Prevent playout crash when liquidsoap is not yet reachable.
2023-03-30 20:49:07 +01:00
renovate[bot] 6b502fd113 chore(deps): update dependency sentry-sdk to >=1.15.0,<1.19 2023-03-28 19:57:03 +02:00
jo a1db2a157a feat(playout): replace schedule event dicts with objects 2023-03-22 13:05:57 +00:00
jo 684e7a6f24 chore: move mime type utils 2023-03-22 13:05:57 +00:00
jo 3f4ebab788 feat(playout): move liquidsoap auth to notify cli 2023-03-22 12:13:59 +00:00
jo 114a599993 fix(playout): use new api-client v1 2023-03-22 12:13:59 +00:00
jo 74af2112a6 fix(playout): quote incompatible <py3.9 type hints 2023-03-22 09:11:56 +00:00
jo dde1af70b2 test(playout): class creation 2023-03-22 09:11:56 +00:00
renovate[bot] 6a7d72cdf9
chore(deps): update dependency sentry-sdk to >=1.15.0,<1.18 (#2466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-16 16:45:45 +00:00
renovate[bot] 903a643c01 chore(deps): update dependency sentry-sdk to >=1.15.0,<1.17 2023-03-15 11:16:08 +01:00
jo b7214b5d46 feat: add sentry sdk 2023-03-14 14:59:45 +00:00
jo a60d83311b feat: add python packages version 2023-03-14 14:59:45 +00:00
jo 719464a272 refactor(playout): add more typings 2023-03-04 17:06:16 +02:00
jo 548d1befc8 test(playout): check untyped defs with mypy 2023-03-04 17:06:16 +02:00
jo 1bdfeb570d fix(playout): use int for liquidsoap queues map 2023-03-04 17:06:16 +02:00
jo 9f92ed95b4 test(playout): allow pylint failure 2023-03-04 17:06:16 +02:00
jo b17ff4afad test(playout): silence existing broad-exception-caught errors 2023-03-04 17:06:16 +02:00
jo a77321190f refactor(playout): fix linting errors 2023-03-04 17:06:16 +02:00
jo c6c5b1125f refactor(playout): generate entrypoint to string 2023-03-04 17:06:16 +02:00
jo f09d0ec3c6 refactor(playout): remove unused recorder 2023-03-04 17:06:16 +02:00
jo 0a9848efdd refactor(playout): init mimetypes only once 2023-03-04 17:06:16 +02:00
jo c7c3dba712 fix(playout): prevent unbound variables 2023-03-04 17:06:16 +02:00
jo 4a14b6b01f refactor(playout): update liquidsoap input auth handler 2023-03-04 17:06:16 +02:00
jo ac8917e3fc fix(playout): explicit ogg vorbis icecast encoder 2023-03-04 17:06:16 +02:00
jo 7f81915eb4 fix(playout): legacy pushes non validated data
When querying the API we serialize the message format into a dict, but legacy pushes the data and we don't yet serialize that data.
2023-03-04 17:06:16 +02:00
jo 0b3dbe8505 chore(playout): disable amqp debug logs 2023-03-04 17:06:16 +02:00
jo 5042704d42 feat(playout): don't serialize message twice 2023-03-04 17:06:16 +02:00
Marvin d2f93f7c8a
fix(playout): when shows ends, next shows starts without fade-in/fade-out (#2412)
Tracks are not fading with the crossfade function which leads to hard cuts at the end of tracks and shows. Therefore the explicit fade functions are used.

In Liquidsoap version 1.4.3. crossfade is implemented as a cross with a custom transition (fade_in and fade_out).
9f730f2c5f/src/libs/fades.liq (L433-L436)

The "duration" argument is passed through to the cross function.
In the implementation of the cross operator the value duration is used to determine how log the crossfade should take.

It is set to the cross_lenght parameter

f075905715/src/operators/cross.ml (L30-L34)

This can be overwritten with metadata, but the current annotation does not include a "override_duration" field so in our case it is always 0.
f075905715/src/operators/cross.ml (L186-L198)

So I assume the crossfade is starting to fade.out the track but because the duration is set to 0. the "cross" is completed immediately and the next source of the queue is started. Our queues do only ever contain one track at a time so there is no next source to play.
The next queue is activated and the same happens for the fade.in.

Replacing the crossfade with a fade.in/out removes this time boundary as there is no longer a "cross" function involved.

Until the tag 3.0.0-alpha.8 there was a custom crossfade_airtime function.
In tag 3.0.0-alpha.9 it was replaced with the crossfade function but was unable to find why.
ecd302068c/python_apps/pypo/liquidsoap/1.4/ls_script.liq (LL76C9-L76C18)

Co-authored-by: Marvin <Marvin>
2023-03-02 20:20:09 +01:00
jo 7d1f9252b2 chore(playout): remove banner in logs 2023-02-27 06:42:33 +02:00
jo 331b203ef8 chore(playout): remove unused imports 2023-02-27 06:42:33 +02:00
jo 0c2b2c6b63 test(playout): generated liquidsoap script syntax 2023-02-27 06:42:33 +02:00
jo 654105e865 fix(playout): %else is not defined 2023-02-27 06:42:33 +02:00
jo 9384df7be2
Merge branch '3.0.x' into main 2023-02-26 20:16:38 +01:00
jo e88e843b65 refactor(playout): add typings and fix linting errors
move EVENT_KEY_FORMAT to events module
properly type fetch queue
event start/end can be str or datetime
2023-02-26 20:05:12 +01:00
jo 3fba7c73d3 refactor(playout): remove unecesary cache dir creation 2023-02-26 20:05:12 +01:00
jo 00648b8f94 refactor(playout): unwrap schedule.media dict 2023-02-26 20:05:12 +01:00
jo 0d4e2823e2 refactor(playout): add event dict typings 2023-02-26 20:05:12 +01:00
jo cd0d9b6f4a refactor(playout): rename event kinds enums 2023-02-26 20:05:12 +01:00
jo 78c74f47ca feat(playout): use shared app for cli commands 2023-02-26 20:41:38 +02:00
jo a71606d39c feat(playout): enable vorbis metadata per icecast output
Use new jinja template system to tweak the streams per output.
2023-02-26 20:41:38 +02:00
jo 00b5c08647 feat(playout): use jinja to configure liquidsoap outputs 2023-02-26 20:41:38 +02:00
jo 85aa0174c3 test(playout): more entrypoint config test cases 2023-02-26 20:41:38 +02:00
jo a397ad3e32 fix(playout): use package loader for liquidsoap templates 2023-02-26 20:41:38 +02:00
jo 843ce32579 fix(playout): flush liquidsoap response before sending new 2023-02-26 20:41:38 +02:00
jo 861698987c refactor: don't use f-string on logging statements
The strings are now be formatted if the logging level is enabled.
2023-02-26 19:09:51 +02:00
jo c414068c16 test: re-enable pylint logging-fstring-interpolation 2023-02-26 19:09:51 +02:00
jo c6940db289 feat: replace loguru with logging 2023-02-26 19:09:51 +02:00
jo 719d7cff36 fix(playout): use the same number of schedule queues 2023-02-25 21:43:37 +02:00
jo a59599971b fix(playout): skip the identified queue instead of the current
Calling queues.s0_skip, liquidsoap was actually calling queues.s8_skip, because the current queue was 8
2023-02-25 21:43:37 +02:00
jo d497c665cc refactor(playout): rename web_stream functions 2023-02-25 21:43:37 +02:00
jo 196fc1ddf8 fix(playout): use explicit ids for liquidsoap components 2023-02-25 21:43:37 +02:00
jo 8155eb1a22 chore(playout): change quotes 2023-02-25 21:43:37 +02:00
jo cd2cd66bdf refactor(playout): rename input_check_auth handlers 2023-02-25 21:43:37 +02:00
jo 2f9f60e639 refactor(playout): rename inputs sources variables 2023-02-25 21:43:37 +02:00
jo 8ed23c9e98 refactor(playout): rename inputs on_* handlers 2023-02-25 21:43:37 +02:00
jo 9a815d68ff refactor(playout): rename liquidsoap switch functions 2023-02-25 21:43:37 +02:00
jo d36fc56f51 refactor(playout): boot_timestamp can be static
The previous use of interactive was used to hack the boot_timestamp after a settings change/liquidsoap restart.
2023-02-25 21:43:37 +02:00
jo 14cfc4ea97 refactor(playout): rename dynamic_source to web_stream 2023-02-25 21:43:37 +02:00
jo 9b9defe935 refactor(playout): rename inputs config variables 2023-02-25 21:43:37 +02:00
jo 9518db6c75 refactor(playout): rename stream control variables 2023-02-25 21:43:37 +02:00
jo c610ea1885 feat(playout): remove unused liquidsoap output namespace 2023-02-25 21:43:37 +02:00
jo 0694c34ec0 feat(playout): remove unused liquidsoap restart function 2023-02-25 21:43:37 +02:00
jo a0f232ba66 feat(playout): remove unused liquidsoap outputs connection status 2023-02-25 21:43:37 +02:00
jo aed90d835f chore(playout): clean comments 2023-02-25 21:43:37 +02:00
jo 0eced23e4e refactor(playout): remove unused check_version 2023-02-25 21:43:37 +02:00
jo c95733191a refactor(playout): rename web_stream variables 2023-02-25 21:43:37 +02:00
jo 654259824c feat(playout): use liquidsoap interactive variables 2023-02-22 15:05:40 +01:00
jo 394cf68b61 fix(playout): quote escape strings in liquidsoap entrypoint 2023-02-22 15:05:40 +01:00
jo 3c8bf6c9eb feat(playout): add jinja2 quote filter for liquidsoap 2023-02-22 15:05:40 +01:00
jo 1b027262ee feat(playout): use jinja2 env for template loading 2023-02-22 15:05:40 +01:00
jo d35ee41bb9 chore: release 3.0.2 2023-02-21 13:37:04 +01:00
jo 75bc72be6d chore: raise from specific exceptions 2023-02-21 13:25:35 +01:00
Jonas L 7c873edc19
test(playout): refresh snapshots after major upgrade (#2381) 2023-02-21 09:06:52 +02:00
jo 4b1a9e6604 test(playout): refresh snapshots after major upgrade 2023-02-03 12:40:30 +01:00
jo 35ba139c08 chore: remove venv activation 2023-02-03 12:40:30 +01:00
renovate[bot] c8957e3e1b chore(deps): update dependency syrupy to v4 2023-02-03 12:40:30 +01:00
jo 3606bd2b2b chore: add isort pre-commit hook 2023-02-03 12:38:58 +01:00
jo f8f6fda794 chore: raise from specific exceptions 2023-02-03 07:36:58 +02:00
jo 284fd5c688 chore: set dev dependencies version ranges 2023-02-03 07:36:58 +02:00
jo 1e6c5a84d3 style: format code using black 2023-02-01 11:20:32 +01:00
jo bd76971312 style: format code using black 2023-02-01 11:17:49 +01:00
jo cfa90c89d1 refactor: improve backports imports 2023-01-16 08:42:23 +02:00
jo 715144a92d chore: move isort config to pyproject.toml 2023-01-16 08:42:23 +02:00
jo 14beb885a3 chore: split test and coverage tasks 2023-01-16 08:42:23 +02:00
jo 37ba9d0986 chore: release 3.0.1 2022-12-20 16:27:29 +01:00
jo 86ceac76d8 chore: release 3.0.1 2022-12-20 16:16:30 +01:00
jo 29a02e6797 refactor: improve backports imports 2022-12-07 15:59:52 +02:00