diff --git a/.gitea/workflows/apple.yml b/.gitea/workflows/apple.yml index aea7818..abb4f0e 100644 --- a/.gitea/workflows/apple.yml +++ b/.gitea/workflows/apple.yml @@ -32,6 +32,13 @@ jobs: dirname "$RUSTUP" >> "$GITHUB_PATH" "$RUSTUP" target add aarch64-apple-darwin x86_64-apple-darwin + # `punktfunk-core` now decodes Opus in-core for the Apple client (surround), pulling + # `audiopus_sys`, which builds a vendored static libopus via CMake when pkg-config can't find a + # system Opus — so the xcframework is self-contained (no runtime libopus.dylib on end-user Macs). + # CMake must be on PATH; install it self-healing on a fresh runner. + - name: CMake (for the vendored libopus audiopus_sys builds) + run: command -v cmake >/dev/null || brew install cmake + - name: Build PunktfunkCore.xcframework run: bash scripts/build-xcframework.sh @@ -71,6 +78,10 @@ jobs: "$RUSTUP" target add aarch64-apple-darwin x86_64-apple-darwin \ aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios + # See the swift job: audiopus_sys (via the in-core Opus decode) builds vendored libopus with CMake. + - name: CMake (for the vendored libopus audiopus_sys builds) + run: command -v cmake >/dev/null || brew install cmake + - name: Build PunktfunkCore.xcframework (mac + iOS slices) run: BUILD_IOS=1 bash scripts/build-xcframework.sh diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 78c3972..a688c6d 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -118,6 +118,11 @@ jobs: "$RUSTUP" toolchain install nightly --profile minimal "$RUSTUP" component add rust-src --toolchain nightly + # The in-core Opus decode (surround) pulls audiopus_sys, which builds a vendored static libopus + # via CMake — keep the xcframework self-contained (no runtime libopus.dylib on end-user devices). + - name: CMake (for the vendored libopus audiopus_sys builds) + run: command -v cmake >/dev/null || brew install cmake + - name: Build PunktfunkCore.xcframework (mac + iOS + tvOS) # tvOS is a tier-3 target (nightly -Zbuild-std): slow on the first build, then cached on # the self-hosted runner. Built on canary too so the tvOS archive/upload below runs on the diff --git a/clients/windows/src/main.rs b/clients/windows/src/main.rs index a1a2b0d..4b91c57 100644 --- a/clients/windows/src/main.rs +++ b/clients/windows/src/main.rs @@ -177,6 +177,8 @@ fn run_headless_cli(args: &[String], identity: (String, String)) { compositor: CompositorPref::Auto, gamepad: GamepadPref::Auto, bitrate_kbps, + // Headless CLI path (test/scripting) — stereo baseline; the GUI sources this from settings. + audio_channels: 2, mic_enabled: flag("--mic"), hdr_enabled: !flag("--no-hdr"), decoder,