@@ -2195,8 +2195,9 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
if (vs->sequence - vs->nb_entries > hls->start_sequence && hls->init_time > 0) {
/* reset end_pts, hls->recording_time at end of the init hls list */
- int init_list_dur = hls->init_time * vs->nb_entries * AV_TIME_BASE;
- int after_init_list_dur = (vs->sequence - hls->start_sequence - vs->nb_entries ) * (hls->time * AV_TIME_BASE);
+ int64_t init_list_dur = hls->init_time * vs->nb_entries * AV_TIME_BASE;
+ int64_t after_init_list_dur = hls->time * AV_TIME_BASE;
+ after_init_list_dur *= vs->sequence - hls->start_sequence - vs->nb_entries;
hls->recording_time = hls->time * AV_TIME_BASE;
end_pts = init_list_dur + after_init_list_dur ;
}