Skip to content
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

Draft: Linux pipewire integration #1973

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

Meister1593
Copy link
Collaborator

This is not done by any means, just put up for anyone to see how things are progressing
So far: main flow (pipewire source, getting data from one place to another) is kinda done, but i've yet to determine why only thing i get is pops into mic, it might be a multiple issues at once (buffer overload + trying to push all at once)
Other issues are listed in TODO's

@Meister1593 Meister1593 marked this pull request as draft February 4, 2024 20:12
@zarik5
Copy link
Member

zarik5 commented Feb 5, 2024

I haven't reviewed completely. But linux specific code should go in crates/audio/src/linux.rs

@Meister1593
Copy link
Collaborator Author

Meister1593 commented Feb 5, 2024

I haven't reviewed completely. But linux specific code should go in crates/audio/src/linux.rs

Please don't review it completely yet, its just in barely compilable state, not ready for any serious review of the code itself.

@guysoft
Copy link

guysoft commented Feb 26, 2024

Cool! Any way to help?

@Vixea
Copy link
Collaborator

Vixea commented Feb 26, 2024

Cool! Any way to help?

no not really unless you wanna pull a night of just reading documentation on oboe(not the rust crate but the google software one) oh and you somehow figure out what we're doing wrong so you have to know Rust too

@Meister1593 Meister1593 force-pushed the pipewire-microphone branch 3 times, most recently from 69a43ad to 725909f Compare March 17, 2024 18:17
@zarik5 zarik5 force-pushed the master branch 2 times, most recently from d01478e to 005c4c7 Compare March 22, 2024 09:18
Changed chan size to proper, as well as audio format to f32

Uncommitted older changes

Updated pipewire libs, adapted code to new pipewire lib version, issue with moving threads for pipewire

Sink creation done, pipewire-rs and alvr compiled, no buffer copying yet

Dropped unnecessary custom pw-rs, tokio. Code cleanup and move to single mainloop thread.

Cfg cleanup

Changed cfgs to not linux for android client compatibility

Removed unnecessary pipewire code from client

Renamed microphone output for linux pipewire, removed Audio Type

Updated Cargo.lock

Started implementing channels for pipewire to handle buffers

Implemented basic buffer, almost completely non functional, code related to actual bufferring needs to be re-added

Refactored flow, experimenting with byte types, order, etc

Added comment about graceful shutdown

Fixed steamvr shutdown. Experimenting with alternative ways to process streamed data
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.

None yet

4 participants