@ -196,8 +196,8 @@ typedef struct HLSContext {
int64_t start_sequence ;
uint32_t start_sequence_source_type ; // enum StartSequenceSourceType
floa t time ; // Set by a private option.
floa t init_time ; // Set by a private option.
int64_ t time ; // Set by a private option.
int64_ t init_time ; // Set by a private option.
int max_nb_segments ; // Set by a private option.
int hls_delete_threshold ; // Set by a private option.
# if FF_API_HLS_WRAP
@ -2458,9 +2458,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 */
int64_t init_list_dur = hls - > init_time * vs - > nb_entries * AV_TIME_BASE ;
int64_t after_init_list_dur = ( vs - > sequence - hls - > start_sequence - vs - > nb_entries ) * ( hls - > time * AV_TIME_BASE ) ;
hls - > recording_time = hls - > time * AV_TIME_BASE ;
int64_t init_list_dur = hls - > init_time * vs - > nb_entries ;
int64_t after_init_list_dur = ( vs - > sequence - hls - > start_sequence - vs - > nb_entries ) * hls - > time ;
hls - > recording_time = hls - > time ;
end_pts = init_list_dur + after_init_list_dur ;
}
@ -2945,7 +2945,7 @@ static int hls_init(AVFormatContext *s)
av_log ( hls , AV_LOG_DEBUG , " start_number evaluated to % " PRId64 " \n " , hls - > start_sequence ) ;
}
hls - > recording_time = ( hls - > init_time ? hls - > init_time : hls - > time ) * AV_TIME_BASE ;
hls - > recording_time = hls - > init_time ? hls - > init_time : hls - > time ;
if ( hls - > flags & HLS_SPLIT_BY_TIME & & hls - > flags & HLS_INDEPENDENT_SEGMENTS ) {
// Independent segments cannot be guaranteed when splitting by time
@ -3098,7 +3098,7 @@ static int hls_init(AVFormatContext *s)
av_log ( s , AV_LOG_WARNING , " append_list mode does not support hls_init_time, "
" hls_init_time value will have no effect \n " ) ;
hls - > init_time = 0 ;
hls - > recording_time = hls - > time * AV_TIME_BASE ;
hls - > recording_time = hls - > time ;
}
}
@ -3114,8 +3114,8 @@ static int hls_init(AVFormatContext *s)
# define E AV_OPT_FLAG_ENCODING_PARAM
static const AVOption options [ ] = {
{ " start_number " , " set first number in the sequence " , OFFSET ( start_sequence ) , AV_OPT_TYPE_INT64 , { . i64 = 0 } , 0 , INT64_MAX , E } ,
{ " hls_time " , " set segment length in seconds " , OFFSET ( time ) , AV_OPT_TYPE_FLOAT , { . dbl = 2 } , 0 , FLT _MAX, E } ,
{ " hls_init_time " , " set segment length in seconds at init list " , OFFSET ( init_time ) , AV_OPT_TYPE_FLOAT , { . dbl = 0 } , 0 , FLT _MAX, E } ,
{ " hls_time " , " set segment length " , OFFSET ( time ) , AV_OPT_TYPE_DURATION , { . i64 = 2000000 } , 0 , INT64 _MAX, E } ,
{ " hls_init_time " , " set segment length at init list " , OFFSET ( init_time ) , AV_OPT_TYPE_DURATION , { . i64 = 0 } , 0 , INT64 _MAX, E } ,
{ " hls_list_size " , " set maximum number of playlist entries " , OFFSET ( max_nb_segments ) , AV_OPT_TYPE_INT , { . i64 = 5 } , 0 , INT_MAX , E } ,
{ " hls_delete_threshold " , " set number of unreferenced segments to keep before deleting " , OFFSET ( hls_delete_threshold ) , AV_OPT_TYPE_INT , { . i64 = 1 } , 1 , INT_MAX , E } ,
{ " hls_ts_options " , " set hls mpegts list of options for the container format used for hls " , OFFSET ( format_options ) , AV_OPT_TYPE_DICT , { . str = NULL } , 0 , 0 , E } ,