Maintenance release focused on viewer video performance and display fixes. Cutting this triggers the balena OTA deploy to all screenly_ose/anthias-* fleets; unpinned devices pull it and restart.
Performance
- perf(viewer): render video via QML VideoOutput in a QQuickWidget (#2975) — replaces the
toImageGPU-readback presentation path that capped presented framerate at ~8 fps on Pi 4 and ~11 fps on Pi 5 even with hardware decode; video now presents through the RHI sink at full rate. - fix(viewer): play pi2/pi3 video via GStreamer HW pipeline (#2972) — replaces VLC with a GStreamer pipeline that uses the hardware decoder on Pi 2/Pi 3.
Fixes
- fix(viewer): default
WLR_DRM_NO_ATOMIC=1on x86 (#2978) — atomic-commitEBUSYcan no longer freeze the display. - fix(viewer): rotate Pi 4 (eglfs) display via
QT_QPA_EGLFS_ROTATION(#2971) and emit 270° as -90 so portrait-inverted isn't stretched (#2973) — the rotation menu now works on Pi 4. - fix(viewer): retry AnthiasViewer spawn so the armv7 WebEngine-init crash self-heals (#2969).
- fix(viewer): skip the Writeback connector in the eglfs headless guard (#2968).
- fix(viewer): fix two startup warnings surfaced by the log cleanup (#2979).
Housekeeping
- chore(viewer): drop the always-on Qt debug logging from the image (#2977).