annotate ffmpeg/doc/ffmpeg-utils.pod @ 13:844d341cf643 tip

Back up before ISMIR
author Yading Song <yading.song@eecs.qmul.ac.uk>
date Thu, 31 Oct 2013 13:17:06 +0000
parents 6840f77b83aa
children
rev   line source
yading@10 1 =head1 NAME
yading@10 2
yading@10 3 ffmpeg-utils - FFmpeg utilities
yading@10 4
yading@10 5 =head1 DESCRIPTION
yading@10 6
yading@10 7
yading@10 8 This document describes some generic features and utilities provided
yading@10 9 by the libavutil library.
yading@10 10
yading@10 11
yading@10 12
yading@10 13 =head1 SYNTAX
yading@10 14
yading@10 15
yading@10 16 This section documents the syntax and formats employed by the FFmpeg
yading@10 17 libraries and tools.
yading@10 18
yading@10 19
yading@10 20
yading@10 21 =head2 Quoting and escaping
yading@10 22
yading@10 23
yading@10 24 FFmpeg adopts the following quoting and escaping mechanism, unless
yading@10 25 explicitly specified. The following rules are applied:
yading@10 26
yading@10 27
yading@10 28 =over 4
yading@10 29
yading@10 30
yading@10 31 =item *
yading@10 32
yading@10 33 C<'> and C<\> are special characters (respectively used for
yading@10 34 quoting and escaping). In addition to them, there might be other
yading@10 35 special characters depending on the specific syntax where the escaping
yading@10 36 and quoting are employed.
yading@10 37
yading@10 38
yading@10 39 =item *
yading@10 40
yading@10 41 A special character is escaped by prefixing it with a '\'.
yading@10 42
yading@10 43
yading@10 44 =item *
yading@10 45
yading@10 46 All characters enclosed between '' are included literally in the
yading@10 47 parsed string. The quote character C<'> itself cannot be quoted,
yading@10 48 so you may need to close the quote and escape it.
yading@10 49
yading@10 50
yading@10 51 =item *
yading@10 52
yading@10 53 Leading and trailing whitespaces, unless escaped or quoted, are
yading@10 54 removed from the parsed string.
yading@10 55
yading@10 56 =back
yading@10 57
yading@10 58
yading@10 59 Note that you may need to add a second level of escaping when using
yading@10 60 the command line or a script, which depends on the syntax of the
yading@10 61 adopted shell language.
yading@10 62
yading@10 63 The function C<av_get_token> defined in
yading@10 64 F<libavutil/avstring.h> can be used to parse a token quoted or
yading@10 65 escaped according to the rules defined above.
yading@10 66
yading@10 67 The tool F<tools/ffescape> in the FFmpeg source tree can be used
yading@10 68 to automatically quote or escape a string in a script.
yading@10 69
yading@10 70
yading@10 71 =head3 Examples
yading@10 72
yading@10 73
yading@10 74
yading@10 75 =over 4
yading@10 76
yading@10 77
yading@10 78 =item *
yading@10 79
yading@10 80 Escape the string C<Crime d'Amour> containing the C<'> special
yading@10 81 character:
yading@10 82
yading@10 83 Crime d\'Amour
yading@10 84
yading@10 85
yading@10 86
yading@10 87 =item *
yading@10 88
yading@10 89 The string above contains a quote, so the C<'> needs to be escaped
yading@10 90 when quoting it:
yading@10 91
yading@10 92 'Crime d'\''Amour'
yading@10 93
yading@10 94
yading@10 95
yading@10 96 =item *
yading@10 97
yading@10 98 Include leading or trailing whitespaces using quoting:
yading@10 99
yading@10 100 ' this string starts and ends with whitespaces '
yading@10 101
yading@10 102
yading@10 103
yading@10 104 =item *
yading@10 105
yading@10 106 Escaping and quoting can be mixed together:
yading@10 107
yading@10 108 ' The string '\'string\'' is a string '
yading@10 109
yading@10 110
yading@10 111
yading@10 112 =item *
yading@10 113
yading@10 114 To include a literal C<\> you can use either escaping or quoting:
yading@10 115
yading@10 116 'c:\foo' can be written as c:\\foo
yading@10 117
yading@10 118
yading@10 119 =back
yading@10 120
yading@10 121
yading@10 122
yading@10 123
yading@10 124 =head2 Date
yading@10 125
yading@10 126
yading@10 127 The accepted syntax is:
yading@10 128
yading@10 129 [(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
yading@10 130 now
yading@10 131
yading@10 132
yading@10 133 If the value is "now" it takes the current time.
yading@10 134
yading@10 135 Time is local time unless Z is appended, in which case it is
yading@10 136 interpreted as UTC.
yading@10 137 If the year-month-day part is not specified it takes the current
yading@10 138 year-month-day.
yading@10 139
yading@10 140
yading@10 141
yading@10 142 =head2 Time duration
yading@10 143
yading@10 144
yading@10 145 The accepted syntax is:
yading@10 146
yading@10 147 [-][HH:]MM:SS[.m...]
yading@10 148 [-]S+[.m...]
yading@10 149
yading@10 150
yading@10 151 I<HH> expresses the number of hours, I<MM> the number a of minutes
yading@10 152 and I<SS> the number of seconds.
yading@10 153
yading@10 154
yading@10 155
yading@10 156 =head2 Video size
yading@10 157
yading@10 158 Specify the size of the sourced video, it may be a string of the form
yading@10 159 I<width>xI<height>, or the name of a size abbreviation.
yading@10 160
yading@10 161 The following abbreviations are recognized:
yading@10 162
yading@10 163 =over 4
yading@10 164
yading@10 165
yading@10 166 =item B<ntsc>
yading@10 167
yading@10 168 720x480
yading@10 169
yading@10 170 =item B<pal>
yading@10 171
yading@10 172 720x576
yading@10 173
yading@10 174 =item B<qntsc>
yading@10 175
yading@10 176 352x240
yading@10 177
yading@10 178 =item B<qpal>
yading@10 179
yading@10 180 352x288
yading@10 181
yading@10 182 =item B<sntsc>
yading@10 183
yading@10 184 640x480
yading@10 185
yading@10 186 =item B<spal>
yading@10 187
yading@10 188 768x576
yading@10 189
yading@10 190 =item B<film>
yading@10 191
yading@10 192 352x240
yading@10 193
yading@10 194 =item B<ntsc-film>
yading@10 195
yading@10 196 352x240
yading@10 197
yading@10 198 =item B<sqcif>
yading@10 199
yading@10 200 128x96
yading@10 201
yading@10 202 =item B<qcif>
yading@10 203
yading@10 204 176x144
yading@10 205
yading@10 206 =item B<cif>
yading@10 207
yading@10 208 352x288
yading@10 209
yading@10 210 =item B<4cif>
yading@10 211
yading@10 212 704x576
yading@10 213
yading@10 214 =item B<16cif>
yading@10 215
yading@10 216 1408x1152
yading@10 217
yading@10 218 =item B<qqvga>
yading@10 219
yading@10 220 160x120
yading@10 221
yading@10 222 =item B<qvga>
yading@10 223
yading@10 224 320x240
yading@10 225
yading@10 226 =item B<vga>
yading@10 227
yading@10 228 640x480
yading@10 229
yading@10 230 =item B<svga>
yading@10 231
yading@10 232 800x600
yading@10 233
yading@10 234 =item B<xga>
yading@10 235
yading@10 236 1024x768
yading@10 237
yading@10 238 =item B<uxga>
yading@10 239
yading@10 240 1600x1200
yading@10 241
yading@10 242 =item B<qxga>
yading@10 243
yading@10 244 2048x1536
yading@10 245
yading@10 246 =item B<sxga>
yading@10 247
yading@10 248 1280x1024
yading@10 249
yading@10 250 =item B<qsxga>
yading@10 251
yading@10 252 2560x2048
yading@10 253
yading@10 254 =item B<hsxga>
yading@10 255
yading@10 256 5120x4096
yading@10 257
yading@10 258 =item B<wvga>
yading@10 259
yading@10 260 852x480
yading@10 261
yading@10 262 =item B<wxga>
yading@10 263
yading@10 264 1366x768
yading@10 265
yading@10 266 =item B<wsxga>
yading@10 267
yading@10 268 1600x1024
yading@10 269
yading@10 270 =item B<wuxga>
yading@10 271
yading@10 272 1920x1200
yading@10 273
yading@10 274 =item B<woxga>
yading@10 275
yading@10 276 2560x1600
yading@10 277
yading@10 278 =item B<wqsxga>
yading@10 279
yading@10 280 3200x2048
yading@10 281
yading@10 282 =item B<wquxga>
yading@10 283
yading@10 284 3840x2400
yading@10 285
yading@10 286 =item B<whsxga>
yading@10 287
yading@10 288 6400x4096
yading@10 289
yading@10 290 =item B<whuxga>
yading@10 291
yading@10 292 7680x4800
yading@10 293
yading@10 294 =item B<cga>
yading@10 295
yading@10 296 320x200
yading@10 297
yading@10 298 =item B<ega>
yading@10 299
yading@10 300 640x350
yading@10 301
yading@10 302 =item B<hd480>
yading@10 303
yading@10 304 852x480
yading@10 305
yading@10 306 =item B<hd720>
yading@10 307
yading@10 308 1280x720
yading@10 309
yading@10 310 =item B<hd1080>
yading@10 311
yading@10 312 1920x1080
yading@10 313
yading@10 314 =item B<2k>
yading@10 315
yading@10 316 2048x1080
yading@10 317
yading@10 318 =item B<2kflat>
yading@10 319
yading@10 320 1998x1080
yading@10 321
yading@10 322 =item B<2kscope>
yading@10 323
yading@10 324 2048x858
yading@10 325
yading@10 326 =item B<4k>
yading@10 327
yading@10 328 4096x2160
yading@10 329
yading@10 330 =item B<4kflat>
yading@10 331
yading@10 332 3996x2160
yading@10 333
yading@10 334 =item B<4kscope>
yading@10 335
yading@10 336 4096x1716
yading@10 337
yading@10 338 =back
yading@10 339
yading@10 340
yading@10 341
yading@10 342
yading@10 343 =head2 Video rate
yading@10 344
yading@10 345
yading@10 346 Specify the frame rate of a video, expressed as the number of frames
yading@10 347 generated per second. It has to be a string in the format
yading@10 348 I<frame_rate_num>/I<frame_rate_den>, an integer number, a float
yading@10 349 number or a valid video frame rate abbreviation.
yading@10 350
yading@10 351 The following abbreviations are recognized:
yading@10 352
yading@10 353 =over 4
yading@10 354
yading@10 355
yading@10 356 =item B<ntsc>
yading@10 357
yading@10 358 30000/1001
yading@10 359
yading@10 360 =item B<pal>
yading@10 361
yading@10 362 25/1
yading@10 363
yading@10 364 =item B<qntsc>
yading@10 365
yading@10 366 30000/1001
yading@10 367
yading@10 368 =item B<qpal>
yading@10 369
yading@10 370 25/1
yading@10 371
yading@10 372 =item B<sntsc>
yading@10 373
yading@10 374 30000/1001
yading@10 375
yading@10 376 =item B<spal>
yading@10 377
yading@10 378 25/1
yading@10 379
yading@10 380 =item B<film>
yading@10 381
yading@10 382 24/1
yading@10 383
yading@10 384 =item B<ntsc-film>
yading@10 385
yading@10 386 24000/1001
yading@10 387
yading@10 388 =back
yading@10 389
yading@10 390
yading@10 391
yading@10 392
yading@10 393 =head2 Ratio
yading@10 394
yading@10 395
yading@10 396 A ratio can be expressed as an expression, or in the form
yading@10 397 I<numerator>:I<denominator>.
yading@10 398
yading@10 399 Note that a ratio with infinite (1/0) or negative value is
yading@10 400 considered valid, so you should check on the returned value if you
yading@10 401 want to exclude those values.
yading@10 402
yading@10 403 The undefined value can be expressed using the "0:0" string.
yading@10 404
yading@10 405
yading@10 406
yading@10 407 =head2 Color
yading@10 408
yading@10 409
yading@10 410 It can be the name of a color (case insensitive match) or a
yading@10 411 [0x|#]RRGGBB[AA] sequence, possibly followed by "@" and a string
yading@10 412 representing the alpha component.
yading@10 413
yading@10 414 The alpha component may be a string composed by "0x" followed by an
yading@10 415 hexadecimal number or a decimal number between 0.0 and 1.0, which
yading@10 416 represents the opacity value (0x00/0.0 means completely transparent,
yading@10 417 0xff/1.0 completely opaque).
yading@10 418 If the alpha component is not specified then 0xff is assumed.
yading@10 419
yading@10 420 The string "random" will result in a random color.
yading@10 421
yading@10 422
yading@10 423
yading@10 424 =head1 EXPRESSION EVALUATION
yading@10 425
yading@10 426
yading@10 427 When evaluating an arithmetic expression, FFmpeg uses an internal
yading@10 428 formula evaluator, implemented through the F<libavutil/eval.h>
yading@10 429 interface.
yading@10 430
yading@10 431 An expression may contain unary, binary operators, constants, and
yading@10 432 functions.
yading@10 433
yading@10 434 Two expressions I<expr1> and I<expr2> can be combined to form
yading@10 435 another expression "I<expr1>;I<expr2>".
yading@10 436 I<expr1> and I<expr2> are evaluated in turn, and the new
yading@10 437 expression evaluates to the value of I<expr2>.
yading@10 438
yading@10 439 The following binary operators are available: C<+>, C<->,
yading@10 440 C<*>, C</>, C<^>.
yading@10 441
yading@10 442 The following unary operators are available: C<+>, C<->.
yading@10 443
yading@10 444 The following functions are available:
yading@10 445
yading@10 446 =over 4
yading@10 447
yading@10 448
yading@10 449 =item B<abs(x)>
yading@10 450
yading@10 451 Compute absolute value of I<x>.
yading@10 452
yading@10 453
yading@10 454 =item B<acos(x)>
yading@10 455
yading@10 456 Compute arccosine of I<x>.
yading@10 457
yading@10 458
yading@10 459 =item B<asin(x)>
yading@10 460
yading@10 461 Compute arcsine of I<x>.
yading@10 462
yading@10 463
yading@10 464 =item B<atan(x)>
yading@10 465
yading@10 466 Compute arctangent of I<x>.
yading@10 467
yading@10 468
yading@10 469 =item B<between(x, min, max)>
yading@10 470
yading@10 471 Return 1 if I<x> is greater than or equal to I<min> and lesser than or
yading@10 472 equal to I<max>, 0 otherwise.
yading@10 473
yading@10 474
yading@10 475 =item B<bitand(x, y)>
yading@10 476
yading@10 477
yading@10 478 =item B<bitor(x, y)>
yading@10 479
yading@10 480 Compute bitwise and/or operation on I<x> and I<y>.
yading@10 481
yading@10 482 The results of the evaluation of I<x> and I<y> are converted to
yading@10 483 integers before executing the bitwise operation.
yading@10 484
yading@10 485 Note that both the conversion to integer and the conversion back to
yading@10 486 floating point can lose precision. Beware of unexpected results for
yading@10 487 large numbers (usually 2^53 and larger).
yading@10 488
yading@10 489
yading@10 490 =item B<ceil(expr)>
yading@10 491
yading@10 492 Round the value of expression I<expr> upwards to the nearest
yading@10 493 integer. For example, "ceil(1.5)" is "2.0".
yading@10 494
yading@10 495
yading@10 496 =item B<cos(x)>
yading@10 497
yading@10 498 Compute cosine of I<x>.
yading@10 499
yading@10 500
yading@10 501 =item B<cosh(x)>
yading@10 502
yading@10 503 Compute hyperbolic cosine of I<x>.
yading@10 504
yading@10 505
yading@10 506 =item B<eq(x, y)>
yading@10 507
yading@10 508 Return 1 if I<x> and I<y> are equivalent, 0 otherwise.
yading@10 509
yading@10 510
yading@10 511 =item B<exp(x)>
yading@10 512
yading@10 513 Compute exponential of I<x> (with base C<e>, the Euler's number).
yading@10 514
yading@10 515
yading@10 516 =item B<floor(expr)>
yading@10 517
yading@10 518 Round the value of expression I<expr> downwards to the nearest
yading@10 519 integer. For example, "floor(-1.5)" is "-2.0".
yading@10 520
yading@10 521
yading@10 522 =item B<gauss(x)>
yading@10 523
yading@10 524 Compute Gauss function of I<x>, corresponding to
yading@10 525 C<exp(-x*x/2) / sqrt(2*PI)>.
yading@10 526
yading@10 527
yading@10 528 =item B<gcd(x, y)>
yading@10 529
yading@10 530 Return the greatest common divisor of I<x> and I<y>. If both I<x> and
yading@10 531 I<y> are 0 or either or both are less than zero then behavior is undefined.
yading@10 532
yading@10 533
yading@10 534 =item B<gt(x, y)>
yading@10 535
yading@10 536 Return 1 if I<x> is greater than I<y>, 0 otherwise.
yading@10 537
yading@10 538
yading@10 539 =item B<gte(x, y)>
yading@10 540
yading@10 541 Return 1 if I<x> is greater than or equal to I<y>, 0 otherwise.
yading@10 542
yading@10 543
yading@10 544 =item B<hypot(x, y)>
yading@10 545
yading@10 546 This function is similar to the C function with the same name; it returns
yading@10 547 "sqrt(I<x>*I<x> + I<y>*I<y>)", the length of the hypotenuse of a
yading@10 548 right triangle with sides of length I<x> and I<y>, or the distance of the
yading@10 549 point (I<x>, I<y>) from the origin.
yading@10 550
yading@10 551
yading@10 552 =item B<if(x, y)>
yading@10 553
yading@10 554 Evaluate I<x>, and if the result is non-zero return the result of
yading@10 555 the evaluation of I<y>, return 0 otherwise.
yading@10 556
yading@10 557
yading@10 558 =item B<if(x, y, z)>
yading@10 559
yading@10 560 Evaluate I<x>, and if the result is non-zero return the evaluation
yading@10 561 result of I<y>, otherwise the evaluation result of I<z>.
yading@10 562
yading@10 563
yading@10 564 =item B<ifnot(x, y)>
yading@10 565
yading@10 566 Evaluate I<x>, and if the result is zero return the result of the
yading@10 567 evaluation of I<y>, return 0 otherwise.
yading@10 568
yading@10 569
yading@10 570 =item B<ifnot(x, y, z)>
yading@10 571
yading@10 572 Evaluate I<x>, and if the result is zero return the evaluation
yading@10 573 result of I<y>, otherwise the evaluation result of I<z>.
yading@10 574
yading@10 575
yading@10 576 =item B<isinf(x)>
yading@10 577
yading@10 578 Return 1.0 if I<x> is +/-INFINITY, 0.0 otherwise.
yading@10 579
yading@10 580
yading@10 581 =item B<isnan(x)>
yading@10 582
yading@10 583 Return 1.0 if I<x> is NAN, 0.0 otherwise.
yading@10 584
yading@10 585
yading@10 586 =item B<ld(var)>
yading@10 587
yading@10 588 Allow to load the value of the internal variable with number
yading@10 589 I<var>, which was previously stored with st(I<var>, I<expr>).
yading@10 590 The function returns the loaded value.
yading@10 591
yading@10 592
yading@10 593 =item B<log(x)>
yading@10 594
yading@10 595 Compute natural logarithm of I<x>.
yading@10 596
yading@10 597
yading@10 598 =item B<lt(x, y)>
yading@10 599
yading@10 600 Return 1 if I<x> is lesser than I<y>, 0 otherwise.
yading@10 601
yading@10 602
yading@10 603 =item B<lte(x, y)>
yading@10 604
yading@10 605 Return 1 if I<x> is lesser than or equal to I<y>, 0 otherwise.
yading@10 606
yading@10 607
yading@10 608 =item B<max(x, y)>
yading@10 609
yading@10 610 Return the maximum between I<x> and I<y>.
yading@10 611
yading@10 612
yading@10 613 =item B<min(x, y)>
yading@10 614
yading@10 615 Return the maximum between I<x> and I<y>.
yading@10 616
yading@10 617
yading@10 618 =item B<mod(x, y)>
yading@10 619
yading@10 620 Compute the remainder of division of I<x> by I<y>.
yading@10 621
yading@10 622
yading@10 623 =item B<not(expr)>
yading@10 624
yading@10 625 Return 1.0 if I<expr> is zero, 0.0 otherwise.
yading@10 626
yading@10 627
yading@10 628 =item B<pow(x, y)>
yading@10 629
yading@10 630 Compute the power of I<x> elevated I<y>, it is equivalent to
yading@10 631 "(I<x>)^(I<y>)".
yading@10 632
yading@10 633
yading@10 634 =item B<print(t)>
yading@10 635
yading@10 636
yading@10 637 =item B<print(t, l)>
yading@10 638
yading@10 639 Print the value of expression I<t> with loglevel I<l>. If
yading@10 640 I<l> is not specified then a default log level is used.
yading@10 641 Returns the value of the expression printed.
yading@10 642
yading@10 643 Prints t with loglevel l
yading@10 644
yading@10 645
yading@10 646 =item B<random(x)>
yading@10 647
yading@10 648 Return a pseudo random value between 0.0 and 1.0. I<x> is the index of the
yading@10 649 internal variable which will be used to save the seed/state.
yading@10 650
yading@10 651
yading@10 652 =item B<root(expr, max)>
yading@10 653
yading@10 654 Find an input value for which the function represented by I<expr>
yading@10 655 with argument I<ld(0)> is 0 in the interval 0..I<max>.
yading@10 656
yading@10 657 The expression in I<expr> must denote a continuous function or the
yading@10 658 result is undefined.
yading@10 659
yading@10 660 I<ld(0)> is used to represent the function input value, which means
yading@10 661 that the given expression will be evaluated multiple times with
yading@10 662 various input values that the expression can access through
yading@10 663 C<ld(0)>. When the expression evaluates to 0 then the
yading@10 664 corresponding input value will be returned.
yading@10 665
yading@10 666
yading@10 667 =item B<sin(x)>
yading@10 668
yading@10 669 Compute sine of I<x>.
yading@10 670
yading@10 671
yading@10 672 =item B<sinh(x)>
yading@10 673
yading@10 674 Compute hyperbolic sine of I<x>.
yading@10 675
yading@10 676
yading@10 677 =item B<sqrt(expr)>
yading@10 678
yading@10 679 Compute the square root of I<expr>. This is equivalent to
yading@10 680 "(I<expr>)^.5".
yading@10 681
yading@10 682
yading@10 683 =item B<squish(x)>
yading@10 684
yading@10 685 Compute expression C<1/(1 + exp(4*x))>.
yading@10 686
yading@10 687
yading@10 688 =item B<st(var, expr)>
yading@10 689
yading@10 690 Allow to store the value of the expression I<expr> in an internal
yading@10 691 variable. I<var> specifies the number of the variable where to
yading@10 692 store the value, and it is a value ranging from 0 to 9. The function
yading@10 693 returns the value stored in the internal variable.
yading@10 694 Note, Variables are currently not shared between expressions.
yading@10 695
yading@10 696
yading@10 697 =item B<tan(x)>
yading@10 698
yading@10 699 Compute tangent of I<x>.
yading@10 700
yading@10 701
yading@10 702 =item B<tanh(x)>
yading@10 703
yading@10 704 Compute hyperbolic tangent of I<x>.
yading@10 705
yading@10 706
yading@10 707 =item B<taylor(expr, x)>
yading@10 708
yading@10 709
yading@10 710 =item B<taylor(expr, x, id)>
yading@10 711
yading@10 712 Evaluate a Taylor series at I<x>, given an expression representing
yading@10 713 the C<ld(id)>-th derivative of a function at 0.
yading@10 714
yading@10 715 When the series does not converge the result is undefined.
yading@10 716
yading@10 717 I<ld(id)> is used to represent the derivative order in I<expr>,
yading@10 718 which means that the given expression will be evaluated multiple times
yading@10 719 with various input values that the expression can access through
yading@10 720 C<ld(id)>. If I<id> is not specified then 0 is assumed.
yading@10 721
yading@10 722 Note, when you have the derivatives at y instead of 0,
yading@10 723 C<taylor(expr, x-y)> can be used.
yading@10 724
yading@10 725
yading@10 726 =item B<time(0)>
yading@10 727
yading@10 728 Return the current (wallclock) time in seconds.
yading@10 729
yading@10 730
yading@10 731 =item B<trunc(expr)>
yading@10 732
yading@10 733 Round the value of expression I<expr> towards zero to the nearest
yading@10 734 integer. For example, "trunc(-1.5)" is "-1.0".
yading@10 735
yading@10 736
yading@10 737 =item B<while(cond, expr)>
yading@10 738
yading@10 739 Evaluate expression I<expr> while the expression I<cond> is
yading@10 740 non-zero, and returns the value of the last I<expr> evaluation, or
yading@10 741 NAN if I<cond> was always false.
yading@10 742
yading@10 743 =back
yading@10 744
yading@10 745
yading@10 746 The following constants are available:
yading@10 747
yading@10 748 =over 4
yading@10 749
yading@10 750
yading@10 751 =item B<PI>
yading@10 752
yading@10 753 area of the unit disc, approximately 3.14
yading@10 754
yading@10 755 =item B<E>
yading@10 756
yading@10 757 exp(1) (Euler's number), approximately 2.718
yading@10 758
yading@10 759 =item B<PHI>
yading@10 760
yading@10 761 golden ratio (1+sqrt(5))/2, approximately 1.618
yading@10 762
yading@10 763 =back
yading@10 764
yading@10 765
yading@10 766 Assuming that an expression is considered "true" if it has a non-zero
yading@10 767 value, note that:
yading@10 768
yading@10 769 C<*> works like AND
yading@10 770
yading@10 771 C<+> works like OR
yading@10 772
yading@10 773 For example the construct:
yading@10 774
yading@10 775 if (A AND B) then C
yading@10 776
yading@10 777 is equivalent to:
yading@10 778
yading@10 779 if(A*B, C)
yading@10 780
yading@10 781
yading@10 782 In your C code, you can extend the list of unary and binary functions,
yading@10 783 and define recognized constants, so that they are available for your
yading@10 784 expressions.
yading@10 785
yading@10 786 The evaluator also recognizes the International System unit prefixes.
yading@10 787 If 'i' is appended after the prefix, binary prefixes are used, which
yading@10 788 are based on powers of 1024 instead of powers of 1000.
yading@10 789 The 'B' postfix multiplies the value by 8, and can be appended after a
yading@10 790 unit prefix or used alone. This allows using for example 'KB', 'MiB',
yading@10 791 'G' and 'B' as number postfix.
yading@10 792
yading@10 793 The list of available International System prefixes follows, with
yading@10 794 indication of the corresponding powers of 10 and of 2.
yading@10 795
yading@10 796 =over 4
yading@10 797
yading@10 798
yading@10 799 =item B<y>
yading@10 800
yading@10 801 10^-24 / 2^-80
yading@10 802
yading@10 803 =item B<z>
yading@10 804
yading@10 805 10^-21 / 2^-70
yading@10 806
yading@10 807 =item B<a>
yading@10 808
yading@10 809 10^-18 / 2^-60
yading@10 810
yading@10 811 =item B<f>
yading@10 812
yading@10 813 10^-15 / 2^-50
yading@10 814
yading@10 815 =item B<p>
yading@10 816
yading@10 817 10^-12 / 2^-40
yading@10 818
yading@10 819 =item B<n>
yading@10 820
yading@10 821 10^-9 / 2^-30
yading@10 822
yading@10 823 =item B<u>
yading@10 824
yading@10 825 10^-6 / 2^-20
yading@10 826
yading@10 827 =item B<m>
yading@10 828
yading@10 829 10^-3 / 2^-10
yading@10 830
yading@10 831 =item B<c>
yading@10 832
yading@10 833 10^-2
yading@10 834
yading@10 835 =item B<d>
yading@10 836
yading@10 837 10^-1
yading@10 838
yading@10 839 =item B<h>
yading@10 840
yading@10 841 10^2
yading@10 842
yading@10 843 =item B<k>
yading@10 844
yading@10 845 10^3 / 2^10
yading@10 846
yading@10 847 =item B<K>
yading@10 848
yading@10 849 10^3 / 2^10
yading@10 850
yading@10 851 =item B<M>
yading@10 852
yading@10 853 10^6 / 2^20
yading@10 854
yading@10 855 =item B<G>
yading@10 856
yading@10 857 10^9 / 2^30
yading@10 858
yading@10 859 =item B<T>
yading@10 860
yading@10 861 10^12 / 2^40
yading@10 862
yading@10 863 =item B<P>
yading@10 864
yading@10 865 10^15 / 2^40
yading@10 866
yading@10 867 =item B<E>
yading@10 868
yading@10 869 10^18 / 2^50
yading@10 870
yading@10 871 =item B<Z>
yading@10 872
yading@10 873 10^21 / 2^60
yading@10 874
yading@10 875 =item B<Y>
yading@10 876
yading@10 877 10^24 / 2^70
yading@10 878
yading@10 879 =back
yading@10 880
yading@10 881
yading@10 882
yading@10 883
yading@10 884 =head1 OPENCL OPTIONS
yading@10 885
yading@10 886
yading@10 887 When FFmpeg is configured with C<--enable-opencl>, it is possible
yading@10 888 to set the options for the global OpenCL context.
yading@10 889
yading@10 890 The list of supported options follows:
yading@10 891
yading@10 892
yading@10 893 =over 4
yading@10 894
yading@10 895
yading@10 896 =item B<build_options>
yading@10 897
yading@10 898 Set build options used to compile the registered kernels.
yading@10 899
yading@10 900 See reference "OpenCL Specification Version: 1.2 chapter 5.6.4".
yading@10 901
yading@10 902
yading@10 903 =item B<platform_idx>
yading@10 904
yading@10 905 Select the index of the platform to run OpenCL code.
yading@10 906
yading@10 907 The specified index must be one of the indexes in the device list
yading@10 908 which can be obtained with C<av_opencl_get_device_list()>.
yading@10 909
yading@10 910
yading@10 911 =item B<device_idx>
yading@10 912
yading@10 913 Select the index of the device used to run OpenCL code.
yading@10 914
yading@10 915 The specifed index must be one of the indexes in the device list which
yading@10 916 can be obtained with C<av_opencl_get_device_list()>.
yading@10 917
yading@10 918
yading@10 919 =back
yading@10 920
yading@10 921
yading@10 922
yading@10 923
yading@10 924 =head1 SEE ALSO
yading@10 925
yading@10 926
yading@10 927
yading@10 928 ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1), libavutil(3)
yading@10 929
yading@10 930
yading@10 931 =head1 AUTHORS
yading@10 932
yading@10 933
yading@10 934 The FFmpeg developers.
yading@10 935
yading@10 936 For details about the authorship, see the Git history of the project
yading@10 937 (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command
yading@10 938 B<git log> in the FFmpeg source directory, or browsing the
yading@10 939 online repository at E<lt>B<http://source.ffmpeg.org>E<gt>.
yading@10 940
yading@10 941 Maintainers for the specific components are listed in the file
yading@10 942 F<MAINTAINERS> in the source code tree.
yading@10 943
yading@10 944
yading@10 945