kvm/ui
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
..
localization Merge branch 'dev' into feat/audio-support 2025-11-20 23:47:44 +02:00
public Update UI dependencies (#819) 2025-09-24 12:16:02 +02:00
src Integrate libspeexdsp for high-quality audio resampling 2025-11-21 16:29:02 +02:00
tools Localize the client/browser UI with inlang paraglide-js (#864) 2025-10-23 14:27:29 +02:00
.env.cloud-development feat(cloud): Add custom cloud API URL configuration support (#181) 2025-02-25 16:10:46 +01:00
.env.cloud-production feat(cloud): Add custom cloud API URL configuration support (#181) 2025-02-25 16:10:46 +01:00
.env.cloud-staging feat(cloud): Add custom cloud API URL configuration support (#181) 2025-02-25 16:10:46 +01:00
.gitignore Release 202412292127 2024-12-29 21:27:42 +01:00
.prettierrc refactor: network settings UI (#486) 2025-05-20 15:22:08 +02:00
dev_device.sh network enhanecment / refactor (#361) 2025-04-16 01:39:23 +02:00
eslint.config.cjs Localize the client/browser UI with inlang paraglide-js (#864) 2025-10-23 14:27:29 +02:00
index.html Localize the client/browser UI with inlang paraglide-js (#864) 2025-10-23 14:27:29 +02:00
package-lock.json chore: upgrade UI packages (except vite) (#954) 2025-11-10 14:53:18 +01:00
package.json chore: upgrade UI packages (except vite) (#954) 2025-11-10 14:53:18 +01:00
postcss.config.js chore: Upgrade UI vite and tailwind packages (#443) 2025-05-15 14:21:03 +02:00
tailwind.config.js chore(ui): Patch-bump packages and use tailwind upgrade (#456) 2025-05-16 19:59:57 +02:00
tsconfig.json Localize the client/browser UI with inlang paraglide-js (#864) 2025-10-23 14:27:29 +02:00
tsconfig.node.json Localize the client/browser UI with inlang paraglide-js (#864) 2025-10-23 14:27:29 +02:00
vite-env.d.ts Release 202412292127 2024-12-29 21:27:42 +01:00
vite.config.ts chore: use en by default (#988) 2025-11-20 16:34:02 +01:00