21 #ifndef AVFORMAT_OPTIONS_TABLE_H 22 #define AVFORMAT_OPTIONS_TABLE_H 30 #define OFFSET(x) offsetof(AVFormatContext,x) 31 #define DEFAULT 0 //should be NAN but it does not work as it is not a constant in glibc as required by ANSI/ISO C 33 #define E AV_OPT_FLAG_ENCODING_PARAM 34 #define D AV_OPT_FLAG_DECODING_PARAM 36 static const AVOption avformat_options[] = {
37 {
"avioflags", NULL, OFFSET(avio_flags), AV_OPT_TYPE_FLAGS, {.i64 = DEFAULT }, INT_MIN, INT_MAX, D|E,
"avioflags"},
38 {
"direct",
"reduce buffering", 0, AV_OPT_TYPE_CONST, {.i64 =
AVIO_FLAG_DIRECT }, INT_MIN, INT_MAX, D|E,
"avioflags"},
39 {
"probesize",
"set probing size", OFFSET(probesize), AV_OPT_TYPE_INT64, {.i64 = 5000000 }, 32, INT64_MAX, D},
40 {
"formatprobesize",
"number of bytes to probe file format", OFFSET(format_probesize), AV_OPT_TYPE_INT, {.i64 = PROBE_BUF_MAX}, 0, INT_MAX-1, D},
41 {
"packetsize",
"set packet size", OFFSET(packet_size), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, E},
42 {
"fflags", NULL, OFFSET(flags), AV_OPT_TYPE_FLAGS, {.i64 =
AVFMT_FLAG_AUTO_BSF }, INT_MIN, INT_MAX, D|E,
"fflags"},
43 {
"flush_packets",
"reduce the latency by flushing out packets immediately", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_FLAG_FLUSH_PACKETS }, INT_MIN, INT_MAX, E,
"fflags"},
44 {
"ignidx",
"ignore index", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_FLAG_IGNIDX }, INT_MIN, INT_MAX, D,
"fflags"},
45 {
"genpts",
"generate pts", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_FLAG_GENPTS }, INT_MIN, INT_MAX, D,
"fflags"},
46 {
"nofillin",
"do not fill in missing values that can be exactly calculated", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_FLAG_NOFILLIN }, INT_MIN, INT_MAX, D,
"fflags"},
47 {
"noparse",
"disable AVParsers, this needs nofillin too", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_FLAG_NOPARSE }, INT_MIN, INT_MAX, D,
"fflags"},
48 {
"igndts",
"ignore dts", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_FLAG_IGNDTS }, INT_MIN, INT_MAX, D,
"fflags"},
49 {
"discardcorrupt",
"discard corrupted frames", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_FLAG_DISCARD_CORRUPT }, INT_MIN, INT_MAX, D,
"fflags"},
50 {
"sortdts",
"try to interleave outputted packets by dts", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_FLAG_SORT_DTS }, INT_MIN, INT_MAX, D,
"fflags"},
51 #if FF_API_LAVF_KEEPSIDE_FLAG 52 {
"keepside",
"deprecated, does nothing", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_KEEP_SIDE_DATA }, INT_MIN, INT_MAX, D,
"fflags"},
54 {
"fastseek",
"fast but inaccurate seeks", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_FLAG_FAST_SEEK }, INT_MIN, INT_MAX, D,
"fflags"},
55 {
"latm",
"enable RTP MP4A-LATM payload", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_FLAG_MP4A_LATM }, INT_MIN, INT_MAX, E,
"fflags"},
56 {
"nobuffer",
"reduce the latency introduced by optional buffering", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_FLAG_NOBUFFER }, 0, INT_MAX, D,
"fflags"},
57 {
"bitexact",
"do not write random/volatile data", 0, AV_OPT_TYPE_CONST, { .i64 =
AVFMT_FLAG_BITEXACT }, 0, 0, E,
"fflags" },
58 {
"shortest",
"stop muxing with the shortest stream", 0, AV_OPT_TYPE_CONST, { .i64 =
AVFMT_FLAG_SHORTEST }, 0, 0, E,
"fflags" },
59 {
"autobsf",
"add needed bsfs automatically", 0, AV_OPT_TYPE_CONST, { .i64 =
AVFMT_FLAG_AUTO_BSF }, 0, 0, E,
"fflags" },
60 {
"seek2any",
"allow seeking to non-keyframes on demuxer level when supported", OFFSET(seek2any), AV_OPT_TYPE_BOOL, {.i64 = 0 }, 0, 1, D},
61 {
"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},
63 {
"indexmem",
"max memory used for timestamp index (per stream)", OFFSET(max_index_size), AV_OPT_TYPE_INT, {.i64 = 1<<20 }, 0, INT_MAX, D},
64 {
"rtbufsize",
"max memory used for buffering real-time frames", OFFSET(max_picture_buffer), AV_OPT_TYPE_INT, {.i64 = 3041280 }, 0, INT_MAX, D},
65 {
"fdebug",
"print specific debug info", OFFSET(debug), AV_OPT_TYPE_FLAGS, {.i64 = DEFAULT }, 0, INT_MAX, E|D,
"fdebug"},
66 {
"ts", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_FDEBUG_TS }, INT_MIN, INT_MAX, E|D,
"fdebug"},
67 {
"max_delay",
"maximum muxing or demuxing delay in microseconds", OFFSET(max_delay), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, INT_MAX, E|D},
68 {
"start_time_realtime",
"wall-clock time when stream begins (PTS==0)", OFFSET(start_time_realtime), AV_OPT_TYPE_INT64, {.i64 =
AV_NOPTS_VALUE}, INT64_MIN, INT64_MAX, E},
69 {
"fpsprobesize",
"number of frames used to probe fps", OFFSET(fps_probe_size), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX-1, D},
70 {
"audio_preload",
"microseconds by which audio packets should be interleaved earlier", OFFSET(audio_preload), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX-1, E},
71 {
"chunk_duration",
"microseconds for each chunk", OFFSET(max_chunk_duration), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX-1, E},
72 {
"chunk_size",
"size in bytes for each chunk", OFFSET(max_chunk_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX-1, E},
75 {
"f_err_detect",
"set error detection flags (deprecated; use err_detect, save via avconv)", OFFSET(error_recognition), AV_OPT_TYPE_FLAGS, {.i64 =
AV_EF_CRCCHECK }, INT_MIN, INT_MAX, D,
"err_detect"},
76 {
"err_detect",
"set error detection flags", OFFSET(error_recognition), AV_OPT_TYPE_FLAGS, {.i64 =
AV_EF_CRCCHECK }, INT_MIN, INT_MAX, D,
"err_detect"},
77 {
"crccheck",
"verify embedded CRCs", 0, AV_OPT_TYPE_CONST, {.i64 =
AV_EF_CRCCHECK }, INT_MIN, INT_MAX, D,
"err_detect"},
78 {
"bitstream",
"detect bitstream specification deviations", 0, AV_OPT_TYPE_CONST, {.i64 =
AV_EF_BITSTREAM }, INT_MIN, INT_MAX, D,
"err_detect"},
79 {
"buffer",
"detect improper bitstream length", 0, AV_OPT_TYPE_CONST, {.i64 =
AV_EF_BUFFER }, INT_MIN, INT_MAX, D,
"err_detect"},
80 {
"explode",
"abort decoding on minor error detection", 0, AV_OPT_TYPE_CONST, {.i64 =
AV_EF_EXPLODE }, INT_MIN, INT_MAX, D,
"err_detect"},
81 {
"ignore_err",
"ignore errors", 0, AV_OPT_TYPE_CONST, {.i64 =
AV_EF_IGNORE_ERR }, INT_MIN, INT_MAX, D,
"err_detect"},
82 {
"careful",
"consider things that violate the spec, are fast to check and have not been seen in the wild as errors", 0, AV_OPT_TYPE_CONST, {.i64 =
AV_EF_CAREFUL }, INT_MIN, INT_MAX, D,
"err_detect"},
83 {
"compliant",
"consider all spec non compliancies as errors", 0, AV_OPT_TYPE_CONST, {.i64 =
AV_EF_COMPLIANT }, INT_MIN, INT_MAX, D,
"err_detect"},
84 {
"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"},
85 {
"use_wallclock_as_timestamps",
"use wallclock as timestamps", OFFSET(use_wallclock_as_timestamps), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, D},
86 {
"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},
87 {
"correct_ts_overflow",
"correct single timestamp overflows", OFFSET(correct_ts_overflow), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, D},
88 {
"flush_packets",
"enable flushing of the I/O context after each packet", OFFSET(flush_packets), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 1, E},
89 {
"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},
90 {
"output_ts_offset",
"set output timestamp offset", OFFSET(output_ts_offset), AV_OPT_TYPE_DURATION, {.i64 = 0}, -INT64_MAX, INT64_MAX, E},
91 {
"max_interleave_delta",
"maximum buffering duration for interleaving", OFFSET(max_interleave_delta), AV_OPT_TYPE_INT64, { .i64 = 10000000 }, 0, INT64_MAX, E },
92 {
"f_strict",
"how strictly to follow the standards (deprecated; use strict, save via avconv)", OFFSET(strict_std_compliance), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, D|E,
"strict"},
93 {
"strict",
"how strictly to follow the standards", OFFSET(strict_std_compliance), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, D|E,
"strict"},
94 {
"very",
"strictly conform to a older more strict version of the spec or reference software", 0, AV_OPT_TYPE_CONST, {.i64 =
FF_COMPLIANCE_VERY_STRICT }, INT_MIN, INT_MAX, D|E,
"strict"},
95 {
"strict",
"strictly conform to all the things in the spec no matter what the consequences", 0, AV_OPT_TYPE_CONST, {.i64 =
FF_COMPLIANCE_STRICT }, INT_MIN, INT_MAX, D|E,
"strict"},
96 {
"normal", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_COMPLIANCE_NORMAL }, INT_MIN, INT_MAX, D|E,
"strict"},
97 {
"unofficial",
"allow unofficial extensions", 0, AV_OPT_TYPE_CONST, {.i64 =
FF_COMPLIANCE_UNOFFICIAL }, INT_MIN, INT_MAX, D|E,
"strict"},
98 {
"experimental",
"allow non-standardized experimental variants", 0, AV_OPT_TYPE_CONST, {.i64 =
FF_COMPLIANCE_EXPERIMENTAL }, INT_MIN, INT_MAX, D|E,
"strict"},
99 {
"max_ts_probe",
"maximum number of packets to read while waiting for the first timestamp", OFFSET(max_ts_probe), AV_OPT_TYPE_INT, { .i64 = 50 }, 0, INT_MAX, D },
100 {
"avoid_negative_ts",
"shift timestamps so they start at 0", OFFSET(avoid_negative_ts), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 2, E,
"avoid_negative_ts"},
101 {
"auto",
"enabled when required by target format", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_AVOID_NEG_TS_AUTO }, INT_MIN, INT_MAX, E,
"avoid_negative_ts"},
102 {
"disabled",
"do not change timestamps", 0, AV_OPT_TYPE_CONST, {.i64 = 0 }, INT_MIN, INT_MAX, E,
"avoid_negative_ts"},
103 {
"make_non_negative",
"shift timestamps so they are non negative", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE }, INT_MIN, INT_MAX, E,
"avoid_negative_ts"},
104 {
"make_zero",
"shift timestamps so they start at 0", 0, AV_OPT_TYPE_CONST, {.i64 =
AVFMT_AVOID_NEG_TS_MAKE_ZERO }, INT_MIN, INT_MAX, E,
"avoid_negative_ts"},
105 {
"dump_separator",
"set information dump field separator", OFFSET(dump_separator), AV_OPT_TYPE_STRING, {.str =
", "}, CHAR_MIN, CHAR_MAX, D|E},
106 {
"codec_whitelist",
"List of decoders that are allowed to be used", OFFSET(codec_whitelist), AV_OPT_TYPE_STRING, { .str = NULL }, CHAR_MIN, CHAR_MAX, D },
107 {
"format_whitelist",
"List of demuxers that are allowed to be used", OFFSET(format_whitelist), AV_OPT_TYPE_STRING, { .str = NULL }, CHAR_MIN, CHAR_MAX, D },
108 {
"protocol_whitelist",
"List of protocols that are allowed to be used", OFFSET(protocol_whitelist), AV_OPT_TYPE_STRING, { .str = NULL }, CHAR_MIN, CHAR_MAX, D },
109 {
"protocol_blacklist",
"List of protocols that are not allowed to be used", OFFSET(protocol_blacklist), AV_OPT_TYPE_STRING, { .str = NULL }, CHAR_MIN, CHAR_MAX, D },
110 {
"max_streams",
"maximum number of streams", OFFSET(max_streams), AV_OPT_TYPE_INT, { .i64 = 1000 }, 0, INT_MAX, D },
#define FF_COMPLIANCE_EXPERIMENTAL
Allow nonstandardized experimental things.
Definition: avcodec.h:2581
#define AV_EF_AGGRESSIVE
consider things that a sane encoder should not do as an error
Definition: avcodec.h:2658
AVOption.
Definition: opt.h:246
#define FF_COMPLIANCE_VERY_STRICT
Strictly conform to an older more strict version of the spec or reference software.
Definition: avcodec.h:2577
#define AV_EF_COMPLIANT
consider all spec non compliances as errors
Definition: avcodec.h:2657
#define AV_EF_BUFFER
detect improper bitstream length
Definition: avcodec.h:2652
#define AV_EF_BITSTREAM
detect bitstream specification deviations
Definition: avcodec.h:2651
#define FF_COMPLIANCE_UNOFFICIAL
Allow unofficial extensions.
Definition: avcodec.h:2580
#define AV_EF_EXPLODE
abort decoding on minor error detection
Definition: avcodec.h:2653
offset must point to a pointer immediately followed by an int for the length
Definition: opt.h:229
#define AV_EF_CAREFUL
consider things that violate the spec, are fast to calculate and have not been seen in the wild as er...
Definition: avcodec.h:2656
#define AVIO_FLAG_DIRECT
Use direct mode.
Definition: avio.h:681
#define AV_EF_IGNORE_ERR
ignore errors and continue
Definition: avcodec.h:2655
#define AV_EF_CRCCHECK
Verify checksums embedded in the bitstream (could be of either encoded or decoded data...
Definition: avcodec.h:2650
#define FF_COMPLIANCE_STRICT
Strictly conform to all the things in the spec no matter what consequences.
Definition: avcodec.h:2578
#define AV_NOPTS_VALUE
Undefined timestamp value.
Definition: avutil.h:248