Commit Graph

251 Commits

Author SHA1 Message Date
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