@@ -424,6 +424,80 @@ static void show_help_codec(const char *name, int encoder)
}
}
+const int fmt_flags[] = {
+ AVFMT_NOFILE,
+ AVFMT_NEEDNUMBER,
+ AVFMT_EXPERIMENTAL,
+ AVFMT_SHOW_IDS,
+ AVFMT_GLOBALHEADER,
+ AVFMT_NOTIMESTAMPS,
+ AVFMT_GENERIC_INDEX,
+ AVFMT_TS_DISCONT,
+ AVFMT_VARIABLE_FPS,
+ AVFMT_NODIMENSIONS,
+ AVFMT_NOSTREAMS,
+ AVFMT_NOBINSEARCH,
+ AVFMT_NOGENSEARCH,
+ AVFMT_NO_BYTE_SEEK,
+ AVFMT_ALLOW_FLUSH,
+ AVFMT_TS_NONSTRICT,
+ AVFMT_TS_NEGATIVE,
+ AVFMT_SEEK_TO_PTS
+};
+
+const char *fmt_flags_name[] = {
+ "AVFMT_NOFILE",
+ "AVFMT_NEEDNUMBER",
+ "AVFMT_EXPERIMENTAL",
+ "AVFMT_SHOW_IDS",
+ "AVFMT_GLOBALHEADER",
+ "AVFMT_NOTIMESTAMPS",
+ "AVFMT_GENERIC_INDEX",
+ "AVFMT_TS_DISCONT",
+ "AVFMT_VARIABLE_FPS",
+ "AVFMT_NODIMENSIONS",
+ "AVFMT_NOSTREAMS",
+ "AVFMT_NOBINSEARCH",
+ "AVFMT_NOGENSEARCH",
+ "AVFMT_NO_BYTE_SEEK",
+ "AVFMT_ALLOW_FLUSH",
+ "AVFMT_TS_NONSTRICT",
+ "AVFMT_TS_NEGATIVE",
+ "AVFMT_SEEK_TO_PTS"
+};
+
+const char *fmt_flags_help[] = {
+ "Demuxer will use avio_open, no opened file should be provided by the caller.",
+ "Needs 'd' in filename.",
+ "The muxer/demuxer is experimental and should be used with caution.",
+ "Show format stream IDs numbers.",
+ "Format wants global header.",
+ "Format does not need / have any timestamps.",
+ "Use generic index building code.",
+ "Format allows timestamp discontinuities.",
+ "Format allows variable fps.",
+ "Format does not need width/height.",
+ "Format does not require any streams.",
+ "Format does not allow to fall back on binary search via read_timestamp.",
+ "Format does not allow to fall back on generic search.",
+ "Format does not allow seeking by bytes.",
+ "Format allows flushing.",
+ "Format does not require strictly increasing timestamps, but they must still be monotonic.",
+ "Format allows muxing negative timestamps.",
+ "Seeking is based on PTS."
+};
+
+static void show_help_fmt_flags(int flags) {
+ int i;
+
+ printf("flags:\n");
+
+ for (i = 0; i < sizeof(fmt_flags) / sizeof(fmt_flags[0]); i++) {
+ if (flags & fmt_flags[i])
+ printf(" %s: %s\n", fmt_flags_name[i], fmt_flags_help[i]);
+ }
+}
+
static void show_help_demuxer(const char *name)
{
const AVInputFormat *fmt = av_find_input_format(name);
@@ -438,6 +512,8 @@ static void show_help_demuxer(const char *name)
if (fmt->extensions)
printf(" Common extensions: %s.\n", fmt->extensions);
+ show_help_fmt_flags(fmt->flags);
+
if (fmt->priv_class)
show_help_children(fmt->priv_class, AV_OPT_FLAG_DECODING_PARAM);
}
@@ -489,6 +565,8 @@ static void show_help_muxer(const char *name)
printf(" Default subtitle codec: %s.\n", desc->name);
}
+ show_help_fmt_flags(fmt->flags);
+
if (fmt->priv_class)
show_help_children(fmt->priv_class, AV_OPT_FLAG_ENCODING_PARAM);
}
From: Romain Beauxis <toots@rastageeks.org> --- Showing muxer/demuxer flags can be very useful to quickly glance at specific properties, in particular global headers flags. This patch adds a display of these flags in the -h muxer=... and -h demuxer=... calls. fftools/opt_common.c | 78 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+)