PR #21480 opened by zotan URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21480 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21480.patch
Fixes an integer underflow in calc_min_seg_no in cases where availability_start_time - time_shift_buffer_depth is negative (i.e. the stream started within one time_shift_buffer_depth window). >From 3c45e3a49b279e2abc2060acc4a3e52cbb9ccd1a Mon Sep 17 00:00:00 2001 From: Laura Hausmann <[email protected]> Date: Thu, 15 Jan 2026 22:40:37 +0100 Subject: [PATCH] avformat/dashdec: fix calc_min_seg_no underflow Fixes an integer underflow in calc_min_seg_no in cases where availability_start_time - time_shift_buffer_depth is negative (i.e. the stream started within one time_shift_buffer_depth window). --- libavformat/dashdec.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index 500d8ca518..4a0b368851 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -1438,8 +1438,15 @@ static int64_t calc_min_seg_no(AVFormatContext *s, struct representation *pls) int64_t num = 0; if (c->is_live && pls->fragment_duration) { + uint64_t current_time_in_sec = get_current_time_in_sec(); av_log(s, AV_LOG_TRACE, "in live mode\n"); - num = pls->first_seq_no + (((get_current_time_in_sec() - c->availability_start_time) - c->time_shift_buffer_depth) * pls->fragment_timescale) / pls->fragment_duration; + if (current_time_in_sec - c->availability_start_time < c->time_shift_buffer_depth) { + av_log(s, AV_LOG_TRACE, "timeShiftBufferDepth not reached yet\n"); + num = pls->first_seq_no; + } + else { + num = pls->first_seq_no + (((current_time_in_sec - c->availability_start_time) - c->time_shift_buffer_depth) * pls->fragment_timescale) / pls->fragment_duration; + } } else { num = pls->first_seq_no; } -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
