@ -62,6 +62,7 @@ typedef enum HLSFlags {
HLS_ROUND_DURATIONS = ( 1 < < 2 ) ,
HLS_DISCONT_START = ( 1 < < 3 ) ,
HLS_OMIT_ENDLIST = ( 1 < < 4 ) ,
HLS_SPLIT_BY_TIME = ( 1 < < 5 ) ,
} HLSFlags ;
typedef enum {
@ -813,7 +814,7 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
if ( hls - > has_video ) {
can_split = st - > codecpar - > codec_type = = AVMEDIA_TYPE_VIDEO & &
pkt - > flags & AV_PKT_FLAG_KEY ;
( ( pkt - > flags & AV_PKT_FLAG_KEY ) | | ( hls - > flags & HLS_SPLIT_BY_TIME ) ) ;
is_ref_pkt = st - > codecpar - > codec_type = = AVMEDIA_TYPE_VIDEO ;
}
if ( pkt - > pts = = AV_NOPTS_VALUE )
@ -923,6 +924,7 @@ static const AVOption options[] = {
{ " round_durations " , " round durations in m3u8 to whole numbers " , 0 , AV_OPT_TYPE_CONST , { . i64 = HLS_ROUND_DURATIONS } , 0 , UINT_MAX , E , " flags " } ,
{ " discont_start " , " start the playlist with a discontinuity tag " , 0 , AV_OPT_TYPE_CONST , { . i64 = HLS_DISCONT_START } , 0 , UINT_MAX , E , " flags " } ,
{ " omit_endlist " , " Do not append an endlist when ending stream " , 0 , AV_OPT_TYPE_CONST , { . i64 = HLS_OMIT_ENDLIST } , 0 , UINT_MAX , E , " flags " } ,
{ " split_by_time " , " split the hls segment by time which user set by hls_time " , 0 , AV_OPT_TYPE_CONST , { . i64 = HLS_SPLIT_BY_TIME } , 0 , UINT_MAX , E , " flags " } ,
{ " use_localtime " , " set filename expansion with strftime at segment creation " , OFFSET ( use_localtime ) , AV_OPT_TYPE_BOOL , { . i64 = 0 } , 0 , 1 , E } ,
{ " use_localtime_mkdir " , " create last directory component in strftime-generated filename " , OFFSET ( use_localtime_mkdir ) , AV_OPT_TYPE_BOOL , { . i64 = 0 } , 0 , 1 , E } ,
{ " hls_playlist_type " , " set the HLS playlist type " , OFFSET ( pl_type ) , AV_OPT_TYPE_INT , { . i64 = PLAYLIST_TYPE_NONE } , 0 , PLAYLIST_TYPE_NB - 1 , E , " pl_type " } ,