edde746
0fb0c7fb4c
perf(android): cap engine memory pools on low-RAM devices
...
Flutter's imageCache budget only bounds decoded CPU bitmaps: Skia's GPU
resource cache is sized from the surface area (hundreds of MB on a
4K-composited TV) and the Dart old gen defaults to a large fraction of
physical RAM. Both drive LMK kills on 2GB boxes. Cap them via engine
shell args on hardware matching the reduced-tier triple.
Ref #1349
2026-07-05 09:10:27 +02:00
edde746
4a43ae2771
fix(android): auto-recover frozen video after pause/resume on stalling decoders
...
Some TV SoCs (Amlogic Mi Box class) stall the MediaCodec output path
after pause/resume: audio and the clock keep advancing but the picture
freezes until a seek flushes the codec. Arm a watchdog on every
transition to playing with a warm decoder; if rendered frames stop
advancing while the position moves, recover with a 250ms seek-back
(same-position seeks are short-circuited without a codec flush),
capped per session and logged for field diagnosis.
close #1454
2026-07-05 09:08:29 +02:00
edde746
7b1c150e18
feat(android): enable impeller on capable TV devices
...
Impeller was blanket-disabled on TV in e759dafa as a precaution when the
Tensor/NVIDIA fallbacks landed, and #749 (API 30 Fire TV Cube freezing
until the Skia build) validated it. Flutter has since deprecated the
Impeller opt-out, so start walking the disable back where the hardware
can take it: TV devices on Android 12+ with a Vulkan 1.1 driver use
Impeller, while Fire OS (modern API levels on GPUs whose drivers can't
back it up), pre-12 boxes, and the existing NVIDIA/Huawei/e-waste quirks
stay on Skia. Tag Sentry events with the active renderer so TV
regressions are attributable while this rolls out.
2026-07-05 02:28:51 +02:00
edde746
8fe66f6e36
fix(android): keep the activity alive when a BT keyboard connects
...
close #1455
2026-07-04 19:54:19 +02:00
edde746
dd09e421bf
fix(android): force codec re-init on TV surface changes to recover video after screensaver
...
close #1481
2026-07-04 19:25:56 +02:00
edde746
50261398bf
fix(android): serialize mpv writes to restore fallback ordering
...
close #1482
2026-07-04 19:15:34 +02:00
edde746
d5df426ab6
build(libass): bump to 0.18.2
2026-07-02 11:41:24 +02:00
edde746
28e6e349b3
fix(android): restore ExoPlayer audio for tunneled decoded PCM
2026-06-30 18:58:08 +02:00
edde746
ea86ce5a4b
fix(android): preserve bitmap subtitle aspect
...
close #1444
2026-06-30 02:31:18 +02:00
edde746
6c96830033
fix(android): never-drop multi-page subtitle atlas
2026-06-29 02:31:14 +02:00
edde746
ec1473af5e
fix(android): tile oversized subtitle images so the atlas never drops them
2026-06-28 21:49:19 +02:00
edde746
79b75483bd
style: fix CI formatting
2026-06-27 10:36:21 +02:00
edde746
120749e442
fix(android): regenerate libass prebuilt archive
2026-06-27 06:43:37 +02:00
edde746
c3ca6e4c49
fix: clear subtitle overlays when disabling subtitles
...
close #1387
2026-06-26 10:09:45 +02:00
edde746
e90835c234
fix(ci): restore sanity checks
2026-06-25 07:21:16 +02:00
edde746
21c4ab430e
feat(android): tune frame rate and subtitle rendering
2026-06-24 01:34:03 +02:00
edde746
c9dc15b1d8
fix(android): improve libass frame timing
2026-06-24 01:26:46 +02:00
edde746
84b9eac09b
fix(ci): restore sanity checks
2026-06-16 22:43:56 +02:00
edde746
39788ab64a
fix(android): guard missing HDR capabilities
2026-06-16 22:00:19 +02:00
edde746
618251b8eb
fix(player): attach external subtitles during open
2026-06-15 17:21:08 +02:00
edde746
8198ea9522
fix(android): wire ExoPlayer passthrough control
2026-06-15 13:31:42 +02:00
edde746
e069d30555
fix(android): block direct audio without passthrough
2026-06-15 13:28:54 +02:00
edde746
6292685b5d
fix(player): fetch Android mpv stats off main thread
2026-06-15 12:04:58 +02:00
edde746
7195702242
fix(player): repair Plex transcode seeking
...
close #1341
2026-06-14 23:39:05 +02:00
edde746
c404589382
style(native): fix formatting
2026-06-14 14:04:52 +02:00
edde746
a861a4110f
feat(player): add mobile edge adjustments
2026-06-14 13:40:16 +02:00
edde746
edd0618e64
fix: harden playback and discover state
2026-06-14 09:44:04 +02:00
edde746
e1c0df3bd7
fix(ci): resolve sanity check failures
2026-06-14 06:55:58 +02:00
edde746
349b5b0513
fix(tv): stop playback behind menu
2026-06-14 06:27:00 +02:00
edde746
3ad049cb28
fix(player): clear stale mpv fallback switch
2026-06-14 00:27:41 +02:00
edde746
f3cb508649
fix(player): wait for mpv subtitles after load
...
close #1331
2026-06-13 23:52:19 +02:00
edde746
c39b5a5cf1
feat(player): show cache limit in perf overlay
2026-06-13 21:21:15 +02:00
edde746
dc769bda41
fix(android): fall back when cronet init fails
2026-06-13 13:23:41 +02:00
edde746
bd0a0c5d6b
feat(android): loudness normalization for exoplayer via audiofx
...
close #1289
2026-06-12 12:38:57 +02:00
edde746
2b34f4a9d7
perf(tv): reduced visual-effects tier for low-end devices
2026-06-12 06:30:38 +02:00
edde746
a03d30fa45
fix(android): eliminate per-byte buffer ops in DV bitstream sanitizer
2026-06-12 04:05:35 +02:00
edde746
97ba02f45e
fix: flashbang
2026-06-12 02:40:42 +02:00
edde746
c89c88647e
fix(android): package libmpv's NDK r29 libc++_shared.so deterministically
2026-06-12 01:51:51 +02:00
edde746
1adb89c6b3
feat(android): frame-accurate libass pipeline + optimized native core
2026-06-12 01:45:19 +02:00
edde746
7ec1c2ebdc
fix(player): anchor libass overlay to video rect for correct zoom/cover positioning
2026-06-11 12:49:21 +02:00
edde746
7ec062deaf
fix(player): pinch zoom flicker from per-tick relayout and filter churn
...
close #1261
2026-06-11 12:29:34 +02:00
edde746
38afdab2e4
fix: support mx player variants
...
close #1304
2026-06-11 08:35:19 +02:00
edde746
804bea8e9a
fix(android): keep only the active dynamic HDR metadata in DV bitstreams
...
close #1296
2026-06-10 15:39:51 +02:00
edde746
cd9498abb8
refactor(player): centralize playback opening
...
close #1280
2026-06-10 02:26:26 +02:00
edde746
38868e0078
fix: use device name for companion remote
...
close #1256
2026-06-07 12:58:13 +02:00
edde746
08491511e9
fix(video): prevent play next EOF loop
...
close #1228
2026-06-02 15:52:14 +02:00
edde746
f8658027b8
fix(android): guard display HDR mode API
...
close #1215
2026-06-01 02:46:37 +02:00
edde746
d5c8778074
fix: harden reconnect and playback regressions
2026-05-31 20:33:38 +02:00
edde746
d9135e0d25
fix(player): log display HDR capabilities
2026-05-31 08:48:21 +02:00
edde746
6438b444bf
fix(player): clarify Dolby Vision playback logging
2026-05-31 06:56:18 +02:00