doc: merge syntax.texi, eval.texi and opencl.texi into utils.texi
authorStefano Sabatini <stefasab@gmail.com>
Fri, 12 Apr 2013 16:14:17 +0000 (18:14 +0200)
committerStefano Sabatini <stefasab@gmail.com>
Fri, 12 Apr 2013 16:21:57 +0000 (18:21 +0200)
doc/all-components.texi
doc/eval.texi [deleted file]
doc/ffmpeg-utils.texi
doc/opencl.texi [deleted file]
doc/syntax.texi [deleted file]
doc/utils.texi [new file with mode: 0644]

index 6800db9..177cf10 100644 (file)
@@ -1,9 +1,7 @@
 @include config.texi
 
 @ifset config-avutil
-@include syntax.texi
-@include eval.texi
-@include opencl.texi
+@include utils.texi
 @end ifset
 
 @ifset config-avcodec
diff --git a/doc/eval.texi b/doc/eval.texi
deleted file mode 100644 (file)
index 24db3b8..0000000
+++ /dev/null
@@ -1,303 +0,0 @@
-@chapter Expression Evaluation
-@c man begin EXPRESSION EVALUATION
-
-When evaluating an arithmetic expression, FFmpeg uses an internal
-formula evaluator, implemented through the @file{libavutil/eval.h}
-interface.
-
-An expression may contain unary, binary operators, constants, and
-functions.
-
-Two expressions @var{expr1} and @var{expr2} can be combined to form
-another expression "@var{expr1};@var{expr2}".
-@var{expr1} and @var{expr2} are evaluated in turn, and the new
-expression evaluates to the value of @var{expr2}.
-
-The following binary operators are available: @code{+}, @code{-},
-@code{*}, @code{/}, @code{^}.
-
-The following unary operators are available: @code{+}, @code{-}.
-
-The following functions are available:
-@table @option
-@item abs(x)
-Compute absolute value of @var{x}.
-
-@item acos(x)
-Compute arccosine of @var{x}.
-
-@item asin(x)
-Compute arcsine of @var{x}.
-
-@item atan(x)
-Compute arctangent of @var{x}.
-
-@item between(x, min, max)
-Return 1 if @var{x} is greater than or equal to @var{min} and lesser than or
-equal to @var{max}, 0 otherwise.
-
-@item bitand(x, y)
-@item bitor(x, y)
-Compute bitwise and/or operation on @var{x} and @var{y}.
-
-The results of the evaluation of @var{x} and @var{y} are converted to
-integers before executing the bitwise operation.
-
-Note that both the conversion to integer and the conversion back to
-floating point can lose precision. Beware of unexpected results for
-large numbers (usually 2^53 and larger).
-
-@item ceil(expr)
-Round the value of expression @var{expr} upwards to the nearest
-integer. For example, "ceil(1.5)" is "2.0".
-
-@item cos(x)
-Compute cosine of @var{x}.
-
-@item cosh(x)
-Compute hyperbolic cosine of @var{x}.
-
-@item eq(x, y)
-Return 1 if @var{x} and @var{y} are equivalent, 0 otherwise.
-
-@item exp(x)
-Compute exponential of @var{x} (with base @code{e}, the Euler's number).
-
-@item floor(expr)
-Round the value of expression @var{expr} downwards to the nearest
-integer. For example, "floor(-1.5)" is "-2.0".
-
-@item gauss(x)
-Compute Gauss function of @var{x}, corresponding to
-@code{exp(-x*x/2) / sqrt(2*PI)}.
-
-@item gcd(x, y)
-Return the greatest common divisor of @var{x} and @var{y}. If both @var{x} and
-@var{y} are 0 or either or both are less than zero then behavior is undefined.
-
-@item gt(x, y)
-Return 1 if @var{x} is greater than @var{y}, 0 otherwise.
-
-@item gte(x, y)
-Return 1 if @var{x} is greater than or equal to @var{y}, 0 otherwise.
-
-@item hypot(x, y)
-This function is similar to the C function with the same name; it returns
-"sqrt(@var{x}*@var{x} + @var{y}*@var{y})", the length of the hypotenuse of a
-right triangle with sides of length @var{x} and @var{y}, or the distance of the
-point (@var{x}, @var{y}) from the origin.
-
-@item if(x, y)
-Evaluate @var{x}, and if the result is non-zero return the result of
-the evaluation of @var{y}, return 0 otherwise.
-
-@item if(x, y, z)
-Evaluate @var{x}, and if the result is non-zero return the evaluation
-result of @var{y}, otherwise the evaluation result of @var{z}.
-
-@item ifnot(x, y)
-Evaluate @var{x}, and if the result is zero return the result of the
-evaluation of @var{y}, return 0 otherwise.
-
-@item ifnot(x, y, z)
-Evaluate @var{x}, and if the result is zero return the evaluation
-result of @var{y}, otherwise the evaluation result of @var{z}.
-
-@item isinf(x)
-Return 1.0 if @var{x} is +/-INFINITY, 0.0 otherwise.
-
-@item isnan(x)
-Return 1.0 if @var{x} is NAN, 0.0 otherwise.
-
-@item ld(var)
-Allow to load the value of the internal variable with number
-@var{var}, which was previously stored with st(@var{var}, @var{expr}).
-The function returns the loaded value.
-
-@item log(x)
-Compute natural logarithm of @var{x}.
-
-@item lt(x, y)
-Return 1 if @var{x} is lesser than @var{y}, 0 otherwise.
-
-@item lte(x, y)
-Return 1 if @var{x} is lesser than or equal to @var{y}, 0 otherwise.
-
-@item max(x, y)
-Return the maximum between @var{x} and @var{y}.
-
-@item min(x, y)
-Return the maximum between @var{x} and @var{y}.
-
-@item mod(x, y)
-Compute the remainder of division of @var{x} by @var{y}.
-
-@item not(expr)
-Return 1.0 if @var{expr} is zero, 0.0 otherwise.
-
-@item pow(x, y)
-Compute the power of @var{x} elevated @var{y}, it is equivalent to
-"(@var{x})^(@var{y})".
-
-@item print(t)
-@item print(t, l)
-Print the value of expression @var{t} with loglevel @var{l}. If
-@var{l} is not specified then a default log level is used.
-Returns the value of the expression printed.
-
-Prints t with loglevel l
-
-@item random(x)
-Return a pseudo random value between 0.0 and 1.0. @var{x} is the index of the
-internal variable which will be used to save the seed/state.
-
-@item root(expr, max)
-Find an input value for which the function represented by @var{expr}
-with argument @var{ld(0)} is 0 in the interval 0..@var{max}.
-
-The expression in @var{expr} must denote a continuous function or the
-result is undefined.
-
-@var{ld(0)} is used to represent the function input value, which means
-that the given expression will be evaluated multiple times with
-various input values that the expression can access through
-@code{ld(0)}. When the expression evaluates to 0 then the
-corresponding input value will be returned.
-
-@item sin(x)
-Compute sine of @var{x}.
-
-@item sinh(x)
-Compute hyperbolic sine of @var{x}.
-
-@item sqrt(expr)
-Compute the square root of @var{expr}. This is equivalent to
-"(@var{expr})^.5".
-
-@item squish(x)
-Compute expression @code{1/(1 + exp(4*x))}.
-
-@item st(var, expr)
-Allow to store the value of the expression @var{expr} in an internal
-variable. @var{var} specifies the number of the variable where to
-store the value, and it is a value ranging from 0 to 9. The function
-returns the value stored in the internal variable.
-Note, Variables are currently not shared between expressions.
-
-@item tan(x)
-Compute tangent of @var{x}.
-
-@item tanh(x)
-Compute hyperbolic tangent of @var{x}.
-
-@item taylor(expr, x)
-@item taylor(expr, x, id)
-Evaluate a Taylor series at @var{x}, given an expression representing
-the @code{ld(id)}-th derivative of a function at 0.
-
-When the series does not converge the result is undefined.
-
-@var{ld(id)} is used to represent the derivative order in @var{expr},
-which means that the given expression will be evaluated multiple times
-with various input values that the expression can access through
-@code{ld(id)}. If @var{id} is not specified then 0 is assumed.
-
-Note, when you have the derivatives at y instead of 0,
-@code{taylor(expr, x-y)} can be used.
-
-@item time(0)
-Return the current (wallclock) time in seconds.
-
-@item trunc(expr)
-Round the value of expression @var{expr} towards zero to the nearest
-integer. For example, "trunc(-1.5)" is "-1.0".
-
-@item while(cond, expr)
-Evaluate expression @var{expr} while the expression @var{cond} is
-non-zero, and returns the value of the last @var{expr} evaluation, or
-NAN if @var{cond} was always false.
-@end table
-
-The following constants are available:
-@table @option
-@item PI
-area of the unit disc, approximately 3.14
-@item E
-exp(1) (Euler's number), approximately 2.718
-@item PHI
-golden ratio (1+sqrt(5))/2, approximately 1.618
-@end table
-
-Assuming that an expression is considered "true" if it has a non-zero
-value, note that:
-
-@code{*} works like AND
-
-@code{+} works like OR
-
-For example the construct:
-@example
-if (A AND B) then C
-@end example
-is equivalent to:
-@example
-if(A*B, C)
-@end example
-
-In your C code, you can extend the list of unary and binary functions,
-and define recognized constants, so that they are available for your
-expressions.
-
-The evaluator also recognizes the International System unit prefixes.
-If 'i' is appended after the prefix, binary prefixes are used, which
-are based on powers of 1024 instead of powers of 1000.
-The 'B' postfix multiplies the value by 8, and can be appended after a
-unit prefix or used alone. This allows using for example 'KB', 'MiB',
-'G' and 'B' as number postfix.
-
-The list of available International System prefixes follows, with
-indication of the corresponding powers of 10 and of 2.
-@table @option
-@item y
-10^-24 / 2^-80
-@item z
-10^-21 / 2^-70
-@item a
-10^-18 / 2^-60
-@item f
-10^-15 / 2^-50
-@item p
-10^-12 / 2^-40
-@item n
-10^-9 / 2^-30
-@item u
-10^-6 / 2^-20
-@item m
-10^-3 / 2^-10
-@item c
-10^-2
-@item d
-10^-1
-@item h
-10^2
-@item k
-10^3 / 2^10
-@item K
-10^3 / 2^10
-@item M
-10^6 / 2^20
-@item G
-10^9 / 2^30
-@item T
-10^12 / 2^40
-@item P
-10^15 / 2^40
-@item E
-10^18 / 2^50
-@item Z
-10^21 / 2^60
-@item Y
-10^24 / 2^70
-@end table
-
-@c man end
index d8f0d0d..581e2ea 100644 (file)
@@ -17,9 +17,7 @@ by the libavutil library.
 
 @c man end DESCRIPTION
 
-@include syntax.texi
-@include eval.texi
-@include opencl.texi
+@include utils.texi
 
 @chapter See Also
 
diff --git a/doc/opencl.texi b/doc/opencl.texi
deleted file mode 100644 (file)
index a07e453..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-@chapter OpenCL Options
-@c man begin OPENCL OPTIONS
-
-When FFmpeg is configured with @code{--enable-opencl}, it is possible
-to set the options to set in the global OpenCL context. The list of
-supported options follows:
-
-@table @option
-@item build_options
-Set build options which used to compiled kernels, see reference "OpenCL Specification Version: 1.2 chapter 5.6.4"
-
-@item platform_idx
-Select platform to run OpenCL code, the platform_idx is the index of platform
-in the device list which can be obtained with av_opencl_get_device_list().
-
-@item device_idx
-Select device to run OpenCL code, the device_idx is the index of device in
-the device list which can be obtained with av_opencl_get_device_list().
-
-@end table
-
-@c man end OPENCL OPTIONS
diff --git a/doc/syntax.texi b/doc/syntax.texi
deleted file mode 100644 (file)
index af22d6c..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-@chapter Syntax
-@c man begin SYNTAX
-
-This section documents the syntax and formats employed by the FFmpeg
-libraries and tools.
-
-@anchor{quoting_and_escaping}
-@section Quoting and escaping
-
-FFmpeg adopts the following quoting and escaping mechanism, unless
-explicitly specified. The following rules are applied:
-
-@itemize
-@item
-@code{'} and @code{\} are special characters (respectively used for
-quoting and escaping). In addition to them, there might be other
-special characters depending on the specific syntax where the escaping
-and quoting are employed.
-
-@item
-A special character is escaped by prefixing it with a '\'.
-
-@item
-All characters enclosed between '' are included literally in the
-parsed string. The quote character @code{'} itself cannot be quoted,
-so you may need to close the quote and escape it.
-
-@item
-Leading and trailing whitespaces, unless escaped or quoted, are
-removed from the parsed string.
-@end itemize
-
-Note that you may need to add a second level of escaping when using
-the command line or a script, which depends on the syntax of the
-adopted shell language.
-
-The function @code{av_get_token} defined in
-@file{libavutil/avstring.h} can be used to parse a token quoted or
-escaped according to the rules defined above.
-
-The tool @file{tools/ffescape} in the FFmpeg source tree can be used
-to automatically quote or escape a string in a script.
-
-@subsection Examples
-
-@itemize
-@item
-Escape the string @code{Crime d'Amour} containing the @code{'} special
-character:
-@example
-Crime d\'Amour
-@end example
-
-@item
-The string above contains a quote, so the @code{'} needs to be escaped
-when quoting it:
-@example
-'Crime d'\''Amour'
-@end example
-
-@item
-Include leading or trailing whitespaces using quoting:
-@example
-'  this string starts and ends with whitespaces  '
-@end example
-
-@item
-Escaping and quoting can be mixed together:
-@example
-' The string '\'string\'' is a string '
-@end example
-
-@item
-To include a literal @code{\} you can use either escaping or quoting:
-@example
-'c:\foo' can be written as c:\\foo
-@end example
-@end itemize
-
-@anchor{date syntax}
-@section Date
-
-The accepted syntax is:
-@example
-[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
-now
-@end example
-
-If the value is "now" it takes the current time.
-
-Time is local time unless Z is appended, in which case it is
-interpreted as UTC.
-If the year-month-day part is not specified it takes the current
-year-month-day.
-
-@anchor{time duration syntax}
-@section Time duration
-
-The accepted syntax is:
-@example
-[-][HH:]MM:SS[.m...]
-[-]S+[.m...]
-@end example
-
-@var{HH} expresses the number of hours, @var{MM} the number a of minutes
-and @var{SS} the number of seconds.
-
-@anchor{video size syntax}
-@section Video size
-Specify the size of the sourced video, it may be a string of the form
-@var{width}x@var{height}, or the name of a size abbreviation.
-
-The following abbreviations are recognized:
-@table @samp
-@item ntsc
-720x480
-@item pal
-720x576
-@item qntsc
-352x240
-@item qpal
-352x288
-@item sntsc
-640x480
-@item spal
-768x576
-@item film
-352x240
-@item ntsc-film
-352x240
-@item sqcif
-128x96
-@item qcif
-176x144
-@item cif
-352x288
-@item 4cif
-704x576
-@item 16cif
-1408x1152
-@item qqvga
-160x120
-@item qvga
-320x240
-@item vga
-640x480
-@item svga
-800x600
-@item xga
-1024x768
-@item uxga
-1600x1200
-@item qxga
-2048x1536
-@item sxga
-1280x1024
-@item qsxga
-2560x2048
-@item hsxga
-5120x4096
-@item wvga
-852x480
-@item wxga
-1366x768
-@item wsxga
-1600x1024
-@item wuxga
-1920x1200
-@item woxga
-2560x1600
-@item wqsxga
-3200x2048
-@item wquxga
-3840x2400
-@item whsxga
-6400x4096
-@item whuxga
-7680x4800
-@item cga
-320x200
-@item ega
-640x350
-@item hd480
-852x480
-@item hd720
-1280x720
-@item hd1080
-1920x1080
-@item 2k
-2048x1080
-@item 2kflat
-1998x1080
-@item 2kscope
-2048x858
-@item 4k
-4096x2160
-@item 4kflat
-3996x2160
-@item 4kscope
-4096x1716
-@end table
-
-@anchor{video rate syntax}
-@section Video rate
-
-Specify the frame rate of a video, expressed as the number of frames
-generated per second. It has to be a string in the format
-@var{frame_rate_num}/@var{frame_rate_den}, an integer number, a float
-number or a valid video frame rate abbreviation.
-
-The following abbreviations are recognized:
-@table @samp
-@item ntsc
-30000/1001
-@item pal
-25/1
-@item qntsc
-30000/1001
-@item qpal
-25/1
-@item sntsc
-30000/1001
-@item spal
-25/1
-@item film
-24/1
-@item ntsc-film
-24000/1001
-@end table
-
-@anchor{ratio syntax}
-@section Ratio
-
-A ratio can be expressed as an expression, or in the form
-@var{numerator}:@var{denominator}.
-
-Note that a ratio with infinite (1/0) or negative value is
-considered valid, so you should check on the returned value if you
-want to exclude those values.
-
-The undefined value can be expressed using the "0:0" string.
-
-@anchor{color syntax}
-@section Color
-
-It can be the name of a color (case insensitive match) or a
-[0x|#]RRGGBB[AA] sequence, possibly followed by "@@" and a string
-representing the alpha component.
-
-The alpha component may be a string composed by "0x" followed by an
-hexadecimal number or a decimal number between 0.0 and 1.0, which
-represents the opacity value (0x00/0.0 means completely transparent,
-0xff/1.0 completely opaque).
-If the alpha component is not specified then 0xff is assumed.
-
-The string "random" will result in a random color.
-
-@c man end SYNTAX
diff --git a/doc/utils.texi b/doc/utils.texi
new file mode 100644 (file)
index 0000000..706516a
--- /dev/null
@@ -0,0 +1,585 @@
+@chapter Syntax
+@c man begin SYNTAX
+
+This section documents the syntax and formats employed by the FFmpeg
+libraries and tools.
+
+@anchor{quoting_and_escaping}
+@section Quoting and escaping
+
+FFmpeg adopts the following quoting and escaping mechanism, unless
+explicitly specified. The following rules are applied:
+
+@itemize
+@item
+@code{'} and @code{\} are special characters (respectively used for
+quoting and escaping). In addition to them, there might be other
+special characters depending on the specific syntax where the escaping
+and quoting are employed.
+
+@item
+A special character is escaped by prefixing it with a '\'.
+
+@item
+All characters enclosed between '' are included literally in the
+parsed string. The quote character @code{'} itself cannot be quoted,
+so you may need to close the quote and escape it.
+
+@item
+Leading and trailing whitespaces, unless escaped or quoted, are
+removed from the parsed string.
+@end itemize
+
+Note that you may need to add a second level of escaping when using
+the command line or a script, which depends on the syntax of the
+adopted shell language.
+
+The function @code{av_get_token} defined in
+@file{libavutil/avstring.h} can be used to parse a token quoted or
+escaped according to the rules defined above.
+
+The tool @file{tools/ffescape} in the FFmpeg source tree can be used
+to automatically quote or escape a string in a script.
+
+@subsection Examples
+
+@itemize
+@item
+Escape the string @code{Crime d'Amour} containing the @code{'} special
+character:
+@example
+Crime d\'Amour
+@end example
+
+@item
+The string above contains a quote, so the @code{'} needs to be escaped
+when quoting it:
+@example
+'Crime d'\''Amour'
+@end example
+
+@item
+Include leading or trailing whitespaces using quoting:
+@example
+'  this string starts and ends with whitespaces  '
+@end example
+
+@item
+Escaping and quoting can be mixed together:
+@example
+' The string '\'string\'' is a string '
+@end example
+
+@item
+To include a literal @code{\} you can use either escaping or quoting:
+@example
+'c:\foo' can be written as c:\\foo
+@end example
+@end itemize
+
+@anchor{date syntax}
+@section Date
+
+The accepted syntax is:
+@example
+[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
+now
+@end example
+
+If the value is "now" it takes the current time.
+
+Time is local time unless Z is appended, in which case it is
+interpreted as UTC.
+If the year-month-day part is not specified it takes the current
+year-month-day.
+
+@anchor{time duration syntax}
+@section Time duration
+
+The accepted syntax is:
+@example
+[-][HH:]MM:SS[.m...]
+[-]S+[.m...]
+@end example
+
+@var{HH} expresses the number of hours, @var{MM} the number a of minutes
+and @var{SS} the number of seconds.
+
+@anchor{video size syntax}
+@section Video size
+Specify the size of the sourced video, it may be a string of the form
+@var{width}x@var{height}, or the name of a size abbreviation.
+
+The following abbreviations are recognized:
+@table @samp
+@item ntsc
+720x480
+@item pal
+720x576
+@item qntsc
+352x240
+@item qpal
+352x288
+@item sntsc
+640x480
+@item spal
+768x576
+@item film
+352x240
+@item ntsc-film
+352x240
+@item sqcif
+128x96
+@item qcif
+176x144
+@item cif
+352x288
+@item 4cif
+704x576
+@item 16cif
+1408x1152
+@item qqvga
+160x120
+@item qvga
+320x240
+@item vga
+640x480
+@item svga
+800x600
+@item xga
+1024x768
+@item uxga
+1600x1200
+@item qxga
+2048x1536
+@item sxga
+1280x1024
+@item qsxga
+2560x2048
+@item hsxga
+5120x4096
+@item wvga
+852x480
+@item wxga
+1366x768
+@item wsxga
+1600x1024
+@item wuxga
+1920x1200
+@item woxga
+2560x1600
+@item wqsxga
+3200x2048
+@item wquxga
+3840x2400
+@item whsxga
+6400x4096
+@item whuxga
+7680x4800
+@item cga
+320x200
+@item ega
+640x350
+@item hd480
+852x480
+@item hd720
+1280x720
+@item hd1080
+1920x1080
+@item 2k
+2048x1080
+@item 2kflat
+1998x1080
+@item 2kscope
+2048x858
+@item 4k
+4096x2160
+@item 4kflat
+3996x2160
+@item 4kscope
+4096x1716
+@end table
+
+@anchor{video rate syntax}
+@section Video rate
+
+Specify the frame rate of a video, expressed as the number of frames
+generated per second. It has to be a string in the format
+@var{frame_rate_num}/@var{frame_rate_den}, an integer number, a float
+number or a valid video frame rate abbreviation.
+
+The following abbreviations are recognized:
+@table @samp
+@item ntsc
+30000/1001
+@item pal
+25/1
+@item qntsc
+30000/1001
+@item qpal
+25/1
+@item sntsc
+30000/1001
+@item spal
+25/1
+@item film
+24/1
+@item ntsc-film
+24000/1001
+@end table
+
+@anchor{ratio syntax}
+@section Ratio
+
+A ratio can be expressed as an expression, or in the form
+@var{numerator}:@var{denominator}.
+
+Note that a ratio with infinite (1/0) or negative value is
+considered valid, so you should check on the returned value if you
+want to exclude those values.
+
+The undefined value can be expressed using the "0:0" string.
+
+@anchor{color syntax}
+@section Color
+
+It can be the name of a color (case insensitive match) or a
+[0x|#]RRGGBB[AA] sequence, possibly followed by "@@" and a string
+representing the alpha component.
+
+The alpha component may be a string composed by "0x" followed by an
+hexadecimal number or a decimal number between 0.0 and 1.0, which
+represents the opacity value (0x00/0.0 means completely transparent,
+0xff/1.0 completely opaque).
+If the alpha component is not specified then 0xff is assumed.
+
+The string "random" will result in a random color.
+
+@c man end SYNTAX
+
+@chapter Expression Evaluation
+@c man begin EXPRESSION EVALUATION
+
+When evaluating an arithmetic expression, FFmpeg uses an internal
+formula evaluator, implemented through the @file{libavutil/eval.h}
+interface.
+
+An expression may contain unary, binary operators, constants, and
+functions.
+
+Two expressions @var{expr1} and @var{expr2} can be combined to form
+another expression "@var{expr1};@var{expr2}".
+@var{expr1} and @var{expr2} are evaluated in turn, and the new
+expression evaluates to the value of @var{expr2}.
+
+The following binary operators are available: @code{+}, @code{-},
+@code{*}, @code{/}, @code{^}.
+
+The following unary operators are available: @code{+}, @code{-}.
+
+The following functions are available:
+@table @option
+@item abs(x)
+Compute absolute value of @var{x}.
+
+@item acos(x)
+Compute arccosine of @var{x}.
+
+@item asin(x)
+Compute arcsine of @var{x}.
+
+@item atan(x)
+Compute arctangent of @var{x}.
+
+@item between(x, min, max)
+Return 1 if @var{x} is greater than or equal to @var{min} and lesser than or
+equal to @var{max}, 0 otherwise.
+
+@item bitand(x, y)
+@item bitor(x, y)
+Compute bitwise and/or operation on @var{x} and @var{y}.
+
+The results of the evaluation of @var{x} and @var{y} are converted to
+integers before executing the bitwise operation.
+
+Note that both the conversion to integer and the conversion back to
+floating point can lose precision. Beware of unexpected results for
+large numbers (usually 2^53 and larger).
+
+@item ceil(expr)
+Round the value of expression @var{expr} upwards to the nearest
+integer. For example, "ceil(1.5)" is "2.0".
+
+@item cos(x)
+Compute cosine of @var{x}.
+
+@item cosh(x)
+Compute hyperbolic cosine of @var{x}.
+
+@item eq(x, y)
+Return 1 if @var{x} and @var{y} are equivalent, 0 otherwise.
+
+@item exp(x)
+Compute exponential of @var{x} (with base @code{e}, the Euler's number).
+
+@item floor(expr)
+Round the value of expression @var{expr} downwards to the nearest
+integer. For example, "floor(-1.5)" is "-2.0".
+
+@item gauss(x)
+Compute Gauss function of @var{x}, corresponding to
+@code{exp(-x*x/2) / sqrt(2*PI)}.
+
+@item gcd(x, y)
+Return the greatest common divisor of @var{x} and @var{y}. If both @var{x} and
+@var{y} are 0 or either or both are less than zero then behavior is undefined.
+
+@item gt(x, y)
+Return 1 if @var{x} is greater than @var{y}, 0 otherwise.
+
+@item gte(x, y)
+Return 1 if @var{x} is greater than or equal to @var{y}, 0 otherwise.
+
+@item hypot(x, y)
+This function is similar to the C function with the same name; it returns
+"sqrt(@var{x}*@var{x} + @var{y}*@var{y})", the length of the hypotenuse of a
+right triangle with sides of length @var{x} and @var{y}, or the distance of the
+point (@var{x}, @var{y}) from the origin.
+
+@item if(x, y)
+Evaluate @var{x}, and if the result is non-zero return the result of
+the evaluation of @var{y}, return 0 otherwise.
+
+@item if(x, y, z)
+Evaluate @var{x}, and if the result is non-zero return the evaluation
+result of @var{y}, otherwise the evaluation result of @var{z}.
+
+@item ifnot(x, y)
+Evaluate @var{x}, and if the result is zero return the result of the
+evaluation of @var{y}, return 0 otherwise.
+
+@item ifnot(x, y, z)
+Evaluate @var{x}, and if the result is zero return the evaluation
+result of @var{y}, otherwise the evaluation result of @var{z}.
+
+@item isinf(x)
+Return 1.0 if @var{x} is +/-INFINITY, 0.0 otherwise.
+
+@item isnan(x)
+Return 1.0 if @var{x} is NAN, 0.0 otherwise.
+
+@item ld(var)
+Allow to load the value of the internal variable with number
+@var{var}, which was previously stored with st(@var{var}, @var{expr}).
+The function returns the loaded value.
+
+@item log(x)
+Compute natural logarithm of @var{x}.
+
+@item lt(x, y)
+Return 1 if @var{x} is lesser than @var{y}, 0 otherwise.
+
+@item lte(x, y)
+Return 1 if @var{x} is lesser than or equal to @var{y}, 0 otherwise.
+
+@item max(x, y)
+Return the maximum between @var{x} and @var{y}.
+
+@item min(x, y)
+Return the maximum between @var{x} and @var{y}.
+
+@item mod(x, y)
+Compute the remainder of division of @var{x} by @var{y}.
+
+@item not(expr)
+Return 1.0 if @var{expr} is zero, 0.0 otherwise.
+
+@item pow(x, y)
+Compute the power of @var{x} elevated @var{y}, it is equivalent to
+"(@var{x})^(@var{y})".
+
+@item print(t)
+@item print(t, l)
+Print the value of expression @var{t} with loglevel @var{l}. If
+@var{l} is not specified then a default log level is used.
+Returns the value of the expression printed.
+
+Prints t with loglevel l
+
+@item random(x)
+Return a pseudo random value between 0.0 and 1.0. @var{x} is the index of the
+internal variable which will be used to save the seed/state.
+
+@item root(expr, max)
+Find an input value for which the function represented by @var{expr}
+with argument @var{ld(0)} is 0 in the interval 0..@var{max}.
+
+The expression in @var{expr} must denote a continuous function or the
+result is undefined.
+
+@var{ld(0)} is used to represent the function input value, which means
+that the given expression will be evaluated multiple times with
+various input values that the expression can access through
+@code{ld(0)}. When the expression evaluates to 0 then the
+corresponding input value will be returned.
+
+@item sin(x)
+Compute sine of @var{x}.
+
+@item sinh(x)
+Compute hyperbolic sine of @var{x}.
+
+@item sqrt(expr)
+Compute the square root of @var{expr}. This is equivalent to
+"(@var{expr})^.5".
+
+@item squish(x)
+Compute expression @code{1/(1 + exp(4*x))}.
+
+@item st(var, expr)
+Allow to store the value of the expression @var{expr} in an internal
+variable. @var{var} specifies the number of the variable where to
+store the value, and it is a value ranging from 0 to 9. The function
+returns the value stored in the internal variable.
+Note, Variables are currently not shared between expressions.
+
+@item tan(x)
+Compute tangent of @var{x}.
+
+@item tanh(x)
+Compute hyperbolic tangent of @var{x}.
+
+@item taylor(expr, x)
+@item taylor(expr, x, id)
+Evaluate a Taylor series at @var{x}, given an expression representing
+the @code{ld(id)}-th derivative of a function at 0.
+
+When the series does not converge the result is undefined.
+
+@var{ld(id)} is used to represent the derivative order in @var{expr},
+which means that the given expression will be evaluated multiple times
+with various input values that the expression can access through
+@code{ld(id)}. If @var{id} is not specified then 0 is assumed.
+
+Note, when you have the derivatives at y instead of 0,
+@code{taylor(expr, x-y)} can be used.
+
+@item time(0)
+Return the current (wallclock) time in seconds.
+
+@item trunc(expr)
+Round the value of expression @var{expr} towards zero to the nearest
+integer. For example, "trunc(-1.5)" is "-1.0".
+
+@item while(cond, expr)
+Evaluate expression @var{expr} while the expression @var{cond} is
+non-zero, and returns the value of the last @var{expr} evaluation, or
+NAN if @var{cond} was always false.
+@end table
+
+The following constants are available:
+@table @option
+@item PI
+area of the unit disc, approximately 3.14
+@item E
+exp(1) (Euler's number), approximately 2.718
+@item PHI
+golden ratio (1+sqrt(5))/2, approximately 1.618
+@end table
+
+Assuming that an expression is considered "true" if it has a non-zero
+value, note that:
+
+@code{*} works like AND
+
+@code{+} works like OR
+
+For example the construct:
+@example
+if (A AND B) then C
+@end example
+is equivalent to:
+@example
+if(A*B, C)
+@end example
+
+In your C code, you can extend the list of unary and binary functions,
+and define recognized constants, so that they are available for your
+expressions.
+
+The evaluator also recognizes the International System unit prefixes.
+If 'i' is appended after the prefix, binary prefixes are used, which
+are based on powers of 1024 instead of powers of 1000.
+The 'B' postfix multiplies the value by 8, and can be appended after a
+unit prefix or used alone. This allows using for example 'KB', 'MiB',
+'G' and 'B' as number postfix.
+
+The list of available International System prefixes follows, with
+indication of the corresponding powers of 10 and of 2.
+@table @option
+@item y
+10^-24 / 2^-80
+@item z
+10^-21 / 2^-70
+@item a
+10^-18 / 2^-60
+@item f
+10^-15 / 2^-50
+@item p
+10^-12 / 2^-40
+@item n
+10^-9 / 2^-30
+@item u
+10^-6 / 2^-20
+@item m
+10^-3 / 2^-10
+@item c
+10^-2
+@item d
+10^-1
+@item h
+10^2
+@item k
+10^3 / 2^10
+@item K
+10^3 / 2^10
+@item M
+10^6 / 2^20
+@item G
+10^9 / 2^30
+@item T
+10^12 / 2^40
+@item P
+10^15 / 2^40
+@item E
+10^18 / 2^50
+@item Z
+10^21 / 2^60
+@item Y
+10^24 / 2^70
+@end table
+
+@c man end
+
+@chapter OpenCL Options
+@c man begin OPENCL OPTIONS
+
+When FFmpeg is configured with @code{--enable-opencl}, it is possible
+to set the options to set in the global OpenCL context. The list of
+supported options follows:
+
+@table @option
+@item build_options
+Set build options which used to compiled kernels, see reference "OpenCL Specification Version: 1.2 chapter 5.6.4"
+
+@item platform_idx
+Select platform to run OpenCL code, the platform_idx is the index of platform
+in the device list which can be obtained with av_opencl_get_device_list().
+
+@item device_idx
+Select device to run OpenCL code, the device_idx is the index of device in
+the device list which can be obtained with av_opencl_get_device_list().
+
+@end table
+
+@c man end OPENCL OPTIONS