|
|
|
@ -2390,7 +2390,7 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt) |
|
|
|
|
&& (hls->flags & HLS_TEMP_FILE); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ((hls->max_seg_size > 0 && (vs->size >= hls->max_seg_size)) || !byterange_mode) { |
|
|
|
|
if ((hls->max_seg_size > 0 && (vs->size + vs->start_pos >= hls->max_seg_size)) || !byterange_mode) { |
|
|
|
|
AVDictionary *options = NULL; |
|
|
|
|
char *filename = NULL; |
|
|
|
|
if (hls->key_info_file || hls->encrypt) { |
|
|
|
@ -2485,14 +2485,15 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt) |
|
|
|
|
if (hls->flags & HLS_SINGLE_FILE) { |
|
|
|
|
vs->start_pos += vs->size; |
|
|
|
|
} else if (hls->max_seg_size > 0) { |
|
|
|
|
vs->start_pos = new_start_pos; |
|
|
|
|
if (vs->size >= hls->max_seg_size) { |
|
|
|
|
if (vs->size + vs->start_pos >= hls->max_seg_size) { |
|
|
|
|
vs->sequence++; |
|
|
|
|
sls_flag_file_rename(hls, vs, old_filename); |
|
|
|
|
ret = hls_start(s, vs); |
|
|
|
|
vs->start_pos = 0; |
|
|
|
|
/* When split segment by byte, the duration is short than hls_time,
|
|
|
|
|
* so it is not enough one segment duration as hls_time, */ |
|
|
|
|
} else { |
|
|
|
|
vs->start_pos = new_start_pos; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
vs->start_pos = new_start_pos; |
|
|
|
|