Commit Graph
45 Commits
Author SHA1 Message Date
edde746 9bd5732f2b chore: clean up redundant comments 2026-05-01 05:02:26 +02:00
edde746 c5867861eb fix(playback): coalesce concurrent player init to fix MPV hang 2026-04-28 04:16:02 +02:00
edde746 5937e5c721 refactor: extract shared mixins and helpers to dedupe 2026-04-20 21:25:50 +02:00
edde746 1fd415ae31 feat(android): display switch delay
close #894
2026-04-20 17:34:54 +02:00
edde746 3da51f9d64 chore: pre-commit ci hook, dart format 2026-04-18 12:40:35 +02:00
edde746 1e62c6c756 feat: bandwidth limit modal on stream 500 2026-04-17 13:12:07 +02:00
edde746 ad8faab9ea fix: android video surface lifecycle management
close #771
2026-03-29 18:07:50 +02:00
edde746 2d37d37596 refactor: extract TrackManager, fix subtitle bugs
- Extract track lifecycle logic from VideoPlayerScreen (3248→2928 lines) into TrackManager
- Parse isDefault/isForced for subtitle tracks in parseTrackList
- Emit forced flag from ExoPlayer's emitTrackList
- Fix detectSubtitleMimeType failing on URLs with query params
- Add missing external_ ID prefix in ExoPlayer addSubtitleTrack
- Replace polling loop with stream in selectAndApplyTracks
- Handle play() failure in resumeAfterSubtitleLoad
- Handle addExternalSubtitles failure in onBackendSwitched
2026-03-20 03:32:32 +01:00
edde746 0100b2a2ea fix: preserve start position and subtitles in ExoPlayer→MPV fallback 2026-03-15 11:32:25 +01:00
edde746 0fc64cdf81 fix: catch seek PlatformException at source, remove coordinator
Catch COMMAND_FAILED/NOT_INITIALIZED in PlayerNative.seek() and
PlayerAndroid.seek() directly, preventing unhandled PlatformException
crashes on macOS app resume. Remove the ~200-line
_PendingSeekCoordinator system and revert all callsites to direct
player.seek(clampSeekPosition(...)). Keep seekable property/stream
and media controls gating. Add ExoPlayer seekable emission.
2026-03-09 07:21:36 +01:00
edde746 551bd83ffe fix: player disposed race condition 2026-03-04 14:37:51 +01:00
edde746 13b5d7bae8 feat: secondary subtitle tracks
close #625
2026-03-04 09:35:36 +01:00
edde746 1c31f0effa fix: request audio focus before player init guard 2026-03-02 23:12:00 +01:00
edde746 b193a23524 fix: video stuck on still frame after long pause
close #536
2026-02-25 08:17:14 +01:00
edde746 0159c18497 feat: discontinuous buffer ranges on timeline 2026-02-21 04:50:10 +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 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 b332e8e57a fix: play videos from sd card
close #323
2026-02-01 02:41:38 +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 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
edde746 ac3f7a0b1d fix: missing tracks on Windows 2025-12-09 16:19:44 +01:00
edde746 4d65607e59 refactor: deduplicate UI helpers & track handling 2025-12-07 15:54:24 +01:00
edde746 1d50763d9b fix: android subtitle font 2025-12-04 16:39:07 +01:00
edde746 252da585e3 fix: android track list parsing 2025-12-04 16:02:15 +01:00
edde746 8f817815e6 refactor: simplify file structure 2025-12-04 08:36:07 +01:00