Skip to content

Implement pipewire output#650

Open
azam wants to merge 3 commits into
jpochyla:mainfrom
azam:feature/pipewire
Open

Implement pipewire output#650
azam wants to merge 3 commits into
jpochyla:mainfrom
azam:feature/pipewire

Conversation

@azam

@azam azam commented Jun 22, 2025

Copy link
Copy Markdown
  • Initial implementation for pipewire output.
  • Change psst-gui and psst-cli to explicitly pass features of psst-core by disabling psst-core default features when compiled from psst-gui or psst-cli.
    This makes it easier to set features at psst-gui or psst-cli without changing psst-core/Cargo.toml, since currently there is no way to switch AudioOutput implementation at runtime.
    This should not affect current build because default features are set at psst-gui and psst-cli and is passed down as psst-core feature as well.

@azam

azam commented Jun 24, 2025

Copy link
Copy Markdown
Author

Hi,
I also have a branch with selectable backend, buildable with cpal and pipewire but not tested for cubeb at https://github.com/azam/psst/tree/feature/pipewire-selectable if you want to check it out. Need a restart of the app after selection change though.
Screenshot_20250625_031153

@azam

azam commented Jul 1, 2025

Copy link
Copy Markdown
Author

@jacksongoode
Would you consider pulling this in?
I can either proceed with the output selection on a separate PR.

@jacksongoode

jacksongoode commented Jul 1, 2025

Copy link
Copy Markdown
Collaborator

I'm a little curious if you've checked out https://github.com/SolarLiner/interflow? It would be another backend, but it might have the possibility of replacing cpal and support more than just pipewire (also coreaudio, alsa, WASAPI). I would be hesitant to provide a path to pipewire support via its own backend just for the sake of maintenance.

In addition it might be easier to write support for interflow given that it's quite opinionated. Love to hear your thoughts, and thank you for the extensive work in your PR.

@azam

azam commented Jul 2, 2025

Copy link
Copy Markdown
Author

@jacksongoode 🤔 I'll take a jab at interflow.

@azam

azam commented Jul 14, 2025

Copy link
Copy Markdown
Author

@jacksongoode
Managed to get interflow to output audio, but the sample counts are borked (channel count are not synced, so playback is 0.5x slow. Probably will try with a fixed channel count later).

I will try again later on the next weekend, in the meantime here is the branch if you want to take a look or help me with it.

https://github.com/azam/psst/tree/feature/interflow

@jacksongoode

Copy link
Copy Markdown
Collaborator

@azam Thank you for the effort!

I think there are some improvements coming to Interflow in the next week for the CoreAudio and Pipewire backends, so it might be even easier.

For now, would you like to make a separate PR for interflow based on this branch?

@azam

azam commented Jul 14, 2025

Copy link
Copy Markdown
Author

@jacksongoode
Sure, I intend to do that once I figure out the sampling issue.

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.

2 participants