Loads libavformat + libavdevice at runtime — no dev packages, no
subprocess, no pipe buffering. Falls back gracefully to ffmpeg
subprocess then demo mode if .so files aren't present.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CRT boot/shutdown animations (ported from AetherTune)
- Y-T (time-domain) and X-Y (Lissajous) display modes
- Phosphor persistence with bloom and decay
- Half-block rendering for 2x vertical resolution
- Live audio capture via ffmpeg/PulseAudio monitor
- Gain and time/div controls, grid toggle, freeze
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>