8000
Skip to content

feat(playout): configure device for alsa and pulseaudio system outputs - #2654

Merged
jooola merged 5 commits into
libretime:mainfrom
maxtimbo:feature/hardware-config
Dec 29, 2023
Merged

feat(playout): configure device for alsa and pulseaudio system outputs#2654
jooola merged 5 commits into
libretime:mainfrom
maxtimbo:feature/hardware-config

Conversation

@maxtimbo
@maxtimbo maxtimbo commented Aug 13, 2023
Copy link
Copy Markdown
Contributor

Description

Attempting to add hardware configuration to liquidsoap so that users may set hardware output in config.yml. I'm focusing my efforts on ALSA for now, but PulseAudio should be easy enough to implement after ALSA is successful.

This is a new feature:

Add hardware configuration

Testing Notes

What I did:

I'm using docker-compose on Ubuntu 20.04.

docker --version
Docker version 20.10.25, build 20.10.25-0ubuntu1~20.04.1
docker-compose --version
Docker Compose version v2.20.2

Links

see my forum post for full notes:
https://discourse.libretime.org/t/hardware-configuration/1229/12

@paddatrapper paddatrapper changed the title Feature/hardware config feat(liquidsoap): support hardware output config Aug 13, 2023
@paddatrapper paddatrapper changed the title feat(liquidsoap): support hardware output config feat(playout): support hardware output config Aug 13, 2023
@codecov
codecov Bot commented Aug 14, 2023
Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (9d6061e) 70.31% compared to head (449cbfe) 70.42%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2654      +/-   ##
==========================================
+ Coverage   70.31%   70.42%   +0.10%     
==========================================
  Files         148      148              
  Lines        4016     4027      +11     
==========================================
+ Hits         2824     2836      +12     
+ Misses       1192     1191       -1     
Flag Coverage Δ
analyzer 47.00% <ø> (+0.09%) ⬆️
api 93.91% <ø> (ø)
api-client 64.40% <ø> (ø)
playout 47.43% <ø> (ø)
shared 89.09% <100.00%> (+0.31%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@jooola
jooola force-pushed the feature/hardware-config branch from 44d305f to a6e90f3 Compare August 15, 2023 16:20
Comment thread playout/libretime_playout/liquidsoap/templates/outputs.liq.j2
@jooola
jooola commented Aug 15, 2023
Copy link
Copy Markdown
Contributor

I rebased onto the main branch and added some changes to the shared models. This should be a good base to extend the ALSA System output.

Comment thread shared/libretime_shared/config/_models.py Outdated
@jooola
jooola force-pushed the feature/hardware-config branch from 5cc1b2d to 9008f8e Compare September 17, 2023 14:58
@jooola
jooola requested a review from paddatrapper September 17, 2023 15:06
@jooola
jooola commented Sep 17, 2023
Copy link
Copy Markdown
Contributor

I took the liberty to fix the PR, but it is still missing some docs.

@paddatrapper paddatrapper left a comment
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, but I agree does need docs before we can merge

Co-Authored-By: Tim Finley <tim.finley24@gmail.com>
@jooola
jooola force-pushed the feature/hardware-config branch from eb519fb to 97edcb8 Compare December 29, 2023 13:39
@jooola
jooola force-pushed the feature/hardware-config branch from 97edcb8 to 13e4653 Compare December 29, 2023 13:58
@jooola jooola changed the title feat(playout): support hardware output config feat(playout): configure device for alsa and pulseaudio system outputs Dec 29, 2023
@jooola
jooola force-pushed the feature/hardware-config branch from 4c8d529 to 449cbfe Compare December 29, 2023 14:15
@jooola
jooola merged commit 06af18b into libretime:main Dec 29, 2023
@jooola
jooola commented Dec 29, 2023
Copy link
Copy Markdown
10000
Contributor

Thanks @maxtimbo !

jooola added a commit that referenced this pull request Jan 7, 2024
🤖 I have created a release *beep* *boop*
---


## [4.0.0](3.2.0...4.0.0)
(2024-01-07)


### ⚠ BREAKING CHANGES

* The media file serving is now handled by Nginx instead of the API
service. The `storage.path` field is now used in the Nginx
configuration, so make sure to update the Nginx configuration file if
you change it.
* **installer:** The default listen port for the installer is now
`8080`. We recommend that you put a reverse proxy in front of LibreTime.
* **installer:** The `--update-nginx` flag was removed from the
installer. The nginx configuration deployed by the installer will now
always be overwritten. Make sure to move your customizations to a
reverse proxy configuration.
* The default system output (`stream.outputs.system[].kind`) changed
from `alsa` to `pulseaudio`. Make sure to update your configuration file
if you rely on the default system output.
* The `general.secret_key` configuration field is now required. Make
sure to update your configuration file and add a secret key.

### Features

* default system output is now `pulseaudio`
([#2842](#2842))
([083ee3f](083ee3f)),
closes [#2542](#2542)
* disable uvicorn worker lifespan
([#2845](#2845))
([8743c84](8743c84))
* **installer:** add the `--storage-path` flag
([#2865](#2865))
([5b23852](5b23852))
* **installer:** change default listen port to 8080
([#2852](#2852))
([f72b7f9](f72b7f9))
* **installer:** remove the `--update-nginx` flag
([#2851](#2851))
([35d7eac](35d7eac))
* **playout:** configure device for alsa and pulseaudio system outputs
([#2654](#2654))
([06af18b](06af18b))
* rewrite cloud-init config
([#2853](#2853))
([8406d52](8406d52))
* run python in optimized mode
([#2874](#2874))
([3f7fc99](3f7fc99))
* the `general.secret_key` configuration field is now required
([#2841](#2841))
([0d2d1a2](0d2d1a2)),
closes [#2426](#2426)
* use nginx to serve media files
([#2860](#2860))
([4603c17](4603c17))


### Bug Fixes

* add parent function name in setValue exception
([#2777](#2777))
([c764a5a](c764a5a))
* **api:** ensure non ascii paths are handled by X-Accel-Redirect
([#2861](#2861))
([0ce63f3](0ce63f3))
* **api:** enum schema description
([#2803](#2803))
([976b70e](976b70e))
* **api:** let nginx handle the media file content type
([#2862](#2862))
([72268ad](72268ad))
* **api:** move gunicorn worker config to python file
([#2854](#2854))
([43221d9](43221d9))
* **api:** paths with question marks chars are handled by
X-Accel-Redirect
([#2875](#2875))
([b2c1ceb](b2c1ceb))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.42.1
(main) ([#2765](#2765))
([8ae4dce](8ae4dce))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.43.2
(main) ([#2848](#2848))
([62e5f4d](62e5f4d))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.45.1
(main) ([#2855](#2855))
([6f84328](6f84328))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.46.1
(main) ([#2868](#2868))
([4827dbc](4827dbc))
* **legacy:** allow uploading opus files
([#2804](#2804))
([f252a16](f252a16))
* **legacy:** declare previously undeclared variable
([#2793](#2793))
([e2cfbf4](e2cfbf4))
* **legacy:** ensure last played criteria works with never played files
([#2840](#2840))
([24ee383](24ee383))
* **playout:** increase file download chunk size to 8192 bytes
([#2863](#2863))
([7ed1be1](7ed1be1))
* **playout:** remove empty file when the download request failed
([#2864](#2864))
([2facbfa](2facbfa))
* **worker:** unbound variable when episode url returns HTTP 404
([#2844](#2844))
([3f39689](3f39689))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: jo <ljonas@riseup.net>
paddatrapper pushed a commit to libretime/website that referenced this pull request Jan 7, 2024
🤖 I have created a release *beep* *boop*
---

## [4.0.0](libretime/libretime@3.2.0...4.0.0)
(2024-01-07)

### ⚠ BREAKING CHANGES

* The media file serving is now handled by Nginx instead of the API
service. The `storage.path` field is now used in the Nginx
configuration, so make sure to update the Nginx configuration file if
you change it.
* **installer:** The default listen port for the installer is now
`8080`. We recommend that you put a reverse proxy in front of LibreTime.
* **installer:** The `--update-nginx` flag was removed from the
installer. The nginx configuration deployed by the installer will now
always be overwritten. Make sure to move your customizations to a
reverse proxy configuration.
* The default system output (`stream.outputs.system[].kind`) changed
from `alsa` to `pulseaudio`. Make sure to update your configuration file
if you rely on the default system output.
* The `general.secret_key` configuration field is now required. Make
sure to update your configuration file and add a secret key.

### Features

* default system output is now `pulseaudio`
([#2842](libretime/libretime#2842))
([083ee3f](libretime/libretime@083ee3f)),
closes [#2542](libretime/libretime#2542)
* disable uvicorn worker lifespan
([#2845](libretime/libretime#2845))
([8743c84](libretime/libretime@8743c84))
* **installer:** add the `--storage-path` flag
([#2865](libretime/libretime#2865))
([5b23852](libretime/libretime@5b23852))
* **installer:** change default listen port to 8080
([#2852](libretime/libretime#2852))
([f72b7f9](libretime/libretime@f72b7f9))
* **installer:** remove the `--update-nginx` flag
([#2851](libretime/libretime#2851))
([35d7eac](libretime/libretime@35d7eac))
* **playout:** configure device for alsa and pulseaudio system outputs
([#2654](libretime/libretime#2654))
([06af18b](libretime/libretime@06af18b))
* rewrite cloud-init config
([#2853](libretime/libretime#2853))
([8406d52](libretime/libretime@8406d52))
* run python in optimized mode
([#2874](libretime/libretime#2874))
([3f7fc99](libretime/libretime@3f7fc99))
* the `general.secret_key` configuration field is now required
([#2841](libretime/libretime#2841))
([0d2d1a2](libretime/libretime@0d2d1a2)),
closes [#2426](libretime/libretime#2426)
* use nginx to serve media files
([#2860](libretime/libretime#2860))
([4603c17](libretime/libretime@4603c17))

### Bug Fixes

* add parent function name in setValue exception
([#2777](libretime/libretime#2777))
([c764a5a](libretime/libretime@c764a5a))
* **api:** ensure non ascii paths are handled by X-Accel-Redirect
([#2861](libretime/libretime#2861))
([0ce63f3](libretime/libretime@0ce63f3))
* **api:** enum schema description
([#2803](libretime/libretime#2803))
([976b70e](libretime/libretime@976b70e))
* **api:** let nginx handle the media file content type
([#2862](libretime/libretime#2862))
([72268ad](libretime/libretime@72268ad))
* **api:** move gunicorn worker config to python file
([#2854](libretime/libretime#2854))
([43221d9](libretime/libretime@43221d9))
* **api:** paths with question marks chars are handled by
X-Accel-Redirect
([#2875](libretime/libretime#2875))
([b2c1ceb](libretime/libretime@b2c1ceb))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.42.1
(main) ([#2765](libretime/libretime#2765))
([8ae4dce](libretime/libretime@8ae4dce))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.43.2
(main) ([#2848](libretime/libretime#2848))
([62e5f4d](libretime/libretime@62e5f4d))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.45.1
(main) ([#2855](libretime/libretime#2855))
([6f84328](libretime/libretime@6f84328))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.46.1
(main) ([#2868](libretime/libretime#2868))
([4827dbc](libretime/libretime@4827dbc))
* **legacy:** allow uploading opus files
([#2804](libretime/libretime#2804))
([f252a16](libretime/libretime@f252a16))
* **legacy:** declare previously undeclared variable
([#2793](libretime/libretime#2793))
([e2cfbf4](libretime/libretime@e2cfbf4))
* **legacy:** ensure last played criteria works with never played files
([#2840](libretime/libretime#2840))
([24ee383](libretime/libretime@24ee383))
* **playout:** increase file download chunk size to 8192 bytes
([#2863](libretime/libretime#2863))
([7ed1be1](libretime/libretime@7ed1be1))
* **playout:** remove empty file when the download request failed
([#2864](libretime/libretime#2864))
([2facbfa](libretime/libretime@2facbfa))
* **worker:** unbound variable when episode url returns HTTP 404
([#2844](libretime/libretime#2844))
([3f39689](libretime/libretime@3f39689))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: jo <ljonas@riseup.net>
libretime/libretime@4795170
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

0