lang/rust: Bump revisions after 1.99.0 PR: 2990169c878207a1
Port details
audio/pipewire-spa-oss-ng 0.9.12_2
PipeWire SPA plugin implementing a FreeBSD OSS backend
Port info
- Maintainer
- kbowling@FreeBSD.org
- Packages
- latest: 0.9.12_2
- Upstream
- up to date
- Last update
- to 0.9.12_2 · 9c878207a1
- Quarterly
- 2026Q4: 0.9.12_1
- WWW
- https://github.com/kev009/pw-oss
- Links
- cgit · VuXML · Report wrong data
Install
- Package
# pkg install pipewire-spa-oss-nginstalls 0.9.12_2 fromlatest; fromquarterly(2026Q4) 0.9.12_1- Port
# cd /usr/ports/audio/pipewire-spa-oss-ng && make install clean- Size
- 697 KiB download · 2.4 MiB installed
- Depends on
- devel/llvm19 19.1.7_4, multimedia/pipewire 1.6.9
- License
- MIT
Packages by version and architecture
latest
| FreeBSD version | amd64 | aarch64 | i386 |
|---|---|---|---|
| FreeBSD 16 | 0.9.12_2 | 0.9.12_1 | – |
| FreeBSD 15 | 0.9.12_2 | 0.9.12_2 | – |
| FreeBSD 14 | 0.9.12_2 | 0.9.12_1 | ✗ |
quarterly (2026Q4)
| FreeBSD version | amd64 | aarch64 | i386 |
|---|---|---|---|
| FreeBSD 15 | 0.9.12_1 | 0.9.12_1 | – |
| FreeBSD 14 | 0.9.12_1 | 0.9.12_1 | ✗ |
version as in the ports tree (latest) or the most common one (quarterly) · different version · ✗ not built · – no packages for this platform. Package sets that have not been rebuilt for 60 days are left out.
Unaddressed and VuXML only (0)
No unaddressed CVE and nothing reported by
pkg audit for the packaged version 0.9.12_2.Fixed (0)
No VuXML entries for this package.
Problem reports (0) · open in Bugzilla, most recently changed first
None.
Commits (16)
lang/rust: Bump revisions after 1.98.1 PR: 2981397316461925
audio/pipewire-spa-oss-ng: Update to 0.9.12 Match FreeBSD's scaled PCM secondary-buffer policy and cache nonuniform silence fills so larger rings remain allocation-free on the data loop. Stabilize native timer readiness coverage, harden checked SPA FFI pointers, and refresh Rust dependencies.774b6e73a0
audio/pipewire-spa-oss-ng: Update to 0.9.11 Harden live FreeBSD OSS behavior: reconnect devd monitors, improve busy-owner diagnostics, probe exclusive rates without consuming PCM channels, keep capture nonblocking, correct mixer state, release streams on Suspend, and guard setup-phase streams from a live queue-sampling assertion that could abort the data thread. Expand OSS format support, cache companded silence fills, stabilize adaptive scheduling, and adopt libc's typed FreeBSD ioctl helpers.085302c293
lang/rust: Bump revisions after 1.97.1 PR: 2966459c892d2601
audio/pipewire-spa-oss-ng: Update to 0.9.10 Use oss APIs for channel mapping0a8d56e7ef
audio/pipewire-spa-oss-ng: Update to 0.9.9 Improve playback timing and OSS event handling: avoid locked polling on audio cycles, use enriched kqueue events for wakeups (with an optional timer-based path), retain partial writes, retune without inserting silence, and keep queued playback across Pause. Generate format-correct PCM silence and harden host input and reentrant event handling on the device and node paths.6b4d861d00
audio/pipewire-spa-oss-ng: Update to 0.9.8 Advertise signed 24-bit, 32-bit float, and unsigned 8-bit PCM formats when the OSS device or feeder supports them, alongside the existing 16- and 32-bit integer formats. Negotiation order, frame widths, and bitperfect filtering are covered by tests. Register per-module SPA log topics (spa.oss.device, .sink, .source, .monitor) so PIPEWIRE_DEBUG='spa.oss.*:LEVEL' filters the plugin's output, matching the spa.alsa convention. Internally the FFI surface was reworked - unsafe confined to small kernels, cross-loop device rebuilds moved onto owned messages instead of shared state pointers, and the implementation organized by subsystem - with no change to the audio path.d4753024a1
audio/pipewire-spa-oss-ng: Update to 0.9.7 Keep the device byte stream frame-aligned across short writes and reads.008647e34d
audio/pipewire-spa-oss-ng: Update to 0.9.6 pin EnumFormat stereo last so Pulse volume width stays stable after idle (device close and reopen shows volume slider on Plasma6).1c42660a0c
audio/pipewire-spa-oss-ng: Update to 0.9.5 Retune in place across graph quantum changes8610f95231
audio/pipewire-spa-oss-ng: Update to 0.9.4 Capture (source) fixes for cramped rings and fat strides Fixes a field report of skipping audio when recording and playing back at once on a fat-stride USB capture device (20-channel S32, 80 bytes/frame): FreeBSD clamps the soft ring at CHN_2NDBUFMAXSIZE, so it holds only ~1.6 graph periods there, and the capture path had no headroom for arrival jitter.8333ae0e59
audio/pipewire-spa-oss-ng: Update to 0.9.3 Fixes a field report of periodic drops with crackles on USB audio: the sink's near-full fill branch keyed on small driver-forced fragments as a proxy for a small total buffer, which uaudio breaks (1 ms soft fragments, large grant) - near-full targeting added 100+ ms of latency and left one fragment of overshoot headroom, so every normal servo excursion short-wrote and dropped the tail. Validated by a discrete-event simulation of the servo (exact DLL and bandwidth-adaptation ports) that reproduces the field failure with the old target and shows zero drops with the new one across +/-2000 ppm drift, jitter storms and 4-hour runs, plus the live battery on hdspe(4).7ff026ea1f
audio/pipewire-spa-oss-ng: Update to 0.9.2 robustness fixes, driver-clock overhaul, hardware volume control108390b1e7
audio/pipewire-spa-oss-ng: Update to 0.9.1 Threading / robustness: - Serialize all reconfiguration onto the data loop and stop the driver timer cleanly on pause/suspend (closes the renegotiation window behind a PipeWire audioconvert crash). - Detach loop sources and close the timerfd on clear(). - Fail negotiation instead of aborting when the device won't open or rejects the format/channels/rate; validate peer-provided formats and buffers; return errors from all unhandled SPA entry points. - Run without devd (hotplug disabled instead of aborting). Audio / OSS: - Probe device caps and advertise real formats, rates and channel layouts (mono through 7.1 in FreeBSD kernel interleave order, plus the device's native width as AUX channels). - Open capture read-only so asymmetric play/rec channel counts work (shkhln/pw-oss#3). - Run a DLL on capture: real clock delay/rate_diff and rate matching; prime capture with silence and a drained ring at startup. - Report OSS underruns/overruns via the xrun callback. Params / session: - Store and replay the port Latency param; ProcessLatency and latencyOffsetNsec support. - Device profiles (Off/Default) with node add/remove. - Source port param parity: Format readback, Buffers info, re-emit. - oss.delay: PropInfo entry, Props readback, per-device defaults via monitor.oss.rules, live re-apply. - Log through the spa.oss topic (PIPEWIRE_DEBUG=spa.oss:N).7fce4822bd
audio/pipewire-spa-oss-ng: New port PipeWire SPA plugin implementing a FreeBSD OSS backend, tracking the pw-oss fork at https://github.com/kev009/pw-oss. Changes over upstream shkhln/pw-oss: Audio / OSS: - Size the OSS buffer to the device and fix data-loop aborts. - Adapt the fill target to the device's real fragment size. - Report clock delay and rate; require MemPtr buffers. - Reset the channel before close so close() doesn't block draining. - Close the device when the format is cleared. - Advertise and re-emit the port Format param (ALSA-sink pattern). - Don't abort the process on an oversized chunk or a bad/unpositioned format. Session / config: - Don't launch a second WirePlumber from exec.conf; the stock config already starts one, and the duplicate bricked audio. Packaging / dependencies: - Refresh all dependencies; migrate to libspa 0.10 (its pod builder now returns rustix::io::Errno). - Rename the crate to spa-freebsd-oss-ng; the installed libspa_freebsd_oss.so is unchanged. - Add package metadata and install docs for the audio/pipewire-spa-oss-ng port. - Quiet clippy and dead_code warnings. Conflicts with audio/pipewire-spa-oss as both install the same files.84f3f80102