-
Notifications
You must be signed in to change notification settings - Fork 627
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
librespot crashes if the local system is using systemd-resolved instead of avahi #824
Comments
What features does this build have enabled? How to compile with the pulseaudio feature enabled is explained at https://github.com/librespot-org/librespot/wiki/Compiling#features. That page also contains info about the |
I'm using this package, which is basically built using the default.
Given that pulseaudio is the de-facto standard sound system on Linux desktop, wouldn't it make sense for that to be enabled by default? Otherwise most users should have to rebuild themselves tweaking some compile-time flags.
I'm a bit confused about this flag. It seems to be disabled by default, right? Using diff --git a/Cargo.toml b/Cargo.toml
index ced7d0f..eaf54f3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -74,7 +74,7 @@ gstreamer-backend = ["librespot-playback/gstreamer-backend"]
with-dns-sd = ["librespot-discovery/with-dns-sd"]
-default = ["rodio-backend"]
+default = ["pulseaudio-backend"]
[package.metadata.deb]
maintainer = "librespot-org" And running |
The wiki page states the default feature is the Rodio backend. Every other feature in that table is disabled by default and that includes
No, it appears to be built with You've then changed the default feature from Rodio to Pulseaudio, so that will enable Pulseaudio. Every other feature is disabled in your build.
Yes. There are two different ways mDNS is implemented in librespot. The default way is an integrated mDNS server, this one may not play nicely when you have other mDNS applications running (such as an Avahi service). This is the one you are using in your build because you have not specified |
Ah, thanks for the explanation, that makes sense. I guess that when using I'm surprised that Might it be related to:
This is a bit of another topic, but why use Rodio by default instead of Pulseaudio? Pulseadio is pretty much the de-facto standard on Linux desktop and what most distributions ship out of the box. |
Rodio is cross platform (Windows, Linux, MacOS) :-) |
Any hints on how to make it work on Linux? There's no references to it in the arch wiki, packages or forums. |
Hmm.. this is a bit of a red herring. On Linux, Rodio seems to just wrap around ALSA. So while, technically, it is multi-platform, it won't run on most Linuxes since most distributions ship Pulseaudio and not ALSA as a sound subsystem. It's really as "cross-platform" as pulseaudio. Pulseaudio runs on windows, but I don't expect most windows users to have pulseaudio set up. |
Not sure, Rodio uses |
So there's two parts to ALSA (which is a source of infinite confusion):
When using pulseaudio, it relies on (1), but supercedes (2). Pulseaudio can be built to also expose the same APIs as (2), but that's mostly there for legacy compatibility for older software (e.g.: stuff that precedes pulseaudio), and not enabled by default. It's not really something that actively maintained software should be relying on either. Obviously (1) isn't going anywhere, since it's what userspace components use to talk to the kernel's sound... stuff. Rodio es cross-platform in the sense that it can be made to work on different platforms, and, in a way, is as cross-platform as pulseaudio, which can also be made to work on other platforms. But it's not cross-platform from the "works without setting up another sound subsystem" point of view. |
Start a new discussion about making PulseAudio the default. |
Yeah, that's getting off-topic here. Thanks for the pointers. |
I'm currently using systemd-resolved for mDNS rather than avahi, and
librespot
flat out crashes when starting.This happens with the latest stable release. I tried building from source, but it seems pulseaudio won't work in that case for some reason:
I've noticed that now
rodio
seems to be used as a backend, and not pulseaudio, however, that default backend assumes alsa. As hinted above, I'm using pulseaudio, not alsa:Any hints on how to work around any of these issues?
The text was updated successfully, but these errors were encountered: