[PR #548] [MERGED] Use rodio for the jackaudio backend #967

Closed
opened 2026-02-27 20:00:38 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/librespot-org/librespot/pull/548
Author: @Lcchy
Created: 12/13/2020
Status: Merged
Merged: 2/11/2021
Merged by: @sashahilton00

Base: devHead: rodiojack-backend


📝 Commits (3)

  • 52438b1 Use rodio for jackaudio backend
  • aad4dba Merge branch 'dev' into rodiojack-backend
  • 59f87dc Amend conditional compilation to fail on unsupported systems

📊 Changes

18 files changed (+751 additions, -465 deletions)

View changed files

📝 .github/workflows/test.yml (+1 -1)
.travis.yml (+0 -73)
📝 COMPILING.md (+1 -0)
📝 Cargo.lock (+489 -337)
📝 Cargo.toml (+1 -0)
📝 README.md (+4 -5)
📝 audio/src/fetch.rs (+7 -0)
📝 connect/src/discovery.rs (+4 -1)
📝 core/src/authentication.rs (+35 -0)
📝 core/src/cache.rs (+13 -0)
📝 core/src/config.rs (+28 -0)
📝 core/src/connection/mod.rs (+4 -6)
📝 core/src/session.rs (+9 -5)
📝 playback/Cargo.toml (+1 -0)
📝 playback/src/audio_backend/mod.rs (+19 -1)
📝 playback/src/audio_backend/rodio.rs (+96 -21)
📝 playback/src/player.rs (+36 -12)
📝 src/main.rs (+3 -3)

📄 Description

Thanks @willstott101 for updating rodio to 0.13 and making this possible!

This works as is with jack at any sample rate (and solves #316, and #343 ?)

The choice to put this in a separate feature called rodiojack-backend is deliberate. I tried to simply add the jack cpal devices to the alsa ones all together in rodio-backend yet as alsa and jack are exclusive, this always prints an error (either jack or alsa) to the terminal when checking on available devices. This can be tested here.

ps: You have to build without using the --no-default-features, please let me know if you see how to fix this (it seems to deactivate rodio for rodiojack)
FYI: I still think that having all rodio devices in one backend is better, I will try to see in the next few days if I can catch the error messages somehow


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/librespot-org/librespot/pull/548 **Author:** [@Lcchy](https://github.com/Lcchy) **Created:** 12/13/2020 **Status:** ✅ Merged **Merged:** 2/11/2021 **Merged by:** [@sashahilton00](https://github.com/sashahilton00) **Base:** `dev` ← **Head:** `rodiojack-backend` --- ### 📝 Commits (3) - [`52438b1`](https://github.com/librespot-org/librespot/commit/52438b1cc2ee48c2e3571eba3f158285bd53d170) Use rodio for jackaudio backend - [`aad4dba`](https://github.com/librespot-org/librespot/commit/aad4dba8a8c8621e9dd81a11aaf1d8f720787620) Merge branch 'dev' into rodiojack-backend - [`59f87dc`](https://github.com/librespot-org/librespot/commit/59f87dcb375b8bb8054cd06396dcf6a1f7018674) Amend conditional compilation to fail on unsupported systems ### 📊 Changes **18 files changed** (+751 additions, -465 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/test.yml` (+1 -1) ➖ `.travis.yml` (+0 -73) 📝 `COMPILING.md` (+1 -0) 📝 `Cargo.lock` (+489 -337) 📝 `Cargo.toml` (+1 -0) 📝 `README.md` (+4 -5) 📝 `audio/src/fetch.rs` (+7 -0) 📝 `connect/src/discovery.rs` (+4 -1) 📝 `core/src/authentication.rs` (+35 -0) 📝 `core/src/cache.rs` (+13 -0) 📝 `core/src/config.rs` (+28 -0) 📝 `core/src/connection/mod.rs` (+4 -6) 📝 `core/src/session.rs` (+9 -5) 📝 `playback/Cargo.toml` (+1 -0) 📝 `playback/src/audio_backend/mod.rs` (+19 -1) 📝 `playback/src/audio_backend/rodio.rs` (+96 -21) 📝 `playback/src/player.rs` (+36 -12) 📝 `src/main.rs` (+3 -3) </details> ### 📄 Description Thanks @willstott101 for updating rodio to 0.13 and making this possible! This works as is with jack at any sample rate (and solves #316, and #343 ?) The choice to put this in a separate feature called `rodiojack-backend` is deliberate. I tried to simply add the jack cpal devices to the alsa ones all together in `rodio-backend` yet as alsa and jack are exclusive, this always prints an error (either jack or alsa) to the terminal when checking on available devices. This can be tested [here](https://github.com/Lcchy/librespot/commit/659ea26ae0fdd0c61b3c2648f9704b4279e72774). ps: You have to build without using the `--no-default-features`, please let me know if you see how to fix this (it seems to deactivate rodio for rodiojack) FYI: I still think that having all rodio devices in one backend is better, I will try to see in the next few days if I can catch the error messages somehow --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 20:00:38 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/librespot#967
No description provided.