summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-04-11 11:54:05 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-04-11 11:54:10 +0200
commita87e85fa722e34639fe53d64586faa309f51afcc (patch)
tree27aebfe1bf7ea3f888b904508ccc38f57fa09464
parent0724b4a16d6b88b311610e96c7ba341a4b33965d (diff)
parent77add967a5e5dae8f322578580c440cb990624ab (diff)
Merge remote-tracking branch 'ubitux/shorthand-cleanup'
* ubitux/shorthand-cleanup: lavfi/setfield: switch to an AVOptions-based system. lavfi/asettb: switch to an AVOptions-based system. lavfi/aselect: switch to an AVOptions-based system. lavfi/sine: switch to an AVOptions-based system. lavfi/deshake: switch to an AVOptions-based system. lavfi/tinterlace: switch to an AVOptions-based system. lavfi/tile: switch to an AVOptions-based system. lavfi/concat: switch to an AVOptions-based system. Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--doc/filters.texi72
-rw-r--r--libavfilter/asrc_sine.c3
-rw-r--r--libavfilter/avf_concat.c3
-rw-r--r--libavfilter/avfilter.c8
-rw-r--r--libavfilter/f_select.c3
-rw-r--r--libavfilter/f_settb.c7
-rw-r--r--libavfilter/vf_deshake.c7
-rw-r--r--libavfilter/vf_setfield.c3
-rw-r--r--libavfilter/vf_tile.c8
-rw-r--r--libavfilter/vf_tinterlace.c3
10 files changed, 46 insertions, 71 deletions
diff --git a/doc/filters.texi b/doc/filters.texi
index 7fd1481161..af4bccbe5e 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -1688,11 +1688,7 @@ Generate an audio signal made of a sine wave with amplitude 1/8.
The audio signal is bit-exact.
-It accepts a list of options in the form of @var{key}=@var{value} pairs
-separated by ":". If the option name is omitted, the first option is the
-frequency and the second option is the beep factor.
-
-The supported options are:
+The filter accepts the following options:
@table @option
@@ -2529,16 +2525,14 @@ Attempt to fix small changes in horizontal and/or vertical shift. This
filter helps remove camera shake from hand-holding a camera, bumping a
tripod, moving on a vehicle, etc.
-The filter accepts parameters as a list of @var{key}=@var{value}
-pairs, separated by ":". If the key of the first options is omitted,
-the arguments are interpreted according to the syntax
-@var{x}:@var{y}:@var{w}:@var{h}:@var{rx}:@var{ry}:@var{edge}:@var{blocksize}:@var{contrast}:@var{search}:@var{filename}:@var{opencl}.
-
-A description of the accepted parameters follows.
+The filter accepts the following options:
@table @option
-@item x, y, w, h
+@item x
+@item y
+@item w
+@item h
Specify a rectangular area where to limit the search for motion
vectors.
If desired the search for motion vectors can be limited to a
@@ -2556,7 +2550,8 @@ without specifying the bounding box for the motion vector search.
Default - search the whole frame.
-@item rx, ry
+@item rx
+@item ry
Specify the maximum extent of movement in x and y directions in the
range 0-64 pixels. Default 16.
@@ -5062,9 +5057,12 @@ output frames. It does not change the input frame, but only sets the
corresponding property, which affects how the frame is treated by
following filters (e.g. @code{fieldorder} or @code{yadif}).
-This filter accepts a single option @option{mode}, which can be
-specified either by setting @code{mode=VALUE} or setting the value
-alone. Available values are:
+The filter accepts the following options:
+
+@table @option
+
+@item mode
+Available values are:
@table @samp
@item auto
@@ -5079,6 +5077,7 @@ Mark the frame as top-field-first.
@item prog
Mark the frame as progressive.
@end table
+@end table
@section showinfo
@@ -5414,8 +5413,7 @@ ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
Tile several successive frames together.
-It accepts a list of options in the form of @var{key}=@var{value} pairs
-separated by ":". A description of the accepted options follows.
+The filter accepts the following options:
@table @option
@@ -5423,6 +5421,11 @@ separated by ":". A description of the accepted options follows.
Set the grid size (i.e. the number of lines and columns) in the form
"@var{w}x@var{h}".
+@item nb_frames
+Set the maximum number of frames to render in the given area. It must be less
+than or equal to @var{w}x@var{h}. The default value is @code{0}, meaning all
+the area will be used.
+
@item margin
Set the outer border margin in pixels.
@@ -5431,19 +5434,13 @@ Set the inner border thickness (i.e. the number of pixels between frames). For
more advanced padding options (such as having different values for the edges),
refer to the pad video filter.
-@item nb_frames
-Set the maximum number of frames to render in the given area. It must be less
-than or equal to @var{w}x@var{h}. The default value is @code{0}, meaning all
-the area will be used.
-
@end table
-Alternatively, the options can be specified as a flat string:
-
-@var{layout}[:@var{nb_frames}[:@var{margin}[:@var{padding}]]]
+@subsection Examples
-For example, produce 8x8 PNG tiles of all keyframes (@option{-skip_frame
-nokey}) in a movie:
+@itemize
+@item
+Produce 8x8 PNG tiles of all keyframes (@option{-skip_frame nokey}) in a movie:
@example
ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
@end example
@@ -5451,12 +5448,14 @@ The @option{-vsync 0} is necessary to prevent @command{ffmpeg} from
duplicating each output frame to accomodate the originally detected frame
rate.
-Another example to display @code{5} pictures in an area of @code{3x2} frames,
+@item
+Display @code{5} pictures in an area of @code{3x2} frames,
with @code{7} pixels between them, and @code{2} pixels of initial margin, using
mixed flat and named options:
@example
tile=3x2:nb_frames=5:padding=7:margin=2
@end example
+@end itemize
@section tinterlace
@@ -5465,13 +5464,7 @@ Perform various types of temporal field interlacing.
Frames are counted starting from 1, so the first input frame is
considered odd.
-This filter accepts options in the form of @var{key}=@var{value} pairs
-separated by ":".
-Alternatively, the @var{mode} option can be specified as a value alone,
-optionally followed by a ":" and further ":" separated @var{key}=@var{value}
-pairs.
-
-A description of the accepted options follows.
+The filter accepts the following options:
@table @option
@@ -6387,7 +6380,7 @@ This filter accepts the following options:
@table @option
-@item expr
+@item expr, e
An expression, which is evaluated for each input frame. If the expression is
evaluated to a non-zero value, the frame is selected and passed to the output,
otherwise it is discarded.
@@ -6884,7 +6877,7 @@ This filter accepts the following options:
@table @option
-@item expr
+@item expr, tb
The expression which is evaluated into the output timebase.
@end table
@@ -6937,7 +6930,8 @@ The filter works on segments of synchronized video and audio streams. All
segments must have the same number of streams of each type, and that will
also be the number of streams at output.
-The filter accepts the following named parameters:
+The filter accepts the following options:
+
@table @option
@item n
diff --git a/libavfilter/asrc_sine.c b/libavfilter/asrc_sine.c
index 148e1ee12e..9387e37688 100644
--- a/libavfilter/asrc_sine.c
+++ b/libavfilter/asrc_sine.c
@@ -210,8 +210,6 @@ static const AVFilterPad sine_outputs[] = {
{ NULL }
};
-static const char *const shorthand[] = { "frequency", "beep_factor", NULL };
-
AVFilter avfilter_asrc_sine = {
.name = "sine",
.description = NULL_IF_CONFIG_SMALL("Generate sine wave audio signal."),
@@ -222,5 +220,4 @@ AVFilter avfilter_asrc_sine = {
.inputs = NULL,
.outputs = sine_outputs,
.priv_class = &sine_class,
- .shorthand = shorthand,
};
diff --git a/libavfilter/avf_concat.c b/libavfilter/avf_concat.c
index 2b3640b1b0..8312efa514 100644
--- a/libavfilter/avf_concat.c
+++ b/libavfilter/avf_concat.c
@@ -409,8 +409,6 @@ static av_cold void uninit(AVFilterContext *ctx)
av_free(cat->in);
}
-static const char *const shorthand[] = { NULL };
-
AVFilter avfilter_avf_concat = {
.name = "concat",
.description = NULL_IF_CONFIG_SMALL("Concatenate audio and video streams."),
@@ -421,5 +419,4 @@ AVFilter avfilter_avf_concat = {
.inputs = NULL,
.outputs = NULL,
.priv_class = &concat_class,
- .shorthand = shorthand,
};
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index e958923ff2..7c2abdcdbf 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -697,11 +697,13 @@ int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque
!strcmp(filter->filter->name, "channelsplit") ||
!strcmp(filter->filter->name, "color" ) ||
!strcmp(filter->filter->name, "colormatrix") ||
+ !strcmp(filter->filter->name, "concat" ) ||
!strcmp(filter->filter->name, "crop" ) ||
!strcmp(filter->filter->name, "cropdetect") ||
!strcmp(filter->filter->name, "curves" ) ||
!strcmp(filter->filter->name, "decimate" ) ||
!strcmp(filter->filter->name, "delogo" ) ||
+ !strcmp(filter->filter->name, "deshake" ) ||
!strcmp(filter->filter->name, "drawbox" ) ||
!strcmp(filter->filter->name, "drawtext" ) ||
!strcmp(filter->filter->name, "ebur128" ) ||
@@ -748,19 +750,25 @@ int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque
!strcmp(filter->filter->name, "rgbtestsrc") ||
!strcmp(filter->filter->name, "setpts" ) ||
!strcmp(filter->filter->name, "settb" ) ||
+ !strcmp(filter->filter->name, "asettb" ) ||
+ !strcmp(filter->filter->name, "setfield") ||
!strcmp(filter->filter->name, "showspectrum") ||
!strcmp(filter->filter->name, "silencedetect") ||
+ !strcmp(filter->filter->name, "sine" ) ||
!strcmp(filter->filter->name, "smartblur") ||
!strcmp(filter->filter->name, "split" ) ||
!strcmp(filter->filter->name, "stereo3d" ) ||
!strcmp(filter->filter->name, "subtitles") ||
!strcmp(filter->filter->name, "testsrc" ) ||
!strcmp(filter->filter->name, "thumbnail") ||
+ !strcmp(filter->filter->name, "tile") ||
+ !strcmp(filter->filter->name, "tinterlace") ||
!strcmp(filter->filter->name, "transpose") ||
!strcmp(filter->filter->name, "treble" ) ||
!strcmp(filter->filter->name, "unsharp" ) ||
// !strcmp(filter->filter->name, "scale" ) ||
!strcmp(filter->filter->name, "select") ||
+ !strcmp(filter->filter->name, "aselect" ) ||
!strcmp(filter->filter->name, "volume" ) ||
!strcmp(filter->filter->name, "yadif" ) ||
0
diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c
index e2c4ef719a..b34196dee3 100644
--- a/libavfilter/f_select.c
+++ b/libavfilter/f_select.c
@@ -388,8 +388,6 @@ static int query_formats(AVFilterContext *ctx)
return 0;
}
-static const char *const shorthand[] = { "expr", NULL };
-
#if CONFIG_ASELECT_FILTER
#define OFFSET(x) offsetof(SelectContext, x)
@@ -445,7 +443,6 @@ AVFilter avfilter_af_aselect = {
.inputs = avfilter_af_aselect_inputs,
.outputs = avfilter_af_aselect_outputs,
.priv_class = &aselect_class,
- .shorthand = shorthand,
};
#endif /* CONFIG_ASELECT_FILTER */
diff --git a/libavfilter/f_settb.c b/libavfilter/f_settb.c
index df03274dcb..b1eac716e3 100644
--- a/libavfilter/f_settb.c
+++ b/libavfilter/f_settb.c
@@ -60,7 +60,9 @@ typedef struct {
#define OFFSET(x) offsetof(SetTBContext, x)
#define DEFINE_OPTIONS(filt_name, filt_type) \
static const AVOption filt_name##_options[] = { \
- { "tb", "Expression determining the output timebase", OFFSET(tb_expr), AV_OPT_TYPE_STRING, {.str="intb"}, \
+ { "expr", "set expression determining the output timebase", OFFSET(tb_expr), AV_OPT_TYPE_STRING, {.str="intb"}, \
+ .flags=AV_OPT_FLAG_##filt_type##_PARAM|AV_OPT_FLAG_FILTERING_PARAM }, \
+ { "tb", "set expression determining the output timebase", OFFSET(tb_expr), AV_OPT_TYPE_STRING, {.str="intb"}, \
.flags=AV_OPT_FLAG_##filt_type##_PARAM|AV_OPT_FLAG_FILTERING_PARAM }, \
{ NULL } \
}
@@ -118,8 +120,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
return ff_filter_frame(outlink, frame);
}
-static const char *const shorthand[] = { "tb", NULL };
-
#if CONFIG_SETTB_FILTER
DEFINE_OPTIONS(settb, VIDEO);
@@ -188,6 +188,5 @@ AVFilter avfilter_af_asettb = {
.inputs = avfilter_af_asettb_inputs,
.outputs = avfilter_af_asettb_outputs,
.priv_class = &asettb_class,
- .shorthand = shorthand,
};
#endif
diff --git a/libavfilter/vf_deshake.c b/libavfilter/vf_deshake.c
index c8b8775371..f363c6eadf 100644
--- a/libavfilter/vf_deshake.c
+++ b/libavfilter/vf_deshake.c
@@ -560,12 +560,6 @@ static const AVFilterPad deshake_outputs[] = {
{ NULL }
};
-static const char *const shorthand[] = {
- "x", "y", "w", "h", "rx", "ry", "edge",
- "blocksize", "contrast", "search", "filename",
- NULL
-};
-
AVFilter avfilter_vf_deshake = {
.name = "deshake",
.description = NULL_IF_CONFIG_SMALL("Stabilize shaky video."),
@@ -576,5 +570,4 @@ AVFilter avfilter_vf_deshake = {
.inputs = deshake_inputs,
.outputs = deshake_outputs,
.priv_class = &deshake_class,
- .shorthand = shorthand,
};
diff --git a/libavfilter/vf_setfield.c b/libavfilter/vf_setfield.c
index 22b3101b7b..4d42cfa968 100644
--- a/libavfilter/vf_setfield.c
+++ b/libavfilter/vf_setfield.c
@@ -85,8 +85,6 @@ static const AVFilterPad setfield_outputs[] = {
{ NULL }
};
-static const char *const shorthand[] = { "mode", NULL };
-
AVFilter avfilter_vf_setfield = {
.name = "setfield",
.description = NULL_IF_CONFIG_SMALL("Force field for the output video frame."),
@@ -94,5 +92,4 @@ AVFilter avfilter_vf_setfield = {
.inputs = setfield_inputs,
.outputs = setfield_outputs,
.priv_class = &setfield_class,
- .shorthand = shorthand,
};
diff --git a/libavfilter/vf_tile.c b/libavfilter/vf_tile.c
index 64bf97076c..f92844b807 100644
--- a/libavfilter/vf_tile.c
+++ b/libavfilter/vf_tile.c
@@ -51,12 +51,12 @@ typedef struct {
static const AVOption tile_options[] = {
{ "layout", "set grid size", OFFSET(w), AV_OPT_TYPE_IMAGE_SIZE,
{.str = "6x5"}, 0, 0, FLAGS },
+ { "nb_frames", "set maximum number of frame to render", OFFSET(nb_frames),
+ AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, FLAGS },
{ "margin", "set outer border margin in pixels", OFFSET(margin),
AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1024, FLAGS },
{ "padding", "set inner border thickness in pixels", OFFSET(padding),
AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1024, FLAGS },
- { "nb_frames", "set maximum number of frame to render", OFFSET(nb_frames),
- AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, FLAGS },
{NULL},
};
@@ -230,9 +230,6 @@ static const AVFilterPad tile_outputs[] = {
{ NULL }
};
-static const char *const shorthand[] =
- { "layout", "nb_frames", "margin", "padding", NULL };
-
AVFilter avfilter_vf_tile = {
.name = "tile",
.description = NULL_IF_CONFIG_SMALL("Tile several successive frames together."),
@@ -242,5 +239,4 @@ AVFilter avfilter_vf_tile = {
.inputs = tile_inputs,
.outputs = tile_outputs,
.priv_class = &tile_class,
- .shorthand = shorthand,
};
diff --git a/libavfilter/vf_tinterlace.c b/libavfilter/vf_tinterlace.c
index 6ff2140bbe..13b8ce286a 100644
--- a/libavfilter/vf_tinterlace.c
+++ b/libavfilter/vf_tinterlace.c
@@ -385,8 +385,6 @@ static const AVFilterPad tinterlace_outputs[] = {
{ NULL }
};
-static const char *const shorthand[] = { "mode", NULL };
-
AVFilter avfilter_vf_tinterlace = {
.name = "tinterlace",
.description = NULL_IF_CONFIG_SMALL("Perform temporal field interlacing."),
@@ -396,5 +394,4 @@ AVFilter avfilter_vf_tinterlace = {
.inputs = tinterlace_inputs,
.outputs = tinterlace_outputs,
.priv_class = &tinterlace_class,
- .shorthand = shorthand,
};