[Development report #31] Audio Stack Improvements
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 11 Mar 2025 14:19:33 UTC
MFC'd some recently committed patches to stable/14.
sound: Refactor the format conversion framework:
https://cgit.freebsd.org/src/commit/?id=433e270f341cf660b2fe125c2e0f733073829188
sound: Turn clamp macros into a function:
https://cgit.freebsd.org/src/commit/?id=4918fc2e238b581aaf1f63e20003d5fa957f0b09
sound: Remove macro magic from pcm/feeder_eq.c:
https://cgit.freebsd.org/src/commit/?id=e18d66d9c515abc729f5c4740b9b999d28abc333
sound: Remove macro magic from pcm/feeder_matrix.c:
https://cgit.freebsd.org/src/commit/?id=ac24c9da8bb7af731646dd7924841a28e2ad7ad7
sound: Remove feed_matrix_apply_generic():
https://cgit.freebsd.org/src/commit/?id=b73b5f70e9f6be951e66531f6f57249eea4ba4dc
sound: Simplify pcm/feeder_mixer.c:
https://cgit.freebsd.org/src/commit/?id=4021fa32d92d656d3d43186cc231695c7ad53d33
sound: Take dsp_cdevsw out of header file:
https://cgit.freebsd.org/src/commit/?id=2fda8597116e760c32f07af43d260041f975b650
sound: Retire SD_F_AUTOVCHAN:
https://cgit.freebsd.org/src/commit/?id=b768f2c7773b6e306fb43687657414f9f42a27d4
sound: Make dev.pcm.X.mode dynamic:
https://cgit.freebsd.org/src/commit/?id=ab95710f30f7255d3a6be22a1a2c375ee0f96868
sound: Update COPYRIGHT notices:
https://cgit.freebsd.org/src/commit/?id=c824383b269d8abe175ea4751194660716d5600e
sound: Make feed_mixer_apply() __always_inline:
https://cgit.freebsd.org/src/commit/?id=717adecbbb5293d8386caa866c21421ef9eeb22c
sound: Implement AFMT_FLOAT support:
https://reviews.freebsd.org/D47638
Received useful feedback about a rounding error improvement,
although roundf() cannot be used in the kernel.
Laptop project
sound: Implement /dev/dsp as a router device:
https://reviews.freebsd.org/D49216
- Addressed ziaee@'s man page comment.
- Restored hw.snd.basename_clone and dsp_clone(), but
instead of cloning /dev/dsp${hw.snd.default_unit}, we
are cloning vdsp_cdev, which is defined as /dev/vdsp.
This way we preserve backwards compatibility with
virtual_oss, since it can override /dev/dsp with its
own. Update man page accordingly.
- Check whether the channels are not NULL, as opposed to
checking priv->flags and assuming the channels will be
non-NULL.
- Check for !DSP_REGISTERED() after acquiring the new
cdevpriv in vdsp_getdev(), as well as in vdsp_open().
Working on a follow-up patch to D49216 to split the default unit
into playback and recording units.
Port SOF (Sound Open Firmware) to FreeBSD
I spent a good amount of time studying the (limited)
documentation, as well as the Linux sources, and also
had an email exchange with Liam Girdwood from Intel (one
of the main authors of SOF) to clear up some questions I
had, but eventually I realized that this project is not
a very wise allocation of resources, considering its
complexity and the tech debt it'll introduce, for
seemingly little benefit. I discussed this in-depth with
emaste@ in a private exchange and detailed all the
reasons why I think this project is not worth pursuing,
at least for now, and we are thinking about dropping it.
Reviewed:
https://reviews.freebsd.org/D49002
PR 253900:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253900
Attended Foundation's monthly iteration call.
Sent an email to multimedia@ regarding a potential removal of the -T
option from virtual_oss I'm considering:
https://lists.freebsd.org/archives/freebsd-multimedia/2025-March/002887.html
Attended srcmgr bug busting call.
This work is sponsored by the FreeBSD Foundation.
Christos