edde746
726dfc6507
fix(android): finish the item when ExoPlayer never ends playback
...
media3 reports STUCK_PLAYING_NOT_ENDING when the player sits in STATE_READY
past the declared duration with no renderer ending. On a tunneled MTK decoder
the clock ran a full minute past the last frame behind a black screen, so the
item never completed: no Play Next, no auto-play, and a "playing" timeline the
server kept extrapolating past the item duration.
Treat that report as the end of the file when the rendered-frame counter has
stopped as well, which separates a finished file from a container that
under-declares its duration and is still painting. The terminal event is shaped
like the STATE_ENDED one and pins the timeline at the duration first, so the
completion flow cannot mistake it for a stream that died mid-file. Shorten the
detection window to media3's stuck-playing default, and clamp a backend
hand-off to just inside the media so a fallback can no longer resume MPV past
the last frame and park there without reporting it.
close #1673
2026-07-28 23:53:52 +02:00
..
2026-07-28 05:26:37 +02:00
2026-07-28 23:28:25 +02:00
2026-07-13 02:15:03 +02:00
2026-07-26 19:41:23 +02:00
2026-07-24 03:46:46 +02:00
2026-07-13 02:15:03 +02:00
2026-07-16 20:43:10 +02:00
2026-07-26 03:41:19 +02:00
2026-07-26 04:24:55 +02:00
2026-07-24 03:56:40 +02:00
2026-04-25 13:44:15 +02:00
2026-07-27 03:59:27 +02:00
2026-07-24 03:46:50 +02:00
2026-07-11 17:38:22 +02:00
2026-07-05 14:16:04 +02:00
2026-07-26 14:58:38 +02:00
2026-06-14 13:40:16 +02:00
2026-07-24 03:56:40 +02:00
2026-07-12 17:31:15 +02:00
2026-07-24 03:56:40 +02:00
2026-07-24 03:46:46 +02:00
2026-07-27 17:44:52 +02:00
2026-07-24 03:46:46 +02:00
2026-07-28 23:28:25 +02:00
2026-07-26 19:41:23 +02:00
2026-07-26 06:09:47 +02:00
2026-05-01 01:20:36 +02:00
2026-07-13 02:15:03 +02:00
2026-07-26 03:41:19 +02:00
2026-07-10 12:07:19 +02:00
2026-07-24 03:46:46 +02:00
2026-07-28 05:07:00 +02:00
2026-07-26 04:24:56 +02:00
2026-07-13 00:03:52 +02:00
2026-07-24 03:46:46 +02:00
2026-07-28 18:05:10 +02:00
2026-07-27 17:44:52 +02:00
2026-07-24 03:46:46 +02:00
2026-06-13 13:23:22 +02:00
2026-07-24 03:46:46 +02:00
2026-07-26 14:58:38 +02:00
2026-07-24 03:46:46 +02:00
2026-07-17 16:30:10 +02:00
2026-07-12 17:31:16 +02:00
2026-07-24 03:46:46 +02:00
2026-07-24 03:46:46 +02:00
2026-07-12 17:31:12 +02:00
2026-07-26 04:24:55 +02:00
2026-07-25 09:13:00 +02:00
2026-07-18 20:04:09 +02:00
2026-07-26 06:09:47 +02:00
2026-07-26 06:09:48 +02:00
2026-07-26 04:24:55 +02:00
2026-07-12 17:31:16 +02:00
2026-07-26 06:09:48 +02:00
2026-07-24 03:46:46 +02:00
2026-07-17 23:09:07 +02:00
2026-07-24 03:46:46 +02:00
2026-07-26 06:09:49 +02:00
2026-07-26 06:09:48 +02:00
2026-07-24 03:46:46 +02:00
2026-07-26 06:09:49 +02:00
2026-07-28 23:53:52 +02:00
2026-07-26 06:09:47 +02:00
2026-07-13 02:15:03 +02:00
2026-07-26 06:09:49 +02:00
2026-07-28 15:22:23 +02:00
2026-07-24 03:46:46 +02:00
2026-07-26 06:09:49 +02:00
2026-07-25 17:38:09 +02:00
2026-07-24 03:46:50 +02:00
2026-07-14 18:11:04 +02:00
2026-07-24 03:46:46 +02:00
2026-07-26 04:34:08 +02:00
2026-07-24 08:08:10 +02:00
2026-07-26 06:09:47 +02:00
2026-07-16 14:36:48 +02:00
2026-07-26 14:58:38 +02:00
2026-07-12 17:31:12 +02:00
2026-07-25 04:21:37 +02:00
2026-07-24 03:46:46 +02:00
2026-07-26 14:58:38 +02:00
2026-05-16 22:54:53 +02:00
2026-07-12 17:31:16 +02:00
2026-07-12 17:31:12 +02:00
2026-05-01 01:20:36 +02:00
2026-07-12 08:42:25 +02:00
2026-07-27 17:44:52 +02:00
2026-07-28 23:28:25 +02:00
2026-07-26 19:41:23 +02:00
2026-07-24 03:46:50 +02:00
2026-07-24 03:46:46 +02:00
2026-07-24 03:56:40 +02:00
2026-07-26 19:41:23 +02:00
2026-07-26 04:34:08 +02:00
2026-07-28 15:22:23 +02:00
2026-07-26 06:09:47 +02:00
2026-07-28 15:22:23 +02:00
2026-07-10 07:06:21 +02:00
2026-06-27 10:05:03 +02:00
2026-05-12 22:46:38 +02:00
2026-07-24 03:56:40 +02:00
2026-07-24 03:46:46 +02:00
2026-07-26 06:09:49 +02:00
2026-07-24 03:46:46 +02:00
2026-07-12 17:31:16 +02:00