@end table
-@section blend, tblend
+@anchor{blend}
+@section blend
Blend two video frames into each other.
The default value is @code{all}.
@end table
+@section cas
+
+Apply Contrast Adaptive Sharpen filter to video stream.
+
+The filter accepts the following options:
+
+@table @option
+@item strength
+Set the sharpening strength. Default value is 0.
+
+@item planes
+Set planes to filter. Default value is to filter all
+planes except alpha plane.
+@end table
+
@section chromahold
Remove all color information for all colors except for certain one.
@end itemize
+@anchor{derain}
@section derain
Remove the rain in the input image/video by applying the derain methods based on
backend can load files for only its format.
@end table
+It can also be finished with @ref{dnn_processing} filter.
+
@section deshake
Attempt to fix small changes in horizontal and/or vertical shift. This
@end example
@end itemize
+@anchor{dnn_processing}
@section dnn_processing
Do image processing with deep neural networks. It works together with another filter
@end table
+@subsection Examples
+
@itemize
@item
-Halve the red channle of the frame with format rgb24:
+Remove rain in rgb24 frame with can.pb (see @ref{derain} filter):
@example
-ffmpeg -i input.jpg -vf format=rgb24,dnn_processing=model=halve_first_channel.model:input=dnn_in:output=dnn_out:dnn_backend=native out.native.png
+./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
@end example
@item
ffmpeg -i input.jpg -vf format=grayf32,dnn_processing=model=halve_gray_float.model:input=dnn_in:output=dnn_out:dnn_backend=native -y out.native.png
@end example
+@item
+Handle the Y channel with srcnn.pb (see @ref{sr} filter) for frame with yuv420p (planar YUV formats supported):
+@example
+./ffmpeg -i 480p.jpg -vf format=yuv420p,scale=w=iw*2:h=ih*2,dnn_processing=dnn_backend=tensorflow:model=srcnn.pb:input=x:output=y -y srcnn.jpg
+@end example
+
+@item
+Handle the Y channel with espcn.pb (see @ref{sr} filter), which changes frame size, for format yuv420p (planar YUV formats supported):
+@example
+./ffmpeg -i 480p.jpg -vf format=yuv420p,dnn_processing=dnn_backend=tensorflow:model=espcn.pb:input=x:output=y -y tmp.espcn.jpg
+@end example
+
@end itemize
@section drawbox
By default value is 0.
@end table
+The @code{hysteresis} filter also supports the @ref{framesync} options.
+
@section idet
Detect video interlacing type.
which means bit depth is automatically picked from first input format.
@end table
+The @code{lut2} filter also supports the @ref{framesync} options.
+
Each of them specifies the expression to use for computing the lookup table for
the corresponding pixel component values.
Set vertical radius size. Default value is @code{0}.
Allowed range is integer from 0 to 127.
If it is 0, value will be picked from horizontal @code{radius} option.
+
+@item percentile
+Set median percentile. Default value is @code{0.5}.
+Default value of @code{0.5} will pick always median values, while @code{0} will pick
+minimum values, and @code{1} maximum values.
@end table
@subsection Commands
@end itemize
+@anchor{overlay_cuda}
+@section overlay_cuda
+
+Overlay one video on top of another.
+
+This is the CUDA cariant of the @ref{overlay} filter.
+It only accepts CUDA frames. The underlying input pixel formats have to match.
+
+It takes two inputs and has one output. The first input is the "main"
+video on which the second input is overlaid.
+
+It accepts the following parameters:
+
+@table @option
+@item x
+@item y
+Set the x and y coordinates of the overlaid video on the main video.
+Default value is "0" for both expressions.
+
+@item eof_action
+See @ref{framesync}.
+
+@item shortest
+See @ref{framesync}.
+
+@item repeatlast
+See @ref{framesync}.
+
+@end table
+
+This filter also supports the @ref{framesync} options.
+
@section owdenoise
Apply Overcomplete Wavelet denoiser.
@item format
Specify pixel format of output from this filter. Can be @code{color} or @code{gray}.
Default is @code{color}.
+
+@item fill
+Specify the color of the unmapped pixels. For the syntax of this option,
+check the @ref{color syntax,,"Color" section in the ffmpeg-utils
+manual,ffmpeg-utils}. Default color is @code{black}.
@end table
@section removegrain
currently @code{6}.
@end table
+@anchor{sr}
@section sr
Scale the input by applying one of the super-resolution methods based on
input upscaled using bicubic upscaling with proper scale factor.
@end table
+This feature can also be finished with @ref{dnn_processing} filter.
+
@section ssim
Obtain the SSIM (Structural SImilarity Metric) between two input videos.
@section swapuv
Swap U & V plane.
+@section tblend
+Blend successive video frames.
+
+See @ref{blend}
+
@section telecine
Apply telecine process to the video.
@table @option
@item start
-Specify number of delay frames before input video stream.
+Specify number of delay frames before input video stream. Default is 0.
@item stop
Specify number of padding frames after input video stream.
-Set to -1 to pad indefinitely.
+Set to -1 to pad indefinitely. Default is 0.
@item start_mode
Set kind of frames added to beginning of stream.
Can be either @var{add} or @var{clone}.
With @var{add} frames of solid-color are added.
With @var{clone} frames are clones of first frame.
+Default is @var{add}.
@item stop_mode
Set kind of frames added to end of stream.
Can be either @var{add} or @var{clone}.
With @var{add} frames of solid-color are added.
With @var{clone} frames are clones of last frame.
+Default is @var{add}.
@item start_duration, stop_duration
Specify the duration of the start/stop delay. See
@ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}
for the accepted syntax.
-These options override @var{start} and @var{stop}.
+These options override @var{start} and @var{stop}. Default is 0.
@item color
Specify the color of the padded area. For the syntax of this option,
@item barrel
@item fb
-Facebook's 360 format.
+@item barrelsplit
+Facebook's 360 formats.
@item sg
Stereographic format.
@end table
@item pannini
-Pannini projection. @i{(output only)}
+Pannini projection.
Format specific options:
@table @option
@item h_fov
-Set pannini parameter.
+Set output pannini parameter.
+
+@item ih_fov
+Set input pannini parameter.
@end table
@item cylindrical
@item tetrahedron
Tetrahedron projection.
+
+@item tsp
+Truncated square pyramid projection.
+
+@item he
+@item hequirect
+Half equirectangular projection.
@end table
@item interp
@item line
@item linear
Bilinear interpolation.
+@item lagrange9
+Lagrange9 interpolation.
@item cube
@item cubic
Bicubic interpolation.
@end example
@end itemize
+@subsection Commands
+
+This filter supports subset of above options as @ref{commands}.
+
@section vaguedenoiser
Apply a wavelet based denoiser.
@item diagtr
@item diagbl
@item diagbr
+@item hlslice
+@item hrslice
+@item vuslice
+@item vdslice
@end table
Default transition effect is fade.
@item planes
Set which planes to filter. Default value is @code{15}, by which all planes are processed.
+
+@item percentile
+Set median percentile. Default value is @code{0.5}.
+Default value of @code{0.5} will pick always median values, while @code{0} will pick
+minimum values, and @code{1} maximum values.
@end table
@section xstack
@end itemize
+@section pad_opencl
+
+Add paddings to the input image, and place the original input at the
+provided @var{x}, @var{y} coordinates.
+
+It accepts the following options:
+
+@table @option
+@item width, w
+@item height, h
+Specify an expression for the size of the output image with the
+paddings added. If the value for @var{width} or @var{height} is 0, the
+corresponding input size is used for the output.
+
+The @var{width} expression can reference the value set by the
+@var{height} expression, and vice versa.
+
+The default value of @var{width} and @var{height} is 0.
+
+@item x
+@item y
+Specify the offsets to place the input image at within the padded area,
+with respect to the top/left border of the output image.
+
+The @var{x} expression can reference the value set by the @var{y}
+expression, and vice versa.
+
+The default value of @var{x} and @var{y} is 0.
+
+If @var{x} or @var{y} evaluate to a negative number, they'll be changed
+so the input image is centered on the padded area.
+
+@item color
+Specify the color of the padded area. For the syntax of this option,
+check the @ref{color syntax,,"Color" section in the ffmpeg-utils
+manual,ffmpeg-utils}.
+
+@item aspect
+Pad to an aspect instead to a resolution.
+@end table
+
+The value for the @var{width}, @var{height}, @var{x}, and @var{y}
+options are expressions containing the following constants:
+
+@table @option
+@item in_w
+@item in_h
+The input video width and height.
+
+@item iw
+@item ih
+These are the same as @var{in_w} and @var{in_h}.
+
+@item out_w
+@item out_h
+The output width and height (the size of the padded area), as
+specified by the @var{width} and @var{height} expressions.
+
+@item ow
+@item oh
+These are the same as @var{out_w} and @var{out_h}.
+
+@item x
+@item y
+The x and y offsets as specified by the @var{x} and @var{y}
+expressions, or NAN if not yet specified.
+
+@item a
+same as @var{iw} / @var{ih}
+
+@item sar
+input sample aspect ratio
+
+@item dar
+input display aspect ratio, it is the same as (@var{iw} / @var{ih}) * @var{sar}
+@end table
+
@section prewitt_opencl
Apply the Prewitt operator (@url{https://en.wikipedia.org/wiki/Prewitt_operator}) to input video stream.
@end table
+The @code{program_opencl} filter also supports the @ref{framesync} options.
+
The program source file must contain a kernel function with the given name,
which will be run once for each plane of the output. Each run on a plane
gets enqueued as a separate 2D global NDRange with one work-item for each
specified interval. In other words, the command is sent when the
previous frame timestamp was in the given interval, and the
current is not.
+
+@item expr
+The command @var{ARG} is interpreted as expression and result of
+expression is passed as @var{ARG}.
+
+The expression is evaluated through the eval API and can contain the following
+constants:
+
+@table @option
+@item POS
+Original position in the file of the frame, or undefined if undefined
+for the current frame.
+
+@item PTS
+The presentation timestamp in input.
+
+@item N
+The count of the input frame for video or audio, starting from 0.
+
+@item T
+The time in seconds of the current frame.
+
+@item TS
+The start time in seconds of the current command interval.
+
+@item TE
+The end time in seconds of the current command interval.
+
+@item TI
+The interpolated time of the current command interval, TI = (T - TS) / (TE - TS).
+@end table
+
@end table
If @var{FLAGS} is not specified, a default value of @code{[enter]} is