kvm/scripts
Alex P 9d86b02e66 Integrate libspeexdsp for high-quality audio resampling
Replace ALSA plugin layer resampling with libspeexdsp for improved audio
quality and reliability. This implementation uses direct hardware access
(hw:) instead of ALSA plugins (plughw:) and handles sample rate conversion
with SpeexDSP's high-quality sinc-based resampler.

Key changes:
- Add libspeexdsp 1.2.1 with ARM NEON optimizations to build dependencies
- Switch from plughw: to hw: device access for lower latency
- Implement conditional resampling (only when hardware rate ≠ 48kHz)
- Use SPEEX_RESAMPLER_QUALITY_DESKTOP for high-quality interpolation
- Add automatic audio dependency building in dev_deploy.sh

Quality improvements:
- Fix race condition in resampler cleanup with mutex protection
- Fix memory leak on resampler re-initialization
- Add buffer overflow validation (3840 frame limit for 192kHz)
- Improve error logging for resampling, encoding, and ALSA configuration
- Simplify code structure while maintaining all functionality

Technical details:
- Hardware negotiates actual sample rate (e.g., HDMI may vary)
- SpeexDSP converts hardware rate → 48kHz for Opus encoding
- USB Audio Gadget hardcoded to 48kHz (no resampling overhead)
- Static buffer allocation for zero allocation in hot path
- WebRTC requires 48kHz RTP clock rate per RFC 7587
2025-11-21 16:29:02 +02:00
..
build_cgo.sh feat: move native to a separate process, again (#964) 2025-11-19 16:02:37 +01:00
build_utils.sh feat: add audio dependencies to Docker build context 2025-11-03 13:54:11 +01:00
ci_helper.sh feat: jetkvm native in cGo 2025-09-29 14:09:30 +02:00
configure_vscode.py feat: move native to a separate process, again (#964) 2025-11-19 16:02:37 +01:00
dev_deploy.sh Integrate libspeexdsp for high-quality audio resampling 2025-11-21 16:29:02 +02:00
generate_proto.sh feat: move native to a separate process, again (#964) 2025-11-19 16:02:37 +01:00
release.sh feat: move native to a separate process, again (#964) 2025-11-19 16:02:37 +01:00
update_netboot_xyz.sh feat: jetkvm native in cGo 2025-09-29 14:09:30 +02:00