github iqui27/nuvio-native-legacy v1.1.0
v1.1.0 — the spotlight becomes a row, and the artwork gets its pixels back

latest releases: v2.0.8, v2.0.7-test.2, v2.0.7-test.1...
one month ago

Native C/SDL2 build for LG webOS and Samsung Tizen. 57 commits since v1.0.56.

The Home opens on the spotlight

The title at the top is now a row of its own: left/right walk ten titles, a counter says where you are, and a button opens the title page. Press down and the rows come back to where they have always been — the copy block moves with them, so the distance between the last line of text and the first row header is the same in both states.

Which titles the spotlight shows is yours to pick, in Settings › Home › Reorder rows: Automatic, Random from the catalog, or one specific row — pick "Continue watching" and the spotlight walks what you left unfinished.

Full-screen artwork at full resolution

The catalog stores one artwork url per title, sized for the card in a row. The spotlight draws 1920 px wide, so that art was being scaled up 1.5×. Measured with curl and fixed per source:

source stored spotlight now asks
TMDB w1280 — 1280×720 original — 3840×2160
Trakt /medium/ — 1280×720, 70 KB /full/ — 1920×1080, 155 KB
metahub 1920×1080 unchanged (medium/big/large/original are the same file)

An episode in Continue Watching shows that episode's still, not the show's generic art — episodes.metahub.space/<tt>/<season>/<episode>/original.jpg, measured at 1920×1080. Not every episode has one; when it does not, the title art takes over.

Three image quality presets

New in Settings › Posters and cards. What changes is how much source pixel each artwork carries for the same on-screen size, and the ceiling for full-screen art:

  • Low — art arrives at the drawn size, full-screen capped at 1280. Loads sooner, fits a 2016 set with little RAM.
  • Standard — what the app always did.
  • High — ~64% more pixel per artwork. Measured on the same screens: cards that decode at 352/576/832/1056 under Standard decode at 448/704/1056/1344 under High.

Also in 1.1

  • A schedule for every show you follow, on a vertical time axis, at zero extra network requests — TMDB already returned the next air date, synopsis, runtime and network in a body the app was downloading anyway.
  • Reminders that say what actually happens: neither webOS nor Tizen wakes a closed app, so the card shows up the next time you open it on that day. No push, no pretending.
  • Lists in the Library — Trakt lists, Simkl's five tracking states, Nuvio collections, and a search over Trakt's public lists that works without a Trakt account. Any list pins to the Library or becomes a Home row.
  • Audience charts on a series page, each labelled with what it is not: per-episode ratings ("Trakt ratings — not IMDb") and a retention curve that is not clamped at 100%, because one season here has an E2 with more markers than its E1.
  • Quotes and a production sheet from Wikiquote and Wikidata. Measured coverage: 11 of 14 films had usable quotes, 2 of 12 series.
  • In-app self-update with a progress bar on LG sets with the Homebrew Channel.
  • A Social tab that asks before it shows you to anyone, with "No" as the first focusable answer.
  • You can choose the source on Play, off by default.
  • IPTV portals (Stalker/Ministra) — channels land in the same TV guide, with the same EPG matching and CH+/- zapping. The playback link a portal hands out is never stored, and the MAC lives in a per-profile file, masked on screen and erased on sign out. It has never been tested against a real portal — I do not have one. The protocol is implemented end to end and it compiles; that is all I can claim.

Fixes worth naming

  • Switching profiles now actually rebuilds Continue Watching.
  • A live channel that freezes (opens, then stops delivering) is replaced after twelve seconds. The watchdog only ever noticed channels that failed to open.
  • Two Settings options — card corner radius and image memory — belonged to no category and were therefore never drawn, though they still took focus.
  • A crash when drawing a setting whose stored value fell outside its list. The value can come from disk, so an ajustes.txt from another version could take the app down.
  • The texture cache could leave the spotlight on a thumbnail for the whole session: the promotion to full size raised the ceiling before the re-decode was queued, and a full decode queue dropped the request silently.
  • Portuguese leaking into the English UI: month and genre on the Profile screen, the type label coming from Trakt, and the remote hints in Settings.

Downloads

  • space.nuvio.native.legacy_1.1.0_arm.ipk — LG webOS
  • space.nuvio.native.legacy_1.1.0_arm-highcache.ipk — LG webOS, 300 MB texture ceiling for sets with RAM to spare
  • NuvioTV-1.1.0-tizen.wgt — Samsung Tizen
  • NuvioTV-1.1.0-highcache-tizen.wgt — Samsung Tizen, same fixed ceiling

The high-cache builds are separate downloads on purpose: a bigger cache on a set that cannot afford it does not run slower, it gets killed. Settings shows a live graph of what the cache is doing, so you can tell which build your set wants.

One package, every LG generation. The .ipk above installs from webOS 3 (2016) through the 2024 sets. There is no separate webOS 3 download any more: SDL_CreateRGBSurfaceWithFormat (SDL 2.0.5) was the only one of this binary's 199 undefined symbols missing on older firmware, and a five-line shim built on two calls present since SDL 2.0.0 replaced it. Verified against webosbrew's retail firmware symbol dumps — webosbrew-ipk-verify -S -d -r ">=3,<4" returns All OK on this exact package, and >=2 passes too.

What that check proves is that it loads: every symbol it needs exists on those firmwares. It is not the same as someone watching something on a 2016 set. A tester ran the 1.0.x builds on a webOS 3.4.3 set and reported back that it works, and the bugs he found turned into four builds in two days — that is the strongest evidence this has, and it predates 1.1.

Don't miss a new nuvio-native-legacy release

NewReleases is sending notifications on new releases.