-
Notifications
You must be signed in to change notification settings - Fork 473
Support pipewire as host #1093
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
base: master
Are you sure you want to change the base?
Support pipewire as host #1093
Conversation
19070c2 to
1eca9ce
Compare
size should be frames * stride
9e2ef9f to
fd59a29
Compare
|
Seems pipewire need edition 2024.. |
|
@roderickvd can you help review this pr? Thanks, and when can this crate be upgraded to edition 2024? I would also want to help |
Definitely will help you review it. Need a bit more time.
Actually cpal itself doesn't need to be upgraded to Rust 2024, it just needs a MSRV of Rust of 1.85 or higher to support dependencies that are Rust 2024 already. When we can I'd like to stick cpal to Rust 2021 so we keep our MSRV down. |
|
Super cool man! Happy to see cpal having better linux support, opening the possibility of loopback recording on Linux! |
1b36f54 to
07bc999
Compare
07bc999 to
6cea2ad
Compare
|
ok, only one ci that I cannot fix |
a81e104 to
5a3817c
Compare
|
ok cross-rs based on ubuntu20.04, so |
9fc57c0 to
4e44276
Compare
758398a to
f457c69
Compare
because cross-rs is based on ubuntu20.04, so it does not contains pipewire
721beb0 to
424d78f
Compare
|
How does this differ from #692? |
This one is a finished version, and used the roundtrip to get the information, instead of using thread to control it. |
|
You think this renders #692 obsolete - should we close that in favor of this one? |
Maybe . If you think that is no problem |
Replace boolean check with match expression to properly handle both timeout expiration and channel receive errors, returning a more accurate StreamConfigNotSupported error instead of DeviceNotAvailable.
Pr/decodetalkers/1093
Add support to pipewire
You can test it with pipewire feature open
Pipewire support use config to define rates. So the default config of cpal with pipewire can be changed through config like following.
Still problems left:*
once we do 'pipewire::init', we can only dequeue it after the whole thread. even put the function to another thread, the function still works.. But seems we can run init many times..(Ok, seems it is not a problem, because in when we call init, the init action will only be called once. I think it will be ok)*
The crates by pipewire need edition 2024. I think that should be another pr.