Skip to content

Commit

Permalink
Linux pipewire integration (Audio + Microphone) 🎉 (#1973)
Browse files Browse the repository at this point in the history
* Linux pipewire implementation

* Add pipewire libs to release

* Remove wrong client name

* Clippy fixes

* Type annotated to any on game audio sender

* Attempt to fix macos type infer

* Revert "Attempt to fix macos type infer"

This reverts commit 83e27b5.

* Check clippy compile

* Revert "Check clippy compile"

This reverts commit c8a1623.

* Fix macos clippy

* Nullify infer

* PR review fixes

* PR review fix #2

* PR review fixes #2

* Missed cfg for windows

* Remove -

* PR review fixes. Fixed prepare release pipeline

* Adjust wiki for building with libpipewire/libspa

* Remove unnecessary log

* PR review

* Fix default audio config
  • Loading branch information
Meister1593 authored Jul 6, 2024
1 parent 6540059 commit 8aba8e8
Show file tree
Hide file tree
Showing 17 changed files with 740 additions and 226 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/prepare-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,10 @@ jobs:
env:
RUST_BACKTRACE: 1
run: |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 25088A0359807596
echo "deb http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/pipewire-upstream.list
sudo apt-get update
sudo apt-get install libfuse2 build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libx265-dev cmake libasound2-dev libjack-jackd2-dev libxrandr-dev libunwind-dev libffmpeg-nvenc-dev nvidia-cuda-toolkit libgtk-3-dev
sudo apt-get install libfuse2 build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libx265-dev cmake libasound2-dev libjack-jackd2-dev libxrandr-dev libunwind-dev libffmpeg-nvenc-dev nvidia-cuda-toolkit libgtk-3-dev libpipewire-0.3-dev libspa-0.2-dev
cp alvr/xtask/deb/cuda.pc /usr/share/pkgconfig
cargo xtask prepare-deps --platform linux
Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,10 @@ jobs:
env:
RUST_BACKTRACE: 1
run: |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 25088A0359807596
echo "deb http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/pipewire-upstream.list
sudo apt update
sudo apt install build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libx265-dev cmake libasound2-dev libjack-jackd2-dev libxrandr-dev libunwind-dev libgtk-3-dev
sudo apt install build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libx265-dev cmake libasound2-dev libjack-jackd2-dev libxrandr-dev libunwind-dev libgtk-3-dev libpipewire-0.3-dev libspa-0.2-dev
cargo xtask prepare-deps --platform linux --no-nvidia
- uses: actions-rs/clippy-check@v1
Expand Down Expand Up @@ -133,8 +135,10 @@ jobs:
env:
RUST_BACKTRACE: 1
run: |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 25088A0359807596
echo "deb http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/pipewire-upstream.list
sudo apt update
sudo apt install build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libx265-dev cmake libasound2-dev libjack-jackd2-dev libxrandr-dev libunwind-dev libgtk-3-dev
sudo apt install build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libx265-dev cmake libasound2-dev libjack-jackd2-dev libxrandr-dev libunwind-dev libgtk-3-dev libpipewire-0.3-dev libspa-0.2-dev
cargo xtask prepare-deps --platform linux --no-nvidia
- name: Run tests
Expand Down Expand Up @@ -188,8 +192,10 @@ jobs:
env:
RUST_BACKTRACE: 1
run: |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 25088A0359807596
echo "deb http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/pipewire-upstream.list
sudo apt update
sudo apt install build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libx265-dev cmake libasound2-dev libjack-jackd2-dev libxrandr-dev libunwind-dev libgtk-3-dev
sudo apt install build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libx265-dev cmake libasound2-dev libjack-jackd2-dev libxrandr-dev libunwind-dev libgtk-3-dev libpipewire-0.3-dev libspa-0.2-dev
cargo xtask prepare-deps --platform linux --no-nvidia
- run: cargo xtask check-msrv
200 changes: 197 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions alvr/audio/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,7 @@ windows = { version = "0.56", features = [
"Win32_System_Variant",
"Win32_UI_Shell_PropertiesSystem",
] }

[target.'cfg(target_os = "linux")'.dependencies]
pipewire = { version = "0.8.0", features = ["v0_3_49"] }
libspa-sys = "0.8.0"
Loading

0 comments on commit 8aba8e8

Please sign in to comment.