v0.2.0
v0.2.0 — it brings its own FFmpeg, and starts on far more televisions
The app no longer depends on which FFmpeg your television happens to ship, and it starts on a much wider range of webOS releases than before.
If you used v0.2.0 or earlier: rotate your Plex token
The app's diagnostic log recorded a URL containing your Plex access token in full, written whenever an audio track was switched. Anyone holding that token can reach your Plex account and your media as you. The log file was readable by any process on the television, and this release's own notes asked people to send that file in when reporting a problem — so nothing had to go wrong at your end for this to matter.
Every release up to and including this one is affected. v0.2.1 and later are not.
What to do: open https://app.plex.tv/desktop/#!/settings/devices, remove this device, and sign in again on the television. That invalidates the old token. It costs you one QR scan.
What is fixed, and what is not: from v0.2.1 the token is never written, and every line the app's own logger emits passes a scrub on the way out, so the same mistake cannot recur through a different call site. The log still records your server's name, its address and what you have been watching — that is what it is for — so it is still not a file to post publicly.
What's new
- The package brings its own FFmpeg. Previously the app read your media files with the television's copy — a version that changes with the firmware, and whose contents cannot be determined from outside, so on any set but the developer's it was a guess. It now ships its own build (FFmpeg 9.0, demux and subtitles only; video and audio are still decoded by your television's hardware). Playback behaves the same on every television, and a problem you hit is one that can be reproduced.
- It starts on far more televisions. v0.1.0 could not launch at all past webOS 4.x — not "playback failed", but the dynamic loader refusing to start the process, because the app named libraries that exist only on 4.x. It resolves what it needs at run time now instead of demanding one exact version.
- Groundwork for televisions whose interface surface is not 1080p, and a good deal of internal simplification.
Fixed
- A latent black-screen bug. The app told SDL it was built against an older version than it was. Newer SDL rejects that and quietly hands back nothing, which would have left the interface opaque and video playing invisibly underneath it — sound, no picture, and nothing in the log.
- The diagnostic log was corrupting itself. Two parts of the app wrote to it with different ideas of where the end of the file was, so lines were overwritten and lost. It also has sane permissions now; it used to be world-readable.
Compatibility
- Plays video, verified by watching it — 2019 LG sets. One television, which reports platform release 4.10 (LG markets this generation as webOS 4.5).
- Starts, and nothing further is known — webOS 4.4.2 through 11.2.0. Checked against fourteen real firmware inventories. That grades whether the process starts and says nothing about whether video plays.
- Playback is not expected to work on webOS 5.0 and newer. On 5.0 LG removed the mechanism that puts decoded video on the hardware plane. The replacement is implemented in this release and has never run on such a set — nobody working on this owns one.
- Does not start — webOS 3.9.2 and older.
If you have a set in the middle two groups, tell us what happened. It working is as useful a report as it failing.
Known issues
- Playback on webOS 5.0 and newer is unproven and expected to fail. The app starts, signs in and browses there.
- Codec capability is asserted rather than probed. The app tells your server it can handle HEVC, 4K and 10-bit because the developer's television can. On a lower-end panel that is wrong, and so is the fallback.
Installing
Download com.beb.plxnative_0.2.0_arm.ipk and install it with the Homebrew Channel or dev-manager-desktop. You do not need a rooted TV.
Nothing in this distribution chain is signed, so this sha256 is what tells you the file you have is the file published here:
ef5983c8cd523187625b937f36fa0946145244f7cac4e902b499d9553e5d1968 com.beb.plxnative_0.2.0_arm.ipk
Compare it yourself — the ipk.sha256 asset on this release records a path rather than a bare filename, so sha256sum -c will not find your download. Two builds of this commit on one machine produce a byte-identical .ipk; it is not reproducible across machines, because the bundled FFmpeg records the directory it was built in, so a hash from your own rebuild will differ and that is not tampering.
This package bundles FFmpeg under LGPL-2.1-or-later and its complete corresponding source — the pristine upstream tarball and the exact configure invocation — is attached to this release. Installing and checking a download covers the rest, and exactly what was built, verified and shipped is in the technical audit for v0.2.0.