0.14.0 (2026-11-12)
Features
- android: add a pip message that enters picture-in-picture (985b028)
- android: add an upscaling network and run ExoPlayer's video through it (8efcbbc)
- android: apply the upscaling network and the user's shaders in mpv (cbe3b3e)
- android: load live sources at their live edge (6e56f20)
- android: offer the mini player on TVs (c29144a)
- android: send back swipe progress to the page (f152578)
- android: send the system's 24-hour clock setting to the page (7bfc19a)
- android: show the starting logo until the page draws its splash (b9cb133)
- android: write the app's log to a file that reports read (67cdf5d)
- web: add a launch splash to the standalone build (438dc79)
- web: add a live mode to the player (438dc79)
- web: add a Live TV page (438dc79)
- web: add a picture-in-picture button and an HDR output setting (438dc79)
- web: add a programme guide to Live TV (438dc79)
- web: add a setting to blur episodes not started (438dc79)
- web: add a start page setting (438dc79)
- web: add a time format setting (438dc79)
- web: add anime upscaling and mpv shaders to the Android app (438dc79)
- web: add the desktop app's picture-in-picture overlay (438dc79)
- web: add WebGPU-Player as a browser engine (438dc79)
- web: ask version lists for only the fields they read (438dc79)
- web: bind the channel keys to next and previous chapter (438dc79)
- web: centre the hero and item heading on phones (438dc79)
- web: fade what's over the art as a phone scrolls (438dc79)
- web: find channels in search (438dc79)
- web: give the page players the file's subtitle index and lines (438dc79)
- web: go to a channel by its number on Live TV (438dc79)
- web: hide the mini player's video while it loads or stalls (438dc79)
- web: list channels on Home and in Favourites (438dc79)
- web: list every page in the bottom bar and its menu (438dc79)
- web: list WebGPU-Player and the decoders it ships on the licences page (438dc79)
- web: log live recovery's reopens, give-ups and version switches to the app (438dc79)
- web: make WebGPU the browsers' default engine and first choice (438dc79)
- web: move the page with Android's back swipe (438dc79)
- web: offer anime upscaling in the desktop app (438dc79)
- web: offer many Live TV groups in a searchable picker (438dc79)
- web: open titles in a view transition on touch devices (438dc79)
- web: pick the group picker's last group again when the keys come back to it (438dc79)
- web: play earlier programmes from the guide (438dc79)
- web: play trailers by themselves in cards, the hero and title pages (438dc79)
- web: read a Matroska file's own subtitles and draw ASS and PGS (438dc79)
- web: read files past CORS through the webOS service (438dc79)
- web: remember a version's release and stand in for it when gone (438dc79)
- web: remind of later programmes (438dc79)
- web: reopen Live TV on the channel it was left on (438dc79)
- web: resolve YouTube trailers on LG and Samsung TVs (438dc79)
- web: run anime upscaling and the user's shaders in the WebGPU engine (438dc79)
- web: send AllVersions with PlaybackInfo (438dc79)
- web: send daily and monthly usage counts to Aptabase (438dc79)
- web: send SkipSubtitles on version list requests (438dc79)
- web: send the player's duration as RunTimeTicks in playback reports (438dc79)
- web: show Live TV's guide only when its channels have programmes (438dc79)
- web: start live TV without subtitles and keep track picks per channel (438dc79)
- web: take a Matroska file's subtitle blocks from the WebGPU engine as it reads them (438dc79)
- web: tell the app's player when a source is live (438dc79)
Bug Fixes
- android: also count button-only pads as gamepads (77727c2)
- android: cap the ASS lines kept in the Java heap (0c20dac)
- android: ignore unplugged audio and system pauses after a frame rate switch (f50054b)
- android: keep live links out of the stream cache (fe4f916)
- android: keep the stream cache when the app only goes out of sight (#1771) (033c186)
- android: let mpv.conf's hwdec override the app's (a3b243b)
- android: match region-tagged tracks to the user's languages (6af5417)
- android: only count controllers with a stick or d-pad as gamepads (31ccc51)
- android: read mpv's versions once and close it off the main thread (9b04b52)
- android: read the next engine's description once it has started (970346d)
- android: send a YouTube video's original audio language (4bdf89c)
- android: start a download's video without waiting for its subtitles (#1720) (0dd6e42)
- android: start passthrough audio before its buffer fills (#1742) (14d9d63)
- web: blur unstarted episodes in the calendar (438dc79)
- web: cancel sideways hero swipes so they don't fling (438dc79)
- web: clamp the subtitle lift's easing progress (438dc79)
- web: clear now playing when leaving the trailers (438dc79)
- web: count only listboxes outside a page as overlays (438dc79)
- web: drop a live playback's unsent stop (438dc79)
- web: fade the home hero's backdrop out at its bottom edge (438dc79)
- web: focus the item menu's first entry when keys open it (438dc79)
- web: go up from the guide to the programme's buttons (438dc79)
- web: hurry a file's subtitle reads while lines near the playhead are unread (438dc79)
- web: ignore a new page's jump in the bars' scroll tracking (438dc79)
- web: keep Live TV's group when going up from the channels (438dc79)
- web: leave channels without details out of recent channels (438dc79)
- web: let popovers hide the app's video only where they cover it (438dc79)
- web: lift the player time over the seek bar's press area (438dc79)
- web: mark the card whose menu is open and leave it unblurred (438dc79)
- web: move within an entered box before taking the way back (438dc79)
- web: offer the Live TV guide when its view is marked as having one (438dc79)
- web: place the app's small video by the page's zoom (438dc79)
- web: reopen live sources that end, fail or stall (438dc79)
- web: search for the last channel only when there is one (438dc79)
- web: set the trailer embed's referrer policy (438dc79)
- web: skip reopens for live links the browser says it can't play (438dc79)
- web: skip seek thumbnails for live streams (438dc79)
- web: skip the fade on item art that's ready at once (438dc79)
- web: start the back slide only when Back leaves the page (438dc79)
- web: swap the Play icon and size restart with Resume (438dc79)
- web: switch an engine's track pick that misreads the user's languages (438dc79)
- web: take a trailer's original language from its original audio (438dc79)
- web: take Back on the player's failure screen (438dc79)
- web: use the wide item backdrop in landscape (438dc79)
Performance Improvements
- android: send controller buttons to the page (6e9ac0e)
- web: clip TV rows instead of scrolling them (438dc79)
- web: hold the controls' visibility and the subtitle lift in live values (438dc79)
- web: keep Live TV key focus in the guide and the list (438dc79)
- web: mark loading boxes with a ref instead of data-nav-wait (438dc79)
- web: memoize row slides and Home's library row cards (438dc79)
- web: order the artwork queue by distance from the screen (438dc79)
- web: parse each artwork address once (438dc79)
- web: reuse date formatters (438dc79)
- web: stop re-rendering the player page on unchanged state reports (438dc79)
- web: take controller buttons from the app instead of polling (438dc79)