Files
FFmpeg/libavformat
Ben Kepner a327bc0561 avformat/hlsenc: fix segment duration with mixed stream time bases
When audio and video streams have different time bases (e.g. video at
1/90000 and audio at 1/48000), vs->start_pts was stored as a raw PTS
from whichever stream's packet arrived first. The segment split
comparison then subtracted this value from the current packet's PTS
without accounting for the time base difference, producing incorrect
elapsed time calculations.

This caused segments to be split at wrong points — either too
frequently (on every keyframe) or not at all, depending on the
relative magnitudes of the time bases.

Fix by normalizing vs->start_pts to AV_TIME_BASE_Q at the point of
assignment and converting pkt->pts to the same base before comparison.
This ensures the segment split decision is always unit-consistent
regardless of which stream's packet is being evaluated.

The bug is most easily triggered by HLS muxing with video passthrough
and audio transcode, where the video retains its container time base
while the audio encoder outputs in its native time base.

Signed-off-by: Ben Kepner <u6bkep@gmail.com>
2026-05-13 23:04:46 +00:00
..
2025-08-03 13:48:47 +02:00
2026-03-10 13:52:18 +01:00
2025-09-08 20:59:31 +00:00
2025-04-13 22:49:21 +02:00
2024-09-24 15:37:15 +02:00
2025-04-13 22:49:21 +02:00
2026-03-10 13:52:18 +01:00
2024-03-31 00:08:43 +01:00
2025-08-03 13:48:47 +02:00
2026-05-05 12:54:36 +05:30
2026-03-10 13:52:18 +01:00
2024-03-26 06:36:43 +01:00
2026-03-10 13:52:18 +01:00
2025-08-03 13:48:47 +02:00
2026-05-08 09:34:52 +02:00
2025-08-03 13:48:47 +02:00
2025-08-03 13:48:47 +02:00
2026-02-19 17:18:11 +01:00
2026-03-10 13:52:18 +01:00
2026-03-10 13:52:18 +01:00
2024-06-19 10:12:50 -03:00
2022-03-16 14:05:26 +02:00
2025-08-03 13:48:47 +02:00
2024-03-26 06:36:43 +01:00
2025-08-03 13:48:47 +02:00
2025-06-23 17:19:18 +10:00
2026-02-25 02:55:43 +00:00
2025-08-03 13:48:47 +02:00
2024-06-04 11:46:27 +02:00
2024-07-21 16:41:23 +02:00
2026-03-10 13:52:18 +01:00
2026-02-18 08:20:10 +00:00
2026-05-12 16:12:54 +02:00
2023-05-31 09:03:58 -07:00
2025-08-03 13:48:47 +02:00
2022-02-24 12:56:49 +01:00
2025-08-03 13:48:47 +02:00
2024-04-17 18:31:06 +05:30
2024-05-01 02:57:12 +02:00
2026-03-10 13:52:18 +01:00
2025-08-03 13:48:47 +02:00
2024-04-06 12:59:56 +02:00
2025-08-04 03:59:42 +00:00
2025-08-03 13:48:47 +02:00
2026-05-08 09:34:52 +02:00
2026-04-28 12:29:37 +00:00
2024-03-31 00:08:43 +01:00
2025-11-09 13:44:18 +01:00
2026-03-10 13:52:18 +01:00
2025-03-28 15:23:28 +01:00
2026-03-10 13:52:18 +01:00
2024-03-31 00:08:43 +01:00
2026-05-03 13:26:34 +00:00
2026-02-23 20:20:20 +01:00
2025-08-03 13:48:47 +02:00
2024-11-03 10:53:15 +11:00
2026-05-03 18:22:46 +02:00
2026-03-10 13:52:18 +01:00
2025-06-23 17:19:18 +10:00
2024-03-15 12:51:15 +01:00
2024-03-15 12:51:15 +01:00
2022-03-26 00:42:00 +02:00
2026-02-08 02:25:14 +01:00
2026-03-10 13:52:18 +01:00
2025-08-03 13:48:47 +02:00
2024-03-31 00:08:43 +01:00
2026-03-10 13:52:18 +01:00
2026-03-10 13:52:18 +01:00
2025-08-03 13:48:47 +02:00
2024-07-21 17:02:11 +02:00
2026-04-28 12:29:37 +00:00
2026-05-05 12:54:36 +05:30
2024-03-26 06:36:43 +01:00
2026-02-25 02:55:43 +00:00
2026-03-10 13:52:18 +01:00
2025-08-03 13:48:47 +02:00
2024-03-26 06:36:43 +01:00