| 
							- @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
 - @samp{'} and @samp{\} 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 @samp{\}.
 - 
 - @item
 - All characters enclosed between @samp{''} are included literally in the
 - parsed string. The quote character @samp{'} 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 @samp{\} 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
 - 
 - There are two accepted syntaxes for expressing time duration.
 - 
 - @example
 - [-][@var{HH}:]@var{MM}:@var{SS}[.@var{m}...]
 - @end example
 - 
 - @var{HH} expresses the number of hours, @var{MM} the number of minutes
 - for a maximum of 2 digits, and @var{SS} the number of seconds for a
 - maximum of 2 digits. The @var{m} at the end expresses decimal value for
 - @var{SS}.
 - 
 - @emph{or}
 - 
 - @example
 - [-]@var{S}+[.@var{m}...]
 - @end example
 - 
 - @var{S} expresses the number of seconds, with the optional decimal part
 - @var{m}.
 - 
 - In both expressions, the optional @samp{-} indicates negative duration.
 - 
 - @subsection Examples
 - 
 - The following examples are all valid time duration:
 - 
 - @table @samp
 - @item 55
 - 55 seconds
 - 
 - @item 12:03:45
 - 12 hours, 03 minutes and 45 seconds
 - 
 - @item 23.189
 - 23.189 seconds
 - @end table
 - 
 - @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
 - @item nhd
 - 640x360
 - @item hqvga
 - 240x160
 - @item wqvga
 - 400x240
 - @item fwqvga
 - 432x240
 - @item hvga
 - 480x320
 - @item qhd
 - 960x540
 - @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 as defined below (case insensitive match) or a
 - @code{[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 (@samp{0x00} or @samp{0.0} means completely
 - transparent, @samp{0xff} or @samp{1.0} completely opaque). If the alpha
 - component is not specified then @samp{0xff} is assumed.
 - 
 - The string @samp{random} will result in a random color.
 - 
 - The following names of colors are recognized:
 - @table @samp
 - @item AliceBlue
 - 0xF0F8FF
 - @item AntiqueWhite
 - 0xFAEBD7
 - @item Aqua
 - 0x00FFFF
 - @item Aquamarine
 - 0x7FFFD4
 - @item Azure
 - 0xF0FFFF
 - @item Beige
 - 0xF5F5DC
 - @item Bisque
 - 0xFFE4C4
 - @item Black
 - 0x000000
 - @item BlanchedAlmond
 - 0xFFEBCD
 - @item Blue
 - 0x0000FF
 - @item BlueViolet
 - 0x8A2BE2
 - @item Brown
 - 0xA52A2A
 - @item BurlyWood
 - 0xDEB887
 - @item CadetBlue
 - 0x5F9EA0
 - @item Chartreuse
 - 0x7FFF00
 - @item Chocolate
 - 0xD2691E
 - @item Coral
 - 0xFF7F50
 - @item CornflowerBlue
 - 0x6495ED
 - @item Cornsilk
 - 0xFFF8DC
 - @item Crimson
 - 0xDC143C
 - @item Cyan
 - 0x00FFFF
 - @item DarkBlue
 - 0x00008B
 - @item DarkCyan
 - 0x008B8B
 - @item DarkGoldenRod
 - 0xB8860B
 - @item DarkGray
 - 0xA9A9A9
 - @item DarkGreen
 - 0x006400
 - @item DarkKhaki
 - 0xBDB76B
 - @item DarkMagenta
 - 0x8B008B
 - @item DarkOliveGreen
 - 0x556B2F
 - @item Darkorange
 - 0xFF8C00
 - @item DarkOrchid
 - 0x9932CC
 - @item DarkRed
 - 0x8B0000
 - @item DarkSalmon
 - 0xE9967A
 - @item DarkSeaGreen
 - 0x8FBC8F
 - @item DarkSlateBlue
 - 0x483D8B
 - @item DarkSlateGray
 - 0x2F4F4F
 - @item DarkTurquoise
 - 0x00CED1
 - @item DarkViolet
 - 0x9400D3
 - @item DeepPink
 - 0xFF1493
 - @item DeepSkyBlue
 - 0x00BFFF
 - @item DimGray
 - 0x696969
 - @item DodgerBlue
 - 0x1E90FF
 - @item FireBrick
 - 0xB22222
 - @item FloralWhite
 - 0xFFFAF0
 - @item ForestGreen
 - 0x228B22
 - @item Fuchsia
 - 0xFF00FF
 - @item Gainsboro
 - 0xDCDCDC
 - @item GhostWhite
 - 0xF8F8FF
 - @item Gold
 - 0xFFD700
 - @item GoldenRod
 - 0xDAA520
 - @item Gray
 - 0x808080
 - @item Green
 - 0x008000
 - @item GreenYellow
 - 0xADFF2F
 - @item HoneyDew
 - 0xF0FFF0
 - @item HotPink
 - 0xFF69B4
 - @item IndianRed
 - 0xCD5C5C
 - @item Indigo
 - 0x4B0082
 - @item Ivory
 - 0xFFFFF0
 - @item Khaki
 - 0xF0E68C
 - @item Lavender
 - 0xE6E6FA
 - @item LavenderBlush
 - 0xFFF0F5
 - @item LawnGreen
 - 0x7CFC00
 - @item LemonChiffon
 - 0xFFFACD
 - @item LightBlue
 - 0xADD8E6
 - @item LightCoral
 - 0xF08080
 - @item LightCyan
 - 0xE0FFFF
 - @item LightGoldenRodYellow
 - 0xFAFAD2
 - @item LightGreen
 - 0x90EE90
 - @item LightGrey
 - 0xD3D3D3
 - @item LightPink
 - 0xFFB6C1
 - @item LightSalmon
 - 0xFFA07A
 - @item LightSeaGreen
 - 0x20B2AA
 - @item LightSkyBlue
 - 0x87CEFA
 - @item LightSlateGray
 - 0x778899
 - @item LightSteelBlue
 - 0xB0C4DE
 - @item LightYellow
 - 0xFFFFE0
 - @item Lime
 - 0x00FF00
 - @item LimeGreen
 - 0x32CD32
 - @item Linen
 - 0xFAF0E6
 - @item Magenta
 - 0xFF00FF
 - @item Maroon
 - 0x800000
 - @item MediumAquaMarine
 - 0x66CDAA
 - @item MediumBlue
 - 0x0000CD
 - @item MediumOrchid
 - 0xBA55D3
 - @item MediumPurple
 - 0x9370D8
 - @item MediumSeaGreen
 - 0x3CB371
 - @item MediumSlateBlue
 - 0x7B68EE
 - @item MediumSpringGreen
 - 0x00FA9A
 - @item MediumTurquoise
 - 0x48D1CC
 - @item MediumVioletRed
 - 0xC71585
 - @item MidnightBlue
 - 0x191970
 - @item MintCream
 - 0xF5FFFA
 - @item MistyRose
 - 0xFFE4E1
 - @item Moccasin
 - 0xFFE4B5
 - @item NavajoWhite
 - 0xFFDEAD
 - @item Navy
 - 0x000080
 - @item OldLace
 - 0xFDF5E6
 - @item Olive
 - 0x808000
 - @item OliveDrab
 - 0x6B8E23
 - @item Orange
 - 0xFFA500
 - @item OrangeRed
 - 0xFF4500
 - @item Orchid
 - 0xDA70D6
 - @item PaleGoldenRod
 - 0xEEE8AA
 - @item PaleGreen
 - 0x98FB98
 - @item PaleTurquoise
 - 0xAFEEEE
 - @item PaleVioletRed
 - 0xD87093
 - @item PapayaWhip
 - 0xFFEFD5
 - @item PeachPuff
 - 0xFFDAB9
 - @item Peru
 - 0xCD853F
 - @item Pink
 - 0xFFC0CB
 - @item Plum
 - 0xDDA0DD
 - @item PowderBlue
 - 0xB0E0E6
 - @item Purple
 - 0x800080
 - @item Red
 - 0xFF0000
 - @item RosyBrown
 - 0xBC8F8F
 - @item RoyalBlue
 - 0x4169E1
 - @item SaddleBrown
 - 0x8B4513
 - @item Salmon
 - 0xFA8072
 - @item SandyBrown
 - 0xF4A460
 - @item SeaGreen
 - 0x2E8B57
 - @item SeaShell
 - 0xFFF5EE
 - @item Sienna
 - 0xA0522D
 - @item Silver
 - 0xC0C0C0
 - @item SkyBlue
 - 0x87CEEB
 - @item SlateBlue
 - 0x6A5ACD
 - @item SlateGray
 - 0x708090
 - @item Snow
 - 0xFFFAFA
 - @item SpringGreen
 - 0x00FF7F
 - @item SteelBlue
 - 0x4682B4
 - @item Tan
 - 0xD2B48C
 - @item Teal
 - 0x008080
 - @item Thistle
 - 0xD8BFD8
 - @item Tomato
 - 0xFF6347
 - @item Turquoise
 - 0x40E0D0
 - @item Violet
 - 0xEE82EE
 - @item Wheat
 - 0xF5DEB3
 - @item White
 - 0xFFFFFF
 - @item WhiteSmoke
 - 0xF5F5F5
 - @item Yellow
 - 0xFFFF00
 - @item YellowGreen
 - 0x9ACD32
 - @end table
 - 
 - @anchor{channel layout syntax}
 - @section Channel Layout
 - 
 - A channel layout specifies the spatial disposition of the channels in
 - a multi-channel audio stream. To specify a channel layout, FFmpeg
 - makes use of a special syntax.
 - 
 - Individual channels are identified by an id, as given by the table
 - below:
 - @table @samp
 - @item FL
 - front left
 - @item FR
 - front right
 - @item FC
 - front center
 - @item LFE
 - low frequency
 - @item BL
 - back left
 - @item BR
 - back right
 - @item FLC
 - front left-of-center
 - @item FRC
 - front right-of-center
 - @item BC
 - back center
 - @item SL
 - side left
 - @item SR
 - side right
 - @item TC
 - top center
 - @item TFL
 - top front left
 - @item TFC
 - top front center
 - @item TFR
 - top front right
 - @item TBL
 - top back left
 - @item TBC
 - top back center
 - @item TBR
 - top back right
 - @item DL
 - downmix left
 - @item DR
 - downmix right
 - @item WL
 - wide left
 - @item WR
 - wide right
 - @item SDL
 - surround direct left
 - @item SDR
 - surround direct right
 - @item LFE2
 - low frequency 2
 - @end table
 - 
 - Standard channel layout compositions can be specified by using the
 - following identifiers:
 - @table @samp
 - @item mono
 - FC
 - @item stereo
 - FL+FR
 - @item 2.1
 - FL+FR+LFE
 - @item 3.0
 - FL+FR+FC
 - @item 3.0(back)
 - FL+FR+BC
 - @item 4.0
 - FL+FR+FC+BC
 - @item quad
 - FL+FR+BL+BR
 - @item quad(side)
 - FL+FR+SL+SR
 - @item 3.1
 - FL+FR+FC+LFE
 - @item 5.0
 - FL+FR+FC+BL+BR
 - @item 5.0(side)
 - FL+FR+FC+SL+SR
 - @item 4.1
 - FL+FR+FC+LFE+BC
 - @item 5.1
 - FL+FR+FC+LFE+BL+BR
 - @item 5.1(side)
 - FL+FR+FC+LFE+SL+SR
 - @item 6.0
 - FL+FR+FC+BC+SL+SR
 - @item 6.0(front)
 - FL+FR+FLC+FRC+SL+SR
 - @item hexagonal
 - FL+FR+FC+BL+BR+BC
 - @item 6.1
 - FL+FR+FC+LFE+BC+SL+SR
 - @item 6.1
 - FL+FR+FC+LFE+BL+BR+BC
 - @item 6.1(front)
 - FL+FR+LFE+FLC+FRC+SL+SR
 - @item 7.0
 - FL+FR+FC+BL+BR+SL+SR
 - @item 7.0(front)
 - FL+FR+FC+FLC+FRC+SL+SR
 - @item 7.1
 - FL+FR+FC+LFE+BL+BR+SL+SR
 - @item 7.1(wide)
 - FL+FR+FC+LFE+BL+BR+FLC+FRC
 - @item 7.1(wide-side)
 - FL+FR+FC+LFE+FLC+FRC+SL+SR
 - @item octagonal
 - FL+FR+FC+BL+BR+BC+SL+SR
 - @item downmix
 - DL+DR
 - @end table
 - 
 - A custom channel layout can be specified as a sequence of terms, separated by
 - '+' or '|'. Each term can be:
 - @itemize
 - @item
 - the name of a standard channel layout (e.g. @samp{mono},
 - @samp{stereo}, @samp{4.0}, @samp{quad}, @samp{5.0}, etc.)
 - 
 - @item
 - the name of a single channel (e.g. @samp{FL}, @samp{FR}, @samp{FC}, @samp{LFE}, etc.)
 - 
 - @item
 - a number of channels, in decimal, optionally followed by 'c', yielding
 - the default channel layout for that number of channels (see the
 - function @code{av_get_default_channel_layout})
 - 
 - @item
 - a channel layout mask, in hexadecimal starting with "0x" (see the
 - @code{AV_CH_*} macros in @file{libavutil/channel_layout.h}.
 - @end itemize
 - 
 - Starting from libavutil version 53 the trailing character "c" to
 - specify a number of channels will be required, while a channel layout
 - mask could also be specified as a decimal number (if and only if not
 - followed by "c").
 - 
 - See also the function @code{av_get_channel_layout} defined in
 - @file{libavutil/channel_layout.h}.
 - @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 clip(x, min, max)
 - Return the value of @var{x} clipped between @var{min} and @var{max}.
 - 
 - @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)
 - 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)
 - 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 EXPRESSION EVALUATION
 - 
 - @chapter OpenCL Options
 - @c man begin OPENCL OPTIONS
 - 
 - When FFmpeg is configured with @code{--enable-opencl}, it is possible
 - to set the options for the global OpenCL context.
 - 
 - The list of supported options follows:
 - 
 - @table @option
 - @item build_options
 - Set build options used to compile the registered kernels.
 - 
 - See reference "OpenCL Specification Version: 1.2 chapter 5.6.4".
 - 
 - @item platform_idx
 - Select the index of the platform to run OpenCL code.
 - 
 - The specified index must be one of the indexes in the device list
 - which can be obtained with @code{ffmpeg -opencl_bench} or @code{av_opencl_get_device_list()}.
 - 
 - @item device_idx
 - Select the index of the device used to run OpenCL code.
 - 
 - The specified index must be one of the indexes in the device list which
 - can be obtained with @code{ffmpeg -opencl_bench} or @code{av_opencl_get_device_list()}.
 - 
 - @end table
 - 
 - @c man end OPENCL OPTIONS
 
 
  |