Files
OrbitTv/docs/VERIFICATION-0.99.15.md
pauljdandClaude Opus 5.5 0e16a0effe
pauljd/davidson-ci: Davidson CI / quality (push) Failing after 1m47s
pauljd/davidson-ci: Davidson CI / ai-review (push) Failing after 1m31s
Record Paul's on-screen confirmation of the Beerus playback test
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-11-04 15:24:13 +00:00

6.1 KiB
Raw Permalink Blame History

Orbit TV 0.99.15: hand-run playback test (Beerus)

Paul approved building this on 4 November 2026 at 14:48. Installing it needs its own approval. It adds a test that plays one chosen episode in Orbit's existing Media3 player, without making any booking. Scheduling, plans, cursors, pools and presentation are untouched.

What's in it

  • PlaybackTestActivity: a separate, non-exported screen. It opens only when MainActivity is launched by hand with --es orbit_play_test <Emby episode id>, an id-shaped value.
    • Orbit itself goes to the background, as it would for any other app, so its channel and picture players stop.
    • Orbit comes back as it was when the test ends.
  • The test:
    • It restores the saved connection without signing in again.
    • It prepares the episode with the same direct-play request Orbit uses for channels.
    • It plays it in the same EmbyPlaybackDialog and player.
    • It asks for subtitles exactly as Orbit does with its subtitles setting on: English where a track exists.
    • It ends by itself after 3 minutes, or on Back, or at the end of the file.
    • Its session ends with detach, never sign-out, so Orbit's saved connection carries on.
  • Isolation:
    • Scheduler: the test never calls it or the schedule store.
    • Emby: a new reportPlayback = false option on the player dialog means the test reports nothing to Emby, so no progress, resume point or watched state is recorded. Every other caller keeps the default, true, and is unchanged.
    • Diagnostics: a new onPlayer callback hands the test the player for its own listener. It's null for every other caller.
  • Log (tag OrbitPlayTest; formats, language codes and counts only, never a title, path or address):
    • when the test starts;
    • the time to ready;
    • the selected video format and size;
    • the selected audio format, language and channels;
    • every subtitle track, with format, language, whether it's supported and whether it's selected;
    • the first subtitle line's position;
    • the number of subtitle updates;
    • any player errors;
    • a final summary with how the test ended.
  • Version: 0.99.15 (versionCode 145).

Checks before install

  • 443 unit tests pass (2 skipped: hand-run replays that need input files). Lint has no errors.
  • Three new tests in PlaybackTestTest:
    • Labels allow only a language code or a MIME type. Paths, URLs, api_key values, display names and long strings become "unknown".
    • The summary holds formats and counts only.
    • English is chosen the way Orbit chooses it.
  • Booking fingerprints: the four-week replay of all 30 channels on 0.99.15 is identical to 0.99.14 on every channel (docs/replays/replay-fingerprints-0.99.15.txt).

Running it (after approval, with the TV idle and Paul watching)

  1. Snapshot as usual, then install.
  2. Launch with adb shell "am start -n tv.orbit.classic/.MainActivity --es orbit_play_test 8016755". That's Beerus episode 1 in copy 8016753, and the whole command is quoted.
  3. The log checks:
    • the picture: video/avc 1920x1080;
    • Japanese audio: audio/mp4a-latm jpn 2ch;
    • English subtitles selected;
    • subtitle updates above zero;
    • no errors.
  4. Paul's eyes: whether the English subtitles show on screen and read well. That's actual rendering, which the log can't show, and screenshots are blocked by the app's secure flag.
  5. Afterwards: check that plans and cursors are unchanged, and that Orbit is back to normal.

Known, by design: with Orbit's own subtitles setting off, the default, a Beerus booking wouldn't show subtitles. The test uses the setting-on choice. The premiere proposal covers how bookings should handle this.

Rollback

Install 0.99.14. Nothing is saved by this change.

Installation and test record (4 November 2026, 15:16 GMT)

Approved by Paul at 15:15. Nothing was playing; the box was in its developer settings.

  • Snapshot and rollback:
    • All 191 schedule-folder files and the settings file were copied off the box first, to install-0.99.15-20261104-151533.
    • A rollback copy is on the box in no_backup/schedule-rollback-0.99.14.
    • The 0.99.14 APK is in outputs/revision-0.99.14.
  • Install: the box reports versionCode 145, 0.99.15-playback-test.
  • Test: episode 1 of copy 8016753, Emby 8016755, was started at 15:16:12 and ended by itself after 3 minutes. Log: docs/replays/beerus-playtest-log-0.99.15.txt.
Check Result
Picture video/avc 1920×1080, first frame rendered
Sound AAC, Japanese ("ja"), 2 channels, 48 kHz
Subtitle tracks found 4: English (embedded ASS), Portuguese, Spanish, and the external English SRT
Subtitle selected English, by Orbit's own rule
Subtitle lines produced 32 updates; the first at 15.1 s into the episode
Time to ready 15.7 s
Player errors 0
  • On-screen rendering: whether the subtitles show and read well on the TV is Paul's check. The log shows only that they were selected and produced.
  • After the test: Orbit came back to its main screen and resumed normally (MainActivity in front, audio playing). All 30 channels topped up with added=0 and clashes=0, with no player, decoder or crash errors.
  • Bookings, cursors and presentation keys:
    • 122 files are byte-identical.
    • The changed plans only dropped programmes that ended more than 24 hours ago, the daily trim. Every remaining entry and key is identical, and every plan cursor is the same.
    • 33 aired places moved, each to the latest programme of its show already started (about 40 minutes passed since the last snapshot).
    • Shuffle decks: this release leaves the code that builds them untouched.
  • Settings: Orbit's settings file is byte-identical, so the global subtitle setting is unchanged.
  • Emby viewing history and resume points: the test reports nothing to Emby (reportPlayback = false, under test). This wasn't read back from the Emby server.
  • Local notes: the player's own track note (playback-notes.txt, local diagnostics) gained two lines for item 8016755: video and audio formats only.
  • On-screen check (Paul, 15:17): "coming through good on video, audio and subs". Picture, Japanese audio and English subtitle rendering are confirmed on the TV.