edde746
e6c1923b0e
refactor(exoplayer): drop duplicated mpv box-fit translation
2026-04-21 18:23:46 +02:00
edde746
839465b7f2
feat(exoplayer): box-fit modes (letterbox/cover/stretch)
2026-04-21 18:17:25 +02:00
edde746
48ba923f47
chore: bump mpvkit and libmpv-android
2026-04-21 10:39:24 +02:00
edde746
1fd415ae31
feat(android): display switch delay
...
close #894
2026-04-20 17:34:54 +02:00
edde746
65e19706f8
fix(exoplayer): external sub attach, non-ass render
...
close #895
2026-04-20 13:14:32 +02:00
edde746
f96342bd81
chore: bump libass to fp-3
...
close #893
2026-04-20 11:55:21 +02:00
edde746
81bac6ee9b
fix(exoplayer): libass performance
2026-04-19 23:01:40 +02:00
edde746
8b34307975
fix: re-select audio on renderer capabilities change
...
close #889
2026-04-18 18:36:44 +02:00
edde746
91057c12a4
feat: bold/italic subtitle toggles
...
close #883
2026-04-17 15:03:23 +02:00
edde746
1e62c6c756
feat: bandwidth limit modal on stream 500
2026-04-17 13:12:07 +02:00
edde746
dec2e1c9fc
fix: add media3 hls dependency
...
close #881
2026-04-17 04:42:46 +02:00
edde746
a60e1e7f42
feat: ExoPlayer audio-delay and sub-delay support
...
close #869
2026-04-16 06:44:46 +02:00
edde746
59346f4b67
fix: restore playWhenReady after renderer recreation
2026-04-16 03:42:46 +02:00
edde746
caa70dd460
fix: remove camera permission and hasCamera check
2026-04-15 12:01:55 +02:00
edde746
a55650bc40
fix: skip QR scanner on devices without cameras
2026-04-14 06:53:51 +02:00
edde746
4322ffc6e5
fix: disable android tv pip lifecycle regressions
2026-04-09 06:39:17 +02:00
edde746
603b5b5105
fix: pip aspect ratio clamp values outside android limits
2026-04-07 07:35:03 +02:00
edde746
5880451401
fix: try DV conversion before MPV fallback on decoder hang
2026-04-04 00:19:10 +02:00
edde746
51a49cfca3
fix: disable Impeller on Huawei/HONOR devices
2026-03-31 14:16:01 +02:00
edde746
2c12a07257
fix: reuse AudioTrack across seeks, reduce PCM buffer
2026-03-31 12:39:10 +02:00
edde746
8eb716505d
fix: mpv dispose ANR on main thread
2026-03-30 21:42:11 +02:00
edde746
ad8faab9ea
fix: android video surface lifecycle management
...
close #771
2026-03-29 18:07:50 +02:00
edde746
3306a28892
fix: isolate libdovi from JVM heap, reuse DV buffers
2026-03-28 17:38:11 +01:00
edde746
8ad1cb988f
fix: detach mpv surface before view removal in dispose
2026-03-25 07:25:32 +01:00
edde746
23043c61f4
fix: Tensor SoC detection for internal model IDs
2026-03-25 04:15:34 +01:00
edde746
9bd2774820
fix: race conditions in mpv dispose and track manager, add debug fallback trigger
2026-03-23 03:48:48 +01:00
edde746
e759dafa87
fix: disable impeller on Tensor/NVIDIA GPUs
2026-03-22 14:35:42 +01:00
edde746
48e57fd375
fix: match content frame rate
...
close #736
2026-03-22 08:12:16 +01:00
edde746
4b05ed79ea
fix: bump libmpv-android to v1.0.6
2026-03-22 04:59:31 +01:00
edde746
4365e70a78
fix(android): libmpv failed init reinit
2026-03-21 16:51:25 +01:00
edde746
1980ce92d5
fix: pip aspect ratio after exoplayer→mpv fallback
2026-03-21 09:19:21 +01:00
edde746
d355e07e10
refactor: switch to libmpv-android fork, fix ANR and track selection
2026-03-21 08:53:08 +01:00
edde746
82f0d46acc
fix: update libass
2026-03-20 09:07:17 +01: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
fbf6fc988b
chore: update libass-android
2026-03-19 19:52:05 +01:00
edde746
e096a4ccb8
fix: use direct TrackGroup refs for track selection, clear stale overrides
2026-03-19 18:58:07 +01:00
edde746
13604cca01
fix: defer nativeSurfaceChanged out of layout pass
2026-03-18 21:13:57 +01:00
edde746
fb4f17a898
feat: support MKV ContentCompAlgo 0 (zlib) in ExoPlayer
2026-03-18 08:52:14 +01:00
edde746
ad0623334c
feat: approximate seeking for MKV files without Cues
2026-03-18 08:52:14 +01:00
edde746
3ea3455772
fix: prevent SurfaceControl use-after-free
...
Synchronously null surface fields in dispose() before deferred view
removal, add session generation counter to cancel stale MPV fallbacks,
and use postAtFrontOfQueue for defense-in-depth message ordering.
2026-03-16 06:15:12 +01:00
edde746
ff5cf06e60
chore: remove HttpTimingTransferListener debug logging
2026-03-15 22:47:51 +01:00
edde746
9798486724
chore: bump cronet
2026-03-15 22:38:06 +01:00
edde746
af0de5c0a9
fix: switch from OkHttp to Cronet
2026-03-15 22:00:51 +01:00
edde746
bf464b257d
fix: log full exception chain on ExoPlayer errors
2026-03-15 11:38:07 +01:00
edde746
0100b2a2ea
fix: preserve start position and subtitles in ExoPlayer→MPV fallback
2026-03-15 11:32:25 +01:00
edde746
2427a55901
fix: dispatch EventChannel calls to main thread
2026-03-15 03:11:23 +01:00
edde746
cfb8bf04d6
fix: reduce remote playback startup latency
...
- Lower OkHttp readTimeout from 30s to 10s so stalled Range requests retry faster
- Reduce bufferForPlaybackMs from 2500 to 1000 for quicker playback start
- Add HTTP transfer timing logs (TTFB, bytes, duration) to diagnose startup delays
2026-03-14 12:15:53 +01:00
edde746
e13b16f13c
fix(android): mpv boolean NPE on dispose
2026-03-14 05:01:39 +01:00
edde746
d01628a262
fix(android): use OkHttp connection pooling to prevent high-bitrate stutter
...
Replace DefaultHttpDataSource with OkHttpDataSource for TCP connection
reuse on buffer refill. Increase buffer sizes for devices with >=1GB RAM.
2026-03-13 17:23:06 +01:00
edde746
c6fa6afa9b
fix: android thread safety
...
- ExoPlayerPlugin: move all MPV JNI calls off main thread via runOnExecutor
- WatchNextPlugin: run ContentProvider ops on IO executor with error handling
- MpvPlayerCore: guard executor methods against dispose race (RejectedExecutionException)
- MainActivity: fix PiP null engine NPE with safe flutterEngine?.let
2026-03-12 03:34:32 +01:00