1.3.2
HDR — hdr-toys Pipeline
- Replaced the old 3-mode HDR system (Off / SDR with HDR / Normal HDR) with a proper shader-based pipeline powered by hdr-toys.
- Four HDR modes are now available: BT.2100 PQ (HDR10), BT.2100 HLG, BT.2020, and Linear HDR (mpv-native, no shaders).
- 77 GLSL shaders are bundled in the app and copied to the mpv config directory on first use — no manual setup required.
- The HDR panel no longer shows an "Off" option. Off is the default and is toggled by the HDR button; the panel only presents the four active modes.
- Selecting a mode while GPU Next + Vulkan is unavailable shows a clear error pill and falls back to Off safely.
- Added
boostSdrToHdrpreference (used by the Linear HDR path). HdrToysManagercleanly removes all hdr-toys shaders when switching to Off or when the pipeline is not ready, so no stale shaders leak between sessions.
Thermal & Battery Improvements
- Added
ThermalMonitor— samplesPowerManager.getThermalHeadroom()(Android 11+) every 10 seconds during playback. - Ambient shader sample budget is automatically capped based on thermal headroom: 8 samples (severe), 12 (moderate), 18 (mild), uncapped (cool).
- Anime4K is proactively downgraded to C/Fast when thermal headroom drops below 40%, before frame drops even start.
- Ambient shader recompilation is now skipped when all parameters are identical to the last compiled version — reduces unnecessary GPU stutter on orientation changes and no-op callbacks.
- Removed redundant dual position polling: the event-driven
time-posobserver and the polling loop were both updating the same StateFlow, causing double seek-bar recompositions on every MPV event. - Background playback position poll interval halved from 250 ms to 500 ms when controls are not visible, cutting idle JNI wake-ups by 50%.
Stats Page 6 — Fixes
- GPU estimate bar fixed: was using cumulative drop + delay totals that drifted to 100% after long sessions and added a fixed FPS-proportional baseline (120fps with zero drops showed 70% GPU load). Now uses per-second delta counts relative to the current frame rate — 0 drops = 0%, all frames dropped = 100%.
- CPU label corrected: relabelled from "CPU Usage" to "App CPU (this process)" to accurately reflect that
getElapsedCpuTime()measures only MpvRx's own process, not the whole device. - Frame drop text now shows per-second deltas alongside the all-time totals, so you can tell current rendering pressure at a glance.
- Pause-aware poll backoff: the stats loop backs off from 1 s to 2 s intervals when playback is paused, cutting pointless JNI calls when metrics are static.
Gesture & Action Overlay Toggles
- Added a new "Gesture & Action Overlays" section in Player Settings with seven independent on/off switches:
- Volume slider overlay — vertical pill shown during volume swipe
- Brightness slider overlay — vertical pill shown during brightness swipe
- Hold speed overlay — speed badge and slider shown during long-press speed boost
- Aspect ratio feedback — pill shown when cycling aspect ratio
- Zoom level feedback — pill shown when pinching to zoom
- Repeat & shuffle feedback — pill shown when toggling repeat or shuffle
- Action feedback pills — brief text pills from custom buttons, ambient toggle, subtitle drag, and Lua/JS scripts
- All overlays default to on, so existing behaviour is unchanged until the user opts out.
- Disabling an overlay suppresses only the visual pill — the underlying gesture action (volume change, speed change, etc.) still happens normally.
Checksums
| Variant | SHA-256 |
|---|---|
| arm64-v8a | 1bc45f1301a60636ab39c792b61e8d996107c7bcb8ef479954b690e440758a44 |
| armeabi-v7a | 0bc7572acc52c28519aac1dc331a9c30a24680e8cce6fed25df9595a577f541c |
| Universal | b0723480d35a5d1e50521876277df58f30fb34feaae1fa5ee240719e526d55ae |
| x86 | fd42b4f8d4e8cf4deab0d5a082971257f0d555e8c135f093939e8659f322d1ba |
| x86_64 | fa76e0c1a6810332cc3d97de449df61eb87bbf3d60f951ac1c5f53acfc85b622 |
| Play Store | a8774ae5a441f20e1676addde962c68fa1b7c56b795463d860cb159bebda3b04 |
| F-Droid | 60727db6027f4206b166c0521732f9d2750c2390bde1ab8b72f569b643f00470 |
Play Store Version
The Play Store variant (mpvRx-playstore-v1.3.2.apk) is specifically built for Google Play Store:
- Universal APK supporting all architectures (arm64-v8a, armeabi-v7a, x86, x86_64)
- Removed automatic update feature (handled by Play Store)
- Minimal permissions for maximum compatibility
F-Droid Version
The F-Droid variant (mpvRx-fdroid-v1.3.2.apk) is specifically built for F-Droid compatibility:
- Removed automatic update feature
- Removed install packages permission
- ARM64-v8a architecture only