edde746
96f7bd431c
fix: ExoPlayer logs never reaching Dart log output
...
setLogLevel silently no-oped because initialized was false at call time.
emitLog gated all levels behind debugLoggingEnabled which was never set.
2026-03-03 23:23:06 +01:00
edde746
1b673743b2
fix: handle int end-file reason from mpv on Windows/Linux
2026-03-03 19:00:32 +01:00
edde746
1c31f0effa
fix: request audio focus before player init guard
2026-03-02 23:12:00 +01:00
edde746
94395feaba
feat: implement sub-visibility toggle
...
Closes #597
2026-03-02 19:07:56 +01:00
edde746
a62a01b9c3
feat: bridge ExoPlayer logs to Dart + device info in logs screen
...
ExoPlayerCore emitLog() forwards native diagnostics (init, tracks,
tunneling, watchdog, errors, framerate, audio focus) to Dart via the
existing log-message event when debug logging is enabled. URIs are
redacted before forwarding. setLogLevel method channel wires into the
existing debug toggle in video_player_screen.
Logs screen now shows a device info header (app version, OS, model,
TV mode) and includes it in copy/upload output.
2026-03-01 04:59:35 +01:00
edde746
d0f2122944
feat: add tunneled playback setting + frame watchdog for HDR black screen
...
Adds a user-facing toggle for MediaCodec tunneling (Android/ExoPlayer)
and a rendered-frame watchdog that auto-falls back to MPV when ExoPlayer
produces 0 video frames after 8 seconds of audio playback.
2026-03-01 04:02:36 +01:00
edde746
602982d426
fix: remove low memory warnings during playback
...
Closes #576
2026-02-27 08:53:38 +01:00
edde746
7472e3a2f7
fix: broken imports
2026-02-26 14:57:37 +01:00
edde746
4588457319
refactor: consolidate files
2026-02-26 13:41:51 +01:00
edde746
e489a97847
fix: throttle demuxer-cache-time updates
2026-02-26 13:12:25 +01:00
edde746
a56ef0e3ca
fix: throttle cache state parsing
2026-02-26 12:28:42 +01:00
edde746
a5fa8a4c99
fix: don't clear buffer state on playback restart
2026-02-26 11:55:45 +01:00
edde746
b193a23524
fix: video stuck on still frame after long pause
...
close #536
2026-02-25 08:17:14 +01:00
edde746
d1d5b808bb
fix: reduce widget tree depth
2026-02-24 02:40:04 +01:00
edde746
2276750704
fix: memory-aware buffer limits
2026-02-24 00:56:09 +01:00
edde746
8f50da4a75
fix: resolve all dart analyze warnings
...
- Migrate RadioListTile to RadioGroup API (Flutter 3.32+)
- Guard BuildContext usage across async gaps
- Use const BorderRadius.all / EdgeInsets.all constructors
- Extract nested ternaries into helpers
- Prefer .first over [0], ??= over if-null assignment
- Prefix unused FocusNode params with _
- Add library directive for dangling doc comments
2026-02-23 13:50:56 +01:00
edde746
26ff55e005
fix(android): auto buffer size to prevent OOM
2026-02-23 05:42:04 +01:00
edde746
0159c18497
feat: discontinuous buffer ranges on timeline
2026-02-21 04:50:10 +01:00
edde746
7c651eb61f
fix: cap ExoPlayer buffer size
2026-02-18 21:17:50 +01:00
edde746
8d5b5d2e0c
fix: guard against post-disposal stream controller access
2026-02-18 09:20:48 +01:00
edde746
2bc2c0a0ec
feat: use FlTextureGL for Linux mpv video rendering
2026-02-17 08:55:29 +01:00
edde746
c98add8065
fix: resolve UI freezes during video playback on Steam Deck
...
- Default MPV native log level to "warn" instead of "v" (Linux/Windows),
add setLogLevel method channel to raise it when debug logging is enabled
- Coalesce MPV render requests via atomic compare_exchange on needs_redraw_
- Clear redraw flag before render so new redraws queue during current frame
2026-02-17 03:11:52 +01:00
edde746
29f5dc00c4
feat: populate audio output device menu and group by backend
2026-02-16 21:56:22 +01:00
edde746
a61fca0588
perf: compact [propId, value] wire format for property events
2026-02-16 15:40:52 +01:00
edde746
eaad505d96
fix: reduce main-thread pressure during playback
2026-02-15 18:35:51 +01:00
edde746
04438c8e45
refactor: code quality & format
2026-02-15 04:07:09 +01:00
edde746
b3ff48feca
fix(tv): live playback and timeline keepalive
...
Disable MKV Cues seeking for live streams, fix timeline params.
2026-02-14 03:33:58 +01:00
edde746
2de92e660d
feat: adjustable subtitle position
...
close #426
2026-02-09 21:22:19 +01:00
edde746
3d255f9920
fix(exoplayer): apply subtitle styling
2026-02-06 05:46:07 +01:00
edde746
b332e8e57a
fix: play videos from sd card
...
close #323
2026-02-01 02:41:38 +01:00
edde746
328b978ade
fix: exoplayer pip
2026-01-25 03:49:22 +01:00
edde746
54e8e0c621
refactor: abstract player & deduplicate
2026-01-24 04:06:58 +01:00
edde746
3a2f2c9c69
fix: performance overlay for exoplayer
2026-01-23 19:11:46 +01:00
edde746
943f7dab08
feat: exoplayer
2026-01-23 18:29:35 +01:00
edde746
0dbe9e99d4
fix: show black background until first video frame renders
2026-01-22 15:20:08 +01:00
edde746
09d79417fb
fix: Android audio focus handling
...
close #243
2026-01-15 00:11:45 +01:00
edde746
d2eaadb07d
Merge branch 'fix/external-subs-blackscreen'
2026-01-11 16:06:34 +01:00
edde746
cffef8671e
fix: black screen with external subtitles
2026-01-11 12:59:25 +01:00
edde746
8e5b9de471
feat: match content frame rate
2026-01-09 14:16:09 +01:00
edde746
562b54d1cb
fix(linux): GL threading, state management, and animation fixes
2026-01-05 19:40:04 +01:00
edde746
1191d8a438
refactor: format
2026-01-01 22:06:36 +01:00
edde746
8b89529ac8
fix(player): preserve subtitles off across episodes
2025-12-30 20:11:16 +01:00
edde746
8b3b8ad596
fix(player): harden playback initialization against crashes
2025-12-29 20:47:35 +01:00
edde746
95436529c6
fix: observe speed property
...
close #193
2025-12-26 06:23:44 +01:00
edde746
47cb3f2614
fix: pass headers to mpv
2025-12-23 19:54:05 +01:00
edde746
e252532988
feat: better pre-video loading indicator
2025-12-22 20:12:26 +01:00
edde746
14f0e95a3d
fix: mpv logs to app logger
2025-12-20 05:02:20 +01:00
edde746
e11ebca370
fix: missing subtitle characters
...
close #178
2025-12-19 13:19:57 +01:00
edde746
3c89d0eba8
refactor: update formatting
2025-12-15 02:29:03 +01:00
edde746
fb17600bb0
refactor: consolidate
2025-12-15 01:16:22 +01:00