Commit Graph

71 Commits

Author SHA1 Message Date
Jonas L 35d0dec4a8
fix: apply replay gain preferences on scheduled files (#2945)
### Description

The replay gain preferences are applied in the legacy code, but the
playout code was missing this feature. The replay gain was not applied
when playout fetched the schedules.


37d1a7685e/legacy/application/models/Schedule.php (L881-L886)
2024-02-08 20:29:10 +01:00
maxtim 06af18b84e
feat(playout): configure device for alsa and pulseaudio system outputs (#2654)
### Description

Add hardware configuration to liquidsoap so that users may
set hardware output in config.yml.

---------

Co-authored-by: jo <ljonas@riseup.net>
2023-12-29 15:22:43 +01:00
Jonas L 9d6061e42e
refactor(playout): fix deprecation warnings (#2847)
### Description
Fix pydantic deprecation warnings after upgrade to v2.
2023-12-28 14:19:29 +01:00
renovate[bot] 1618d72469
chore(deps): update pre-commit hook codespell-project/codespell to v2.2.6 (stable) (#2732)
* chore(deps): update pre-commit hook codespell-project/codespell to v2.2.6

* fix spell checks

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jo <ljonas@riseup.net>
2023-10-03 22:19:56 +02:00
jo 67af6cfa53 fix(playout): liquidsoap aac output syntax errors 2023-05-29 12:14:08 +01:00
jo b2fc3a5ecf feat(playout): allow harbor ssl configuration 2023-04-24 14:58:34 +01:00
jo 028eafb1b6 test(playout): liquidsoap wait for version 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
jo 3f4ebab788 feat(playout): move liquidsoap auth to notify cli 2023-03-22 12:13:59 +00:00
jo 719464a272 refactor(playout): add more typings 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 c6c5b1125f refactor(playout): generate entrypoint to string 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
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 331b203ef8 chore(playout): remove unused imports 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 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 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 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
Jonas L 7f4ce865d4
docs(playout): add simple inputs pipeline schema (#2240) 2022-10-17 11:57:08 +02:00
jo 0e1dfaa9ff refactor: upgrade code to Python 3.8 2022-10-11 09:28:52 +02:00
jo 1742890370 fix(playout): remove outdated liquidsoap code
Fixes #1482
2022-10-10 23:29:21 +02:00