Kacper Michajłow
e27ad5760c
avformat/hls: rebase seek discard threshold to each playlist's DTS baseline
...
After a seek, hls_read_packet drops packets until each playlist reaches
seek_timestamp. That threshold lives on c->first_timestamp's baseline,
i.e. the DTS of whichever stream produced the very first packet. Streams
can have different DTS baselines though. So comparing one stream's
threshold against another stream's DTS is wrong. A stream whose first
keyframe precedes the global baseline gets its segment keyframe dropped
and resumes a segment (or more) late.
Track the first DTS per playlist and rebase the threshold onto each
playlist's own baseline. Since HLS segments are presentation-aligned
across renditions, every stream then resumes at the same presentation
time. seek_timestamp keeps its meaning on the global timeline, only the
per-playlist comparison value is translated.
This fixes playlists that would be unable to play from the start, and
instead skip one or more segments, before data is output.
Signed-off-by: Kacper Michajłow <kasper93@gmail.com >
2026-06-23 20:40:28 +02:00
..
2026-06-11 14:06:20 +00:00
2026-06-11 14:06:20 +00:00
2026-06-11 14:06:20 +00:00
2026-06-11 14:06:20 +00:00
2020-11-07 23:43:26 +10:00
2020-11-07 23:43:26 +10:00
2024-03-16 19:19:42 +01:00
2024-03-16 19:19:42 +01:00
2019-12-21 11:57:28 -03:00
2026-05-16 13:55:22 -03:00
2015-04-22 14:16:35 +02:00
2024-03-16 19:19:42 +01:00
2024-03-16 19:19:42 +01:00
2024-03-16 19:19:42 +01:00
2024-03-16 19:19:42 +01:00
2024-03-16 19:19:42 +01:00
2024-03-16 19:19:42 +01:00
2019-12-21 11:57:28 -03:00
2019-12-21 11:57:28 -03:00
2024-03-16 19:19:42 +01:00
2019-12-21 11:57:28 -03:00
2024-03-16 19:19:42 +01:00
2019-12-21 11:57:28 -03:00
2024-03-16 19:19:42 +01:00
2024-03-16 19:19:42 +01:00
2026-06-12 14:45:42 -05:00
2017-03-14 23:37:28 +01:00
2018-03-10 17:55:50 +01:00
2025-02-26 14:52:34 +01:00
2021-11-05 16:22:04 +01:00
2026-06-23 20:40:28 +02:00
2024-03-17 16:08:13 +01:00
2026-01-05 01:23:17 +00:00
2015-06-28 10:16:40 +02:00
2024-03-16 19:19:42 +01:00
2015-03-19 17:30:28 +01:00
2023-05-02 10:57:21 +02:00
2019-03-14 14:36:24 -03:00
2025-11-06 20:36:08 +00:00
2023-11-09 12:53:35 +01:00
2024-03-16 19:19:42 +01:00
2018-05-08 23:02:58 +02:00
2018-05-08 23:02:58 +02:00
2018-05-08 23:02:58 +02:00
2018-05-08 23:02:58 +02:00
2018-05-08 23:02:58 +02:00
2018-05-08 23:02:58 +02:00
2015-01-27 09:15:07 +01:00
2016-06-22 15:24:19 +02:00
2026-04-09 03:01:43 +00:00
2016-06-22 15:24:19 +02:00
2016-06-22 15:24:19 +02:00
2018-03-29 10:19:03 +02:00
2015-11-29 15:42:33 +01:00
2019-08-23 22:49:01 +02:00
2026-01-05 01:23:17 +00:00
2024-03-16 19:19:42 +01:00
2024-03-16 19:19:42 +01:00
2023-11-09 12:53:35 +01:00
2017-03-14 23:37:28 +01:00
2018-03-10 17:55:50 +01:00
2018-03-10 17:55:50 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2016-07-24 12:31:07 +02:00
2014-12-02 03:02:30 +01:00
2014-12-02 03:02:30 +01:00
2019-12-21 11:57:28 -03:00
2023-05-02 10:57:21 +02:00
2023-05-02 10:57:21 +02:00
2023-05-02 10:57:21 +02:00
2015-03-19 17:30:28 +01:00
2024-10-16 17:38:57 -03:00
2016-10-26 02:12:18 +02:00
2025-03-04 12:51:54 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2025-11-06 20:36:08 +00:00
2014-12-02 03:02:30 +01:00
2014-12-02 03:02:30 +01:00
2022-07-09 21:05:02 +02:00
2026-03-07 20:14:36 +01:00
2014-12-02 03:02:30 +01:00
2014-12-02 03:02:30 +01:00
2014-12-02 03:02:30 +01:00
2014-12-02 03:02:30 +01:00
2019-12-21 11:57:28 -03:00
2025-03-04 12:44:18 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2025-03-04 12:51:54 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2025-11-06 20:36:08 +00:00
2014-12-02 03:02:30 +01:00
2014-12-02 03:02:30 +01:00
2023-03-26 01:46:48 +01:00
2015-03-19 17:30:28 +01:00
2022-11-01 09:24:29 +11:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00
2015-03-19 17:30:28 +01:00