ffmpeg-utils.html 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Created by , GNU Texinfo 7.1.1 -->
  4. <head>
  5. <meta charset="utf-8">
  6. <title>
  7. FFmpeg Utilities Documentation
  8. </title>
  9. <meta name="viewport" content="width=device-width,initial-scale=1.0">
  10. <link rel="stylesheet" type="text/css" href="bootstrap.min.css">
  11. <link rel="stylesheet" type="text/css" href="style.min.css">
  12. </head>
  13. <body>
  14. <div class="container">
  15. <h1>
  16. FFmpeg Utilities Documentation
  17. </h1>
  18. <a name="SEC_Top"></a>
  19. <div class="element-contents" id="SEC_Contents">
  20. <h2 class="contents-heading">Table of Contents</h2>
  21. <div class="contents">
  22. <ul class="toc-numbered-mark">
  23. <li><a id="toc-Description" href="#Description">1 Description</a></li>
  24. <li><a id="toc-Syntax" href="#Syntax">2 Syntax</a>
  25. <ul class="toc-numbered-mark">
  26. <li><a id="toc-Quoting-and-escaping" href="#Quoting-and-escaping">2.1 Quoting and escaping</a>
  27. <ul class="toc-numbered-mark">
  28. <li><a id="toc-Examples" href="#Examples">2.1.1 Examples</a></li>
  29. </ul></li>
  30. <li><a id="toc-Date" href="#Date">2.2 Date</a></li>
  31. <li><a id="toc-Time-duration" href="#Time-duration">2.3 Time duration</a>
  32. <ul class="toc-numbered-mark">
  33. <li><a id="toc-Examples-1" href="#Examples-1">2.3.1 Examples</a></li>
  34. </ul></li>
  35. <li><a id="toc-Video-size" href="#Video-size">2.4 Video size</a></li>
  36. <li><a id="toc-Video-rate" href="#Video-rate">2.5 Video rate</a></li>
  37. <li><a id="toc-Ratio" href="#Ratio">2.6 Ratio</a></li>
  38. <li><a id="toc-Color" href="#Color">2.7 Color</a></li>
  39. <li><a id="toc-Channel-Layout" href="#Channel-Layout">2.8 Channel Layout</a></li>
  40. </ul></li>
  41. <li><a id="toc-Expression-Evaluation" href="#Expression-Evaluation">3 Expression Evaluation</a></li>
  42. <li><a id="toc-See-Also" href="#See-Also">4 See Also</a></li>
  43. <li><a id="toc-Authors" href="#Authors">5 Authors</a></li>
  44. </ul>
  45. </div>
  46. </div>
  47. <a name="Description"></a>
  48. <h2 class="chapter">1 Description<span class="pull-right"><a class="anchor hidden-xs" href="#Description" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Description" aria-hidden="true">TOC</a></span></h2>
  49. <p>This document describes some generic features and utilities provided
  50. by the libavutil library.
  51. </p>
  52. <a name="Syntax"></a>
  53. <h2 class="chapter">2 Syntax<span class="pull-right"><a class="anchor hidden-xs" href="#Syntax" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Syntax" aria-hidden="true">TOC</a></span></h2>
  54. <p>This section documents the syntax and formats employed by the FFmpeg
  55. libraries and tools.
  56. </p>
  57. <a class="anchor" id="quoting_005fand_005fescaping"></a><a name="Quoting-and-escaping"></a>
  58. <h3 class="section">2.1 Quoting and escaping<span class="pull-right"><a class="anchor hidden-xs" href="#Quoting-and-escaping" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Quoting-and-escaping" aria-hidden="true">TOC</a></span></h3>
  59. <p>FFmpeg adopts the following quoting and escaping mechanism, unless
  60. explicitly specified. The following rules are applied:
  61. </p>
  62. <ul class="itemize mark-bullet">
  63. <li>&lsquo;<samp class="samp">'</samp>&rsquo; and &lsquo;<samp class="samp">\</samp>&rsquo; are special characters (respectively used for
  64. quoting and escaping). In addition to them, there might be other
  65. special characters depending on the specific syntax where the escaping
  66. and quoting are employed.
  67. </li><li>A special character is escaped by prefixing it with a &lsquo;<samp class="samp">\</samp>&rsquo;.
  68. </li><li>All characters enclosed between &lsquo;<samp class="samp">''</samp>&rsquo; are included literally in the
  69. parsed string. The quote character &lsquo;<samp class="samp">'</samp>&rsquo; itself cannot be quoted,
  70. so you may need to close the quote and escape it.
  71. </li><li>Leading and trailing whitespaces, unless escaped or quoted, are
  72. removed from the parsed string.
  73. </li></ul>
  74. <p>Note that you may need to add a second level of escaping when using
  75. the command line or a script, which depends on the syntax of the
  76. adopted shell language.
  77. </p>
  78. <p>The function <code class="code">av_get_token</code> defined in
  79. <samp class="file">libavutil/avstring.h</samp> can be used to parse a token quoted or
  80. escaped according to the rules defined above.
  81. </p>
  82. <p>The tool <samp class="file">tools/ffescape</samp> in the FFmpeg source tree can be used
  83. to automatically quote or escape a string in a script.
  84. </p>
  85. <a name="Examples"></a>
  86. <h4 class="subsection">2.1.1 Examples<span class="pull-right"><a class="anchor hidden-xs" href="#Examples" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Examples" aria-hidden="true">TOC</a></span></h4>
  87. <ul class="itemize mark-bullet">
  88. <li>Escape the string <code class="code">Crime d'Amour</code> containing the <code class="code">'</code> special
  89. character:
  90. <div class="example">
  91. <pre class="example-preformatted">Crime d\'Amour
  92. </pre></div>
  93. </li><li>The string above contains a quote, so the <code class="code">'</code> needs to be escaped
  94. when quoting it:
  95. <div class="example">
  96. <pre class="example-preformatted">'Crime d'\''Amour'
  97. </pre></div>
  98. </li><li>Include leading or trailing whitespaces using quoting:
  99. <div class="example">
  100. <pre class="example-preformatted">' this string starts and ends with whitespaces '
  101. </pre></div>
  102. </li><li>Escaping and quoting can be mixed together:
  103. <div class="example">
  104. <pre class="example-preformatted">' The string '\'string\'' is a string '
  105. </pre></div>
  106. </li><li>To include a literal &lsquo;<samp class="samp">\</samp>&rsquo; you can use either escaping or quoting:
  107. <div class="example">
  108. <pre class="example-preformatted">'c:\foo' can be written as c:\\foo
  109. </pre></div>
  110. </li></ul>
  111. <a class="anchor" id="date-syntax"></a><a name="Date"></a>
  112. <h3 class="section">2.2 Date<span class="pull-right"><a class="anchor hidden-xs" href="#Date" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Date" aria-hidden="true">TOC</a></span></h3>
  113. <p>The accepted syntax is:
  114. </p><div class="example">
  115. <pre class="example-preformatted">[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
  116. now
  117. </pre></div>
  118. <p>If the value is &quot;now&quot; it takes the current time.
  119. </p>
  120. <p>Time is local time unless Z is appended, in which case it is
  121. interpreted as UTC.
  122. If the year-month-day part is not specified it takes the current
  123. year-month-day.
  124. </p>
  125. <a class="anchor" id="time-duration-syntax"></a><a name="Time-duration"></a>
  126. <h3 class="section">2.3 Time duration<span class="pull-right"><a class="anchor hidden-xs" href="#Time-duration" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Time-duration" aria-hidden="true">TOC</a></span></h3>
  127. <p>There are two accepted syntaxes for expressing time duration.
  128. </p>
  129. <div class="example">
  130. <pre class="example-preformatted">[-][<var class="var">HH</var>:]<var class="var">MM</var>:<var class="var">SS</var>[.<var class="var">m</var>...]
  131. </pre></div>
  132. <p><var class="var">HH</var> expresses the number of hours, <var class="var">MM</var> the number of minutes
  133. for a maximum of 2 digits, and <var class="var">SS</var> the number of seconds for a
  134. maximum of 2 digits. The <var class="var">m</var> at the end expresses decimal value for
  135. <var class="var">SS</var>.
  136. </p>
  137. <p><em class="emph">or</em>
  138. </p>
  139. <div class="example">
  140. <pre class="example-preformatted">[-]<var class="var">S</var>+[.<var class="var">m</var>...][s|ms|us]
  141. </pre></div>
  142. <p><var class="var">S</var> expresses the number of seconds, with the optional decimal part
  143. <var class="var">m</var>. The optional literal suffixes &lsquo;<samp class="samp">s</samp>&rsquo;, &lsquo;<samp class="samp">ms</samp>&rsquo; or &lsquo;<samp class="samp">us</samp>&rsquo;
  144. indicate to interpret the value as seconds, milliseconds or microseconds,
  145. respectively.
  146. </p>
  147. <p>In both expressions, the optional &lsquo;<samp class="samp">-</samp>&rsquo; indicates negative duration.
  148. </p>
  149. <a name="Examples-1"></a>
  150. <h4 class="subsection">2.3.1 Examples<span class="pull-right"><a class="anchor hidden-xs" href="#Examples-1" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Examples-1" aria-hidden="true">TOC</a></span></h4>
  151. <p>The following examples are all valid time duration:
  152. </p>
  153. <dl class="table">
  154. <dt>&lsquo;<samp class="samp">55</samp>&rsquo;</dt>
  155. <dd><p>55 seconds
  156. </p>
  157. </dd>
  158. <dt>&lsquo;<samp class="samp">0.2</samp>&rsquo;</dt>
  159. <dd><p>0.2 seconds
  160. </p>
  161. </dd>
  162. <dt>&lsquo;<samp class="samp">200ms</samp>&rsquo;</dt>
  163. <dd><p>200 milliseconds, that&rsquo;s 0.2s
  164. </p>
  165. </dd>
  166. <dt>&lsquo;<samp class="samp">200000us</samp>&rsquo;</dt>
  167. <dd><p>200000 microseconds, that&rsquo;s 0.2s
  168. </p>
  169. </dd>
  170. <dt>&lsquo;<samp class="samp">12:03:45</samp>&rsquo;</dt>
  171. <dd><p>12 hours, 03 minutes and 45 seconds
  172. </p>
  173. </dd>
  174. <dt>&lsquo;<samp class="samp">23.189</samp>&rsquo;</dt>
  175. <dd><p>23.189 seconds
  176. </p></dd>
  177. </dl>
  178. <a class="anchor" id="video-size-syntax"></a><a name="Video-size"></a>
  179. <h3 class="section">2.4 Video size<span class="pull-right"><a class="anchor hidden-xs" href="#Video-size" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Video-size" aria-hidden="true">TOC</a></span></h3>
  180. <p>Specify the size of the sourced video, it may be a string of the form
  181. <var class="var">width</var>x<var class="var">height</var>, or the name of a size abbreviation.
  182. </p>
  183. <p>The following abbreviations are recognized:
  184. </p><dl class="table">
  185. <dt>&lsquo;<samp class="samp">ntsc</samp>&rsquo;</dt>
  186. <dd><p>720x480
  187. </p></dd>
  188. <dt>&lsquo;<samp class="samp">pal</samp>&rsquo;</dt>
  189. <dd><p>720x576
  190. </p></dd>
  191. <dt>&lsquo;<samp class="samp">qntsc</samp>&rsquo;</dt>
  192. <dd><p>352x240
  193. </p></dd>
  194. <dt>&lsquo;<samp class="samp">qpal</samp>&rsquo;</dt>
  195. <dd><p>352x288
  196. </p></dd>
  197. <dt>&lsquo;<samp class="samp">sntsc</samp>&rsquo;</dt>
  198. <dd><p>640x480
  199. </p></dd>
  200. <dt>&lsquo;<samp class="samp">spal</samp>&rsquo;</dt>
  201. <dd><p>768x576
  202. </p></dd>
  203. <dt>&lsquo;<samp class="samp">film</samp>&rsquo;</dt>
  204. <dd><p>352x240
  205. </p></dd>
  206. <dt>&lsquo;<samp class="samp">ntsc-film</samp>&rsquo;</dt>
  207. <dd><p>352x240
  208. </p></dd>
  209. <dt>&lsquo;<samp class="samp">sqcif</samp>&rsquo;</dt>
  210. <dd><p>128x96
  211. </p></dd>
  212. <dt>&lsquo;<samp class="samp">qcif</samp>&rsquo;</dt>
  213. <dd><p>176x144
  214. </p></dd>
  215. <dt>&lsquo;<samp class="samp">cif</samp>&rsquo;</dt>
  216. <dd><p>352x288
  217. </p></dd>
  218. <dt>&lsquo;<samp class="samp">4cif</samp>&rsquo;</dt>
  219. <dd><p>704x576
  220. </p></dd>
  221. <dt>&lsquo;<samp class="samp">16cif</samp>&rsquo;</dt>
  222. <dd><p>1408x1152
  223. </p></dd>
  224. <dt>&lsquo;<samp class="samp">qqvga</samp>&rsquo;</dt>
  225. <dd><p>160x120
  226. </p></dd>
  227. <dt>&lsquo;<samp class="samp">qvga</samp>&rsquo;</dt>
  228. <dd><p>320x240
  229. </p></dd>
  230. <dt>&lsquo;<samp class="samp">vga</samp>&rsquo;</dt>
  231. <dd><p>640x480
  232. </p></dd>
  233. <dt>&lsquo;<samp class="samp">svga</samp>&rsquo;</dt>
  234. <dd><p>800x600
  235. </p></dd>
  236. <dt>&lsquo;<samp class="samp">xga</samp>&rsquo;</dt>
  237. <dd><p>1024x768
  238. </p></dd>
  239. <dt>&lsquo;<samp class="samp">uxga</samp>&rsquo;</dt>
  240. <dd><p>1600x1200
  241. </p></dd>
  242. <dt>&lsquo;<samp class="samp">qxga</samp>&rsquo;</dt>
  243. <dd><p>2048x1536
  244. </p></dd>
  245. <dt>&lsquo;<samp class="samp">sxga</samp>&rsquo;</dt>
  246. <dd><p>1280x1024
  247. </p></dd>
  248. <dt>&lsquo;<samp class="samp">qsxga</samp>&rsquo;</dt>
  249. <dd><p>2560x2048
  250. </p></dd>
  251. <dt>&lsquo;<samp class="samp">hsxga</samp>&rsquo;</dt>
  252. <dd><p>5120x4096
  253. </p></dd>
  254. <dt>&lsquo;<samp class="samp">wvga</samp>&rsquo;</dt>
  255. <dd><p>852x480
  256. </p></dd>
  257. <dt>&lsquo;<samp class="samp">wxga</samp>&rsquo;</dt>
  258. <dd><p>1366x768
  259. </p></dd>
  260. <dt>&lsquo;<samp class="samp">wsxga</samp>&rsquo;</dt>
  261. <dd><p>1600x1024
  262. </p></dd>
  263. <dt>&lsquo;<samp class="samp">wuxga</samp>&rsquo;</dt>
  264. <dd><p>1920x1200
  265. </p></dd>
  266. <dt>&lsquo;<samp class="samp">woxga</samp>&rsquo;</dt>
  267. <dd><p>2560x1600
  268. </p></dd>
  269. <dt>&lsquo;<samp class="samp">wqsxga</samp>&rsquo;</dt>
  270. <dd><p>3200x2048
  271. </p></dd>
  272. <dt>&lsquo;<samp class="samp">wquxga</samp>&rsquo;</dt>
  273. <dd><p>3840x2400
  274. </p></dd>
  275. <dt>&lsquo;<samp class="samp">whsxga</samp>&rsquo;</dt>
  276. <dd><p>6400x4096
  277. </p></dd>
  278. <dt>&lsquo;<samp class="samp">whuxga</samp>&rsquo;</dt>
  279. <dd><p>7680x4800
  280. </p></dd>
  281. <dt>&lsquo;<samp class="samp">cga</samp>&rsquo;</dt>
  282. <dd><p>320x200
  283. </p></dd>
  284. <dt>&lsquo;<samp class="samp">ega</samp>&rsquo;</dt>
  285. <dd><p>640x350
  286. </p></dd>
  287. <dt>&lsquo;<samp class="samp">hd480</samp>&rsquo;</dt>
  288. <dd><p>852x480
  289. </p></dd>
  290. <dt>&lsquo;<samp class="samp">hd720</samp>&rsquo;</dt>
  291. <dd><p>1280x720
  292. </p></dd>
  293. <dt>&lsquo;<samp class="samp">hd1080</samp>&rsquo;</dt>
  294. <dd><p>1920x1080
  295. </p></dd>
  296. <dt>&lsquo;<samp class="samp">2k</samp>&rsquo;</dt>
  297. <dd><p>2048x1080
  298. </p></dd>
  299. <dt>&lsquo;<samp class="samp">2kflat</samp>&rsquo;</dt>
  300. <dd><p>1998x1080
  301. </p></dd>
  302. <dt>&lsquo;<samp class="samp">2kscope</samp>&rsquo;</dt>
  303. <dd><p>2048x858
  304. </p></dd>
  305. <dt>&lsquo;<samp class="samp">4k</samp>&rsquo;</dt>
  306. <dd><p>4096x2160
  307. </p></dd>
  308. <dt>&lsquo;<samp class="samp">4kflat</samp>&rsquo;</dt>
  309. <dd><p>3996x2160
  310. </p></dd>
  311. <dt>&lsquo;<samp class="samp">4kscope</samp>&rsquo;</dt>
  312. <dd><p>4096x1716
  313. </p></dd>
  314. <dt>&lsquo;<samp class="samp">nhd</samp>&rsquo;</dt>
  315. <dd><p>640x360
  316. </p></dd>
  317. <dt>&lsquo;<samp class="samp">hqvga</samp>&rsquo;</dt>
  318. <dd><p>240x160
  319. </p></dd>
  320. <dt>&lsquo;<samp class="samp">wqvga</samp>&rsquo;</dt>
  321. <dd><p>400x240
  322. </p></dd>
  323. <dt>&lsquo;<samp class="samp">fwqvga</samp>&rsquo;</dt>
  324. <dd><p>432x240
  325. </p></dd>
  326. <dt>&lsquo;<samp class="samp">hvga</samp>&rsquo;</dt>
  327. <dd><p>480x320
  328. </p></dd>
  329. <dt>&lsquo;<samp class="samp">qhd</samp>&rsquo;</dt>
  330. <dd><p>960x540
  331. </p></dd>
  332. <dt>&lsquo;<samp class="samp">2kdci</samp>&rsquo;</dt>
  333. <dd><p>2048x1080
  334. </p></dd>
  335. <dt>&lsquo;<samp class="samp">4kdci</samp>&rsquo;</dt>
  336. <dd><p>4096x2160
  337. </p></dd>
  338. <dt>&lsquo;<samp class="samp">uhd2160</samp>&rsquo;</dt>
  339. <dd><p>3840x2160
  340. </p></dd>
  341. <dt>&lsquo;<samp class="samp">uhd4320</samp>&rsquo;</dt>
  342. <dd><p>7680x4320
  343. </p></dd>
  344. </dl>
  345. <a class="anchor" id="video-rate-syntax"></a><a name="Video-rate"></a>
  346. <h3 class="section">2.5 Video rate<span class="pull-right"><a class="anchor hidden-xs" href="#Video-rate" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Video-rate" aria-hidden="true">TOC</a></span></h3>
  347. <p>Specify the frame rate of a video, expressed as the number of frames
  348. generated per second. It has to be a string in the format
  349. <var class="var">frame_rate_num</var>/<var class="var">frame_rate_den</var>, an integer number, a float
  350. number or a valid video frame rate abbreviation.
  351. </p>
  352. <p>The following abbreviations are recognized:
  353. </p><dl class="table">
  354. <dt>&lsquo;<samp class="samp">ntsc</samp>&rsquo;</dt>
  355. <dd><p>30000/1001
  356. </p></dd>
  357. <dt>&lsquo;<samp class="samp">pal</samp>&rsquo;</dt>
  358. <dd><p>25/1
  359. </p></dd>
  360. <dt>&lsquo;<samp class="samp">qntsc</samp>&rsquo;</dt>
  361. <dd><p>30000/1001
  362. </p></dd>
  363. <dt>&lsquo;<samp class="samp">qpal</samp>&rsquo;</dt>
  364. <dd><p>25/1
  365. </p></dd>
  366. <dt>&lsquo;<samp class="samp">sntsc</samp>&rsquo;</dt>
  367. <dd><p>30000/1001
  368. </p></dd>
  369. <dt>&lsquo;<samp class="samp">spal</samp>&rsquo;</dt>
  370. <dd><p>25/1
  371. </p></dd>
  372. <dt>&lsquo;<samp class="samp">film</samp>&rsquo;</dt>
  373. <dd><p>24/1
  374. </p></dd>
  375. <dt>&lsquo;<samp class="samp">ntsc-film</samp>&rsquo;</dt>
  376. <dd><p>24000/1001
  377. </p></dd>
  378. </dl>
  379. <a class="anchor" id="ratio-syntax"></a><a name="Ratio"></a>
  380. <h3 class="section">2.6 Ratio<span class="pull-right"><a class="anchor hidden-xs" href="#Ratio" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Ratio" aria-hidden="true">TOC</a></span></h3>
  381. <p>A ratio can be expressed as an expression, or in the form
  382. <var class="var">numerator</var>:<var class="var">denominator</var>.
  383. </p>
  384. <p>Note that a ratio with infinite (1/0) or negative value is
  385. considered valid, so you should check on the returned value if you
  386. want to exclude those values.
  387. </p>
  388. <p>The undefined value can be expressed using the &quot;0:0&quot; string.
  389. </p>
  390. <a class="anchor" id="color-syntax"></a><a name="Color"></a>
  391. <h3 class="section">2.7 Color<span class="pull-right"><a class="anchor hidden-xs" href="#Color" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Color" aria-hidden="true">TOC</a></span></h3>
  392. <p>It can be the name of a color as defined below (case insensitive match) or a
  393. <code class="code">[0x|#]RRGGBB[AA]</code> sequence, possibly followed by @ and a string
  394. representing the alpha component.
  395. </p>
  396. <p>The alpha component may be a string composed by &quot;0x&quot; followed by an
  397. hexadecimal number or a decimal number between 0.0 and 1.0, which
  398. represents the opacity value (&lsquo;<samp class="samp">0x00</samp>&rsquo; or &lsquo;<samp class="samp">0.0</samp>&rsquo; means completely
  399. transparent, &lsquo;<samp class="samp">0xff</samp>&rsquo; or &lsquo;<samp class="samp">1.0</samp>&rsquo; completely opaque). If the alpha
  400. component is not specified then &lsquo;<samp class="samp">0xff</samp>&rsquo; is assumed.
  401. </p>
  402. <p>The string &lsquo;<samp class="samp">random</samp>&rsquo; will result in a random color.
  403. </p>
  404. <p>The following names of colors are recognized:
  405. </p><dl class="table">
  406. <dt>&lsquo;<samp class="samp">AliceBlue</samp>&rsquo;</dt>
  407. <dd><p>0xF0F8FF
  408. </p></dd>
  409. <dt>&lsquo;<samp class="samp">AntiqueWhite</samp>&rsquo;</dt>
  410. <dd><p>0xFAEBD7
  411. </p></dd>
  412. <dt>&lsquo;<samp class="samp">Aqua</samp>&rsquo;</dt>
  413. <dd><p>0x00FFFF
  414. </p></dd>
  415. <dt>&lsquo;<samp class="samp">Aquamarine</samp>&rsquo;</dt>
  416. <dd><p>0x7FFFD4
  417. </p></dd>
  418. <dt>&lsquo;<samp class="samp">Azure</samp>&rsquo;</dt>
  419. <dd><p>0xF0FFFF
  420. </p></dd>
  421. <dt>&lsquo;<samp class="samp">Beige</samp>&rsquo;</dt>
  422. <dd><p>0xF5F5DC
  423. </p></dd>
  424. <dt>&lsquo;<samp class="samp">Bisque</samp>&rsquo;</dt>
  425. <dd><p>0xFFE4C4
  426. </p></dd>
  427. <dt>&lsquo;<samp class="samp">Black</samp>&rsquo;</dt>
  428. <dd><p>0x000000
  429. </p></dd>
  430. <dt>&lsquo;<samp class="samp">BlanchedAlmond</samp>&rsquo;</dt>
  431. <dd><p>0xFFEBCD
  432. </p></dd>
  433. <dt>&lsquo;<samp class="samp">Blue</samp>&rsquo;</dt>
  434. <dd><p>0x0000FF
  435. </p></dd>
  436. <dt>&lsquo;<samp class="samp">BlueViolet</samp>&rsquo;</dt>
  437. <dd><p>0x8A2BE2
  438. </p></dd>
  439. <dt>&lsquo;<samp class="samp">Brown</samp>&rsquo;</dt>
  440. <dd><p>0xA52A2A
  441. </p></dd>
  442. <dt>&lsquo;<samp class="samp">BurlyWood</samp>&rsquo;</dt>
  443. <dd><p>0xDEB887
  444. </p></dd>
  445. <dt>&lsquo;<samp class="samp">CadetBlue</samp>&rsquo;</dt>
  446. <dd><p>0x5F9EA0
  447. </p></dd>
  448. <dt>&lsquo;<samp class="samp">Chartreuse</samp>&rsquo;</dt>
  449. <dd><p>0x7FFF00
  450. </p></dd>
  451. <dt>&lsquo;<samp class="samp">Chocolate</samp>&rsquo;</dt>
  452. <dd><p>0xD2691E
  453. </p></dd>
  454. <dt>&lsquo;<samp class="samp">Coral</samp>&rsquo;</dt>
  455. <dd><p>0xFF7F50
  456. </p></dd>
  457. <dt>&lsquo;<samp class="samp">CornflowerBlue</samp>&rsquo;</dt>
  458. <dd><p>0x6495ED
  459. </p></dd>
  460. <dt>&lsquo;<samp class="samp">Cornsilk</samp>&rsquo;</dt>
  461. <dd><p>0xFFF8DC
  462. </p></dd>
  463. <dt>&lsquo;<samp class="samp">Crimson</samp>&rsquo;</dt>
  464. <dd><p>0xDC143C
  465. </p></dd>
  466. <dt>&lsquo;<samp class="samp">Cyan</samp>&rsquo;</dt>
  467. <dd><p>0x00FFFF
  468. </p></dd>
  469. <dt>&lsquo;<samp class="samp">DarkBlue</samp>&rsquo;</dt>
  470. <dd><p>0x00008B
  471. </p></dd>
  472. <dt>&lsquo;<samp class="samp">DarkCyan</samp>&rsquo;</dt>
  473. <dd><p>0x008B8B
  474. </p></dd>
  475. <dt>&lsquo;<samp class="samp">DarkGoldenRod</samp>&rsquo;</dt>
  476. <dd><p>0xB8860B
  477. </p></dd>
  478. <dt>&lsquo;<samp class="samp">DarkGray</samp>&rsquo;</dt>
  479. <dd><p>0xA9A9A9
  480. </p></dd>
  481. <dt>&lsquo;<samp class="samp">DarkGreen</samp>&rsquo;</dt>
  482. <dd><p>0x006400
  483. </p></dd>
  484. <dt>&lsquo;<samp class="samp">DarkKhaki</samp>&rsquo;</dt>
  485. <dd><p>0xBDB76B
  486. </p></dd>
  487. <dt>&lsquo;<samp class="samp">DarkMagenta</samp>&rsquo;</dt>
  488. <dd><p>0x8B008B
  489. </p></dd>
  490. <dt>&lsquo;<samp class="samp">DarkOliveGreen</samp>&rsquo;</dt>
  491. <dd><p>0x556B2F
  492. </p></dd>
  493. <dt>&lsquo;<samp class="samp">Darkorange</samp>&rsquo;</dt>
  494. <dd><p>0xFF8C00
  495. </p></dd>
  496. <dt>&lsquo;<samp class="samp">DarkOrchid</samp>&rsquo;</dt>
  497. <dd><p>0x9932CC
  498. </p></dd>
  499. <dt>&lsquo;<samp class="samp">DarkRed</samp>&rsquo;</dt>
  500. <dd><p>0x8B0000
  501. </p></dd>
  502. <dt>&lsquo;<samp class="samp">DarkSalmon</samp>&rsquo;</dt>
  503. <dd><p>0xE9967A
  504. </p></dd>
  505. <dt>&lsquo;<samp class="samp">DarkSeaGreen</samp>&rsquo;</dt>
  506. <dd><p>0x8FBC8F
  507. </p></dd>
  508. <dt>&lsquo;<samp class="samp">DarkSlateBlue</samp>&rsquo;</dt>
  509. <dd><p>0x483D8B
  510. </p></dd>
  511. <dt>&lsquo;<samp class="samp">DarkSlateGray</samp>&rsquo;</dt>
  512. <dd><p>0x2F4F4F
  513. </p></dd>
  514. <dt>&lsquo;<samp class="samp">DarkTurquoise</samp>&rsquo;</dt>
  515. <dd><p>0x00CED1
  516. </p></dd>
  517. <dt>&lsquo;<samp class="samp">DarkViolet</samp>&rsquo;</dt>
  518. <dd><p>0x9400D3
  519. </p></dd>
  520. <dt>&lsquo;<samp class="samp">DeepPink</samp>&rsquo;</dt>
  521. <dd><p>0xFF1493
  522. </p></dd>
  523. <dt>&lsquo;<samp class="samp">DeepSkyBlue</samp>&rsquo;</dt>
  524. <dd><p>0x00BFFF
  525. </p></dd>
  526. <dt>&lsquo;<samp class="samp">DimGray</samp>&rsquo;</dt>
  527. <dd><p>0x696969
  528. </p></dd>
  529. <dt>&lsquo;<samp class="samp">DodgerBlue</samp>&rsquo;</dt>
  530. <dd><p>0x1E90FF
  531. </p></dd>
  532. <dt>&lsquo;<samp class="samp">FireBrick</samp>&rsquo;</dt>
  533. <dd><p>0xB22222
  534. </p></dd>
  535. <dt>&lsquo;<samp class="samp">FloralWhite</samp>&rsquo;</dt>
  536. <dd><p>0xFFFAF0
  537. </p></dd>
  538. <dt>&lsquo;<samp class="samp">ForestGreen</samp>&rsquo;</dt>
  539. <dd><p>0x228B22
  540. </p></dd>
  541. <dt>&lsquo;<samp class="samp">Fuchsia</samp>&rsquo;</dt>
  542. <dd><p>0xFF00FF
  543. </p></dd>
  544. <dt>&lsquo;<samp class="samp">Gainsboro</samp>&rsquo;</dt>
  545. <dd><p>0xDCDCDC
  546. </p></dd>
  547. <dt>&lsquo;<samp class="samp">GhostWhite</samp>&rsquo;</dt>
  548. <dd><p>0xF8F8FF
  549. </p></dd>
  550. <dt>&lsquo;<samp class="samp">Gold</samp>&rsquo;</dt>
  551. <dd><p>0xFFD700
  552. </p></dd>
  553. <dt>&lsquo;<samp class="samp">GoldenRod</samp>&rsquo;</dt>
  554. <dd><p>0xDAA520
  555. </p></dd>
  556. <dt>&lsquo;<samp class="samp">Gray</samp>&rsquo;</dt>
  557. <dd><p>0x808080
  558. </p></dd>
  559. <dt>&lsquo;<samp class="samp">Green</samp>&rsquo;</dt>
  560. <dd><p>0x008000
  561. </p></dd>
  562. <dt>&lsquo;<samp class="samp">GreenYellow</samp>&rsquo;</dt>
  563. <dd><p>0xADFF2F
  564. </p></dd>
  565. <dt>&lsquo;<samp class="samp">HoneyDew</samp>&rsquo;</dt>
  566. <dd><p>0xF0FFF0
  567. </p></dd>
  568. <dt>&lsquo;<samp class="samp">HotPink</samp>&rsquo;</dt>
  569. <dd><p>0xFF69B4
  570. </p></dd>
  571. <dt>&lsquo;<samp class="samp">IndianRed</samp>&rsquo;</dt>
  572. <dd><p>0xCD5C5C
  573. </p></dd>
  574. <dt>&lsquo;<samp class="samp">Indigo</samp>&rsquo;</dt>
  575. <dd><p>0x4B0082
  576. </p></dd>
  577. <dt>&lsquo;<samp class="samp">Ivory</samp>&rsquo;</dt>
  578. <dd><p>0xFFFFF0
  579. </p></dd>
  580. <dt>&lsquo;<samp class="samp">Khaki</samp>&rsquo;</dt>
  581. <dd><p>0xF0E68C
  582. </p></dd>
  583. <dt>&lsquo;<samp class="samp">Lavender</samp>&rsquo;</dt>
  584. <dd><p>0xE6E6FA
  585. </p></dd>
  586. <dt>&lsquo;<samp class="samp">LavenderBlush</samp>&rsquo;</dt>
  587. <dd><p>0xFFF0F5
  588. </p></dd>
  589. <dt>&lsquo;<samp class="samp">LawnGreen</samp>&rsquo;</dt>
  590. <dd><p>0x7CFC00
  591. </p></dd>
  592. <dt>&lsquo;<samp class="samp">LemonChiffon</samp>&rsquo;</dt>
  593. <dd><p>0xFFFACD
  594. </p></dd>
  595. <dt>&lsquo;<samp class="samp">LightBlue</samp>&rsquo;</dt>
  596. <dd><p>0xADD8E6
  597. </p></dd>
  598. <dt>&lsquo;<samp class="samp">LightCoral</samp>&rsquo;</dt>
  599. <dd><p>0xF08080
  600. </p></dd>
  601. <dt>&lsquo;<samp class="samp">LightCyan</samp>&rsquo;</dt>
  602. <dd><p>0xE0FFFF
  603. </p></dd>
  604. <dt>&lsquo;<samp class="samp">LightGoldenRodYellow</samp>&rsquo;</dt>
  605. <dd><p>0xFAFAD2
  606. </p></dd>
  607. <dt>&lsquo;<samp class="samp">LightGreen</samp>&rsquo;</dt>
  608. <dd><p>0x90EE90
  609. </p></dd>
  610. <dt>&lsquo;<samp class="samp">LightGrey</samp>&rsquo;</dt>
  611. <dd><p>0xD3D3D3
  612. </p></dd>
  613. <dt>&lsquo;<samp class="samp">LightPink</samp>&rsquo;</dt>
  614. <dd><p>0xFFB6C1
  615. </p></dd>
  616. <dt>&lsquo;<samp class="samp">LightSalmon</samp>&rsquo;</dt>
  617. <dd><p>0xFFA07A
  618. </p></dd>
  619. <dt>&lsquo;<samp class="samp">LightSeaGreen</samp>&rsquo;</dt>
  620. <dd><p>0x20B2AA
  621. </p></dd>
  622. <dt>&lsquo;<samp class="samp">LightSkyBlue</samp>&rsquo;</dt>
  623. <dd><p>0x87CEFA
  624. </p></dd>
  625. <dt>&lsquo;<samp class="samp">LightSlateGray</samp>&rsquo;</dt>
  626. <dd><p>0x778899
  627. </p></dd>
  628. <dt>&lsquo;<samp class="samp">LightSteelBlue</samp>&rsquo;</dt>
  629. <dd><p>0xB0C4DE
  630. </p></dd>
  631. <dt>&lsquo;<samp class="samp">LightYellow</samp>&rsquo;</dt>
  632. <dd><p>0xFFFFE0
  633. </p></dd>
  634. <dt>&lsquo;<samp class="samp">Lime</samp>&rsquo;</dt>
  635. <dd><p>0x00FF00
  636. </p></dd>
  637. <dt>&lsquo;<samp class="samp">LimeGreen</samp>&rsquo;</dt>
  638. <dd><p>0x32CD32
  639. </p></dd>
  640. <dt>&lsquo;<samp class="samp">Linen</samp>&rsquo;</dt>
  641. <dd><p>0xFAF0E6
  642. </p></dd>
  643. <dt>&lsquo;<samp class="samp">Magenta</samp>&rsquo;</dt>
  644. <dd><p>0xFF00FF
  645. </p></dd>
  646. <dt>&lsquo;<samp class="samp">Maroon</samp>&rsquo;</dt>
  647. <dd><p>0x800000
  648. </p></dd>
  649. <dt>&lsquo;<samp class="samp">MediumAquaMarine</samp>&rsquo;</dt>
  650. <dd><p>0x66CDAA
  651. </p></dd>
  652. <dt>&lsquo;<samp class="samp">MediumBlue</samp>&rsquo;</dt>
  653. <dd><p>0x0000CD
  654. </p></dd>
  655. <dt>&lsquo;<samp class="samp">MediumOrchid</samp>&rsquo;</dt>
  656. <dd><p>0xBA55D3
  657. </p></dd>
  658. <dt>&lsquo;<samp class="samp">MediumPurple</samp>&rsquo;</dt>
  659. <dd><p>0x9370D8
  660. </p></dd>
  661. <dt>&lsquo;<samp class="samp">MediumSeaGreen</samp>&rsquo;</dt>
  662. <dd><p>0x3CB371
  663. </p></dd>
  664. <dt>&lsquo;<samp class="samp">MediumSlateBlue</samp>&rsquo;</dt>
  665. <dd><p>0x7B68EE
  666. </p></dd>
  667. <dt>&lsquo;<samp class="samp">MediumSpringGreen</samp>&rsquo;</dt>
  668. <dd><p>0x00FA9A
  669. </p></dd>
  670. <dt>&lsquo;<samp class="samp">MediumTurquoise</samp>&rsquo;</dt>
  671. <dd><p>0x48D1CC
  672. </p></dd>
  673. <dt>&lsquo;<samp class="samp">MediumVioletRed</samp>&rsquo;</dt>
  674. <dd><p>0xC71585
  675. </p></dd>
  676. <dt>&lsquo;<samp class="samp">MidnightBlue</samp>&rsquo;</dt>
  677. <dd><p>0x191970
  678. </p></dd>
  679. <dt>&lsquo;<samp class="samp">MintCream</samp>&rsquo;</dt>
  680. <dd><p>0xF5FFFA
  681. </p></dd>
  682. <dt>&lsquo;<samp class="samp">MistyRose</samp>&rsquo;</dt>
  683. <dd><p>0xFFE4E1
  684. </p></dd>
  685. <dt>&lsquo;<samp class="samp">Moccasin</samp>&rsquo;</dt>
  686. <dd><p>0xFFE4B5
  687. </p></dd>
  688. <dt>&lsquo;<samp class="samp">NavajoWhite</samp>&rsquo;</dt>
  689. <dd><p>0xFFDEAD
  690. </p></dd>
  691. <dt>&lsquo;<samp class="samp">Navy</samp>&rsquo;</dt>
  692. <dd><p>0x000080
  693. </p></dd>
  694. <dt>&lsquo;<samp class="samp">OldLace</samp>&rsquo;</dt>
  695. <dd><p>0xFDF5E6
  696. </p></dd>
  697. <dt>&lsquo;<samp class="samp">Olive</samp>&rsquo;</dt>
  698. <dd><p>0x808000
  699. </p></dd>
  700. <dt>&lsquo;<samp class="samp">OliveDrab</samp>&rsquo;</dt>
  701. <dd><p>0x6B8E23
  702. </p></dd>
  703. <dt>&lsquo;<samp class="samp">Orange</samp>&rsquo;</dt>
  704. <dd><p>0xFFA500
  705. </p></dd>
  706. <dt>&lsquo;<samp class="samp">OrangeRed</samp>&rsquo;</dt>
  707. <dd><p>0xFF4500
  708. </p></dd>
  709. <dt>&lsquo;<samp class="samp">Orchid</samp>&rsquo;</dt>
  710. <dd><p>0xDA70D6
  711. </p></dd>
  712. <dt>&lsquo;<samp class="samp">PaleGoldenRod</samp>&rsquo;</dt>
  713. <dd><p>0xEEE8AA
  714. </p></dd>
  715. <dt>&lsquo;<samp class="samp">PaleGreen</samp>&rsquo;</dt>
  716. <dd><p>0x98FB98
  717. </p></dd>
  718. <dt>&lsquo;<samp class="samp">PaleTurquoise</samp>&rsquo;</dt>
  719. <dd><p>0xAFEEEE
  720. </p></dd>
  721. <dt>&lsquo;<samp class="samp">PaleVioletRed</samp>&rsquo;</dt>
  722. <dd><p>0xD87093
  723. </p></dd>
  724. <dt>&lsquo;<samp class="samp">PapayaWhip</samp>&rsquo;</dt>
  725. <dd><p>0xFFEFD5
  726. </p></dd>
  727. <dt>&lsquo;<samp class="samp">PeachPuff</samp>&rsquo;</dt>
  728. <dd><p>0xFFDAB9
  729. </p></dd>
  730. <dt>&lsquo;<samp class="samp">Peru</samp>&rsquo;</dt>
  731. <dd><p>0xCD853F
  732. </p></dd>
  733. <dt>&lsquo;<samp class="samp">Pink</samp>&rsquo;</dt>
  734. <dd><p>0xFFC0CB
  735. </p></dd>
  736. <dt>&lsquo;<samp class="samp">Plum</samp>&rsquo;</dt>
  737. <dd><p>0xDDA0DD
  738. </p></dd>
  739. <dt>&lsquo;<samp class="samp">PowderBlue</samp>&rsquo;</dt>
  740. <dd><p>0xB0E0E6
  741. </p></dd>
  742. <dt>&lsquo;<samp class="samp">Purple</samp>&rsquo;</dt>
  743. <dd><p>0x800080
  744. </p></dd>
  745. <dt>&lsquo;<samp class="samp">Red</samp>&rsquo;</dt>
  746. <dd><p>0xFF0000
  747. </p></dd>
  748. <dt>&lsquo;<samp class="samp">RosyBrown</samp>&rsquo;</dt>
  749. <dd><p>0xBC8F8F
  750. </p></dd>
  751. <dt>&lsquo;<samp class="samp">RoyalBlue</samp>&rsquo;</dt>
  752. <dd><p>0x4169E1
  753. </p></dd>
  754. <dt>&lsquo;<samp class="samp">SaddleBrown</samp>&rsquo;</dt>
  755. <dd><p>0x8B4513
  756. </p></dd>
  757. <dt>&lsquo;<samp class="samp">Salmon</samp>&rsquo;</dt>
  758. <dd><p>0xFA8072
  759. </p></dd>
  760. <dt>&lsquo;<samp class="samp">SandyBrown</samp>&rsquo;</dt>
  761. <dd><p>0xF4A460
  762. </p></dd>
  763. <dt>&lsquo;<samp class="samp">SeaGreen</samp>&rsquo;</dt>
  764. <dd><p>0x2E8B57
  765. </p></dd>
  766. <dt>&lsquo;<samp class="samp">SeaShell</samp>&rsquo;</dt>
  767. <dd><p>0xFFF5EE
  768. </p></dd>
  769. <dt>&lsquo;<samp class="samp">Sienna</samp>&rsquo;</dt>
  770. <dd><p>0xA0522D
  771. </p></dd>
  772. <dt>&lsquo;<samp class="samp">Silver</samp>&rsquo;</dt>
  773. <dd><p>0xC0C0C0
  774. </p></dd>
  775. <dt>&lsquo;<samp class="samp">SkyBlue</samp>&rsquo;</dt>
  776. <dd><p>0x87CEEB
  777. </p></dd>
  778. <dt>&lsquo;<samp class="samp">SlateBlue</samp>&rsquo;</dt>
  779. <dd><p>0x6A5ACD
  780. </p></dd>
  781. <dt>&lsquo;<samp class="samp">SlateGray</samp>&rsquo;</dt>
  782. <dd><p>0x708090
  783. </p></dd>
  784. <dt>&lsquo;<samp class="samp">Snow</samp>&rsquo;</dt>
  785. <dd><p>0xFFFAFA
  786. </p></dd>
  787. <dt>&lsquo;<samp class="samp">SpringGreen</samp>&rsquo;</dt>
  788. <dd><p>0x00FF7F
  789. </p></dd>
  790. <dt>&lsquo;<samp class="samp">SteelBlue</samp>&rsquo;</dt>
  791. <dd><p>0x4682B4
  792. </p></dd>
  793. <dt>&lsquo;<samp class="samp">Tan</samp>&rsquo;</dt>
  794. <dd><p>0xD2B48C
  795. </p></dd>
  796. <dt>&lsquo;<samp class="samp">Teal</samp>&rsquo;</dt>
  797. <dd><p>0x008080
  798. </p></dd>
  799. <dt>&lsquo;<samp class="samp">Thistle</samp>&rsquo;</dt>
  800. <dd><p>0xD8BFD8
  801. </p></dd>
  802. <dt>&lsquo;<samp class="samp">Tomato</samp>&rsquo;</dt>
  803. <dd><p>0xFF6347
  804. </p></dd>
  805. <dt>&lsquo;<samp class="samp">Turquoise</samp>&rsquo;</dt>
  806. <dd><p>0x40E0D0
  807. </p></dd>
  808. <dt>&lsquo;<samp class="samp">Violet</samp>&rsquo;</dt>
  809. <dd><p>0xEE82EE
  810. </p></dd>
  811. <dt>&lsquo;<samp class="samp">Wheat</samp>&rsquo;</dt>
  812. <dd><p>0xF5DEB3
  813. </p></dd>
  814. <dt>&lsquo;<samp class="samp">White</samp>&rsquo;</dt>
  815. <dd><p>0xFFFFFF
  816. </p></dd>
  817. <dt>&lsquo;<samp class="samp">WhiteSmoke</samp>&rsquo;</dt>
  818. <dd><p>0xF5F5F5
  819. </p></dd>
  820. <dt>&lsquo;<samp class="samp">Yellow</samp>&rsquo;</dt>
  821. <dd><p>0xFFFF00
  822. </p></dd>
  823. <dt>&lsquo;<samp class="samp">YellowGreen</samp>&rsquo;</dt>
  824. <dd><p>0x9ACD32
  825. </p></dd>
  826. </dl>
  827. <a class="anchor" id="channel-layout-syntax"></a><a name="Channel-Layout"></a>
  828. <h3 class="section">2.8 Channel Layout<span class="pull-right"><a class="anchor hidden-xs" href="#Channel-Layout" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Channel-Layout" aria-hidden="true">TOC</a></span></h3>
  829. <p>A channel layout specifies the spatial disposition of the channels in
  830. a multi-channel audio stream. To specify a channel layout, FFmpeg
  831. makes use of a special syntax.
  832. </p>
  833. <p>Individual channels are identified by an id, as given by the table
  834. below:
  835. </p><dl class="table">
  836. <dt>&lsquo;<samp class="samp">FL</samp>&rsquo;</dt>
  837. <dd><p>front left
  838. </p></dd>
  839. <dt>&lsquo;<samp class="samp">FR</samp>&rsquo;</dt>
  840. <dd><p>front right
  841. </p></dd>
  842. <dt>&lsquo;<samp class="samp">FC</samp>&rsquo;</dt>
  843. <dd><p>front center
  844. </p></dd>
  845. <dt>&lsquo;<samp class="samp">LFE</samp>&rsquo;</dt>
  846. <dd><p>low frequency
  847. </p></dd>
  848. <dt>&lsquo;<samp class="samp">BL</samp>&rsquo;</dt>
  849. <dd><p>back left
  850. </p></dd>
  851. <dt>&lsquo;<samp class="samp">BR</samp>&rsquo;</dt>
  852. <dd><p>back right
  853. </p></dd>
  854. <dt>&lsquo;<samp class="samp">FLC</samp>&rsquo;</dt>
  855. <dd><p>front left-of-center
  856. </p></dd>
  857. <dt>&lsquo;<samp class="samp">FRC</samp>&rsquo;</dt>
  858. <dd><p>front right-of-center
  859. </p></dd>
  860. <dt>&lsquo;<samp class="samp">BC</samp>&rsquo;</dt>
  861. <dd><p>back center
  862. </p></dd>
  863. <dt>&lsquo;<samp class="samp">SL</samp>&rsquo;</dt>
  864. <dd><p>side left
  865. </p></dd>
  866. <dt>&lsquo;<samp class="samp">SR</samp>&rsquo;</dt>
  867. <dd><p>side right
  868. </p></dd>
  869. <dt>&lsquo;<samp class="samp">TC</samp>&rsquo;</dt>
  870. <dd><p>top center
  871. </p></dd>
  872. <dt>&lsquo;<samp class="samp">TFL</samp>&rsquo;</dt>
  873. <dd><p>top front left
  874. </p></dd>
  875. <dt>&lsquo;<samp class="samp">TFC</samp>&rsquo;</dt>
  876. <dd><p>top front center
  877. </p></dd>
  878. <dt>&lsquo;<samp class="samp">TFR</samp>&rsquo;</dt>
  879. <dd><p>top front right
  880. </p></dd>
  881. <dt>&lsquo;<samp class="samp">TBL</samp>&rsquo;</dt>
  882. <dd><p>top back left
  883. </p></dd>
  884. <dt>&lsquo;<samp class="samp">TBC</samp>&rsquo;</dt>
  885. <dd><p>top back center
  886. </p></dd>
  887. <dt>&lsquo;<samp class="samp">TBR</samp>&rsquo;</dt>
  888. <dd><p>top back right
  889. </p></dd>
  890. <dt>&lsquo;<samp class="samp">DL</samp>&rsquo;</dt>
  891. <dd><p>downmix left
  892. </p></dd>
  893. <dt>&lsquo;<samp class="samp">DR</samp>&rsquo;</dt>
  894. <dd><p>downmix right
  895. </p></dd>
  896. <dt>&lsquo;<samp class="samp">WL</samp>&rsquo;</dt>
  897. <dd><p>wide left
  898. </p></dd>
  899. <dt>&lsquo;<samp class="samp">WR</samp>&rsquo;</dt>
  900. <dd><p>wide right
  901. </p></dd>
  902. <dt>&lsquo;<samp class="samp">SDL</samp>&rsquo;</dt>
  903. <dd><p>surround direct left
  904. </p></dd>
  905. <dt>&lsquo;<samp class="samp">SDR</samp>&rsquo;</dt>
  906. <dd><p>surround direct right
  907. </p></dd>
  908. <dt>&lsquo;<samp class="samp">LFE2</samp>&rsquo;</dt>
  909. <dd><p>low frequency 2
  910. </p></dd>
  911. </dl>
  912. <p>Standard channel layout compositions can be specified by using the
  913. following identifiers:
  914. </p><dl class="table">
  915. <dt>&lsquo;<samp class="samp">mono</samp>&rsquo;</dt>
  916. <dd><p>FC
  917. </p></dd>
  918. <dt>&lsquo;<samp class="samp">stereo</samp>&rsquo;</dt>
  919. <dd><p>FL+FR
  920. </p></dd>
  921. <dt>&lsquo;<samp class="samp">2.1</samp>&rsquo;</dt>
  922. <dd><p>FL+FR+LFE
  923. </p></dd>
  924. <dt>&lsquo;<samp class="samp">3.0</samp>&rsquo;</dt>
  925. <dd><p>FL+FR+FC
  926. </p></dd>
  927. <dt>&lsquo;<samp class="samp">3.0(back)</samp>&rsquo;</dt>
  928. <dd><p>FL+FR+BC
  929. </p></dd>
  930. <dt>&lsquo;<samp class="samp">4.0</samp>&rsquo;</dt>
  931. <dd><p>FL+FR+FC+BC
  932. </p></dd>
  933. <dt>&lsquo;<samp class="samp">quad</samp>&rsquo;</dt>
  934. <dd><p>FL+FR+BL+BR
  935. </p></dd>
  936. <dt>&lsquo;<samp class="samp">quad(side)</samp>&rsquo;</dt>
  937. <dd><p>FL+FR+SL+SR
  938. </p></dd>
  939. <dt>&lsquo;<samp class="samp">3.1</samp>&rsquo;</dt>
  940. <dd><p>FL+FR+FC+LFE
  941. </p></dd>
  942. <dt>&lsquo;<samp class="samp">5.0</samp>&rsquo;</dt>
  943. <dd><p>FL+FR+FC+BL+BR
  944. </p></dd>
  945. <dt>&lsquo;<samp class="samp">5.0(side)</samp>&rsquo;</dt>
  946. <dd><p>FL+FR+FC+SL+SR
  947. </p></dd>
  948. <dt>&lsquo;<samp class="samp">4.1</samp>&rsquo;</dt>
  949. <dd><p>FL+FR+FC+LFE+BC
  950. </p></dd>
  951. <dt>&lsquo;<samp class="samp">5.1</samp>&rsquo;</dt>
  952. <dd><p>FL+FR+FC+LFE+BL+BR
  953. </p></dd>
  954. <dt>&lsquo;<samp class="samp">5.1(side)</samp>&rsquo;</dt>
  955. <dd><p>FL+FR+FC+LFE+SL+SR
  956. </p></dd>
  957. <dt>&lsquo;<samp class="samp">6.0</samp>&rsquo;</dt>
  958. <dd><p>FL+FR+FC+BC+SL+SR
  959. </p></dd>
  960. <dt>&lsquo;<samp class="samp">6.0(front)</samp>&rsquo;</dt>
  961. <dd><p>FL+FR+FLC+FRC+SL+SR
  962. </p></dd>
  963. <dt>&lsquo;<samp class="samp">3.1.2</samp>&rsquo;</dt>
  964. <dd><p>FL+FR+FC+LFE+TFL+TFR
  965. </p></dd>
  966. <dt>&lsquo;<samp class="samp">hexagonal</samp>&rsquo;</dt>
  967. <dd><p>FL+FR+FC+BL+BR+BC
  968. </p></dd>
  969. <dt>&lsquo;<samp class="samp">6.1</samp>&rsquo;</dt>
  970. <dd><p>FL+FR+FC+LFE+BC+SL+SR
  971. </p></dd>
  972. <dt>&lsquo;<samp class="samp">6.1</samp>&rsquo;</dt>
  973. <dd><p>FL+FR+FC+LFE+BL+BR+BC
  974. </p></dd>
  975. <dt>&lsquo;<samp class="samp">6.1(front)</samp>&rsquo;</dt>
  976. <dd><p>FL+FR+LFE+FLC+FRC+SL+SR
  977. </p></dd>
  978. <dt>&lsquo;<samp class="samp">7.0</samp>&rsquo;</dt>
  979. <dd><p>FL+FR+FC+BL+BR+SL+SR
  980. </p></dd>
  981. <dt>&lsquo;<samp class="samp">7.0(front)</samp>&rsquo;</dt>
  982. <dd><p>FL+FR+FC+FLC+FRC+SL+SR
  983. </p></dd>
  984. <dt>&lsquo;<samp class="samp">7.1</samp>&rsquo;</dt>
  985. <dd><p>FL+FR+FC+LFE+BL+BR+SL+SR
  986. </p></dd>
  987. <dt>&lsquo;<samp class="samp">7.1(wide)</samp>&rsquo;</dt>
  988. <dd><p>FL+FR+FC+LFE+BL+BR+FLC+FRC
  989. </p></dd>
  990. <dt>&lsquo;<samp class="samp">7.1(wide-side)</samp>&rsquo;</dt>
  991. <dd><p>FL+FR+FC+LFE+FLC+FRC+SL+SR
  992. </p></dd>
  993. <dt>&lsquo;<samp class="samp">5.1.2</samp>&rsquo;</dt>
  994. <dd><p>FL+FR+FC+LFE+BL+BR+TFL+TFR
  995. </p></dd>
  996. <dt>&lsquo;<samp class="samp">octagonal</samp>&rsquo;</dt>
  997. <dd><p>FL+FR+FC+BL+BR+BC+SL+SR
  998. </p></dd>
  999. <dt>&lsquo;<samp class="samp">cube</samp>&rsquo;</dt>
  1000. <dd><p>FL+FR+BL+BR+TFL+TFR+TBL+TBR
  1001. </p></dd>
  1002. <dt>&lsquo;<samp class="samp">5.1.4</samp>&rsquo;</dt>
  1003. <dd><p>FL+FR+FC+LFE+BL+BR+TFL+TFR+TBL+TBR
  1004. </p></dd>
  1005. <dt>&lsquo;<samp class="samp">7.1.2</samp>&rsquo;</dt>
  1006. <dd><p>FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR
  1007. </p></dd>
  1008. <dt>&lsquo;<samp class="samp">7.1.4</samp>&rsquo;</dt>
  1009. <dd><p>FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBL+TBR
  1010. </p></dd>
  1011. <dt>&lsquo;<samp class="samp">7.2.3</samp>&rsquo;</dt>
  1012. <dd><p>FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBC+LFE2
  1013. </p></dd>
  1014. <dt>&lsquo;<samp class="samp">9.1.4</samp>&rsquo;</dt>
  1015. <dd><p>FL+FR+FC+LFE+BL+BR+FLC+FRC+SL+SR+TFL+TFR+TBL+TBR
  1016. </p></dd>
  1017. <dt>&lsquo;<samp class="samp">9.1.6</samp>&rsquo;</dt>
  1018. <dd><p>FL+FR+FC+LFE+BL+BR+FLC+FRC+SL+SR+TFL+TFR+TBL+TBR+TSL+TSR
  1019. </p></dd>
  1020. <dt>&lsquo;<samp class="samp">hexadecagonal</samp>&rsquo;</dt>
  1021. <dd><p>FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
  1022. </p></dd>
  1023. <dt>&lsquo;<samp class="samp">binaural</samp>&rsquo;</dt>
  1024. <dd><p>BIL+BIR
  1025. </p></dd>
  1026. <dt>&lsquo;<samp class="samp">downmix</samp>&rsquo;</dt>
  1027. <dd><p>DL+DR
  1028. </p></dd>
  1029. <dt>&lsquo;<samp class="samp">22.2</samp>&rsquo;</dt>
  1030. <dd><p>FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
  1031. </p></dd>
  1032. </dl>
  1033. <p>A custom channel layout can be specified as a sequence of terms, separated by &rsquo;+&rsquo;.
  1034. Each term can be:
  1035. </p><ul class="itemize mark-bullet">
  1036. <li>the name of a single channel (e.g. &lsquo;<samp class="samp">FL</samp>&rsquo;, &lsquo;<samp class="samp">FR</samp>&rsquo;, &lsquo;<samp class="samp">FC</samp>&rsquo;, &lsquo;<samp class="samp">LFE</samp>&rsquo;, etc.),
  1037. each optionally containing a custom name after a &rsquo;@&rsquo;, (e.g. &lsquo;<samp class="samp">FL@Left</samp>&rsquo;,
  1038. &lsquo;<samp class="samp">FR@Right</samp>&rsquo;, &lsquo;<samp class="samp">FC@Center</samp>&rsquo;, &lsquo;<samp class="samp">LFE@Low_Frequency</samp>&rsquo;, etc.)
  1039. </li></ul>
  1040. <p>A standard channel layout can be specified by the following:
  1041. </p><ul class="itemize mark-bullet">
  1042. <li>the name of a single channel (e.g. &lsquo;<samp class="samp">FL</samp>&rsquo;, &lsquo;<samp class="samp">FR</samp>&rsquo;, &lsquo;<samp class="samp">FC</samp>&rsquo;, &lsquo;<samp class="samp">LFE</samp>&rsquo;, etc.)
  1043. </li><li>the name of a standard channel layout (e.g. &lsquo;<samp class="samp">mono</samp>&rsquo;,
  1044. &lsquo;<samp class="samp">stereo</samp>&rsquo;, &lsquo;<samp class="samp">4.0</samp>&rsquo;, &lsquo;<samp class="samp">quad</samp>&rsquo;, &lsquo;<samp class="samp">5.0</samp>&rsquo;, etc.)
  1045. </li><li>a number of channels, in decimal, followed by &rsquo;c&rsquo;, yielding the default channel
  1046. layout for that number of channels (see the function
  1047. <code class="code">av_channel_layout_default</code>). Note that not all channel counts have a
  1048. default layout.
  1049. </li><li>a number of channels, in decimal, followed by &rsquo;C&rsquo;, yielding an unknown channel
  1050. layout with the specified number of channels. Note that not all channel layout
  1051. specification strings support unknown channel layouts.
  1052. </li><li>a channel layout mask, in hexadecimal starting with &quot;0x&quot; (see the
  1053. <code class="code">AV_CH_*</code> macros in <samp class="file">libavutil/channel_layout.h</samp>.
  1054. </li></ul>
  1055. <p>Before libavutil version 53 the trailing character &quot;c&quot; to specify a number of
  1056. channels was optional, but now it is required, while a channel layout mask can
  1057. also be specified as a decimal number (if and only if not followed by &quot;c&quot; or &quot;C&quot;).
  1058. </p>
  1059. <p>See also the function <code class="code">av_channel_layout_from_string</code> defined in
  1060. <samp class="file">libavutil/channel_layout.h</samp>.
  1061. </p>
  1062. <a name="Expression-Evaluation"></a>
  1063. <h2 class="chapter">3 Expression Evaluation<span class="pull-right"><a class="anchor hidden-xs" href="#Expression-Evaluation" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Expression-Evaluation" aria-hidden="true">TOC</a></span></h2>
  1064. <p>When evaluating an arithmetic expression, FFmpeg uses an internal
  1065. formula evaluator, implemented through the <samp class="file">libavutil/eval.h</samp>
  1066. interface.
  1067. </p>
  1068. <p>An expression may contain unary, binary operators, constants, and
  1069. functions.
  1070. </p>
  1071. <p>Two expressions <var class="var">expr1</var> and <var class="var">expr2</var> can be combined to form
  1072. another expression &quot;<var class="var">expr1</var>;<var class="var">expr2</var>&quot;.
  1073. <var class="var">expr1</var> and <var class="var">expr2</var> are evaluated in turn, and the new
  1074. expression evaluates to the value of <var class="var">expr2</var>.
  1075. </p>
  1076. <p>The following binary operators are available: <code class="code">+</code>, <code class="code">-</code>,
  1077. <code class="code">*</code>, <code class="code">/</code>, <code class="code">^</code>.
  1078. </p>
  1079. <p>The following unary operators are available: <code class="code">+</code>, <code class="code">-</code>.
  1080. </p>
  1081. <p>Some internal variables can be used to store and load intermediary
  1082. results. They can be accessed using the <code class="code">ld</code> and <code class="code">st</code>
  1083. functions with an index argument varying from 0 to 9 to specify which
  1084. internal variable to access.
  1085. </p>
  1086. <p>The following functions are available:
  1087. </p><dl class="table">
  1088. <dt><samp class="option">abs(x)</samp></dt>
  1089. <dd><p>Compute absolute value of <var class="var">x</var>.
  1090. </p>
  1091. </dd>
  1092. <dt><samp class="option">acos(x)</samp></dt>
  1093. <dd><p>Compute arccosine of <var class="var">x</var>.
  1094. </p>
  1095. </dd>
  1096. <dt><samp class="option">asin(x)</samp></dt>
  1097. <dd><p>Compute arcsine of <var class="var">x</var>.
  1098. </p>
  1099. </dd>
  1100. <dt><samp class="option">atan(x)</samp></dt>
  1101. <dd><p>Compute arctangent of <var class="var">x</var>.
  1102. </p>
  1103. </dd>
  1104. <dt><samp class="option">atan2(y, x)</samp></dt>
  1105. <dd><p>Compute principal value of the arc tangent of <var class="var">y</var>/<var class="var">x</var>.
  1106. </p>
  1107. </dd>
  1108. <dt><samp class="option">between(x, min, max)</samp></dt>
  1109. <dd><p>Return 1 if <var class="var">x</var> is greater than or equal to <var class="var">min</var> and lesser than or
  1110. equal to <var class="var">max</var>, 0 otherwise.
  1111. </p>
  1112. </dd>
  1113. <dt><samp class="option">bitand(x, y)</samp></dt>
  1114. <dt><samp class="option">bitor(x, y)</samp></dt>
  1115. <dd><p>Compute bitwise and/or operation on <var class="var">x</var> and <var class="var">y</var>.
  1116. </p>
  1117. <p>The results of the evaluation of <var class="var">x</var> and <var class="var">y</var> are converted to
  1118. integers before executing the bitwise operation.
  1119. </p>
  1120. <p>Note that both the conversion to integer and the conversion back to
  1121. floating point can lose precision. Beware of unexpected results for
  1122. large numbers (usually 2^53 and larger).
  1123. </p>
  1124. </dd>
  1125. <dt><samp class="option">ceil(expr)</samp></dt>
  1126. <dd><p>Round the value of expression <var class="var">expr</var> upwards to the nearest
  1127. integer. For example, &quot;ceil(1.5)&quot; is &quot;2.0&quot;.
  1128. </p>
  1129. </dd>
  1130. <dt><samp class="option">clip(x, min, max)</samp></dt>
  1131. <dd><p>Return the value of <var class="var">x</var> clipped between <var class="var">min</var> and <var class="var">max</var>.
  1132. </p>
  1133. </dd>
  1134. <dt><samp class="option">cos(x)</samp></dt>
  1135. <dd><p>Compute cosine of <var class="var">x</var>.
  1136. </p>
  1137. </dd>
  1138. <dt><samp class="option">cosh(x)</samp></dt>
  1139. <dd><p>Compute hyperbolic cosine of <var class="var">x</var>.
  1140. </p>
  1141. </dd>
  1142. <dt><samp class="option">eq(x, y)</samp></dt>
  1143. <dd><p>Return 1 if <var class="var">x</var> and <var class="var">y</var> are equivalent, 0 otherwise.
  1144. </p>
  1145. </dd>
  1146. <dt><samp class="option">exp(x)</samp></dt>
  1147. <dd><p>Compute exponential of <var class="var">x</var> (with base <code class="code">e</code>, the Euler&rsquo;s number).
  1148. </p>
  1149. </dd>
  1150. <dt><samp class="option">floor(expr)</samp></dt>
  1151. <dd><p>Round the value of expression <var class="var">expr</var> downwards to the nearest
  1152. integer. For example, &quot;floor(-1.5)&quot; is &quot;-2.0&quot;.
  1153. </p>
  1154. </dd>
  1155. <dt><samp class="option">gauss(x)</samp></dt>
  1156. <dd><p>Compute Gauss function of <var class="var">x</var>, corresponding to
  1157. <code class="code">exp(-x*x/2) / sqrt(2*PI)</code>.
  1158. </p>
  1159. </dd>
  1160. <dt><samp class="option">gcd(x, y)</samp></dt>
  1161. <dd><p>Return the greatest common divisor of <var class="var">x</var> and <var class="var">y</var>. If both <var class="var">x</var> and
  1162. <var class="var">y</var> are 0 or either or both are less than zero then behavior is undefined.
  1163. </p>
  1164. </dd>
  1165. <dt><samp class="option">gt(x, y)</samp></dt>
  1166. <dd><p>Return 1 if <var class="var">x</var> is greater than <var class="var">y</var>, 0 otherwise.
  1167. </p>
  1168. </dd>
  1169. <dt><samp class="option">gte(x, y)</samp></dt>
  1170. <dd><p>Return 1 if <var class="var">x</var> is greater than or equal to <var class="var">y</var>, 0 otherwise.
  1171. </p>
  1172. </dd>
  1173. <dt><samp class="option">hypot(x, y)</samp></dt>
  1174. <dd><p>This function is similar to the C function with the same name; it returns
  1175. &quot;sqrt(<var class="var">x</var>*<var class="var">x</var> + <var class="var">y</var>*<var class="var">y</var>)&quot;, the length of the hypotenuse of a
  1176. right triangle with sides of length <var class="var">x</var> and <var class="var">y</var>, or the distance of the
  1177. point (<var class="var">x</var>, <var class="var">y</var>) from the origin.
  1178. </p>
  1179. </dd>
  1180. <dt><samp class="option">if(x, y)</samp></dt>
  1181. <dd><p>Evaluate <var class="var">x</var>, and if the result is non-zero return the result of
  1182. the evaluation of <var class="var">y</var>, return 0 otherwise.
  1183. </p>
  1184. </dd>
  1185. <dt><samp class="option">if(x, y, z)</samp></dt>
  1186. <dd><p>Evaluate <var class="var">x</var>, and if the result is non-zero return the evaluation
  1187. result of <var class="var">y</var>, otherwise the evaluation result of <var class="var">z</var>.
  1188. </p>
  1189. </dd>
  1190. <dt><samp class="option">ifnot(x, y)</samp></dt>
  1191. <dd><p>Evaluate <var class="var">x</var>, and if the result is zero return the result of the
  1192. evaluation of <var class="var">y</var>, return 0 otherwise.
  1193. </p>
  1194. </dd>
  1195. <dt><samp class="option">ifnot(x, y, z)</samp></dt>
  1196. <dd><p>Evaluate <var class="var">x</var>, and if the result is zero return the evaluation
  1197. result of <var class="var">y</var>, otherwise the evaluation result of <var class="var">z</var>.
  1198. </p>
  1199. </dd>
  1200. <dt><samp class="option">isinf(x)</samp></dt>
  1201. <dd><p>Return 1.0 if <var class="var">x</var> is +/-INFINITY, 0.0 otherwise.
  1202. </p>
  1203. </dd>
  1204. <dt><samp class="option">isnan(x)</samp></dt>
  1205. <dd><p>Return 1.0 if <var class="var">x</var> is NAN, 0.0 otherwise.
  1206. </p>
  1207. </dd>
  1208. <dt><samp class="option">ld(idx)</samp></dt>
  1209. <dd><p>Load the value of the internal variable with index <var class="var">idx</var>, which was
  1210. previously stored with st(<var class="var">idx</var>, <var class="var">expr</var>).
  1211. The function returns the loaded value.
  1212. </p>
  1213. </dd>
  1214. <dt><samp class="option">lerp(x, y, z)</samp></dt>
  1215. <dd><p>Return linear interpolation between <var class="var">x</var> and <var class="var">y</var> by amount of <var class="var">z</var>.
  1216. </p>
  1217. </dd>
  1218. <dt><samp class="option">log(x)</samp></dt>
  1219. <dd><p>Compute natural logarithm of <var class="var">x</var>.
  1220. </p>
  1221. </dd>
  1222. <dt><samp class="option">lt(x, y)</samp></dt>
  1223. <dd><p>Return 1 if <var class="var">x</var> is lesser than <var class="var">y</var>, 0 otherwise.
  1224. </p>
  1225. </dd>
  1226. <dt><samp class="option">lte(x, y)</samp></dt>
  1227. <dd><p>Return 1 if <var class="var">x</var> is lesser than or equal to <var class="var">y</var>, 0 otherwise.
  1228. </p>
  1229. </dd>
  1230. <dt><samp class="option">max(x, y)</samp></dt>
  1231. <dd><p>Return the maximum between <var class="var">x</var> and <var class="var">y</var>.
  1232. </p>
  1233. </dd>
  1234. <dt><samp class="option">min(x, y)</samp></dt>
  1235. <dd><p>Return the minimum between <var class="var">x</var> and <var class="var">y</var>.
  1236. </p>
  1237. </dd>
  1238. <dt><samp class="option">mod(x, y)</samp></dt>
  1239. <dd><p>Compute the remainder of division of <var class="var">x</var> by <var class="var">y</var>.
  1240. </p>
  1241. </dd>
  1242. <dt><samp class="option">not(expr)</samp></dt>
  1243. <dd><p>Return 1.0 if <var class="var">expr</var> is zero, 0.0 otherwise.
  1244. </p>
  1245. </dd>
  1246. <dt><samp class="option">pow(x, y)</samp></dt>
  1247. <dd><p>Compute the power of <var class="var">x</var> elevated <var class="var">y</var>, it is equivalent to
  1248. &quot;(<var class="var">x</var>)^(<var class="var">y</var>)&quot;.
  1249. </p>
  1250. </dd>
  1251. <dt><samp class="option">print(t)</samp></dt>
  1252. <dt><samp class="option">print(t, l)</samp></dt>
  1253. <dd><p>Print the value of expression <var class="var">t</var> with loglevel <var class="var">l</var>. If <var class="var">l</var> is not
  1254. specified then a default log level is used.
  1255. Return the value of the expression printed.
  1256. </p>
  1257. </dd>
  1258. <dt><samp class="option">random(idx)</samp></dt>
  1259. <dd><p>Return a pseudo random value between 0.0 and 1.0. <var class="var">idx</var> is the
  1260. index of the internal variable used to save the seed/state, which can be
  1261. previously stored with <code class="code">st(idx)</code>.
  1262. </p>
  1263. <p>To initialize the seed, you need to store the seed value as a 64-bit
  1264. unsigned integer in the internal variable with index <var class="var">idx</var>.
  1265. </p>
  1266. <p>For example, to store the seed with value <code class="code">42</code> in the internal
  1267. variable with index <code class="code">0</code> and print a few random values:
  1268. </p><div class="example">
  1269. <pre class="example-preformatted">st(0,42); print(random(0)); print(random(0)); print(random(0))
  1270. </pre></div>
  1271. </dd>
  1272. <dt><samp class="option">randomi(idx, min, max)</samp></dt>
  1273. <dd><p>Return a pseudo random value in the interval between <var class="var">min</var> and
  1274. <var class="var">max</var>. <var class="var">idx</var> is the index of the internal variable which will be used to
  1275. save the seed/state, which can be previously stored with <code class="code">st(idx)</code>.
  1276. </p>
  1277. <p>To initialize the seed, you need to store the seed value as a 64-bit
  1278. unsigned integer in the internal variable with index <var class="var">idx</var>.
  1279. </p>
  1280. </dd>
  1281. <dt><samp class="option">root(expr, max)</samp></dt>
  1282. <dd><p>Find an input value for which the function represented by <var class="var">expr</var>
  1283. with argument <var class="var">ld(0)</var> is 0 in the interval 0..<var class="var">max</var>.
  1284. </p>
  1285. <p>The expression in <var class="var">expr</var> must denote a continuous function or the
  1286. result is undefined.
  1287. </p>
  1288. <p><var class="var">ld(0)</var> is used to represent the function input value, which means that the
  1289. given expression will be evaluated multiple times with various input values that
  1290. the expression can access through <code class="code">ld(0)</code>. When the expression evaluates to
  1291. 0 then the corresponding input value will be returned.
  1292. </p>
  1293. </dd>
  1294. <dt><samp class="option">round(expr)</samp></dt>
  1295. <dd><p>Round the value of expression <var class="var">expr</var> to the nearest integer. For example,
  1296. &quot;round(1.5)&quot; is &quot;2.0&quot;.
  1297. </p>
  1298. </dd>
  1299. <dt><samp class="option">sgn(x)</samp></dt>
  1300. <dd><p>Compute sign of <var class="var">x</var>.
  1301. </p>
  1302. </dd>
  1303. <dt><samp class="option">sin(x)</samp></dt>
  1304. <dd><p>Compute sine of <var class="var">x</var>.
  1305. </p>
  1306. </dd>
  1307. <dt><samp class="option">sinh(x)</samp></dt>
  1308. <dd><p>Compute hyperbolic sine of <var class="var">x</var>.
  1309. </p>
  1310. </dd>
  1311. <dt><samp class="option">sqrt(expr)</samp></dt>
  1312. <dd><p>Compute the square root of <var class="var">expr</var>. This is equivalent to
  1313. &quot;(<var class="var">expr</var>)^.5&quot;.
  1314. </p>
  1315. </dd>
  1316. <dt><samp class="option">squish(x)</samp></dt>
  1317. <dd><p>Compute expression <code class="code">1/(1 + exp(4*x))</code>.
  1318. </p>
  1319. </dd>
  1320. <dt><samp class="option">st(idx, expr)</samp></dt>
  1321. <dd><p>Store the value of the expression <var class="var">expr</var> in an internal
  1322. variable. <var class="var">idx</var> specifies the index of the variable where to store
  1323. the value, and it is a value ranging from 0 to 9. The function returns
  1324. the value stored in the internal variable.
  1325. </p>
  1326. <p>The stored value can be retrieved with <code class="code">ld(var)</code>.
  1327. </p>
  1328. <p>Note: variables are currently not shared between expressions.
  1329. </p>
  1330. </dd>
  1331. <dt><samp class="option">tan(x)</samp></dt>
  1332. <dd><p>Compute tangent of <var class="var">x</var>.
  1333. </p>
  1334. </dd>
  1335. <dt><samp class="option">tanh(x)</samp></dt>
  1336. <dd><p>Compute hyperbolic tangent of <var class="var">x</var>.
  1337. </p>
  1338. </dd>
  1339. <dt><samp class="option">taylor(expr, x)</samp></dt>
  1340. <dt><samp class="option">taylor(expr, x, idx)</samp></dt>
  1341. <dd><p>Evaluate a Taylor series at <var class="var">x</var>, given an expression representing
  1342. the <code class="code">ld(idx)</code>-th derivative of a function at 0.
  1343. </p>
  1344. <p>When the series does not converge the result is undefined.
  1345. </p>
  1346. <p><var class="var">ld(idx)</var> is used to represent the derivative order in <var class="var">expr</var>,
  1347. which means that the given expression will be evaluated multiple times
  1348. with various input values that the expression can access through
  1349. <code class="code">ld(idx)</code>. If <var class="var">idx</var> is not specified then 0 is assumed.
  1350. </p>
  1351. <p>Note, when you have the derivatives at y instead of 0,
  1352. <code class="code">taylor(expr, x-y)</code> can be used.
  1353. </p>
  1354. </dd>
  1355. <dt><samp class="option">time(0)</samp></dt>
  1356. <dd><p>Return the current (wallclock) time in seconds.
  1357. </p>
  1358. </dd>
  1359. <dt><samp class="option">trunc(expr)</samp></dt>
  1360. <dd><p>Round the value of expression <var class="var">expr</var> towards zero to the nearest
  1361. integer. For example, &quot;trunc(-1.5)&quot; is &quot;-1.0&quot;.
  1362. </p>
  1363. </dd>
  1364. <dt><samp class="option">while(cond, expr)</samp></dt>
  1365. <dd><p>Evaluate expression <var class="var">expr</var> while the expression <var class="var">cond</var> is
  1366. non-zero, and returns the value of the last <var class="var">expr</var> evaluation, or
  1367. NAN if <var class="var">cond</var> was always false.
  1368. </p></dd>
  1369. </dl>
  1370. <p>The following constants are available:
  1371. </p><dl class="table">
  1372. <dt><samp class="option">PI</samp></dt>
  1373. <dd><p>area of the unit disc, approximately 3.14
  1374. </p></dd>
  1375. <dt><samp class="option">E</samp></dt>
  1376. <dd><p>exp(1) (Euler&rsquo;s number), approximately 2.718
  1377. </p></dd>
  1378. <dt><samp class="option">PHI</samp></dt>
  1379. <dd><p>golden ratio (1+sqrt(5))/2, approximately 1.618
  1380. </p></dd>
  1381. </dl>
  1382. <p>Assuming that an expression is considered &quot;true&quot; if it has a non-zero
  1383. value, note that:
  1384. </p>
  1385. <p><code class="code">*</code> works like AND
  1386. </p>
  1387. <p><code class="code">+</code> works like OR
  1388. </p>
  1389. <p>For example the construct:
  1390. </p><div class="example">
  1391. <pre class="example-preformatted">if (A AND B) then C
  1392. </pre></div>
  1393. <p>is equivalent to:
  1394. </p><div class="example">
  1395. <pre class="example-preformatted">if(A*B, C)
  1396. </pre></div>
  1397. <p>In your C code, you can extend the list of unary and binary functions,
  1398. and define recognized constants, so that they are available for your
  1399. expressions.
  1400. </p>
  1401. <p>The evaluator also recognizes the International System unit prefixes.
  1402. If &rsquo;i&rsquo; is appended after the prefix, binary prefixes are used, which
  1403. are based on powers of 1024 instead of powers of 1000.
  1404. The &rsquo;B&rsquo; postfix multiplies the value by 8, and can be appended after a
  1405. unit prefix or used alone. This allows using for example &rsquo;KB&rsquo;, &rsquo;MiB&rsquo;,
  1406. &rsquo;G&rsquo; and &rsquo;B&rsquo; as number postfix.
  1407. </p>
  1408. <p>The list of available International System prefixes follows, with
  1409. indication of the corresponding powers of 10 and of 2.
  1410. </p><dl class="table">
  1411. <dt><samp class="option">y</samp></dt>
  1412. <dd><p>10^-24 / 2^-80
  1413. </p></dd>
  1414. <dt><samp class="option">z</samp></dt>
  1415. <dd><p>10^-21 / 2^-70
  1416. </p></dd>
  1417. <dt><samp class="option">a</samp></dt>
  1418. <dd><p>10^-18 / 2^-60
  1419. </p></dd>
  1420. <dt><samp class="option">f</samp></dt>
  1421. <dd><p>10^-15 / 2^-50
  1422. </p></dd>
  1423. <dt><samp class="option">p</samp></dt>
  1424. <dd><p>10^-12 / 2^-40
  1425. </p></dd>
  1426. <dt><samp class="option">n</samp></dt>
  1427. <dd><p>10^-9 / 2^-30
  1428. </p></dd>
  1429. <dt><samp class="option">u</samp></dt>
  1430. <dd><p>10^-6 / 2^-20
  1431. </p></dd>
  1432. <dt><samp class="option">m</samp></dt>
  1433. <dd><p>10^-3 / 2^-10
  1434. </p></dd>
  1435. <dt><samp class="option">c</samp></dt>
  1436. <dd><p>10^-2
  1437. </p></dd>
  1438. <dt><samp class="option">d</samp></dt>
  1439. <dd><p>10^-1
  1440. </p></dd>
  1441. <dt><samp class="option">h</samp></dt>
  1442. <dd><p>10^2
  1443. </p></dd>
  1444. <dt><samp class="option">k</samp></dt>
  1445. <dd><p>10^3 / 2^10
  1446. </p></dd>
  1447. <dt><samp class="option">K</samp></dt>
  1448. <dd><p>10^3 / 2^10
  1449. </p></dd>
  1450. <dt><samp class="option">M</samp></dt>
  1451. <dd><p>10^6 / 2^20
  1452. </p></dd>
  1453. <dt><samp class="option">G</samp></dt>
  1454. <dd><p>10^9 / 2^30
  1455. </p></dd>
  1456. <dt><samp class="option">T</samp></dt>
  1457. <dd><p>10^12 / 2^40
  1458. </p></dd>
  1459. <dt><samp class="option">P</samp></dt>
  1460. <dd><p>10^15 / 2^50
  1461. </p></dd>
  1462. <dt><samp class="option">E</samp></dt>
  1463. <dd><p>10^18 / 2^60
  1464. </p></dd>
  1465. <dt><samp class="option">Z</samp></dt>
  1466. <dd><p>10^21 / 2^70
  1467. </p></dd>
  1468. <dt><samp class="option">Y</samp></dt>
  1469. <dd><p>10^24 / 2^80
  1470. </p></dd>
  1471. </dl>
  1472. <a name="See-Also"></a>
  1473. <h2 class="chapter">4 See Also<span class="pull-right"><a class="anchor hidden-xs" href="#See-Also" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-See-Also" aria-hidden="true">TOC</a></span></h2>
  1474. <p><a class="url" href="ffmpeg.html">ffmpeg</a>, <a class="url" href="ffplay.html">ffplay</a>, <a class="url" href="ffprobe.html">ffprobe</a>,
  1475. <a class="url" href="libavutil.html">libavutil</a>
  1476. </p>
  1477. <a name="Authors"></a>
  1478. <h2 class="chapter">5 Authors<span class="pull-right"><a class="anchor hidden-xs" href="#Authors" aria-hidden="true">#</a> <a class="anchor hidden-xs"href="#toc-Authors" aria-hidden="true">TOC</a></span></h2>
  1479. <p>The FFmpeg developers.
  1480. </p>
  1481. <p>For details about the authorship, see the Git history of the project
  1482. (https://git.ffmpeg.org/ffmpeg), e.g. by typing the command
  1483. <code class="command">git log</code> in the FFmpeg source directory, or browsing the
  1484. online repository at <a class="url" href="https://git.ffmpeg.org/ffmpeg">https://git.ffmpeg.org/ffmpeg</a>.
  1485. </p>
  1486. <p>Maintainers for the specific components are listed in the file
  1487. <samp class="file">MAINTAINERS</samp> in the source code tree.
  1488. </p>
  1489. <p style="font-size: small;">
  1490. This document was generated using <a class="uref" href="https://www.gnu.org/software/texinfo/"><em class="emph">makeinfo</em></a>.
  1491. </p>
  1492. </div>
  1493. </body>
  1494. </html>