[Development report #27] Audio Stack Improvements

From: Christos Margiolis <christos_at_freebsd.org>
Date: Tue, 14 Jan 2025 15:25:45 UTC
Previous weeks' patches.

Reviewing and testing:
https://reviews.freebsd.org/D48330

Reviewed:
https://reviews.freebsd.org/D48207

sound: Implement AFMT_FLOAT support:
https://reviews.freebsd.org/D47638

	- Benchmarked fpu_kern(9). Results in review.
	- Made implementation alignment-agnostic.
	- Added support in feeder_chain.c, feeder_rate.c and
	  feeder_volume.c.
	- Rebased to work with D47932.
	- Defined AFMT_F32_OE.
	- Guarded fpu_kern(9) calls with ifdef _KERNEL so that the unit
	  test can run.

sound: Refactor the format conversion framework:
https://reviews.freebsd.org/D47932

	- Fixed regressions.
	- Removed unit test in favor of D48330. Work continues there.

sound: Allocate vchans on-demand:
https://reviews.freebsd.org/D47917

	- Fixed remaining regressions. Almost ready to commit.
	- Discussion with Florian about some design issues I discovered.

sound: Simplify pcm/feeder_mixer.c:
https://reviews.freebsd.org/D48394

sound: Turn PCM_CLAMP_* macros into a function:
https://reviews.freebsd.org/D48421

sound: Initialize channels with sane default rate and format:
https://reviews.freebsd.org/D48434

sound: Report actual vchanrate and vchanformat in sysctl:
https://reviews.freebsd.org/D48435

snd_uaudio: Remove undefined functions:
https://reviews.freebsd.org/D48424

Addressing PR 283793:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283793

Laptop project

	- Attended monthly Foundation call.
	- Working on the current project:
	  https://github.com/FreeBSDFoundation/proj-laptop/issues/17
		- Writing patch to address some predictable pin-patching
		  scenarios.
		- Edited issue description.
	- Addressing PR 283948:
	  https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283948
	- Addressing PR 267817:
	  https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=267817
	- Getting more familiar with `snd_hda(4)`, and HDA in general.

Planning MIDI work.

Posted EuroBSDCon trip report to my website:
https://margiolis.net/w/eurobsd2024_report/

Although not related to this project, rebased pending kinst patches
(D38825, D39259, D40874) on top of main.

This work is sponsored by the FreeBSD Foundation.

Christos