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.
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.
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.
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.
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).
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.
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).
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
(Only the first 15 lines of the commit message are shown above )
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
(Only the first 15 lines of the commit message are shown above )