{"no_resync_search","Don't try to resynchronize by looking for a certain optional start code",offsetof(ASFContext,no_resync_search),AV_OPT_TYPE_INT,{.i64=0},0,1,AV_OPT_FLAG_DECODING_PARAM},
{"export_xmp","Export full XMP metadata",offsetof(ASFContext,export_xmp),AV_OPT_TYPE_INT,{.i64=0},0,1,AV_OPT_FLAG_DECODING_PARAM},
{"no_resync_search","Don't try to resynchronize by looking for a certain optional start code",offsetof(ASFContext,no_resync_search),AV_OPT_TYPE_BOOL,{.i64=0},0,1,AV_OPT_FLAG_DECODING_PARAM},
{"export_xmp","Export full XMP metadata",offsetof(ASFContext,export_xmp),AV_OPT_TYPE_BOOL,{.i64=0},0,1,AV_OPT_FLAG_DECODING_PARAM},
{"window_size","number of segments kept in the manifest",OFFSET(window_size),AV_OPT_TYPE_INT,{.i64=0},0,INT_MAX,E},
{"extra_window_size","number of segments kept outside of the manifest before removing from disk",OFFSET(extra_window_size),AV_OPT_TYPE_INT,{.i64=5},0,INT_MAX,E},
{"min_seg_duration","minimum segment duration (in microseconds)",OFFSET(min_seg_duration),AV_OPT_TYPE_INT64,{.i64=5000000},0,INT_MAX,E},
{"remove_at_exit","remove all segments when finished",OFFSET(remove_at_exit),AV_OPT_TYPE_INT,{.i64=0},0,1,E},
{"use_template","Use SegmentTemplate instead of SegmentList",OFFSET(use_template),AV_OPT_TYPE_INT,{.i64=1},0,1,E},
{"use_timeline","Use SegmentTimeline in SegmentTemplate",OFFSET(use_timeline),AV_OPT_TYPE_INT,{.i64=1},0,1,E},
{"single_file","Store all segments in one file, accessed using byte ranges",OFFSET(single_file),AV_OPT_TYPE_INT,{.i64=0},0,1,E},
{"remove_at_exit","remove all segments when finished",OFFSET(remove_at_exit),AV_OPT_TYPE_BOOL,{.i64=0},0,1,E},
{"use_template","Use SegmentTemplate instead of SegmentList",OFFSET(use_template),AV_OPT_TYPE_BOOL,{.i64=1},0,1,E},
{"use_timeline","Use SegmentTimeline in SegmentTemplate",OFFSET(use_timeline),AV_OPT_TYPE_BOOL,{.i64=1},0,1,E},
{"single_file","Store all segments in one file, accessed using byte ranges",OFFSET(single_file),AV_OPT_TYPE_BOOL,{.i64=0},0,1,E},
{"single_file_name","DASH-templated name to be used for baseURL. Implies storing all segments in one file, accessed using byte ranges",OFFSET(single_file_name),AV_OPT_TYPE_STRING,{.str=NULL},0,0,E},
{"init_seg_name","DASH-templated name to used for the initialization segment",OFFSET(init_seg_name),AV_OPT_TYPE_STRING,{.str="init-stream$RepresentationID$.m4s"},0,0,E},
{"media_seg_name","DASH-templated name to used for the media segments",OFFSET(media_seg_name),AV_OPT_TYPE_STRING,{.str="chunk-stream$RepresentationID$-$Number%05d$.m4s"},0,0,E},
{"min_delay","minimum valid delay between frames (in hundredths of second)",offsetof(GIFDemuxContext,min_delay),AV_OPT_TYPE_INT,{.i64=GIF_MIN_DELAY},0,100*60,AV_OPT_FLAG_DECODING_PARAM},
{"max_gif_delay","maximum valid delay between frames (in hundredths of seconds)",offsetof(GIFDemuxContext,max_delay),AV_OPT_TYPE_INT,{.i64=65535},0,65535,AV_OPT_FLAG_DECODING_PARAM},
{"default_delay","default delay between frames (in hundredths of second)",offsetof(GIFDemuxContext,default_delay),AV_OPT_TYPE_INT,{.i64=GIF_DEFAULT_DELAY},0,100*60,AV_OPT_FLAG_DECODING_PARAM},
{"window_size","number of fragments kept in the manifest",OFFSET(window_size),AV_OPT_TYPE_INT,{.i64=0},0,INT_MAX,E},
{"extra_window_size","number of fragments kept outside of the manifest before removing from disk",OFFSET(extra_window_size),AV_OPT_TYPE_INT,{.i64=5},0,INT_MAX,E},
{"min_frag_duration","minimum fragment duration (in microseconds)",OFFSET(min_frag_duration),AV_OPT_TYPE_INT64,{.i64=10000000},0,INT_MAX,E},
{"remove_at_exit","remove all fragments when finished",OFFSET(remove_at_exit),AV_OPT_TYPE_INT,{.i64=0},0,1,E},
{"remove_at_exit","remove all fragments when finished",OFFSET(remove_at_exit),AV_OPT_TYPE_BOOL,{.i64=0},0,1,E},
{"post_data","set custom HTTP post data",OFFSET(post_data),AV_OPT_TYPE_BINARY,.flags=D|E},
{"mime_type","export the MIME type",OFFSET(mime_type),AV_OPT_TYPE_STRING,{.str=NULL},0,0,AV_OPT_FLAG_EXPORT|AV_OPT_FLAG_READONLY},
{"cookies","set cookies to be sent in applicable future requests, use newline delimited Set-Cookie HTTP field value syntax",OFFSET(cookies),AV_OPT_TYPE_STRING,{.str=NULL},0,0,D},
{"end_offset","try to limit the request to bytes preceding this offset",OFFSET(end_off),AV_OPT_TYPE_INT64,{.i64=0},0,INT64_MAX,D},
{"method","Override the HTTP method or set the expected HTTP method from a client",OFFSET(method),AV_OPT_TYPE_STRING,{.str=NULL},0,0,D|E},
{"reconnect","auto reconnect after disconnect before EOF",OFFSET(reconnect),AV_OPT_TYPE_INT,{.i64=0},0,1,D},
{"reconnect_at_eof","auto reconnect at EOF",OFFSET(reconnect_at_eof),AV_OPT_TYPE_INT,{.i64=0},0,1,D},
{"reconnect_streamed","auto reconnect streamed / non seekable streams",OFFSET(reconnect_streamed),AV_OPT_TYPE_INT,{.i64=0},0,1,D},
{"reconnect","auto reconnect after disconnect before EOF",OFFSET(reconnect),AV_OPT_TYPE_BOOL,{.i64=0},0,1,D},
{"reconnect_at_eof","auto reconnect at EOF",OFFSET(reconnect_at_eof),AV_OPT_TYPE_BOOL,{.i64=0},0,1,D},
{"reconnect_streamed","auto reconnect streamed / non seekable streams",OFFSET(reconnect_streamed),AV_OPT_TYPE_BOOL,{.i64=0},0,1,D},
{"reconnect_delay_max","max reconnect delay in seconds after which to give up",OFFSET(reconnect_delay_max),AV_OPT_TYPE_INT,{.i64=120},0,UINT_MAX/1000/1000,D},
{"listen","listen on HTTP",OFFSET(listen),AV_OPT_TYPE_INT,{.i64=0},0,2,D|E},
{"resource","The resource requested by a client",OFFSET(resource),AV_OPT_TYPE_STRING,{.str=NULL},0,0,E},
{"live","flag indicating that the input is a live file that only has the headers.",OFFSET(is_live),AV_OPT_TYPE_INT,{.i64=0},0,1,AV_OPT_FLAG_DECODING_PARAM},
{"live","flag indicating that the input is a live file that only has the headers.",OFFSET(is_live),AV_OPT_TYPE_BOOL,{.i64=0},0,1,AV_OPT_FLAG_DECODING_PARAM},
{"reserve_index_space","Reserve a given amount of space (in bytes) at the beginning of the file for the index (cues).",OFFSET(reserve_cues_space),AV_OPT_TYPE_INT,{.i64=0},0,INT_MAX,FLAGS},
{"cluster_size_limit","Store at most the provided amount of bytes in a cluster. ",OFFSET(cluster_size_limit),AV_OPT_TYPE_INT,{.i64=-1},-1,INT_MAX,FLAGS},
{"cluster_time_limit","Store at most the provided number of milliseconds in a cluster.",OFFSET(cluster_time_limit),AV_OPT_TYPE_INT64,{.i64=-1},-1,INT64_MAX,FLAGS},
{"dash","Create a WebM file conforming to WebM DASH specification",OFFSET(is_dash),AV_OPT_TYPE_INT,{.i64=0},0,1,FLAGS},
{"dash","Create a WebM file conforming to WebM DASH specification",OFFSET(is_dash),AV_OPT_TYPE_BOOL,{.i64=0},0,1,FLAGS},
{"dash_track_number","Track number for the DASH stream",OFFSET(dash_track_number),AV_OPT_TYPE_INT,{.i64=1},0,127,FLAGS},
{"live","Write files assuming it is a live stream.",OFFSET(is_live),AV_OPT_TYPE_INT,{.i64=0},0,1,FLAGS},
{"allow_raw_vfw","allow RAW VFW mode",OFFSET(allow_raw_vfw),AV_OPT_TYPE_INT,{.i64=0},0,1,FLAGS},
{"live","Write files assuming it is a live stream.",OFFSET(is_live),AV_OPT_TYPE_BOOL,{.i64=0},0,1,FLAGS},
{"allow_raw_vfw","allow RAW VFW mode",OFFSET(allow_raw_vfw),AV_OPT_TYPE_BOOL,{.i64=0},0,1,FLAGS},
{"write_colr","Write colr atom (Experimental, may be renamed or changed, do not use from scripts)",0,AV_OPT_TYPE_CONST,{.i64=FF_MOV_FLAG_WRITE_COLR},INT_MIN,INT_MAX,AV_OPT_FLAG_ENCODING_PARAM,"movflags"},
{"iods_video_profile","iods video profile atom.",offsetof(MOVMuxContext,iods_video_profile),AV_OPT_TYPE_INT,{.i64=-1},-1,255,AV_OPT_FLAG_ENCODING_PARAM},
{"frag_duration","Maximum fragment duration",offsetof(MOVMuxContext,max_fragment_duration),AV_OPT_TYPE_INT,{.i64=0},0,INT_MAX,AV_OPT_FLAG_ENCODING_PARAM},
{"ism_lookahead","Number of lookahead entries for ISM files",offsetof(MOVMuxContext,ism_lookahead),AV_OPT_TYPE_INT,{.i64=0},0,INT_MAX,AV_OPT_FLAG_ENCODING_PARAM},
{"video_track_timescale","set timescale of all video tracks",offsetof(MOVMuxContext,video_track_timescale),AV_OPT_TYPE_INT,{.i64=0},0,INT_MAX,AV_OPT_FLAG_ENCODING_PARAM},
{"brand","Override major brand",offsetof(MOVMuxContext,major_brand),AV_OPT_TYPE_STRING,{.str=NULL},.flags=AV_OPT_FLAG_ENCODING_PARAM},
{"fragment_index","Fragment number of the next fragment",offsetof(MOVMuxContext,fragments),AV_OPT_TYPE_INT,{.i64=1},1,INT_MAX,AV_OPT_FLAG_ENCODING_PARAM},
{"mov_gamma","gamma value for gama atom",offsetof(MOVMuxContext,gamma),AV_OPT_TYPE_FLOAT,{.dbl=0.0},0.0,10,AV_OPT_FLAG_ENCODING_PARAM},
{"frag_interleave","Interleave samples within fragments (max number of consecutive samples, lower is tighter interleaving, but with more overhead)",offsetof(MOVMuxContext,frag_interleave),AV_OPT_TYPE_INT,{.i64=0},0,INT_MAX,AV_OPT_FLAG_ENCODING_PARAM},
{"nobuffer","reduce the latency introduced by optional buffering",0,AV_OPT_TYPE_CONST,{.i64=AVFMT_FLAG_NOBUFFER},0,INT_MAX,D,"fflags"},
{"seek2any","allow seeking to non-keyframes on demuxer level when supported",OFFSET(seek2any),AV_OPT_TYPE_INT,{.i64=0},0,1,D},
{"seek2any","allow seeking to non-keyframes on demuxer level when supported",OFFSET(seek2any),AV_OPT_TYPE_BOOL,{.i64=0},0,1,D},
{"bitexact","do not write random/volatile data",0,AV_OPT_TYPE_CONST,{.i64=AVFMT_FLAG_BITEXACT},0,0,E,"fflags"},
{"analyzeduration","specify how many microseconds are analyzed to probe the input",OFFSET(max_analyze_duration),AV_OPT_TYPE_INT64,{.i64=0},0,INT64_MAX,D},
{"aggressive","consider things that a sane encoder shouldn't do as an error",0,AV_OPT_TYPE_CONST,{.i64=AV_EF_AGGRESSIVE},INT_MIN,INT_MAX,D,"err_detect"},
{"use_wallclock_as_timestamps","use wallclock as timestamps",OFFSET(use_wallclock_as_timestamps),AV_OPT_TYPE_INT,{.i64=0},0,INT_MAX-1,D},
{"skip_initial_bytes","set number of bytes to skip before reading header and frames",OFFSET(skip_initial_bytes),AV_OPT_TYPE_INT64,{.i64=0},0,INT64_MAX-1,D},
{"correct_ts_overflow","correct single timestamp overflows",OFFSET(correct_ts_overflow),AV_OPT_TYPE_INT,{.i64=1},0,1,D},
{"flush_packets","enable flushing of the I/O context after each packet",OFFSET(flush_packets),AV_OPT_TYPE_INT,{.i64=1},0,1,E},
{"correct_ts_overflow","correct single timestamp overflows",OFFSET(correct_ts_overflow),AV_OPT_TYPE_BOOL,{.i64=1},0,1,D},
{"flush_packets","enable flushing of the I/O context after each packet",OFFSET(flush_packets),AV_OPT_TYPE_BOOL,{.i64=1},0,1,E},
{"metadata_header_padding","set number of bytes to be written as padding in a metadata header",OFFSET(metadata_header_padding),AV_OPT_TYPE_INT,{.i64=-1},-1,INT_MAX,E},
{"write_to_source","Send packets to the source address of the latest received packet",OFFSET(write_to_source),AV_OPT_TYPE_INT,{.i64=0},0,1,.flags=D|E},
{"write_to_source","Send packets to the source address of the latest received packet",OFFSET(write_to_source),AV_OPT_TYPE_BOOL,{.i64=0},0,1,.flags=D|E},
{"segment_list_entry_prefix","set base url prefix for segments",OFFSET(entry_prefix),AV_OPT_TYPE_STRING,{.str=NULL},0,0,E},
{"segment_start_number","set the sequence number of the first segment",OFFSET(segment_idx),AV_OPT_TYPE_INT,{.i64=0},0,INT_MAX,E},
{"segment_wrap_number","set the number of wrap before the first segment",OFFSET(segment_idx_wrap_nb),AV_OPT_TYPE_INT,{.i64=0},0,INT_MAX,E},
{"strftime","set filename expansion with strftime at segment creation",OFFSET(use_strftime),AV_OPT_TYPE_INT,{.i64=0},0,1,E},
{"break_non_keyframes","allow breaking segments on non-keyframes",OFFSET(break_non_keyframes),AV_OPT_TYPE_INT,{.i64=0},0,1,E},
{"strftime","set filename expansion with strftime at segment creation",OFFSET(use_strftime),AV_OPT_TYPE_BOOL,{.i64=0},0,1,E},
{"break_non_keyframes","allow breaking segments on non-keyframes",OFFSET(break_non_keyframes),AV_OPT_TYPE_BOOL,{.i64=0},0,1,E},
{"individual_header_trailer","write header/trailer to each segment",OFFSET(individual_header_trailer),AV_OPT_TYPE_INT,{.i64=1},0,1,E},
{"write_header_trailer","write a header to the first segment and a trailer to the last one",OFFSET(write_header_trailer),AV_OPT_TYPE_INT,{.i64=1},0,1,E},
{"reset_timestamps","reset timestamps at the begin of each segment",OFFSET(reset_timestamps),AV_OPT_TYPE_INT,{.i64=0},0,1,E},
{"individual_header_trailer","write header/trailer to each segment",OFFSET(individual_header_trailer),AV_OPT_TYPE_BOOL,{.i64=1},0,1,E},
{"write_header_trailer","write a header to the first segment and a trailer to the last one",OFFSET(write_header_trailer),AV_OPT_TYPE_BOOL,{.i64=1},0,1,E},
{"reset_timestamps","reset timestamps at the begin of each segment",OFFSET(reset_timestamps),AV_OPT_TYPE_BOOL,{.i64=0},0,1,E},
{"extra_window_size","number of fragments kept outside of the manifest before removing from disk",OFFSET(extra_window_size),AV_OPT_TYPE_INT,{.i64=5},0,INT_MAX,E},
{"lookahead_count","number of lookahead fragments",OFFSET(lookahead_count),AV_OPT_TYPE_INT,{.i64=2},0,INT_MAX,E},
{"min_frag_duration","minimum fragment duration (in microseconds)",OFFSET(min_frag_duration),AV_OPT_TYPE_INT64,{.i64=5000000},0,INT_MAX,E},
{"remove_at_exit","remove all fragments when finished",OFFSET(remove_at_exit),AV_OPT_TYPE_INT,{.i64=0},0,1,E},
{"remove_at_exit","remove all fragments when finished",OFFSET(remove_at_exit),AV_OPT_TYPE_BOOL,{.i64=0},0,1,E},
{"broadcast","explicitly allow or disallow broadcast destination",OFFSET(is_broadcast),AV_OPT_TYPE_BOOL,{.i64=0},0,1,E},
{"ttl","Time to live (multicast only)",OFFSET(ttl),AV_OPT_TYPE_INT,{.i64=16},0,INT_MAX,E},
{"connect","set if connect() should be called on socket",OFFSET(is_connected),AV_OPT_TYPE_INT,{.i64=0},0,1,.flags=D|E},
{"connect","set if connect() should be called on socket",OFFSET(is_connected),AV_OPT_TYPE_BOOL,{.i64=0},0,1,.flags=D|E},
{"fifo_size","set the UDP receiving circular buffer size, expressed as a number of packets with size of 188 bytes",OFFSET(circular_buffer_size),AV_OPT_TYPE_INT,{.i64=7*4096},0,INT_MAX,D},
{"overrun_nonfatal","survive in case of UDP receiving circular buffer overrun",OFFSET(overrun_nonfatal),AV_OPT_TYPE_INT,{.i64=0},0,1,D},
{"overrun_nonfatal","survive in case of UDP receiving circular buffer overrun",OFFSET(overrun_nonfatal),AV_OPT_TYPE_BOOL,{.i64=0},0,1,D},
{"timeout","set raise error timeout (only in read mode)",OFFSET(timeout),AV_OPT_TYPE_INT,{.i64=0},0,INT_MAX,D},
@ -518,8 +518,8 @@ static int webm_dash_manifest_write_trailer(AVFormatContext *s)
#define OFFSET(x) offsetof(WebMDashMuxContext, x)
staticconstAVOptionoptions[]={
{"adaptation_sets","Adaptation sets. Syntax: id=0,streams=0,1,2 id=1,streams=3,4 and so on",OFFSET(adaptation_sets),AV_OPT_TYPE_STRING,{0},0,0,AV_OPT_FLAG_ENCODING_PARAM},
{"debug_mode","[private option - users should never set this]. set this to 1 to create deterministic output",OFFSET(debug_mode),AV_OPT_TYPE_INT,{.i64=0},0,1,AV_OPT_FLAG_ENCODING_PARAM},
{"live","set this to 1 to create a live stream manifest",OFFSET(is_live),AV_OPT_TYPE_INT,{.i64=0},0,1,AV_OPT_FLAG_ENCODING_PARAM},
{"debug_mode","[private option - users should never set this]. Create deterministic output",OFFSET(debug_mode),AV_OPT_TYPE_BOOL,{.i64=0},0,1,AV_OPT_FLAG_ENCODING_PARAM},
{"live","create a live stream manifest",OFFSET(is_live),AV_OPT_TYPE_BOOL,{.i64=0},0,1,AV_OPT_FLAG_ENCODING_PARAM},
{"chunk_start_index","start index of the chunk",OFFSET(chunk_start_index),AV_OPT_TYPE_INT,{.i64=0},0,INT_MAX,AV_OPT_FLAG_ENCODING_PARAM},
{"chunk_duration_ms","duration of each chunk (in milliseconds)",OFFSET(chunk_duration),AV_OPT_TYPE_INT,{.i64=1000},0,INT_MAX,AV_OPT_FLAG_ENCODING_PARAM},
{"utc_timing_url","URL of the page that will return the UTC timestamp in ISO format",OFFSET(utc_timing_url),AV_OPT_TYPE_STRING,{0},0,0,AV_OPT_FLAG_ENCODING_PARAM},