* [FFmpeg-devel] [PATCH 1/8] fftools/cmdutils: hide some information listing options from basic help
@ 2024-01-17 12:40 Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 2/8] fftools/cmdutils: add a flag for per-stream options Anton Khirnov
` (6 more replies)
0 siblings, 7 replies; 10+ messages in thread
From: Anton Khirnov @ 2024-01-17 12:40 UTC (permalink / raw)
To: ffmpeg-devel
They are for advanced usage only and should not clutter basic output.
---
fftools/ffmpeg_opt.c | 7 +++++--
fftools/opt_common.h | 24 ++++++++++++------------
2 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index 1978f438fe..6b16d92a87 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -1197,7 +1197,10 @@ void show_help_default(const char *opt, const char *arg)
"\n", program_name);
show_help_options(options, "Print help / information / capabilities:",
- OPT_EXIT, 0, 0);
+ OPT_EXIT, OPT_EXPERT, 0);
+ if (show_advanced)
+ show_help_options(options, "Advanced information / capabilities:",
+ OPT_EXIT | OPT_EXPERT, 0, 0);
show_help_options(options, "Global options (affect whole program "
"instead of just one file):",
@@ -1806,7 +1809,7 @@ const OptionDef options[] = {
{ "hwaccel_output_format", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_INPUT,
{ .off = OFFSET(hwaccel_output_formats) },
"select output format used with HW accelerated decoding", "format" },
- { "hwaccels", OPT_TYPE_FUNC, OPT_EXIT,
+ { "hwaccels", OPT_TYPE_FUNC, OPT_EXIT | OPT_EXPERT,
{ .func_arg = show_hwaccels },
"show available HW acceleration methods" },
{ "autorotate", OPT_TYPE_BOOL, OPT_SPEC | OPT_EXPERT | OPT_INPUT,
diff --git a/fftools/opt_common.h b/fftools/opt_common.h
index 36c591cc94..9bb5268472 100644
--- a/fftools/opt_common.h
+++ b/fftools/opt_common.h
@@ -41,9 +41,9 @@ int show_sources(void *optctx, const char *opt, const char *arg);
#if CONFIG_AVDEVICE
#define CMDUTILS_COMMON_OPTIONS_AVDEVICE \
- { "sources" , OPT_TYPE_FUNC, OPT_EXIT | OPT_FUNC_ARG, { .func_arg = show_sources }, \
+ { "sources" , OPT_TYPE_FUNC, OPT_EXIT | OPT_FUNC_ARG | OPT_EXPERT, { .func_arg = show_sources }, \
"list sources of the input device", "device" }, \
- { "sinks" , OPT_TYPE_FUNC, OPT_EXIT | OPT_FUNC_ARG, { .func_arg = show_sinks }, \
+ { "sinks" , OPT_TYPE_FUNC, OPT_EXIT | OPT_FUNC_ARG | OPT_EXPERT, { .func_arg = show_sinks }, \
"list sinks of the output device", "device" }, \
#else
@@ -199,26 +199,26 @@ int opt_cpucount(void *optctx, const char *opt, const char *arg);
#define CMDUTILS_COMMON_OPTIONS \
{ "L", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_license }, "show license" }, \
{ "h", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_help }, "show help", "topic" }, \
- { "?", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_help }, "show help", "topic" }, \
- { "help", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_help }, "show help", "topic" }, \
- { "-help", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_help }, "show help", "topic" }, \
+ { "?", OPT_TYPE_FUNC, OPT_EXIT | OPT_EXPERT, { .func_arg = show_help }, "show help", "topic" }, \
+ { "help", OPT_TYPE_FUNC, OPT_EXIT | OPT_EXPERT, { .func_arg = show_help }, "show help", "topic" }, \
+ { "-help", OPT_TYPE_FUNC, OPT_EXIT | OPT_EXPERT, { .func_arg = show_help }, "show help", "topic" }, \
{ "version", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_version }, "show version" }, \
- { "buildconf", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_buildconf }, "show build configuration" }, \
- { "formats", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_formats }, "show available formats" }, \
+ { "buildconf", OPT_TYPE_FUNC, OPT_EXIT | OPT_EXPERT, { .func_arg = show_buildconf }, "show build configuration" }, \
+ { "formats", OPT_TYPE_FUNC, OPT_EXIT | OPT_EXPERT, { .func_arg = show_formats }, "show available formats" }, \
{ "muxers", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_muxers }, "show available muxers" }, \
{ "demuxers", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_demuxers }, "show available demuxers" }, \
{ "devices", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_devices }, "show available devices" }, \
- { "codecs", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_codecs }, "show available codecs" }, \
+ { "codecs", OPT_TYPE_FUNC, OPT_EXIT | OPT_EXPERT, { .func_arg = show_codecs }, "show available codecs" }, \
{ "decoders", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_decoders }, "show available decoders" }, \
{ "encoders", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_encoders }, "show available encoders" }, \
- { "bsfs", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_bsfs }, "show available bit stream filters" }, \
- { "protocols", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_protocols }, "show available protocols" }, \
+ { "bsfs", OPT_TYPE_FUNC, OPT_EXIT | OPT_EXPERT, { .func_arg = show_bsfs }, "show available bit stream filters" }, \
+ { "protocols", OPT_TYPE_FUNC, OPT_EXIT | OPT_EXPERT, { .func_arg = show_protocols }, "show available protocols" }, \
{ "filters", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_filters }, "show available filters" }, \
{ "pix_fmts", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_pix_fmts }, "show available pixel formats" }, \
{ "layouts", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_layouts }, "show standard channel layouts" }, \
{ "sample_fmts", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_sample_fmts }, "show available audio sample formats" }, \
- { "dispositions", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_dispositions}, "show available stream dispositions" }, \
- { "colors", OPT_TYPE_FUNC, OPT_EXIT, { .func_arg = show_colors }, "show available color names" }, \
+ { "dispositions", OPT_TYPE_FUNC, OPT_EXIT | OPT_EXPERT, { .func_arg = show_dispositions}, "show available stream dispositions" }, \
+ { "colors", OPT_TYPE_FUNC, OPT_EXIT | OPT_EXPERT, { .func_arg = show_colors }, "show available color names" }, \
{ "loglevel", OPT_TYPE_FUNC, OPT_FUNC_ARG | OPT_EXPERT, { .func_arg = opt_loglevel }, "set logging level", "loglevel" }, \
{ "v", OPT_TYPE_FUNC, OPT_FUNC_ARG, { .func_arg = opt_loglevel }, "set logging level", "loglevel" }, \
{ "report", OPT_TYPE_FUNC, OPT_EXPERT, { .func_arg = opt_report }, "generate a report" }, \
--
2.42.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* [FFmpeg-devel] [PATCH 2/8] fftools/cmdutils: add a flag for per-stream options
2024-01-17 12:40 [FFmpeg-devel] [PATCH 1/8] fftools/cmdutils: hide some information listing options from basic help Anton Khirnov
@ 2024-01-17 12:40 ` Anton Khirnov
2024-01-17 13:01 ` Michael Niedermayer
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 3/8] fftools/cmdutils: drop alt_flags parameter from show_help_options() Anton Khirnov
` (5 subsequent siblings)
6 siblings, 1 reply; 10+ messages in thread
From: Anton Khirnov @ 2024-01-17 12:40 UTC (permalink / raw)
To: ffmpeg-devel
Not all OPT_SPEC options are per-stream, this will allow identifying
those that are, which will be useful in following commits.
---
fftools/cmdutils.h | 13 +++--
fftools/ffmpeg_opt.c | 118 +++++++++++++++++++++----------------------
2 files changed, 68 insertions(+), 63 deletions(-)
diff --git a/fftools/cmdutils.h b/fftools/cmdutils.h
index 8fa5ad4fc7..0c3b475876 100644
--- a/fftools/cmdutils.h
+++ b/fftools/cmdutils.h
@@ -158,17 +158,22 @@ typedef struct OptionDef {
Always use as OPT_SPEC in option definitions. */
#define OPT_FLAG_SPEC (1 << 9)
#define OPT_SPEC (OPT_FLAG_SPEC | OPT_OFFSET)
+
+/* Option applies per-stream (implies OPT_SPEC). */
+#define OPT_FLAG_PERSTREAM (1 << 10)
+#define OPT_PERSTREAM (OPT_FLAG_PERSTREAM | OPT_SPEC)
+
/* ffmpeg-only - specifies whether an OPT_PERFILE option applies to input,
* output, or both. */
-#define OPT_INPUT (1 << 10)
-#define OPT_OUTPUT (1 << 11)
+#define OPT_INPUT (1 << 11)
+#define OPT_OUTPUT (1 << 12)
/* This option is a "canonical" form, to which one or more alternatives
* exist. These alternatives are listed in u1.names_alt. */
-#define OPT_HAS_ALT (1 << 12)
+#define OPT_HAS_ALT (1 << 13)
/* This option is an alternative form of some other option, whose
* name is stored in u1.name_canon */
-#define OPT_HAS_CANON (1 << 13)
+#define OPT_HAS_CANON (1 << 14)
union {
void *dst_ptr;
diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index 6b16d92a87..4a0d126aca 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -1456,15 +1456,15 @@ const OptionDef options[] = {
{ "recast_media", OPT_TYPE_BOOL, OPT_EXPERT,
{ &recast_media },
"allow recasting stream type in order to force a decoder of different media type" },
- { "c", OPT_TYPE_STRING, OPT_SPEC | OPT_INPUT | OPT_OUTPUT | OPT_HAS_CANON,
+ { "c", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT | OPT_HAS_CANON,
{ .off = OFFSET(codec_names) },
"codec name", "codec",
.u1.name_canon = "codec", },
- { "codec", OPT_TYPE_STRING, OPT_SPEC | OPT_INPUT | OPT_OUTPUT | OPT_EXPERT | OPT_HAS_ALT,
+ { "codec", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT | OPT_EXPERT | OPT_HAS_ALT,
{ .off = OFFSET(codec_names) },
"codec name", "codec",
.u1.names_alt = alt_codec, },
- { "pre", OPT_TYPE_STRING, OPT_SPEC | OPT_OUTPUT | OPT_EXPERT | OPT_HAS_ALT,
+ { "pre", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_OUTPUT | OPT_EXPERT | OPT_HAS_ALT,
{ .off = OFFSET(presets) },
"preset name", "preset",
.u1.names_alt = alt_pre, },
@@ -1507,7 +1507,7 @@ const OptionDef options[] = {
{ "itsoffset", OPT_TYPE_TIME, OPT_OFFSET | OPT_EXPERT | OPT_INPUT,
{ .off = OFFSET(input_ts_offset) },
"set the input ts offset", "time_off" },
- { "itsscale", OPT_TYPE_DOUBLE, OPT_SPEC | OPT_EXPERT | OPT_INPUT,
+ { "itsscale", OPT_TYPE_DOUBLE, OPT_PERSTREAM | OPT_EXPERT | OPT_INPUT,
{ .off = OFFSET(ts_scale) },
"set the input ts scale", "scale" },
{ "timestamp", OPT_TYPE_FUNC, OPT_FUNC_ARG | OPT_PERFILE | OPT_EXPERT | OPT_OUTPUT,
@@ -1581,7 +1581,7 @@ const OptionDef options[] = {
{ "bitexact", OPT_TYPE_BOOL, OPT_EXPERT | OPT_OFFSET | OPT_OUTPUT | OPT_INPUT,
{ .off = OFFSET(bitexact) },
"bitexact mode" },
- { "apad", OPT_TYPE_STRING, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
+ { "apad", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(apad) },
"audio pad", "" },
{ "dts_delta_threshold", OPT_TYPE_FLOAT, OPT_EXPERT,
@@ -1596,21 +1596,21 @@ const OptionDef options[] = {
{ "abort_on", OPT_TYPE_FUNC, OPT_FUNC_ARG | OPT_EXPERT,
{ .func_arg = opt_abort_on },
"abort on the specified condition flags", "flags" },
- { "copyinkf", OPT_TYPE_BOOL, OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "copyinkf", OPT_TYPE_BOOL, OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(copy_initial_nonkeyframes) },
"copy initial non-keyframes" },
- { "copypriorss", OPT_TYPE_INT, OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "copypriorss", OPT_TYPE_INT, OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(copy_prior_start) },
"copy or discard frames before start time" },
- { "frames", OPT_TYPE_INT64, OPT_SPEC | OPT_OUTPUT | OPT_EXPERT | OPT_HAS_ALT,
+ { "frames", OPT_TYPE_INT64, OPT_PERSTREAM | OPT_OUTPUT | OPT_EXPERT | OPT_HAS_ALT,
{ .off = OFFSET(max_frames) },
"set the number of frames to output", "number",
.u1.names_alt = alt_frames, },
- { "tag", OPT_TYPE_STRING, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT | OPT_INPUT | OPT_HAS_ALT,
+ { "tag", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT | OPT_INPUT | OPT_HAS_ALT,
{ .off = OFFSET(codec_tags) },
"force codec tag/fourcc", "fourcc/tag",
.u1.names_alt = alt_tag, },
- { "q", OPT_TYPE_DOUBLE, OPT_EXPERT | OPT_SPEC | OPT_OUTPUT | OPT_HAS_CANON,
+ { "q", OPT_TYPE_DOUBLE, OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT | OPT_HAS_CANON,
{ .off = OFFSET(qscale) },
"use fixed quality scale (VBR)", "q",
.u1.name_canon = "qscale", },
@@ -1621,7 +1621,7 @@ const OptionDef options[] = {
{ "profile", OPT_TYPE_FUNC, OPT_FUNC_ARG | OPT_EXPERT | OPT_PERFILE | OPT_OUTPUT,
{ .func_arg = opt_profile },
"set profile", "profile" },
- { "filter", OPT_TYPE_STRING, OPT_SPEC | OPT_OUTPUT | OPT_HAS_ALT,
+ { "filter", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_OUTPUT | OPT_HAS_ALT,
{ .off = OFFSET(filters) },
"set stream filtergraph", "filter_graph",
.u1.names_alt = alt_filter, },
@@ -1629,11 +1629,11 @@ const OptionDef options[] = {
{ .func_arg = opt_filter_threads },
"number of non-complex filter threads" },
#if FFMPEG_OPT_FILTER_SCRIPT
- { "filter_script", OPT_TYPE_STRING, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
+ { "filter_script", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(filter_scripts) },
"deprecated, use -/filter", "filename" },
#endif
- { "reinit_filter", OPT_TYPE_INT, OPT_SPEC | OPT_INPUT | OPT_EXPERT,
+ { "reinit_filter", OPT_TYPE_INT, OPT_PERSTREAM | OPT_INPUT | OPT_EXPERT,
{ .off = OFFSET(reinit_filters) },
"reinit filtergraph on input parameter changes", "" },
{ "filter_complex", OPT_TYPE_FUNC, OPT_FUNC_ARG | OPT_EXPERT,
@@ -1673,10 +1673,10 @@ const OptionDef options[] = {
{ "max_error_rate", OPT_TYPE_FLOAT, OPT_EXPERT,
{ &max_error_rate },
"ratio of decoding errors (0.0: no errors, 1.0: 100% errors) above which ffmpeg returns an error instead of success.", "maximum error rate" },
- { "discard", OPT_TYPE_STRING, OPT_SPEC | OPT_INPUT | OPT_EXPERT,
+ { "discard", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_INPUT | OPT_EXPERT,
{ .off = OFFSET(discard) },
"discard", "" },
- { "disposition", OPT_TYPE_STRING, OPT_SPEC | OPT_OUTPUT | OPT_EXPERT,
+ { "disposition", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_OUTPUT | OPT_EXPERT,
{ .off = OFFSET(disposition) },
"disposition", "" },
{ "thread_queue_size", OPT_TYPE_INT, OPT_OFFSET | OPT_EXPERT | OPT_INPUT | OPT_OUTPUT,
@@ -1685,26 +1685,26 @@ const OptionDef options[] = {
{ "find_stream_info", OPT_TYPE_BOOL, OPT_INPUT | OPT_EXPERT | OPT_OFFSET,
{ .off = OFFSET(find_stream_info) },
"read and decode the streams to fill missing information with heuristics" },
- { "bits_per_raw_sample", OPT_TYPE_INT, OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "bits_per_raw_sample", OPT_TYPE_INT, OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(bits_per_raw_sample) },
"set the number of bits per raw sample", "number" },
- { "stats_enc_pre", OPT_TYPE_STRING, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
+ { "stats_enc_pre", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(enc_stats_pre) },
"write encoding stats before encoding" },
- { "stats_enc_post", OPT_TYPE_STRING, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
+ { "stats_enc_post", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(enc_stats_post) },
"write encoding stats after encoding" },
- { "stats_mux_pre", OPT_TYPE_STRING, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
+ { "stats_mux_pre", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(mux_stats) },
"write packets stats before muxing" },
- { "stats_enc_pre_fmt", OPT_TYPE_STRING, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
+ { "stats_enc_pre_fmt", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(enc_stats_pre_fmt) },
"format of the stats written with -stats_enc_pre" },
- { "stats_enc_post_fmt", OPT_TYPE_STRING, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
+ { "stats_enc_post_fmt", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(enc_stats_post_fmt) },
"format of the stats written with -stats_enc_post" },
- { "stats_mux_pre_fmt", OPT_TYPE_STRING, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
+ { "stats_mux_pre_fmt", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(mux_stats_fmt) },
"format of the stats written with -stats_mux_pre" },
@@ -1713,37 +1713,37 @@ const OptionDef options[] = {
{ .func_arg = opt_video_frames },
"set the number of video frames to output", "number",
.u1.name_canon = "frames", },
- { "r", OPT_TYPE_STRING, OPT_VIDEO | OPT_SPEC | OPT_INPUT | OPT_OUTPUT,
+ { "r", OPT_TYPE_STRING, OPT_VIDEO | OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(frame_rates) },
"set frame rate (Hz value, fraction or abbreviation)", "rate" },
- { "fpsmax", OPT_TYPE_STRING, OPT_VIDEO | OPT_SPEC | OPT_OUTPUT | OPT_EXPERT,
+ { "fpsmax", OPT_TYPE_STRING, OPT_VIDEO | OPT_PERSTREAM | OPT_OUTPUT | OPT_EXPERT,
{ .off = OFFSET(max_frame_rates) },
"set max frame rate (Hz value, fraction or abbreviation)", "rate" },
- { "s", OPT_TYPE_STRING, OPT_VIDEO | OPT_SUBTITLE | OPT_SPEC | OPT_INPUT | OPT_OUTPUT,
+ { "s", OPT_TYPE_STRING, OPT_VIDEO | OPT_SUBTITLE | OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(frame_sizes) },
"set frame size (WxH or abbreviation)", "size" },
- { "aspect", OPT_TYPE_STRING, OPT_VIDEO | OPT_SPEC | OPT_OUTPUT,
+ { "aspect", OPT_TYPE_STRING, OPT_VIDEO | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(frame_aspect_ratios) },
"set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)", "aspect" },
- { "pix_fmt", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_INPUT | OPT_OUTPUT,
+ { "pix_fmt", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(frame_pix_fmts) },
"set pixel format", "format" },
- { "display_rotation", OPT_TYPE_DOUBLE, OPT_VIDEO | OPT_SPEC | OPT_INPUT | OPT_EXPERT,
+ { "display_rotation", OPT_TYPE_DOUBLE, OPT_VIDEO | OPT_PERSTREAM | OPT_INPUT | OPT_EXPERT,
{ .off = OFFSET(display_rotations) },
"set pure counter-clockwise rotation in degrees for stream(s)",
"angle" },
- { "display_hflip", OPT_TYPE_BOOL, OPT_VIDEO | OPT_SPEC | OPT_INPUT | OPT_EXPERT,
+ { "display_hflip", OPT_TYPE_BOOL, OPT_VIDEO | OPT_PERSTREAM | OPT_INPUT | OPT_EXPERT,
{ .off = OFFSET(display_hflips) },
"set display horizontal flip for stream(s) "
"(overrides any display rotation if it is not set)"},
- { "display_vflip", OPT_TYPE_BOOL, OPT_VIDEO | OPT_SPEC | OPT_INPUT | OPT_EXPERT,
+ { "display_vflip", OPT_TYPE_BOOL, OPT_VIDEO | OPT_PERSTREAM | OPT_INPUT | OPT_EXPERT,
{ .off = OFFSET(display_vflips) },
"set display vertical flip for stream(s) "
"(overrides any display rotation if it is not set)"},
{ "vn", OPT_TYPE_BOOL, OPT_VIDEO | OPT_OFFSET | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(video_disable) },
"disable video" },
- { "rc_override", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "rc_override", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(rc_overrides) },
"rate control override for specific intervals", "override" },
{ "vcodec", OPT_TYPE_FUNC, OPT_VIDEO | OPT_FUNC_ARG | OPT_PERFILE | OPT_INPUT | OPT_OUTPUT | OPT_HAS_CANON,
@@ -1753,10 +1753,10 @@ const OptionDef options[] = {
{ "timecode", OPT_TYPE_FUNC, OPT_VIDEO | OPT_FUNC_ARG | OPT_PERFILE | OPT_OUTPUT | OPT_EXPERT,
{ .func_arg = opt_timecode },
"set initial TimeCode value.", "hh:mm:ss[:;.]ff" },
- { "pass", OPT_TYPE_INT, OPT_VIDEO | OPT_SPEC | OPT_OUTPUT | OPT_EXPERT,
+ { "pass", OPT_TYPE_INT, OPT_VIDEO | OPT_PERSTREAM | OPT_OUTPUT | OPT_EXPERT,
{ .off = OFFSET(pass) },
"select the pass number (1 to 3)", "n" },
- { "passlogfile", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "passlogfile", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(passlogfiles) },
"select two pass log file name prefix", "prefix" },
{ "vstats", OPT_TYPE_FUNC, OPT_VIDEO | OPT_EXPERT,
@@ -1772,53 +1772,53 @@ const OptionDef options[] = {
{ .func_arg = opt_video_filters },
"set video filters", "filter_graph",
.u1.name_canon = "filter", },
- { "intra_matrix", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "intra_matrix", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(intra_matrices) },
"specify intra matrix coeffs", "matrix" },
- { "inter_matrix", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "inter_matrix", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(inter_matrices) },
"specify inter matrix coeffs", "matrix" },
- { "chroma_intra_matrix", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "chroma_intra_matrix", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(chroma_intra_matrices) },
"specify intra matrix coeffs", "matrix" },
{ "vtag", OPT_TYPE_FUNC, OPT_VIDEO | OPT_FUNC_ARG | OPT_EXPERT | OPT_PERFILE | OPT_INPUT | OPT_OUTPUT | OPT_HAS_CANON,
{ .func_arg = opt_old2new },
"force video tag/fourcc", "fourcc/tag",
.u1.name_canon = "tag", },
- { "fps_mode", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "fps_mode", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(fps_mode) },
"set framerate mode for matching video streams; overrides vsync" },
- { "force_fps", OPT_TYPE_BOOL, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "force_fps", OPT_TYPE_BOOL, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(force_fps) },
"force the selected framerate, disable the best supported framerate selection" },
{ "streamid", OPT_TYPE_FUNC, OPT_VIDEO | OPT_FUNC_ARG | OPT_EXPERT | OPT_PERFILE | OPT_OUTPUT,
{ .func_arg = opt_streamid },
"set the value of an outfile streamid", "streamIndex:value" },
- { "force_key_frames", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "force_key_frames", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(forced_key_frames) },
"force key frames at specified timestamps", "timestamps" },
{ "b", OPT_TYPE_FUNC, OPT_VIDEO | OPT_FUNC_ARG | OPT_PERFILE | OPT_OUTPUT,
{ .func_arg = opt_bitrate },
"video bitrate (please use -b:v)", "bitrate" },
- { "hwaccel", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_INPUT,
+ { "hwaccel", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_INPUT,
{ .off = OFFSET(hwaccels) },
"use HW accelerated decoding", "hwaccel name" },
- { "hwaccel_device", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_INPUT,
+ { "hwaccel_device", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_INPUT,
{ .off = OFFSET(hwaccel_devices) },
"select a device for HW acceleration", "devicename" },
- { "hwaccel_output_format", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_INPUT,
+ { "hwaccel_output_format", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_INPUT,
{ .off = OFFSET(hwaccel_output_formats) },
"select output format used with HW accelerated decoding", "format" },
{ "hwaccels", OPT_TYPE_FUNC, OPT_EXIT | OPT_EXPERT,
{ .func_arg = show_hwaccels },
"show available HW acceleration methods" },
- { "autorotate", OPT_TYPE_BOOL, OPT_SPEC | OPT_EXPERT | OPT_INPUT,
+ { "autorotate", OPT_TYPE_BOOL, OPT_PERSTREAM | OPT_EXPERT | OPT_INPUT,
{ .off = OFFSET(autorotate) },
"automatically insert correct rotate filters" },
- { "autoscale", OPT_TYPE_BOOL, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
+ { "autoscale", OPT_TYPE_BOOL, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(autoscale) },
"automatically insert a scale filter at the end of the filter graph" },
- { "fix_sub_duration_heartbeat", OPT_TYPE_BOOL, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "fix_sub_duration_heartbeat", OPT_TYPE_BOOL, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(fix_sub_duration_heartbeat) },
"set this video output stream to be a heartbeat stream for "
"fix_sub_duration, according to which subtitles should be split at "
@@ -1832,10 +1832,10 @@ const OptionDef options[] = {
{ "aq", OPT_TYPE_FUNC, OPT_AUDIO | OPT_FUNC_ARG | OPT_PERFILE | OPT_OUTPUT,
{ .func_arg = opt_audio_qscale },
"set audio quality (codec-specific)", "quality", },
- { "ar", OPT_TYPE_INT, OPT_AUDIO | OPT_SPEC | OPT_INPUT | OPT_OUTPUT,
+ { "ar", OPT_TYPE_INT, OPT_AUDIO | OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(audio_sample_rate) },
"set audio sampling rate (in Hz)", "rate" },
- { "ac", OPT_TYPE_INT, OPT_AUDIO | OPT_SPEC | OPT_INPUT | OPT_OUTPUT,
+ { "ac", OPT_TYPE_INT, OPT_AUDIO | OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(audio_channels) },
"set number of audio channels", "channels" },
{ "an", OPT_TYPE_BOOL, OPT_AUDIO | OPT_OFFSET | OPT_INPUT | OPT_OUTPUT,
@@ -1852,14 +1852,14 @@ const OptionDef options[] = {
{ .func_arg = opt_old2new },
"force audio tag/fourcc", "fourcc/tag",
.u1.name_canon = "tag", },
- { "sample_fmt", OPT_TYPE_STRING, OPT_AUDIO | OPT_EXPERT | OPT_SPEC | OPT_INPUT | OPT_OUTPUT,
+ { "sample_fmt", OPT_TYPE_STRING, OPT_AUDIO | OPT_EXPERT | OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(sample_fmts) },
"set sample format", "format" },
- { "channel_layout", OPT_TYPE_STRING, OPT_AUDIO | OPT_EXPERT | OPT_SPEC | OPT_INPUT | OPT_OUTPUT | OPT_HAS_ALT,
+ { "channel_layout", OPT_TYPE_STRING, OPT_AUDIO | OPT_EXPERT | OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT | OPT_HAS_ALT,
{ .off = OFFSET(audio_ch_layouts) },
"set channel layout", "layout",
.u1.names_alt = alt_channel_layout, },
- { "ch_layout", OPT_TYPE_STRING, OPT_AUDIO | OPT_EXPERT | OPT_SPEC | OPT_INPUT | OPT_OUTPUT | OPT_HAS_CANON,
+ { "ch_layout", OPT_TYPE_STRING, OPT_AUDIO | OPT_EXPERT | OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT | OPT_HAS_CANON,
{ .off = OFFSET(audio_ch_layouts) },
"set channel layout", "layout",
.u1.name_canon = "channel_layout", },
@@ -1867,7 +1867,7 @@ const OptionDef options[] = {
{ .func_arg = opt_audio_filters },
"set audio filters", "filter_graph",
.u1.name_canon = "filter", },
- { "guess_layout_max", OPT_TYPE_INT, OPT_AUDIO | OPT_SPEC | OPT_EXPERT | OPT_INPUT,
+ { "guess_layout_max", OPT_TYPE_INT, OPT_AUDIO | OPT_PERSTREAM | OPT_EXPERT | OPT_INPUT,
{ .off = OFFSET(guess_layout_max) },
"set the maximum number of channels to try to guess the channel layout" },
@@ -1883,10 +1883,10 @@ const OptionDef options[] = {
{ .func_arg = opt_old2new }
, "force subtitle tag/fourcc", "fourcc/tag",
.u1.name_canon = "tag" },
- { "fix_sub_duration", OPT_TYPE_BOOL, OPT_EXPERT | OPT_SUBTITLE | OPT_SPEC | OPT_INPUT,
+ { "fix_sub_duration", OPT_TYPE_BOOL, OPT_EXPERT | OPT_SUBTITLE | OPT_PERSTREAM | OPT_INPUT,
{ .off = OFFSET(fix_sub_duration) },
"fix subtitles duration" },
- { "canvas_size", OPT_TYPE_STRING, OPT_SUBTITLE | OPT_SPEC | OPT_INPUT | OPT_EXPERT,
+ { "canvas_size", OPT_TYPE_STRING, OPT_SUBTITLE | OPT_PERSTREAM | OPT_INPUT | OPT_EXPERT,
{ .off = OFFSET(canvas_sizes) },
"set canvas size (WxH or abbreviation)", "size" },
@@ -1901,17 +1901,17 @@ const OptionDef options[] = {
{ .func_arg = opt_sdp_file },
"specify a file in which to print sdp information", "file" },
- { "time_base", OPT_TYPE_STRING, OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "time_base", OPT_TYPE_STRING, OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(time_bases) },
"set the desired time base hint for output stream (1:24, 1:48000 or 0.04166, 2.0833e-5)", "ratio" },
- { "enc_time_base", OPT_TYPE_STRING, OPT_EXPERT | OPT_SPEC | OPT_OUTPUT,
+ { "enc_time_base", OPT_TYPE_STRING, OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(enc_time_bases) },
"set the desired time base for the encoder (1:24, 1:48000 or 0.04166, 2.0833e-5). "
"two special values are defined - "
"0 = use frame rate (video) or sample rate (audio),"
"-1 = match source time base", "ratio" },
- { "bsf", OPT_TYPE_STRING, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT | OPT_INPUT,
+ { "bsf", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT | OPT_INPUT,
{ .off = OFFSET(bitstream_filters) },
"A comma-separated list of bitstream filters", "bitstream_filters", },
@@ -1932,10 +1932,10 @@ const OptionDef options[] = {
"set options from indicated preset file", "filename",
.u1.name_canon = "pre", },
- { "max_muxing_queue_size", OPT_TYPE_INT, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
+ { "max_muxing_queue_size", OPT_TYPE_INT, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(max_muxing_queue_size) },
"maximum number of packets that can be buffered while waiting for all streams to initialize", "packets" },
- { "muxing_queue_data_threshold", OPT_TYPE_INT, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
+ { "muxing_queue_data_threshold", OPT_TYPE_INT, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(muxing_queue_data_threshold) },
"set the threshold after which max_muxing_queue_size is taken into account", "bytes" },
@@ -1983,7 +1983,7 @@ const OptionDef options[] = {
"calculate PSNR of compressed frames (deprecated, use -flags +psnr)" },
#endif
#if FFMPEG_OPT_TOP
- { "top", OPT_TYPE_INT, OPT_VIDEO | OPT_EXPERT | OPT_SPEC | OPT_INPUT | OPT_OUTPUT,
+ { "top", OPT_TYPE_INT, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(top_field_first) },
"deprecated, use the setfield video filter", "" },
#endif
--
2.42.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* [FFmpeg-devel] [PATCH 3/8] fftools/cmdutils: drop alt_flags parameter from show_help_options()
2024-01-17 12:40 [FFmpeg-devel] [PATCH 1/8] fftools/cmdutils: hide some information listing options from basic help Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 2/8] fftools/cmdutils: add a flag for per-stream options Anton Khirnov
@ 2024-01-17 12:40 ` Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 4/8] fftools/ffmpeg_opt: add more structure to long help output Anton Khirnov
` (4 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Anton Khirnov @ 2024-01-17 12:40 UTC (permalink / raw)
To: ffmpeg-devel
No user sets it to more than one flag, so it is redundant with
req_flags.
---
fftools/cmdutils.c | 3 +--
fftools/cmdutils.h | 3 +--
fftools/ffmpeg_opt.c | 28 ++++++++++++++--------------
fftools/ffplay.c | 4 ++--
fftools/ffprobe.c | 2 +-
5 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index d7d5ddee45..be01372743 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -108,7 +108,7 @@ int parse_number(const char *context, const char *numstr, enum OptionType type,
}
void show_help_options(const OptionDef *options, const char *msg, int req_flags,
- int rej_flags, int alt_flags)
+ int rej_flags)
{
const OptionDef *po;
int first;
@@ -118,7 +118,6 @@ void show_help_options(const OptionDef *options, const char *msg, int req_flags,
char buf[128];
if (((po->flags & req_flags) != req_flags) ||
- (alt_flags && !(po->flags & alt_flags)) ||
(po->flags & rej_flags))
continue;
diff --git a/fftools/cmdutils.h b/fftools/cmdutils.h
index 0c3b475876..69e253c6ef 100644
--- a/fftools/cmdutils.h
+++ b/fftools/cmdutils.h
@@ -200,10 +200,9 @@ typedef struct OptionDef {
* @param msg title of this group. Only printed if at least one option matches.
* @param req_flags print only options which have all those flags set.
* @param rej_flags don't print options which have any of those flags set.
- * @param alt_flags print only options that have at least one of those flags set
*/
void show_help_options(const OptionDef *options, const char *msg, int req_flags,
- int rej_flags, int alt_flags);
+ int rej_flags);
/**
* Show help for all options with given flags in class and all its
diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index 4a0d126aca..919e1eae46 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -1197,46 +1197,46 @@ void show_help_default(const char *opt, const char *arg)
"\n", program_name);
show_help_options(options, "Print help / information / capabilities:",
- OPT_EXIT, OPT_EXPERT, 0);
+ OPT_EXIT, OPT_EXPERT);
if (show_advanced)
show_help_options(options, "Advanced information / capabilities:",
- OPT_EXIT | OPT_EXPERT, 0, 0);
+ OPT_EXIT | OPT_EXPERT, 0);
show_help_options(options, "Global options (affect whole program "
"instead of just one file):",
- 0, OPT_PERFILE | OPT_EXIT | OPT_EXPERT, 0);
+ 0, OPT_PERFILE | OPT_EXIT | OPT_EXPERT);
if (show_advanced)
show_help_options(options, "Advanced global options:", OPT_EXPERT,
- OPT_PERFILE | OPT_EXIT, 0);
+ OPT_PERFILE | OPT_EXIT);
- show_help_options(options, "Per-file main options:", 0,
+ show_help_options(options, "Per-file main options:", OPT_PERFILE,
OPT_EXPERT | OPT_AUDIO | OPT_VIDEO | OPT_SUBTITLE | OPT_DATA |
- OPT_EXIT, OPT_PERFILE);
+ OPT_EXIT);
if (show_advanced)
show_help_options(options, "Advanced per-file options:",
- OPT_EXPERT, OPT_AUDIO | OPT_VIDEO | OPT_SUBTITLE, OPT_PERFILE);
+ OPT_EXPERT | OPT_PERFILE, OPT_AUDIO | OPT_VIDEO | OPT_SUBTITLE);
show_help_options(options, "Video options:",
- OPT_VIDEO, OPT_EXPERT | OPT_AUDIO | OPT_SUBTITLE | OPT_DATA, 0);
+ OPT_VIDEO, OPT_EXPERT | OPT_AUDIO | OPT_SUBTITLE | OPT_DATA);
if (show_advanced)
show_help_options(options, "Advanced Video options:",
- OPT_EXPERT | OPT_VIDEO, OPT_AUDIO | OPT_SUBTITLE | OPT_DATA, 0);
+ OPT_EXPERT | OPT_VIDEO, OPT_AUDIO | OPT_SUBTITLE | OPT_DATA);
show_help_options(options, "Audio options:",
- OPT_AUDIO, OPT_EXPERT | OPT_VIDEO | OPT_SUBTITLE | OPT_DATA, 0);
+ OPT_AUDIO, OPT_EXPERT | OPT_VIDEO | OPT_SUBTITLE | OPT_DATA);
if (show_advanced)
show_help_options(options, "Advanced Audio options:",
- OPT_EXPERT | OPT_AUDIO, OPT_VIDEO | OPT_SUBTITLE | OPT_DATA, 0);
+ OPT_EXPERT | OPT_AUDIO, OPT_VIDEO | OPT_SUBTITLE | OPT_DATA);
show_help_options(options, "Subtitle options:",
- OPT_SUBTITLE, OPT_EXPERT | OPT_VIDEO | OPT_AUDIO | OPT_DATA, 0);
+ OPT_SUBTITLE, OPT_EXPERT | OPT_VIDEO | OPT_AUDIO | OPT_DATA);
if (show_advanced)
show_help_options(options, "Advanced Subtitle options:",
- OPT_EXPERT | OPT_SUBTITLE, OPT_VIDEO | OPT_AUDIO | OPT_DATA, 0);
+ OPT_EXPERT | OPT_SUBTITLE, OPT_VIDEO | OPT_AUDIO | OPT_DATA);
if (show_advanced)
show_help_options(options, "Data stream options:",
- OPT_DATA, OPT_VIDEO | OPT_AUDIO | OPT_SUBTITLE, 0);
+ OPT_DATA, OPT_VIDEO | OPT_AUDIO | OPT_SUBTITLE);
printf("\n");
if (show_avoptions) {
diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index e0f6db46bc..61edf2c2ef 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -3705,8 +3705,8 @@ void show_help_default(const char *opt, const char *arg)
{
av_log_set_callback(log_callback_help);
show_usage();
- show_help_options(options, "Main options:", 0, OPT_EXPERT, 0);
- show_help_options(options, "Advanced options:", OPT_EXPERT, 0, 0);
+ show_help_options(options, "Main options:", 0, OPT_EXPERT);
+ show_help_options(options, "Advanced options:", OPT_EXPERT, 0);
printf("\n");
show_help_children(avcodec_get_class(), AV_OPT_FLAG_DECODING_PARAM);
show_help_children(avformat_get_class(), AV_OPT_FLAG_DECODING_PARAM);
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index ea1365688d..f33e2471cb 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -3869,7 +3869,7 @@ void show_help_default(const char *opt, const char *arg)
{
av_log_set_callback(log_callback_help);
show_usage();
- show_help_options(options, "Main options:", 0, 0, 0);
+ show_help_options(options, "Main options:", 0, 0);
printf("\n");
show_help_children(avformat_get_class(), AV_OPT_FLAG_DECODING_PARAM);
--
2.42.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* [FFmpeg-devel] [PATCH 4/8] fftools/ffmpeg_opt: add more structure to long help output
2024-01-17 12:40 [FFmpeg-devel] [PATCH 1/8] fftools/cmdutils: hide some information listing options from basic help Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 2/8] fftools/cmdutils: add a flag for per-stream options Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 3/8] fftools/cmdutils: drop alt_flags parameter from show_help_options() Anton Khirnov
@ 2024-01-17 12:40 ` Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 5/8] fftools/cmdutils: indicate specifiers in option syntax in " Anton Khirnov
` (3 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Anton Khirnov @ 2024-01-17 12:40 UTC (permalink / raw)
To: ffmpeg-devel
Split the "Per-file main options" section into
* per-file input and output
* per-file input-only
* per-file output-only
* per-stream
---
fftools/ffmpeg_opt.c | 43 ++++++++++++++++++++++++++++++++++++++-----
1 file changed, 38 insertions(+), 5 deletions(-)
diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index 919e1eae46..4abdd457d3 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -1209,12 +1209,45 @@ void show_help_default(const char *opt, const char *arg)
show_help_options(options, "Advanced global options:", OPT_EXPERT,
OPT_PERFILE | OPT_EXIT);
- show_help_options(options, "Per-file main options:", OPT_PERFILE,
- OPT_EXPERT | OPT_AUDIO | OPT_VIDEO | OPT_SUBTITLE | OPT_DATA |
- OPT_EXIT);
+ show_help_options(options, "Per-file options (input and output):",
+ OPT_PERFILE | OPT_INPUT | OPT_OUTPUT,
+ OPT_EXIT | OPT_FLAG_PERSTREAM | OPT_EXPERT |
+ OPT_VIDEO | OPT_AUDIO | OPT_SUBTITLE | OPT_DATA);
if (show_advanced)
- show_help_options(options, "Advanced per-file options:",
- OPT_EXPERT | OPT_PERFILE, OPT_AUDIO | OPT_VIDEO | OPT_SUBTITLE);
+ show_help_options(options, "Advanced per-file options (input and output):",
+ OPT_PERFILE | OPT_INPUT | OPT_OUTPUT | OPT_EXPERT,
+ OPT_EXIT | OPT_FLAG_PERSTREAM |
+ OPT_VIDEO | OPT_AUDIO | OPT_SUBTITLE | OPT_DATA);
+
+ show_help_options(options, "Per-file options (input-only):",
+ OPT_PERFILE | OPT_INPUT,
+ OPT_EXIT | OPT_FLAG_PERSTREAM | OPT_OUTPUT | OPT_EXPERT |
+ OPT_VIDEO | OPT_AUDIO | OPT_SUBTITLE | OPT_DATA);
+ if (show_advanced)
+ show_help_options(options, "Advanced per-file options (input-only):",
+ OPT_PERFILE | OPT_INPUT | OPT_EXPERT,
+ OPT_EXIT | OPT_FLAG_PERSTREAM | OPT_OUTPUT |
+ OPT_VIDEO | OPT_AUDIO | OPT_SUBTITLE | OPT_DATA);
+
+ show_help_options(options, "Per-file options (output-only):",
+ OPT_PERFILE | OPT_OUTPUT,
+ OPT_EXIT | OPT_FLAG_PERSTREAM | OPT_INPUT | OPT_EXPERT |
+ OPT_VIDEO | OPT_AUDIO | OPT_SUBTITLE | OPT_DATA);
+ if (show_advanced)
+ show_help_options(options, "Advanced per-file options (output-only):",
+ OPT_PERFILE | OPT_OUTPUT | OPT_EXPERT,
+ OPT_EXIT | OPT_FLAG_PERSTREAM | OPT_INPUT |
+ OPT_VIDEO | OPT_AUDIO | OPT_SUBTITLE | OPT_DATA);
+
+ show_help_options(options, "Per-stream options:",
+ OPT_FLAG_PERSTREAM,
+ OPT_EXIT | OPT_EXPERT |
+ OPT_VIDEO | OPT_AUDIO | OPT_SUBTITLE | OPT_DATA);
+ if (show_advanced)
+ show_help_options(options, "Advanced per-stream options:",
+ OPT_FLAG_PERSTREAM | OPT_EXPERT,
+ OPT_EXIT |
+ OPT_VIDEO | OPT_AUDIO | OPT_SUBTITLE | OPT_DATA);
show_help_options(options, "Video options:",
OPT_VIDEO, OPT_EXPERT | OPT_AUDIO | OPT_SUBTITLE | OPT_DATA);
--
2.42.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* [FFmpeg-devel] [PATCH 5/8] fftools/cmdutils: indicate specifiers in option syntax in help output
2024-01-17 12:40 [FFmpeg-devel] [PATCH 1/8] fftools/cmdutils: hide some information listing options from basic help Anton Khirnov
` (2 preceding siblings ...)
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 4/8] fftools/ffmpeg_opt: add more structure to long help output Anton Khirnov
@ 2024-01-17 12:40 ` Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 6/8] fftools/ffmpeg_opt: briefly mention stream specifier " Anton Khirnov
` (2 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Anton Khirnov @ 2024-01-17 12:40 UTC (permalink / raw)
To: ffmpeg-devel
---
fftools/cmdutils.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index be01372743..f652820184 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -126,6 +126,12 @@ void show_help_options(const OptionDef *options, const char *msg, int req_flags,
first = 0;
}
av_strlcpy(buf, po->name, sizeof(buf));
+
+ if (po->flags & OPT_FLAG_PERSTREAM)
+ av_strlcat(buf, "[:<stream_spec>]", sizeof(buf));
+ else if (po->flags & OPT_FLAG_SPEC)
+ av_strlcat(buf, "[:<spec>]", sizeof(buf));
+
if (po->argname) {
av_strlcat(buf, " ", sizeof(buf));
av_strlcat(buf, po->argname, sizeof(buf));
--
2.42.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* [FFmpeg-devel] [PATCH 6/8] fftools/ffmpeg_opt: briefly mention stream specifier syntax in help output
2024-01-17 12:40 [FFmpeg-devel] [PATCH 1/8] fftools/cmdutils: hide some information listing options from basic help Anton Khirnov
` (3 preceding siblings ...)
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 5/8] fftools/cmdutils: indicate specifiers in option syntax in " Anton Khirnov
@ 2024-01-17 12:40 ` Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 7/8] fftools/cmdutils: surround option arguments by <> " Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 8/8] fftools/ffmpeg_opt: improve wording in option descriptions Anton Khirnov
6 siblings, 0 replies; 10+ messages in thread
From: Anton Khirnov @ 2024-01-17 12:40 UTC (permalink / raw)
To: ffmpeg-devel
---
fftools/ffmpeg_opt.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index 4abdd457d3..bdb71d4283 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -1194,6 +1194,9 @@ void show_help_default(const char *opt, const char *arg)
" -h full -- print all options (including all format and codec specific options, very long)\n"
" -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol\n"
" See man %s for detailed description of the options.\n"
+ "\n"
+ "Per-stream options can be followed by :<stream_spec> to apply that option to specific streams only. "
+ "<stream_spec> can be a stream index, or v/a/s for video/audio/subtitle (see manual for full syntax).\n"
"\n", program_name);
show_help_options(options, "Print help / information / capabilities:",
--
2.42.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* [FFmpeg-devel] [PATCH 7/8] fftools/cmdutils: surround option arguments by <> in help output
2024-01-17 12:40 [FFmpeg-devel] [PATCH 1/8] fftools/cmdutils: hide some information listing options from basic help Anton Khirnov
` (4 preceding siblings ...)
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 6/8] fftools/ffmpeg_opt: briefly mention stream specifier " Anton Khirnov
@ 2024-01-17 12:40 ` Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 8/8] fftools/ffmpeg_opt: improve wording in option descriptions Anton Khirnov
6 siblings, 0 replies; 10+ messages in thread
From: Anton Khirnov @ 2024-01-17 12:40 UTC (permalink / raw)
To: ffmpeg-devel
Makes it more clear that they are placeholders for actual values.
---
fftools/cmdutils.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index f652820184..daf7673adb 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -132,10 +132,9 @@ void show_help_options(const OptionDef *options, const char *msg, int req_flags,
else if (po->flags & OPT_FLAG_SPEC)
av_strlcat(buf, "[:<spec>]", sizeof(buf));
- if (po->argname) {
- av_strlcat(buf, " ", sizeof(buf));
- av_strlcat(buf, po->argname, sizeof(buf));
- }
+ if (po->argname)
+ av_strlcatf(buf, sizeof(buf), " <%s>", po->argname);
+
printf("-%-17s %s\n", buf, po->help);
}
printf("\n");
--
2.42.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* [FFmpeg-devel] [PATCH 8/8] fftools/ffmpeg_opt: improve wording in option descriptions
2024-01-17 12:40 [FFmpeg-devel] [PATCH 1/8] fftools/cmdutils: hide some information listing options from basic help Anton Khirnov
` (5 preceding siblings ...)
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 7/8] fftools/cmdutils: surround option arguments by <> " Anton Khirnov
@ 2024-01-17 12:40 ` Anton Khirnov
6 siblings, 0 replies; 10+ messages in thread
From: Anton Khirnov @ 2024-01-17 12:40 UTC (permalink / raw)
To: ffmpeg-devel
---
fftools/ffmpeg_opt.c | 33 +++++++++++++++++----------------
1 file changed, 17 insertions(+), 16 deletions(-)
diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index bdb71d4283..6ff1cb229d 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -1476,7 +1476,7 @@ const OptionDef options[] = {
CMDUTILS_COMMON_OPTIONS
{ "f", OPT_TYPE_STRING, OPT_OFFSET | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(format) },
- "force format", "fmt" },
+ "force container format (auto-detected otherwise)", "fmt" },
{ "y", OPT_TYPE_BOOL, 0,
{ &file_overwrite },
"overwrite output files" },
@@ -1494,11 +1494,11 @@ const OptionDef options[] = {
"allow recasting stream type in order to force a decoder of different media type" },
{ "c", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT | OPT_HAS_CANON,
{ .off = OFFSET(codec_names) },
- "codec name", "codec",
+ "select encoder/decoder ('copy' to copy stream without reencoding)", "codec",
.u1.name_canon = "codec", },
{ "codec", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT | OPT_EXPERT | OPT_HAS_ALT,
{ .off = OFFSET(codec_names) },
- "codec name", "codec",
+ "alias for -c (select encoder/decoder)", "codec",
.u1.names_alt = alt_codec, },
{ "pre", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_OUTPUT | OPT_EXPERT | OPT_HAS_ALT,
{ .off = OFFSET(presets) },
@@ -1517,17 +1517,18 @@ const OptionDef options[] = {
"set chapters mapping", "input_file_index" },
{ "t", OPT_TYPE_TIME, OPT_OFFSET | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(recording_time) },
- "record or transcode \"duration\" seconds of audio/video",
+ "stop transcoding after specified duration",
"duration" },
{ "to", OPT_TYPE_TIME, OPT_OFFSET | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(stop_time) },
- "record or transcode stop time", "time_stop" },
+ "stop transcoding after specified time is reached",
+ "time_stop" },
{ "fs", OPT_TYPE_INT64, OPT_OFFSET | OPT_OUTPUT | OPT_EXPERT,
{ .off = OFFSET(limit_filesize) },
"set the limit file size in bytes", "limit_size" },
{ "ss", OPT_TYPE_TIME, OPT_OFFSET | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(start_time) },
- "set the start time offset", "time_off" },
+ "start transcoding at specified time", "time_off" },
{ "sseof", OPT_TYPE_TIME, OPT_OFFSET | OPT_INPUT | OPT_EXPERT,
{ .off = OFFSET(start_time_eof) },
"set the start time offset relative to EOF", "time_off" },
@@ -1551,7 +1552,7 @@ const OptionDef options[] = {
"set the recording timestamp ('now' to set the current time)", "time" },
{ "metadata", OPT_TYPE_STRING, OPT_SPEC | OPT_OUTPUT,
{ .off = OFFSET(metadata) },
- "add metadata", "string=string" },
+ "add metadata", "key=value" },
{ "program", OPT_TYPE_STRING, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(program) },
"add program with specified streams", "title=string:st=number..." },
@@ -1659,7 +1660,7 @@ const OptionDef options[] = {
"set profile", "profile" },
{ "filter", OPT_TYPE_STRING, OPT_PERSTREAM | OPT_OUTPUT | OPT_HAS_ALT,
{ .off = OFFSET(filters) },
- "set stream filtergraph", "filter_graph",
+ "apply specified filters to audio/video", "filter_graph",
.u1.names_alt = alt_filter, },
{ "filter_threads", OPT_TYPE_FUNC, OPT_FUNC_ARG | OPT_EXPERT,
{ .func_arg = opt_filter_threads },
@@ -1751,7 +1752,7 @@ const OptionDef options[] = {
.u1.name_canon = "frames", },
{ "r", OPT_TYPE_STRING, OPT_VIDEO | OPT_PERSTREAM | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(frame_rates) },
- "set frame rate (Hz value, fraction or abbreviation)", "rate" },
+ "override input framerate/convert to given output framerate (Hz value, fraction or abbreviation)", "rate" },
{ "fpsmax", OPT_TYPE_STRING, OPT_VIDEO | OPT_PERSTREAM | OPT_OUTPUT | OPT_EXPERT,
{ .off = OFFSET(max_frame_rates) },
"set max frame rate (Hz value, fraction or abbreviation)", "rate" },
@@ -1784,7 +1785,7 @@ const OptionDef options[] = {
"rate control override for specific intervals", "override" },
{ "vcodec", OPT_TYPE_FUNC, OPT_VIDEO | OPT_FUNC_ARG | OPT_PERFILE | OPT_INPUT | OPT_OUTPUT | OPT_HAS_CANON,
{ .func_arg = opt_video_codec },
- "force video codec ('copy' to copy stream)", "codec",
+ "alias for -c:v (select encoder/decoder for video streams)", "codec",
.u1.name_canon = "codec", },
{ "timecode", OPT_TYPE_FUNC, OPT_VIDEO | OPT_FUNC_ARG | OPT_PERFILE | OPT_OUTPUT | OPT_EXPERT,
{ .func_arg = opt_timecode },
@@ -1806,7 +1807,7 @@ const OptionDef options[] = {
"Version of the vstats format to use."},
{ "vf", OPT_TYPE_FUNC, OPT_VIDEO | OPT_FUNC_ARG | OPT_PERFILE | OPT_OUTPUT | OPT_HAS_CANON,
{ .func_arg = opt_video_filters },
- "set video filters", "filter_graph",
+ "alias for -filter:v (apply filters to video streams)", "filter_graph",
.u1.name_canon = "filter", },
{ "intra_matrix", OPT_TYPE_STRING, OPT_VIDEO | OPT_EXPERT | OPT_PERSTREAM | OPT_OUTPUT,
{ .off = OFFSET(intra_matrices) },
@@ -1879,11 +1880,11 @@ const OptionDef options[] = {
"disable audio" },
{ "acodec", OPT_TYPE_FUNC, OPT_AUDIO | OPT_FUNC_ARG | OPT_PERFILE | OPT_INPUT | OPT_OUTPUT | OPT_HAS_CANON,
{ .func_arg = opt_audio_codec },
- "force audio codec ('copy' to copy stream)", "codec",
+ "alias for -c:a (select encoder/decoder for audio streams)", "codec",
.u1.name_canon = "codec", },
{ "ab", OPT_TYPE_FUNC, OPT_AUDIO | OPT_FUNC_ARG | OPT_PERFILE | OPT_OUTPUT,
{ .func_arg = opt_bitrate },
- "audio bitrate (please use -b:a)", "bitrate" },
+ "alias for -b:a (select bitrate for audio streams)", "bitrate" },
{ "atag", OPT_TYPE_FUNC, OPT_AUDIO | OPT_FUNC_ARG | OPT_EXPERT | OPT_PERFILE | OPT_OUTPUT | OPT_HAS_CANON,
{ .func_arg = opt_old2new },
"force audio tag/fourcc", "fourcc/tag",
@@ -1901,7 +1902,7 @@ const OptionDef options[] = {
.u1.name_canon = "channel_layout", },
{ "af", OPT_TYPE_FUNC, OPT_AUDIO | OPT_FUNC_ARG | OPT_PERFILE | OPT_OUTPUT | OPT_HAS_CANON,
{ .func_arg = opt_audio_filters },
- "set audio filters", "filter_graph",
+ "alias for -filter:a (apply filters to audio streams)", "filter_graph",
.u1.name_canon = "filter", },
{ "guess_layout_max", OPT_TYPE_INT, OPT_AUDIO | OPT_PERSTREAM | OPT_EXPERT | OPT_INPUT,
{ .off = OFFSET(guess_layout_max) },
@@ -1913,7 +1914,7 @@ const OptionDef options[] = {
"disable subtitle" },
{ "scodec", OPT_TYPE_FUNC, OPT_SUBTITLE | OPT_FUNC_ARG | OPT_PERFILE | OPT_INPUT | OPT_OUTPUT | OPT_HAS_CANON,
{ .func_arg = opt_subtitle_codec },
- "force subtitle codec ('copy' to copy stream)", "codec",
+ "alias for -c:s (select encoder/decoder for subtitle streams)", "codec",
.u1.name_canon = "codec", },
{ "stag", OPT_TYPE_FUNC, OPT_SUBTITLE | OPT_FUNC_ARG | OPT_EXPERT | OPT_PERFILE | OPT_OUTPUT | OPT_HAS_CANON,
{ .func_arg = opt_old2new }
@@ -1978,7 +1979,7 @@ const OptionDef options[] = {
/* data codec support */
{ "dcodec", OPT_TYPE_FUNC, OPT_FUNC_ARG | OPT_DATA | OPT_PERFILE | OPT_EXPERT | OPT_INPUT | OPT_OUTPUT | OPT_HAS_CANON,
{ .func_arg = opt_data_codec },
- "force data codec ('copy' to copy stream)", "codec",
+ "alias for -c:d (select encoder/decoder for data streams)", "codec",
.u1.name_canon = "codec", },
{ "dn", OPT_TYPE_BOOL, OPT_DATA | OPT_OFFSET | OPT_INPUT | OPT_OUTPUT,
{ .off = OFFSET(data_disable) }, "disable data" },
--
2.42.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/8] fftools/cmdutils: add a flag for per-stream options
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 2/8] fftools/cmdutils: add a flag for per-stream options Anton Khirnov
@ 2024-01-17 13:01 ` Michael Niedermayer
2024-01-17 14:57 ` Anton Khirnov
0 siblings, 1 reply; 10+ messages in thread
From: Michael Niedermayer @ 2024-01-17 13:01 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 1080 bytes --]
On Wed, Jan 17, 2024 at 01:40:29PM +0100, Anton Khirnov wrote:
> Not all OPT_SPEC options are per-stream, this will allow identifying
> those that are, which will be useful in following commits.
> ---
> fftools/cmdutils.h | 13 +++--
> fftools/ffmpeg_opt.c | 118 +++++++++++++++++++++----------------------
> 2 files changed, 68 insertions(+), 63 deletions(-)
Seems git doesnt like applying this
Applying: fftools/cmdutils: add a flag for per-stream options
error: sha1 information is lacking or useless (fftools/cmdutils.h).
error: could not build fake ancestor
Patch failed at 0001 fftools/cmdutils: add a flag for per-stream options
Use 'git am --show-current-patch' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Never trust a computer, one day, it may think you are the virus. -- Compn
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/8] fftools/cmdutils: add a flag for per-stream options
2024-01-17 13:01 ` Michael Niedermayer
@ 2024-01-17 14:57 ` Anton Khirnov
0 siblings, 0 replies; 10+ messages in thread
From: Anton Khirnov @ 2024-01-17 14:57 UTC (permalink / raw)
To: FFmpeg development discussions and patches
Quoting Michael Niedermayer (2024-01-17 14:01:49)
> On Wed, Jan 17, 2024 at 01:40:29PM +0100, Anton Khirnov wrote:
> > Not all OPT_SPEC options are per-stream, this will allow identifying
> > those that are, which will be useful in following commits.
> > ---
> > fftools/cmdutils.h | 13 +++--
> > fftools/ffmpeg_opt.c | 118 +++++++++++++++++++++----------------------
> > 2 files changed, 68 insertions(+), 63 deletions(-)
>
> Seems git doesnt like applying this
As for the other one, this is on top of the previous set. Or see branch
ffmpeg_opt_help in my tree.
--
Anton Khirnov
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-01-17 14:57 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-17 12:40 [FFmpeg-devel] [PATCH 1/8] fftools/cmdutils: hide some information listing options from basic help Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 2/8] fftools/cmdutils: add a flag for per-stream options Anton Khirnov
2024-01-17 13:01 ` Michael Niedermayer
2024-01-17 14:57 ` Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 3/8] fftools/cmdutils: drop alt_flags parameter from show_help_options() Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 4/8] fftools/ffmpeg_opt: add more structure to long help output Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 5/8] fftools/cmdutils: indicate specifiers in option syntax in " Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 6/8] fftools/ffmpeg_opt: briefly mention stream specifier " Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 7/8] fftools/cmdutils: surround option arguments by <> " Anton Khirnov
2024-01-17 12:40 ` [FFmpeg-devel] [PATCH 8/8] fftools/ffmpeg_opt: improve wording in option descriptions Anton Khirnov
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git