diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index c6dddeb98f38c0d1e30f80bccdc236ac450c8be8..85fbe6aaccd3bc156d9d55fcb351df5362957928 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -1296,7 +1296,7 @@ static int64_t calc_cur_seg_no(AVFormatContext *s, struct representation *pls) if (pls->presentation_timeoffset) { num = pls->presentation_timeoffset * pls->fragment_timescale / pls->fragment_duration; } else if (c->publish_time > 0 && !c->availability_start_time) { - num = pls->first_seq_no + (((c->publish_time - c->availability_start_time) - c->suggested_presentation_delay) * pls->fragment_timescale) / pls->fragment_duration; + num = pls->first_seq_no + (((c->publish_time - c->time_shift_buffer_depth + pls->fragment_duration) - c->suggested_presentation_delay) * pls->fragment_timescale) / pls->fragment_duration; } else { num = pls->first_seq_no + (((get_current_time_in_sec() - c->availability_start_time) - c->suggested_presentation_delay) * pls->fragment_timescale) / pls->fragment_duration; }