edde746
4f736c555b
fix: make PlexMetadata type/key/title nullable for folder items
...
Plex API returns Directory entries without type field, causing
TypeError crash in fromJson. Made fields nullable and migrated
callers to use mediaType enum and displayTitle getter instead
of raw string access.
2026-03-14 05:40:14 +01:00
edde746
3d30ea1342
fix(macos): reduce idle CPU when video player is paused
...
- Remove vulkan-swap-mode mailbox (continuous GPU rendering even when paused)
- End playback activity assertion on pause, restore on play
- Fix PerformanceStatsService persistent frame callback leak
2026-03-12 23:22:58 +01:00
Micah Morrison
cb0ed15c0c
Fix issue with always on top getting stuck
2026-03-11 15:00:17 -04:00
edde746
78052dc07f
fix: player stuck on skip credits with no next episode
...
close #678
2026-03-11 18:02:33 +01:00
edde746
d1bb99635a
feat: configurable intro/credits marker regex patterns
...
Add settings to customize regex patterns for matching intro and credits
markers in chapter titles, with the current hardcoded values as defaults.
Also reclassifies real markers with non-standard type strings against the
configured patterns.
2026-03-11 15:00:24 +01:00
edde746
82b0de9223
feat: display movie edition titles across all views
2026-03-09 16:16:37 +01:00
edde746
61e4bda616
fix: content strip text colors in light mode
...
close #659
2026-03-09 12:53:16 +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
5be7b43cb8
fix: improve content strip text visibility
...
close #656
2026-03-09 01:04:14 +01:00
edde746
7a1f677c75
fix: content strip lint warnings
2026-03-07 22:10:45 +01:00
edde746
0b1f64ef8a
refactor: simplify mobile player controls
...
close #641
2026-03-07 20:48:17 +01:00
edde746
c56e73eefe
feat: add content strip for dpad navigation
2026-03-07 20:17:28 +01:00
edde746
7cfa18e1e9
fix: remove redundant thumbnail popup during dpad timeline seeking
2026-03-07 18:29:52 +01:00
edde746
06034bb8e7
feat: scale queue items for tablet screens
...
close #644
2026-03-07 17:06:13 +01:00
edde746
1318c54c0c
feat: improve performance overlay layout and add decoder details
2026-03-06 19:25:41 +01:00
edde746
c9a1bc97c4
fix: remove dead state paths and restore track hotkeys
2026-03-06 11:50:45 +01:00
edde746
c1e2bc36ea
refactor: share Apple MPV core and media helpers
2026-03-06 10:16:33 +01:00
edde746
c785ce1f88
fix: queue sheet image loading priority with itemExtent
2026-03-05 16:11:14 +01:00
edde746
317d5dbdd9
feat: DV Profile 7→8.1 RPU conversion via libdovi
...
Convert Dolby Vision Profile 7 RPU NALUs to Profile 8.1 using libdovi
native bridge, preserving dynamic tone mapping on devices with DV8
decoders. Falls back to HEVC stripping when no DV8 decoder is present.
- Add JNI bridge (dovi_bridge.cpp) wrapping libdovi's RPU converter
- Download prebuilt libdovi from edde746/libdovi-builds releases
- DoviConvertingTrackOutput: DV81 mode converts RPUs, HEVC_STRIP strips
- Retry logic: if native DV7 decoding fails, auto-retry with conversion
- Performance overlay shows active DV conversion mode
2026-03-05 11:11:57 +01:00
edde746
13b5d7bae8
feat: secondary subtitle tracks
...
close #625
2026-03-04 09:35:36 +01:00
edde746
3a76754af9
feat: custom GLSL shader import
...
close #624
2026-03-04 08:47:40 +01:00
edde746
cd2ab9d9cd
refactor: deduplicate shared patterns, replace hardcoded colors
2026-03-03 22:43:00 +01:00
edde746
ebf2d1e516
fix: shorten nav labels
...
close #612
2026-03-03 12:13:43 +01:00
edde746
4bce668df6
fix: asymmetric divider in track sheet on landscape
2026-03-03 12:04:03 +01:00
edde746
1629801074
feat: add swipe-up content strip for mobile video controls
2026-03-03 11:03:31 +01:00
edde746
7001032e51
feat: combine audio & subtitle track sheets into one
2026-03-03 07:16:45 +01:00
edde746
8baa84c06f
fix: use player.state.track for selected subtitle check
2026-03-02 19:25:13 +01:00
edde746
94395feaba
feat: implement sub-visibility toggle
...
Closes #597
2026-03-02 19:07:56 +01:00
edde746
5ab6af1b02
feat: respect system 24h time format setting
...
Closes #605
2026-03-02 18:19:52 +01:00
edde746
8d3f448fdf
feat(macos): add picture-in-picture support
2026-03-02 18:19:36 +01:00
edde746
a008f86ee2
feat(ios): add picture-in-picture support
...
close #44
2026-03-02 14:06:11 +01:00
edde746
8a5f1ddea9
feat: add audio normalization toggle (MPV loudnorm filter)
2026-03-01 02:49:48 +01:00
edde746
b78bc3e869
fix: only show timeline thumbnail on direct timeline interaction
2026-02-28 19:48:46 +01:00
edde746
9f81671603
fix: suppress repeated android log spam from MPV surface and stats polling
...
- Deduplicate android-surface-size updates with lastSurfaceSize cache
- Short-circuit ensureFlutterOverlayOnTop after initial application
- Remove deprecated cache-used property query
- Skip unavailable MPV properties on Android (display-fps, HDR metadata)
- Gate video-dependent stats queries behind hasVideo check
2026-02-28 15:00:29 +01:00
edde746
18614022c0
feat: auto-dismiss skip segment buttons
...
closes #584
2026-02-27 22:13:03 +01:00
edde746
00667fe8b8
fix: add const constructors and remove unused imports
2026-02-27 15:43:34 +01:00
edde746
edb285a279
feat: cache BIF file for instant preview thumbnails
...
close #565
2026-02-27 15:30:29 +01:00
edde746
4588457319
refactor: consolidate files
2026-02-26 13:41:51 +01:00
edde746
98776b40f5
fix: show sync controls as compact top bar
...
close #548
2026-02-26 03:41:19 +01:00
edde746
bf3f5282f2
fix: skip intro button staying on screen
...
close #550
2026-02-25 23:03:07 +01:00
edde746
88d7e2d319
feat: add audio passthrough toggle for desktop
2026-02-25 16:38:58 +01:00
edde746
45e792e3ab
fix: ESC exits fullscreen without closing video player
...
close #533
2026-02-25 07:17:24 +01:00
edde746
e0489b68d5
fix: use theme colors in video control sheets for light mode support
2026-02-24 23:40:08 +01:00
edde746
d1d5b808bb
fix: reduce widget tree depth
2026-02-24 02:40:04 +01:00
edde746
edbe2a06be
refactor: deduplicate sheet, key handler, and service patterns
2026-02-23 10:25:57 +01:00
edde746
3289ce0fbc
feat: fallback skip markers from chapter titles
2026-02-22 04:34:36 +01:00
edde746
0159c18497
feat: discontinuous buffer ranges on timeline
2026-02-21 04:50:10 +01:00
edde746
3bfc24bf9b
feat: persist ambient lighting and make it mutually exclusive with shaders
...
close #499
2026-02-20 22:33:00 +01:00
edde746
bfe7d54dcf
feat: add kBlurArtwork mode for store screenshots
...
Blurs all artwork and rotates vowels in metadata when enabled.
2026-02-19 05:45:46 +01:00
edde746
9e7c66f66a
refactor: migrate bottom sheets to overlay system
2026-02-19 00:18:35 +01:00