Native low-latency PipeWire capture for -p (drop pw-record subprocess)
-p now connects a real capture stream via the pipewire crate and pushes mono f32 straight into the render channel from the RT process callback, instead of spawning pw-record and parsing its s16 stdout. It captures the default sink monitor (what you hear), negotiates F32 at the graph's native rate/channels, and takes a --latency <frames> quantum hint (default 256) so you can trade CPU/xrun-risk for lower latency. libpipewire becomes a build+runtime dependency: CI installs the dev headers + clang, and the PKGBUILD depends on libpipewire. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GLUwWE2KmFPzhKaf67tWbx
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
3dbe5c4ddd
commit
b230e6829a
@@ -36,6 +36,16 @@ jobs:
|
||||
path: ~/.cargo/registry
|
||||
key: ${{ runner.os }}-${{ matrix.arch }}-cargo-${{ hashFiles('Cargo.lock') }}
|
||||
|
||||
- name: Install audio build deps (libpipewire + clang for native capture)
|
||||
run: |
|
||||
SUDO=""; command -v sudo >/dev/null && SUDO=sudo
|
||||
if command -v apt-get >/dev/null; then
|
||||
$SUDO apt-get update
|
||||
$SUDO apt-get install -y libpipewire-0.3-dev libspa-0.2-dev clang libclang-dev pkg-config
|
||||
elif command -v pacman >/dev/null; then
|
||||
$SUDO pacman -Sy --needed --noconfirm pipewire clang pkgconf
|
||||
fi
|
||||
|
||||
- name: Build
|
||||
run: cargo build --release --target ${{ matrix.target }}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user