codekingpro/portable-devtools
114k
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 Documentation8 </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 Documentation17 </h1>18 19 20<a name="SEC_Top"></a>21 22<div class="element-contents" id="SEC_Contents">23<h2 class="contents-heading">Table of Contents</h2>24 25<div class="contents">26 27<ul class="toc-numbered-mark">28 <li><a id="toc-Description" href="#Description">1 Description</a></li>29 <li><a id="toc-Syntax" href="#Syntax">2 Syntax</a>30 <ul class="toc-numbered-mark">31 <li><a id="toc-Quoting-and-escaping" href="#Quoting-and-escaping">2.1 Quoting and escaping</a>32 <ul class="toc-numbered-mark">33 <li><a id="toc-Examples" href="#Examples">2.1.1 Examples</a></li>34 </ul></li>35 <li><a id="toc-Date" href="#Date">2.2 Date</a></li>36 <li><a id="toc-Time-duration" href="#Time-duration">2.3 Time duration</a>37 <ul class="toc-numbered-mark">38 <li><a id="toc-Examples-1" href="#Examples-1">2.3.1 Examples</a></li>39 </ul></li>40 <li><a id="toc-Video-size" href="#Video-size">2.4 Video size</a></li>41 <li><a id="toc-Video-rate" href="#Video-rate">2.5 Video rate</a></li>42 <li><a id="toc-Ratio" href="#Ratio">2.6 Ratio</a></li>43 <li><a id="toc-Color" href="#Color">2.7 Color</a></li>44 <li><a id="toc-Channel-Layout" href="#Channel-Layout">2.8 Channel Layout</a></li>45 </ul></li>46 <li><a id="toc-Expression-Evaluation" href="#Expression-Evaluation">3 Expression Evaluation</a></li>47 <li><a id="toc-See-Also" href="#See-Also">4 See Also</a></li>48 <li><a id="toc-Authors" href="#Authors">5 Authors</a></li>49</ul>50</div>51</div>52 53<a name="Description"></a>54<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>55 56<p>This document describes some generic features and utilities provided57by the libavutil library.58</p>59 60<a name="Syntax"></a>61<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>62 63<p>This section documents the syntax and formats employed by the FFmpeg64libraries and tools.65</p>66<a class="anchor" id="quoting_005fand_005fescaping"></a><a name="Quoting-and-escaping"></a>67<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>68 69<p>FFmpeg adopts the following quoting and escaping mechanism, unless70explicitly specified. The following rules are applied:71</p>72<ul class="itemize mark-bullet">73<li>‘<samp class="samp">'</samp>’ and ‘<samp class="samp">\</samp>’ are special characters (respectively used for74quoting and escaping). In addition to them, there might be other75special characters depending on the specific syntax where the escaping76and quoting are employed.77 78</li><li>A special character is escaped by prefixing it with a ‘<samp class="samp">\</samp>’.79 80</li><li>All characters enclosed between ‘<samp class="samp">''</samp>’ are included literally in the81parsed string. The quote character ‘<samp class="samp">'</samp>’ itself cannot be quoted,82so you may need to close the quote and escape it.83 84</li><li>Leading and trailing whitespaces, unless escaped or quoted, are85removed from the parsed string.86</li></ul>87 88<p>Note that you may need to add a second level of escaping when using89the command line or a script, which depends on the syntax of the90adopted shell language.91</p>92<p>The function <code class="code">av_get_token</code> defined in93<samp class="file">libavutil/avstring.h</samp> can be used to parse a token quoted or94escaped according to the rules defined above.95</p>96<p>The tool <samp class="file">tools/ffescape</samp> in the FFmpeg source tree can be used97to automatically quote or escape a string in a script.98</p>99<a name="Examples"></a>100<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>101 102<ul class="itemize mark-bullet">103<li>Escape the string <code class="code">Crime d'Amour</code> containing the <code class="code">'</code> special104character:105<div class="example">106<pre class="example-preformatted">Crime d\'Amour107</pre></div>108 109</li><li>The string above contains a quote, so the <code class="code">'</code> needs to be escaped110when quoting it:111<div class="example">112<pre class="example-preformatted">'Crime d'\''Amour'113</pre></div>114 115</li><li>Include leading or trailing whitespaces using quoting:116<div class="example">117<pre class="example-preformatted">' this string starts and ends with whitespaces '118</pre></div>119 120</li><li>Escaping and quoting can be mixed together:121<div class="example">122<pre class="example-preformatted">' The string '\'string\'' is a string '123</pre></div>124 125</li><li>To include a literal ‘<samp class="samp">\</samp>’ you can use either escaping or quoting:126<div class="example">127<pre class="example-preformatted">'c:\foo' can be written as c:\\foo128</pre></div>129</li></ul>130 131<a class="anchor" id="date-syntax"></a><a name="Date"></a>132<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>133 134<p>The accepted syntax is:135</p><div class="example">136<pre class="example-preformatted">[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]137now138</pre></div>139 140<p>If the value is "now" it takes the current time.141</p>142<p>Time is local time unless Z is appended, in which case it is143interpreted as UTC.144If the year-month-day part is not specified it takes the current145year-month-day.146</p>147<a class="anchor" id="time-duration-syntax"></a><a name="Time-duration"></a>148<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>149 150<p>There are two accepted syntaxes for expressing time duration.151</p>152<div class="example">153<pre class="example-preformatted">[-][<var class="var">HH</var>:]<var class="var">MM</var>:<var class="var">SS</var>[.<var class="var">m</var>...]154</pre></div>155 156<p><var class="var">HH</var> expresses the number of hours, <var class="var">MM</var> the number of minutes157for a maximum of 2 digits, and <var class="var">SS</var> the number of seconds for a158maximum of 2 digits. The <var class="var">m</var> at the end expresses decimal value for159<var class="var">SS</var>.160</p>161<p><em class="emph">or</em>162</p>163<div class="example">164<pre class="example-preformatted">[-]<var class="var">S</var>+[.<var class="var">m</var>...][s|ms|us]165</pre></div>166 167<p><var class="var">S</var> expresses the number of seconds, with the optional decimal part168<var class="var">m</var>. The optional literal suffixes ‘<samp class="samp">s</samp>’, ‘<samp class="samp">ms</samp>’ or ‘<samp class="samp">us</samp>’169indicate to interpret the value as seconds, milliseconds or microseconds,170respectively.171</p>172<p>In both expressions, the optional ‘<samp class="samp">-</samp>’ indicates negative duration.173</p>174<a name="Examples-1"></a>175<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>176 177<p>The following examples are all valid time duration:178</p>179<dl class="table">180<dt>‘<samp class="samp">55</samp>’</dt>181<dd><p>55 seconds182</p>183</dd>184<dt>‘<samp class="samp">0.2</samp>’</dt>185<dd><p>0.2 seconds186</p>187</dd>188<dt>‘<samp class="samp">200ms</samp>’</dt>189<dd><p>200 milliseconds, that’s 0.2s190</p>191</dd>192<dt>‘<samp class="samp">200000us</samp>’</dt>193<dd><p>200000 microseconds, that’s 0.2s194</p>195</dd>196<dt>‘<samp class="samp">12:03:45</samp>’</dt>197<dd><p>12 hours, 03 minutes and 45 seconds198</p>199</dd>200<dt>‘<samp class="samp">23.189</samp>’</dt>201<dd><p>23.189 seconds202</p></dd>203</dl>204 205<a class="anchor" id="video-size-syntax"></a><a name="Video-size"></a>206<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>207<p>Specify the size of the sourced video, it may be a string of the form208<var class="var">width</var>x<var class="var">height</var>, or the name of a size abbreviation.209</p>210<p>The following abbreviations are recognized:211</p><dl class="table">212<dt>‘<samp class="samp">ntsc</samp>’</dt>213<dd><p>720x480214</p></dd>215<dt>‘<samp class="samp">pal</samp>’</dt>216<dd><p>720x576217</p></dd>218<dt>‘<samp class="samp">qntsc</samp>’</dt>219<dd><p>352x240220</p></dd>221<dt>‘<samp class="samp">qpal</samp>’</dt>222<dd><p>352x288223</p></dd>224<dt>‘<samp class="samp">sntsc</samp>’</dt>225<dd><p>640x480226</p></dd>227<dt>‘<samp class="samp">spal</samp>’</dt>228<dd><p>768x576229</p></dd>230<dt>‘<samp class="samp">film</samp>’</dt>231<dd><p>352x240232</p></dd>233<dt>‘<samp class="samp">ntsc-film</samp>’</dt>234<dd><p>352x240235</p></dd>236<dt>‘<samp class="samp">sqcif</samp>’</dt>237<dd><p>128x96238</p></dd>239<dt>‘<samp class="samp">qcif</samp>’</dt>240<dd><p>176x144241</p></dd>242<dt>‘<samp class="samp">cif</samp>’</dt>243<dd><p>352x288244</p></dd>245<dt>‘<samp class="samp">4cif</samp>’</dt>246<dd><p>704x576247</p></dd>248<dt>‘<samp class="samp">16cif</samp>’</dt>249<dd><p>1408x1152250</p></dd>251<dt>‘<samp class="samp">qqvga</samp>’</dt>252<dd><p>160x120253</p></dd>254<dt>‘<samp class="samp">qvga</samp>’</dt>255<dd><p>320x240256</p></dd>257<dt>‘<samp class="samp">vga</samp>’</dt>258<dd><p>640x480259</p></dd>260<dt>‘<samp class="samp">svga</samp>’</dt>261<dd><p>800x600262</p></dd>263<dt>‘<samp class="samp">xga</samp>’</dt>264<dd><p>1024x768265</p></dd>266<dt>‘<samp class="samp">uxga</samp>’</dt>267<dd><p>1600x1200268</p></dd>269<dt>‘<samp class="samp">qxga</samp>’</dt>270<dd><p>2048x1536271</p></dd>272<dt>‘<samp class="samp">sxga</samp>’</dt>273<dd><p>1280x1024274</p></dd>275<dt>‘<samp class="samp">qsxga</samp>’</dt>276<dd><p>2560x2048277</p></dd>278<dt>‘<samp class="samp">hsxga</samp>’</dt>279<dd><p>5120x4096280</p></dd>281<dt>‘<samp class="samp">wvga</samp>’</dt>282<dd><p>852x480283</p></dd>284<dt>‘<samp class="samp">wxga</samp>’</dt>285<dd><p>1366x768286</p></dd>287<dt>‘<samp class="samp">wsxga</samp>’</dt>288<dd><p>1600x1024289</p></dd>290<dt>‘<samp class="samp">wuxga</samp>’</dt>291<dd><p>1920x1200292</p></dd>293<dt>‘<samp class="samp">woxga</samp>’</dt>294<dd><p>2560x1600295</p></dd>296<dt>‘<samp class="samp">wqsxga</samp>’</dt>297<dd><p>3200x2048298</p></dd>299<dt>‘<samp class="samp">wquxga</samp>’</dt>300<dd><p>3840x2400301</p></dd>302<dt>‘<samp class="samp">whsxga</samp>’</dt>303<dd><p>6400x4096304</p></dd>305<dt>‘<samp class="samp">whuxga</samp>’</dt>306<dd><p>7680x4800307</p></dd>308<dt>‘<samp class="samp">cga</samp>’</dt>309<dd><p>320x200310</p></dd>311<dt>‘<samp class="samp">ega</samp>’</dt>312<dd><p>640x350313</p></dd>314<dt>‘<samp class="samp">hd480</samp>’</dt>315<dd><p>852x480316</p></dd>317<dt>‘<samp class="samp">hd720</samp>’</dt>318<dd><p>1280x720319</p></dd>320<dt>‘<samp class="samp">hd1080</samp>’</dt>321<dd><p>1920x1080322</p></dd>323<dt>‘<samp class="samp">2k</samp>’</dt>324<dd><p>2048x1080325</p></dd>326<dt>‘<samp class="samp">2kflat</samp>’</dt>327<dd><p>1998x1080328</p></dd>329<dt>‘<samp class="samp">2kscope</samp>’</dt>330<dd><p>2048x858331</p></dd>332<dt>‘<samp class="samp">4k</samp>’</dt>333<dd><p>4096x2160334</p></dd>335<dt>‘<samp class="samp">4kflat</samp>’</dt>336<dd><p>3996x2160337</p></dd>338<dt>‘<samp class="samp">4kscope</samp>’</dt>339<dd><p>4096x1716340</p></dd>341<dt>‘<samp class="samp">nhd</samp>’</dt>342<dd><p>640x360343</p></dd>344<dt>‘<samp class="samp">hqvga</samp>’</dt>345<dd><p>240x160346</p></dd>347<dt>‘<samp class="samp">wqvga</samp>’</dt>348<dd><p>400x240349</p></dd>350<dt>‘<samp class="samp">fwqvga</samp>’</dt>351<dd><p>432x240352</p></dd>353<dt>‘<samp class="samp">hvga</samp>’</dt>354<dd><p>480x320355</p></dd>356<dt>‘<samp class="samp">qhd</samp>’</dt>357<dd><p>960x540358</p></dd>359<dt>‘<samp class="samp">2kdci</samp>’</dt>360<dd><p>2048x1080361</p></dd>362<dt>‘<samp class="samp">4kdci</samp>’</dt>363<dd><p>4096x2160364</p></dd>365<dt>‘<samp class="samp">uhd2160</samp>’</dt>366<dd><p>3840x2160367</p></dd>368<dt>‘<samp class="samp">uhd4320</samp>’</dt>369<dd><p>7680x4320370</p></dd>371</dl>372 373<a class="anchor" id="video-rate-syntax"></a><a name="Video-rate"></a>374<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>375 376<p>Specify the frame rate of a video, expressed as the number of frames377generated per second. It has to be a string in the format378<var class="var">frame_rate_num</var>/<var class="var">frame_rate_den</var>, an integer number, a float379number or a valid video frame rate abbreviation.380</p>381<p>The following abbreviations are recognized:382</p><dl class="table">383<dt>‘<samp class="samp">ntsc</samp>’</dt>384<dd><p>30000/1001385</p></dd>386<dt>‘<samp class="samp">pal</samp>’</dt>387<dd><p>25/1388</p></dd>389<dt>‘<samp class="samp">qntsc</samp>’</dt>390<dd><p>30000/1001391</p></dd>392<dt>‘<samp class="samp">qpal</samp>’</dt>393<dd><p>25/1394</p></dd>395<dt>‘<samp class="samp">sntsc</samp>’</dt>396<dd><p>30000/1001397</p></dd>398<dt>‘<samp class="samp">spal</samp>’</dt>399<dd><p>25/1400</p></dd>401<dt>‘<samp class="samp">film</samp>’</dt>402<dd><p>24/1403</p></dd>404<dt>‘<samp class="samp">ntsc-film</samp>’</dt>405<dd><p>24000/1001406</p></dd>407</dl>408 409<a class="anchor" id="ratio-syntax"></a><a name="Ratio"></a>410<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>411 412<p>A ratio can be expressed as an expression, or in the form413<var class="var">numerator</var>:<var class="var">denominator</var>.414</p>415<p>Note that a ratio with infinite (1/0) or negative value is416considered valid, so you should check on the returned value if you417want to exclude those values.418</p>419<p>The undefined value can be expressed using the "0:0" string.420</p>421<a class="anchor" id="color-syntax"></a><a name="Color"></a>422<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>423 424<p>It can be the name of a color as defined below (case insensitive match) or a425<code class="code">[0x|#]RRGGBB[AA]</code> sequence, possibly followed by @ and a string426representing the alpha component.427</p>428<p>The alpha component may be a string composed by "0x" followed by an429hexadecimal number or a decimal number between 0.0 and 1.0, which430represents the opacity value (‘<samp class="samp">0x00</samp>’ or ‘<samp class="samp">0.0</samp>’ means completely431transparent, ‘<samp class="samp">0xff</samp>’ or ‘<samp class="samp">1.0</samp>’ completely opaque). If the alpha432component is not specified then ‘<samp class="samp">0xff</samp>’ is assumed.433</p>434<p>The string ‘<samp class="samp">random</samp>’ will result in a random color.435</p>436<p>The following names of colors are recognized:437</p><dl class="table">438<dt>‘<samp class="samp">AliceBlue</samp>’</dt>439<dd><p>0xF0F8FF440</p></dd>441<dt>‘<samp class="samp">AntiqueWhite</samp>’</dt>442<dd><p>0xFAEBD7443</p></dd>444<dt>‘<samp class="samp">Aqua</samp>’</dt>445<dd><p>0x00FFFF446</p></dd>447<dt>‘<samp class="samp">Aquamarine</samp>’</dt>448<dd><p>0x7FFFD4449</p></dd>450<dt>‘<samp class="samp">Azure</samp>’</dt>451<dd><p>0xF0FFFF452</p></dd>453<dt>‘<samp class="samp">Beige</samp>’</dt>454<dd><p>0xF5F5DC455</p></dd>456<dt>‘<samp class="samp">Bisque</samp>’</dt>457<dd><p>0xFFE4C4458</p></dd>459<dt>‘<samp class="samp">Black</samp>’</dt>460<dd><p>0x000000461</p></dd>462<dt>‘<samp class="samp">BlanchedAlmond</samp>’</dt>463<dd><p>0xFFEBCD464</p></dd>465<dt>‘<samp class="samp">Blue</samp>’</dt>466<dd><p>0x0000FF467</p></dd>468<dt>‘<samp class="samp">BlueViolet</samp>’</dt>469<dd><p>0x8A2BE2470</p></dd>471<dt>‘<samp class="samp">Brown</samp>’</dt>472<dd><p>0xA52A2A473</p></dd>474<dt>‘<samp class="samp">BurlyWood</samp>’</dt>475<dd><p>0xDEB887476</p></dd>477<dt>‘<samp class="samp">CadetBlue</samp>’</dt>478<dd><p>0x5F9EA0479</p></dd>480<dt>‘<samp class="samp">Chartreuse</samp>’</dt>481<dd><p>0x7FFF00482</p></dd>483<dt>‘<samp class="samp">Chocolate</samp>’</dt>484<dd><p>0xD2691E485</p></dd>486<dt>‘<samp class="samp">Coral</samp>’</dt>487<dd><p>0xFF7F50488</p></dd>489<dt>‘<samp class="samp">CornflowerBlue</samp>’</dt>490<dd><p>0x6495ED491</p></dd>492<dt>‘<samp class="samp">Cornsilk</samp>’</dt>493<dd><p>0xFFF8DC494</p></dd>495<dt>‘<samp class="samp">Crimson</samp>’</dt>496<dd><p>0xDC143C497</p></dd>498<dt>‘<samp class="samp">Cyan</samp>’</dt>499<dd><p>0x00FFFF500</p></dd>501<dt>‘<samp class="samp">DarkBlue</samp>’</dt>502<dd><p>0x00008B503</p></dd>504<dt>‘<samp class="samp">DarkCyan</samp>’</dt>505<dd><p>0x008B8B506</p></dd>507<dt>‘<samp class="samp">DarkGoldenRod</samp>’</dt>508<dd><p>0xB8860B509</p></dd>510<dt>‘<samp class="samp">DarkGray</samp>’</dt>511<dd><p>0xA9A9A9512</p></dd>513<dt>‘<samp class="samp">DarkGreen</samp>’</dt>514<dd><p>0x006400515</p></dd>516<dt>‘<samp class="samp">DarkKhaki</samp>’</dt>517<dd><p>0xBDB76B518</p></dd>519<dt>‘<samp class="samp">DarkMagenta</samp>’</dt>520<dd><p>0x8B008B521</p></dd>522<dt>‘<samp class="samp">DarkOliveGreen</samp>’</dt>523<dd><p>0x556B2F524</p></dd>525<dt>‘<samp class="samp">Darkorange</samp>’</dt>526<dd><p>0xFF8C00527</p></dd>528<dt>‘<samp class="samp">DarkOrchid</samp>’</dt>529<dd><p>0x9932CC530</p></dd>531<dt>‘<samp class="samp">DarkRed</samp>’</dt>532<dd><p>0x8B0000533</p></dd>534<dt>‘<samp class="samp">DarkSalmon</samp>’</dt>535<dd><p>0xE9967A536</p></dd>537<dt>‘<samp class="samp">DarkSeaGreen</samp>’</dt>538<dd><p>0x8FBC8F539</p></dd>540<dt>‘<samp class="samp">DarkSlateBlue</samp>’</dt>541<dd><p>0x483D8B542</p></dd>543<dt>‘<samp class="samp">DarkSlateGray</samp>’</dt>544<dd><p>0x2F4F4F545</p></dd>546<dt>‘<samp class="samp">DarkTurquoise</samp>’</dt>547<dd><p>0x00CED1548</p></dd>549<dt>‘<samp class="samp">DarkViolet</samp>’</dt>550<dd><p>0x9400D3551</p></dd>552<dt>‘<samp class="samp">DeepPink</samp>’</dt>553<dd><p>0xFF1493554</p></dd>555<dt>‘<samp class="samp">DeepSkyBlue</samp>’</dt>556<dd><p>0x00BFFF557</p></dd>558<dt>‘<samp class="samp">DimGray</samp>’</dt>559<dd><p>0x696969560</p></dd>561<dt>‘<samp class="samp">DodgerBlue</samp>’</dt>562<dd><p>0x1E90FF563</p></dd>564<dt>‘<samp class="samp">FireBrick</samp>’</dt>565<dd><p>0xB22222566</p></dd>567<dt>‘<samp class="samp">FloralWhite</samp>’</dt>568<dd><p>0xFFFAF0569</p></dd>570<dt>‘<samp class="samp">ForestGreen</samp>’</dt>571<dd><p>0x228B22572</p></dd>573<dt>‘<samp class="samp">Fuchsia</samp>’</dt>574<dd><p>0xFF00FF575</p></dd>576<dt>‘<samp class="samp">Gainsboro</samp>’</dt>577<dd><p>0xDCDCDC578</p></dd>579<dt>‘<samp class="samp">GhostWhite</samp>’</dt>580<dd><p>0xF8F8FF581</p></dd>582<dt>‘<samp class="samp">Gold</samp>’</dt>583<dd><p>0xFFD700584</p></dd>585<dt>‘<samp class="samp">GoldenRod</samp>’</dt>586<dd><p>0xDAA520587</p></dd>588<dt>‘<samp class="samp">Gray</samp>’</dt>589<dd><p>0x808080590</p></dd>591<dt>‘<samp class="samp">Green</samp>’</dt>592<dd><p>0x008000593</p></dd>594<dt>‘<samp class="samp">GreenYellow</samp>’</dt>595<dd><p>0xADFF2F596</p></dd>597<dt>‘<samp class="samp">HoneyDew</samp>’</dt>598<dd><p>0xF0FFF0599</p></dd>600<dt>‘<samp class="samp">HotPink</samp>’</dt>601<dd><p>0xFF69B4602</p></dd>603<dt>‘<samp class="samp">IndianRed</samp>’</dt>604<dd><p>0xCD5C5C605</p></dd>606<dt>‘<samp class="samp">Indigo</samp>’</dt>607<dd><p>0x4B0082608</p></dd>609<dt>‘<samp class="samp">Ivory</samp>’</dt>610<dd><p>0xFFFFF0611</p></dd>612<dt>‘<samp class="samp">Khaki</samp>’</dt>613<dd><p>0xF0E68C614</p></dd>615<dt>‘<samp class="samp">Lavender</samp>’</dt>616<dd><p>0xE6E6FA617</p></dd>618<dt>‘<samp class="samp">LavenderBlush</samp>’</dt>619<dd><p>0xFFF0F5620</p></dd>621<dt>‘<samp class="samp">LawnGreen</samp>’</dt>622<dd><p>0x7CFC00623</p></dd>624<dt>‘<samp class="samp">LemonChiffon</samp>’</dt>625<dd><p>0xFFFACD626</p></dd>627<dt>‘<samp class="samp">LightBlue</samp>’</dt>628<dd><p>0xADD8E6629</p></dd>630<dt>‘<samp class="samp">LightCoral</samp>’</dt>631<dd><p>0xF08080632</p></dd>633<dt>‘<samp class="samp">LightCyan</samp>’</dt>634<dd><p>0xE0FFFF635</p></dd>636<dt>‘<samp class="samp">LightGoldenRodYellow</samp>’</dt>637<dd><p>0xFAFAD2638</p></dd>639<dt>‘<samp class="samp">LightGreen</samp>’</dt>640<dd><p>0x90EE90641</p></dd>642<dt>‘<samp class="samp">LightGrey</samp>’</dt>643<dd><p>0xD3D3D3644</p></dd>645<dt>‘<samp class="samp">LightPink</samp>’</dt>646<dd><p>0xFFB6C1647</p></dd>648<dt>‘<samp class="samp">LightSalmon</samp>’</dt>649<dd><p>0xFFA07A650</p></dd>651<dt>‘<samp class="samp">LightSeaGreen</samp>’</dt>652<dd><p>0x20B2AA653</p></dd>654<dt>‘<samp class="samp">LightSkyBlue</samp>’</dt>655<dd><p>0x87CEFA656</p></dd>657<dt>‘<samp class="samp">LightSlateGray</samp>’</dt>658<dd><p>0x778899659</p></dd>660<dt>‘<samp class="samp">LightSteelBlue</samp>’</dt>661<dd><p>0xB0C4DE662</p></dd>663<dt>‘<samp class="samp">LightYellow</samp>’</dt>664<dd><p>0xFFFFE0665</p></dd>666<dt>‘<samp class="samp">Lime</samp>’</dt>667<dd><p>0x00FF00668</p></dd>669<dt>‘<samp class="samp">LimeGreen</samp>’</dt>670<dd><p>0x32CD32671</p></dd>672<dt>‘<samp class="samp">Linen</samp>’</dt>673<dd><p>0xFAF0E6674</p></dd>675<dt>‘<samp class="samp">Magenta</samp>’</dt>676<dd><p>0xFF00FF677</p></dd>678<dt>‘<samp class="samp">Maroon</samp>’</dt>679<dd><p>0x800000680</p></dd>681<dt>‘<samp class="samp">MediumAquaMarine</samp>’</dt>682<dd><p>0x66CDAA683</p></dd>684<dt>‘<samp class="samp">MediumBlue</samp>’</dt>685<dd><p>0x0000CD686</p></dd>687<dt>‘<samp class="samp">MediumOrchid</samp>’</dt>688<dd><p>0xBA55D3689</p></dd>690<dt>‘<samp class="samp">MediumPurple</samp>’</dt>691<dd><p>0x9370D8692</p></dd>693<dt>‘<samp class="samp">MediumSeaGreen</samp>’</dt>694<dd><p>0x3CB371695</p></dd>696<dt>‘<samp class="samp">MediumSlateBlue</samp>’</dt>697<dd><p>0x7B68EE698</p></dd>699<dt>‘<samp class="samp">MediumSpringGreen</samp>’</dt>700<dd><p>0x00FA9A701</p></dd>702<dt>‘<samp class="samp">MediumTurquoise</samp>’</dt>703<dd><p>0x48D1CC704</p></dd>705<dt>‘<samp class="samp">MediumVioletRed</samp>’</dt>706<dd><p>0xC71585707</p></dd>708<dt>‘<samp class="samp">MidnightBlue</samp>’</dt>709<dd><p>0x191970710</p></dd>711<dt>‘<samp class="samp">MintCream</samp>’</dt>712<dd><p>0xF5FFFA713</p></dd>714<dt>‘<samp class="samp">MistyRose</samp>’</dt>715<dd><p>0xFFE4E1716</p></dd>717<dt>‘<samp class="samp">Moccasin</samp>’</dt>718<dd><p>0xFFE4B5719</p></dd>720<dt>‘<samp class="samp">NavajoWhite</samp>’</dt>721<dd><p>0xFFDEAD722</p></dd>723<dt>‘<samp class="samp">Navy</samp>’</dt>724<dd><p>0x000080725</p></dd>726<dt>‘<samp class="samp">OldLace</samp>’</dt>727<dd><p>0xFDF5E6728</p></dd>729<dt>‘<samp class="samp">Olive</samp>’</dt>730<dd><p>0x808000731</p></dd>732<dt>‘<samp class="samp">OliveDrab</samp>’</dt>733<dd><p>0x6B8E23734</p></dd>735<dt>‘<samp class="samp">Orange</samp>’</dt>736<dd><p>0xFFA500737</p></dd>738<dt>‘<samp class="samp">OrangeRed</samp>’</dt>739<dd><p>0xFF4500740</p></dd>741<dt>‘<samp class="samp">Orchid</samp>’</dt>742<dd><p>0xDA70D6743</p></dd>744<dt>‘<samp class="samp">PaleGoldenRod</samp>’</dt>745<dd><p>0xEEE8AA746</p></dd>747<dt>‘<samp class="samp">PaleGreen</samp>’</dt>748<dd><p>0x98FB98749</p></dd>750<dt>‘<samp class="samp">PaleTurquoise</samp>’</dt>751<dd><p>0xAFEEEE752</p></dd>753<dt>‘<samp class="samp">PaleVioletRed</samp>’</dt>754<dd><p>0xD87093755</p></dd>756<dt>‘<samp class="samp">PapayaWhip</samp>’</dt>757<dd><p>0xFFEFD5758</p></dd>759<dt>‘<samp class="samp">PeachPuff</samp>’</dt>760<dd><p>0xFFDAB9761</p></dd>762<dt>‘<samp class="samp">Peru</samp>’</dt>763<dd><p>0xCD853F764</p></dd>765<dt>‘<samp class="samp">Pink</samp>’</dt>766<dd><p>0xFFC0CB767</p></dd>768<dt>‘<samp class="samp">Plum</samp>’</dt>769<dd><p>0xDDA0DD770</p></dd>771<dt>‘<samp class="samp">PowderBlue</samp>’</dt>772<dd><p>0xB0E0E6773</p></dd>774<dt>‘<samp class="samp">Purple</samp>’</dt>775<dd><p>0x800080776</p></dd>777<dt>‘<samp class="samp">Red</samp>’</dt>778<dd><p>0xFF0000779</p></dd>780<dt>‘<samp class="samp">RosyBrown</samp>’</dt>781<dd><p>0xBC8F8F782</p></dd>783<dt>‘<samp class="samp">RoyalBlue</samp>’</dt>784<dd><p>0x4169E1785</p></dd>786<dt>‘<samp class="samp">SaddleBrown</samp>’</dt>787<dd><p>0x8B4513788</p></dd>789<dt>‘<samp class="samp">Salmon</samp>’</dt>790<dd><p>0xFA8072791</p></dd>792<dt>‘<samp class="samp">SandyBrown</samp>’</dt>793<dd><p>0xF4A460794</p></dd>795<dt>‘<samp class="samp">SeaGreen</samp>’</dt>796<dd><p>0x2E8B57797</p></dd>798<dt>‘<samp class="samp">SeaShell</samp>’</dt>799<dd><p>0xFFF5EE800</p></dd>801<dt>‘<samp class="samp">Sienna</samp>’</dt>802<dd><p>0xA0522D803</p></dd>804<dt>‘<samp class="samp">Silver</samp>’</dt>805<dd><p>0xC0C0C0806</p></dd>807<dt>‘<samp class="samp">SkyBlue</samp>’</dt>808<dd><p>0x87CEEB809</p></dd>810<dt>‘<samp class="samp">SlateBlue</samp>’</dt>811<dd><p>0x6A5ACD812</p></dd>813<dt>‘<samp class="samp">SlateGray</samp>’</dt>814<dd><p>0x708090815</p></dd>816<dt>‘<samp class="samp">Snow</samp>’</dt>817<dd><p>0xFFFAFA818</p></dd>819<dt>‘<samp class="samp">SpringGreen</samp>’</dt>820<dd><p>0x00FF7F821</p></dd>822<dt>‘<samp class="samp">SteelBlue</samp>’</dt>823<dd><p>0x4682B4824</p></dd>825<dt>‘<samp class="samp">Tan</samp>’</dt>826<dd><p>0xD2B48C827</p></dd>828<dt>‘<samp class="samp">Teal</samp>’</dt>829<dd><p>0x008080830</p></dd>831<dt>‘<samp class="samp">Thistle</samp>’</dt>832<dd><p>0xD8BFD8833</p></dd>834<dt>‘<samp class="samp">Tomato</samp>’</dt>835<dd><p>0xFF6347836</p></dd>837<dt>‘<samp class="samp">Turquoise</samp>’</dt>838<dd><p>0x40E0D0839</p></dd>840<dt>‘<samp class="samp">Violet</samp>’</dt>841<dd><p>0xEE82EE842</p></dd>843<dt>‘<samp class="samp">Wheat</samp>’</dt>844<dd><p>0xF5DEB3845</p></dd>846<dt>‘<samp class="samp">White</samp>’</dt>847<dd><p>0xFFFFFF848</p></dd>849<dt>‘<samp class="samp">WhiteSmoke</samp>’</dt>850<dd><p>0xF5F5F5851</p></dd>852<dt>‘<samp class="samp">Yellow</samp>’</dt>853<dd><p>0xFFFF00854</p></dd>855<dt>‘<samp class="samp">YellowGreen</samp>’</dt>856<dd><p>0x9ACD32857</p></dd>858</dl>859 860<a class="anchor" id="channel-layout-syntax"></a><a name="Channel-Layout"></a>861<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>862 863<p>A channel layout specifies the spatial disposition of the channels in864a multi-channel audio stream. To specify a channel layout, FFmpeg865makes use of a special syntax.866</p>867<p>Individual channels are identified by an id, as given by the table868below:869</p><dl class="table">870<dt>‘<samp class="samp">FL</samp>’</dt>871<dd><p>front left872</p></dd>873<dt>‘<samp class="samp">FR</samp>’</dt>874<dd><p>front right875</p></dd>876<dt>‘<samp class="samp">FC</samp>’</dt>877<dd><p>front center878</p></dd>879<dt>‘<samp class="samp">LFE</samp>’</dt>880<dd><p>low frequency881</p></dd>882<dt>‘<samp class="samp">BL</samp>’</dt>883<dd><p>back left884</p></dd>885<dt>‘<samp class="samp">BR</samp>’</dt>886<dd><p>back right887</p></dd>888<dt>‘<samp class="samp">FLC</samp>’</dt>889<dd><p>front left-of-center890</p></dd>891<dt>‘<samp class="samp">FRC</samp>’</dt>892<dd><p>front right-of-center893</p></dd>894<dt>‘<samp class="samp">BC</samp>’</dt>895<dd><p>back center896</p></dd>897<dt>‘<samp class="samp">SL</samp>’</dt>898<dd><p>side left899</p></dd>900<dt>‘<samp class="samp">SR</samp>’</dt>901<dd><p>side right902</p></dd>903<dt>‘<samp class="samp">TC</samp>’</dt>904<dd><p>top center905</p></dd>906<dt>‘<samp class="samp">TFL</samp>’</dt>907<dd><p>top front left908</p></dd>909<dt>‘<samp class="samp">TFC</samp>’</dt>910<dd><p>top front center911</p></dd>912<dt>‘<samp class="samp">TFR</samp>’</dt>913<dd><p>top front right914</p></dd>915<dt>‘<samp class="samp">TBL</samp>’</dt>916<dd><p>top back left917</p></dd>918<dt>‘<samp class="samp">TBC</samp>’</dt>919<dd><p>top back center920</p></dd>921<dt>‘<samp class="samp">TBR</samp>’</dt>922<dd><p>top back right923</p></dd>924<dt>‘<samp class="samp">DL</samp>’</dt>925<dd><p>downmix left926</p></dd>927<dt>‘<samp class="samp">DR</samp>’</dt>928<dd><p>downmix right929</p></dd>930<dt>‘<samp class="samp">WL</samp>’</dt>931<dd><p>wide left932</p></dd>933<dt>‘<samp class="samp">WR</samp>’</dt>934<dd><p>wide right935</p></dd>936<dt>‘<samp class="samp">SDL</samp>’</dt>937<dd><p>surround direct left938</p></dd>939<dt>‘<samp class="samp">SDR</samp>’</dt>940<dd><p>surround direct right941</p></dd>942<dt>‘<samp class="samp">LFE2</samp>’</dt>943<dd><p>low frequency 2944</p></dd>945</dl>946 947<p>Standard channel layout compositions can be specified by using the948following identifiers:949</p><dl class="table">950<dt>‘<samp class="samp">mono</samp>’</dt>951<dd><p>FC952</p></dd>953<dt>‘<samp class="samp">stereo</samp>’</dt>954<dd><p>FL+FR955</p></dd>956<dt>‘<samp class="samp">2.1</samp>’</dt>957<dd><p>FL+FR+LFE958</p></dd>959<dt>‘<samp class="samp">3.0</samp>’</dt>960<dd><p>FL+FR+FC961</p></dd>962<dt>‘<samp class="samp">3.0(back)</samp>’</dt>963<dd><p>FL+FR+BC964</p></dd>965<dt>‘<samp class="samp">4.0</samp>’</dt>966<dd><p>FL+FR+FC+BC967</p></dd>968<dt>‘<samp class="samp">quad</samp>’</dt>969<dd><p>FL+FR+BL+BR970</p></dd>971<dt>‘<samp class="samp">quad(side)</samp>’</dt>972<dd><p>FL+FR+SL+SR973</p></dd>974<dt>‘<samp class="samp">3.1</samp>’</dt>975<dd><p>FL+FR+FC+LFE976</p></dd>977<dt>‘<samp class="samp">5.0</samp>’</dt>978<dd><p>FL+FR+FC+BL+BR979</p></dd>980<dt>‘<samp class="samp">5.0(side)</samp>’</dt>981<dd><p>FL+FR+FC+SL+SR982</p></dd>983<dt>‘<samp class="samp">4.1</samp>’</dt>984<dd><p>FL+FR+FC+LFE+BC985</p></dd>986<dt>‘<samp class="samp">5.1</samp>’</dt>987<dd><p>FL+FR+FC+LFE+BL+BR988</p></dd>989<dt>‘<samp class="samp">5.1(side)</samp>’</dt>990<dd><p>FL+FR+FC+LFE+SL+SR991</p></dd>992<dt>‘<samp class="samp">6.0</samp>’</dt>993<dd><p>FL+FR+FC+BC+SL+SR994</p></dd>995<dt>‘<samp class="samp">6.0(front)</samp>’</dt>996<dd><p>FL+FR+FLC+FRC+SL+SR997</p></dd>998<dt>‘<samp class="samp">3.1.2</samp>’</dt>999<dd><p>FL+FR+FC+LFE+TFL+TFR1000</p></dd>1001<dt>‘<samp class="samp">hexagonal</samp>’</dt>1002<dd><p>FL+FR+FC+BL+BR+BC1003</p></dd>1004<dt>‘<samp class="samp">6.1</samp>’</dt>1005<dd><p>FL+FR+FC+LFE+BC+SL+SR1006</p></dd>1007<dt>‘<samp class="samp">6.1</samp>’</dt>1008<dd><p>FL+FR+FC+LFE+BL+BR+BC1009</p></dd>1010<dt>‘<samp class="samp">6.1(front)</samp>’</dt>1011<dd><p>FL+FR+LFE+FLC+FRC+SL+SR1012</p></dd>1013<dt>‘<samp class="samp">7.0</samp>’</dt>1014<dd><p>FL+FR+FC+BL+BR+SL+SR1015</p></dd>1016<dt>‘<samp class="samp">7.0(front)</samp>’</dt>1017<dd><p>FL+FR+FC+FLC+FRC+SL+SR1018</p></dd>1019<dt>‘<samp class="samp">7.1</samp>’</dt>1020<dd><p>FL+FR+FC+LFE+BL+BR+SL+SR1021</p></dd>1022<dt>‘<samp class="samp">7.1(wide)</samp>’</dt>1023<dd><p>FL+FR+FC+LFE+BL+BR+FLC+FRC1024</p></dd>1025<dt>‘<samp class="samp">7.1(wide-side)</samp>’</dt>1026<dd><p>FL+FR+FC+LFE+FLC+FRC+SL+SR1027</p></dd>1028<dt>‘<samp class="samp">5.1.2</samp>’</dt>1029<dd><p>FL+FR+FC+LFE+BL+BR+TFL+TFR1030</p></dd>1031<dt>‘<samp class="samp">octagonal</samp>’</dt>1032<dd><p>FL+FR+FC+BL+BR+BC+SL+SR1033</p></dd>1034<dt>‘<samp class="samp">cube</samp>’</dt>1035<dd><p>FL+FR+BL+BR+TFL+TFR+TBL+TBR1036</p></dd>1037<dt>‘<samp class="samp">5.1.4</samp>’</dt>1038<dd><p>FL+FR+FC+LFE+BL+BR+TFL+TFR+TBL+TBR1039</p></dd>1040<dt>‘<samp class="samp">7.1.2</samp>’</dt>1041<dd><p>FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR1042</p></dd>1043<dt>‘<samp class="samp">7.1.4</samp>’</dt>1044<dd><p>FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBL+TBR1045</p></dd>1046<dt>‘<samp class="samp">7.2.3</samp>’</dt>1047<dd><p>FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBC+LFE21048</p></dd>1049<dt>‘<samp class="samp">9.1.4</samp>’</dt>1050<dd><p>FL+FR+FC+LFE+BL+BR+FLC+FRC+SL+SR+TFL+TFR+TBL+TBR1051</p></dd>1052<dt>‘<samp class="samp">9.1.6</samp>’</dt>1053<dd><p>FL+FR+FC+LFE+BL+BR+FLC+FRC+SL+SR+TFL+TFR+TBL+TBR+TSL+TSR1054</p></dd>1055<dt>‘<samp class="samp">hexadecagonal</samp>’</dt>1056<dd><p>FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR1057</p></dd>1058<dt>‘<samp class="samp">binaural</samp>’</dt>1059<dd><p>BIL+BIR1060</p></dd>1061<dt>‘<samp class="samp">downmix</samp>’</dt>1062<dd><p>DL+DR1063</p></dd>1064<dt>‘<samp class="samp">22.2</samp>’</dt>1065<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+BFR1066</p></dd>1067</dl>1068 1069<p>A custom channel layout can be specified as a sequence of terms, separated by ’+’.1070Each term can be:1071</p><ul class="itemize mark-bullet">1072<li>the name of a single channel (e.g. ‘<samp class="samp">FL</samp>’, ‘<samp class="samp">FR</samp>’, ‘<samp class="samp">FC</samp>’, ‘<samp class="samp">LFE</samp>’, etc.),1073each optionally containing a custom name after a ’@’, (e.g. ‘<samp class="samp">FL@Left</samp>’,1074‘<samp class="samp">FR@Right</samp>’, ‘<samp class="samp">FC@Center</samp>’, ‘<samp class="samp">LFE@Low_Frequency</samp>’, etc.)1075</li></ul>1076 1077<p>A standard channel layout can be specified by the following:1078</p><ul class="itemize mark-bullet">1079<li>the name of a single channel (e.g. ‘<samp class="samp">FL</samp>’, ‘<samp class="samp">FR</samp>’, ‘<samp class="samp">FC</samp>’, ‘<samp class="samp">LFE</samp>’, etc.)1080 1081</li><li>the name of a standard channel layout (e.g. ‘<samp class="samp">mono</samp>’,1082‘<samp class="samp">stereo</samp>’, ‘<samp class="samp">4.0</samp>’, ‘<samp class="samp">quad</samp>’, ‘<samp class="samp">5.0</samp>’, etc.)1083 1084</li><li>a number of channels, in decimal, followed by ’c’, yielding the default channel1085layout for that number of channels (see the function1086<code class="code">av_channel_layout_default</code>). Note that not all channel counts have a1087default layout.1088 1089</li><li>a number of channels, in decimal, followed by ’C’, yielding an unknown channel1090layout with the specified number of channels. Note that not all channel layout1091specification strings support unknown channel layouts.1092 1093</li><li>a channel layout mask, in hexadecimal starting with "0x" (see the1094<code class="code">AV_CH_*</code> macros in <samp class="file">libavutil/channel_layout.h</samp>.1095</li></ul>1096 1097<p>Before libavutil version 53 the trailing character "c" to specify a number of1098channels was optional, but now it is required, while a channel layout mask can1099also be specified as a decimal number (if and only if not followed by "c" or "C").1100</p>1101<p>See also the function <code class="code">av_channel_layout_from_string</code> defined in1102<samp class="file">libavutil/channel_layout.h</samp>.1103</p>1104<a name="Expression-Evaluation"></a>1105<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>1106 1107<p>When evaluating an arithmetic expression, FFmpeg uses an internal1108formula evaluator, implemented through the <samp class="file">libavutil/eval.h</samp>1109interface.1110</p>1111<p>An expression may contain unary, binary operators, constants, and1112functions.1113</p>1114<p>Two expressions <var class="var">expr1</var> and <var class="var">expr2</var> can be combined to form1115another expression "<var class="var">expr1</var>;<var class="var">expr2</var>".1116<var class="var">expr1</var> and <var class="var">expr2</var> are evaluated in turn, and the new1117expression evaluates to the value of <var class="var">expr2</var>.1118</p>1119<p>The following binary operators are available: <code class="code">+</code>, <code class="code">-</code>,1120<code class="code">*</code>, <code class="code">/</code>, <code class="code">^</code>.1121</p>1122<p>The following unary operators are available: <code class="code">+</code>, <code class="code">-</code>.1123</p>1124<p>Some internal variables can be used to store and load intermediary1125results. They can be accessed using the <code class="code">ld</code> and <code class="code">st</code>1126functions with an index argument varying from 0 to 9 to specify which1127internal variable to access.1128</p>1129<p>The following functions are available:1130</p><dl class="table">1131<dt><samp class="option">abs(x)</samp></dt>1132<dd><p>Compute absolute value of <var class="var">x</var>.1133</p>1134</dd>1135<dt><samp class="option">acos(x)</samp></dt>1136<dd><p>Compute arccosine of <var class="var">x</var>.1137</p>1138</dd>1139<dt><samp class="option">asin(x)</samp></dt>1140<dd><p>Compute arcsine of <var class="var">x</var>.1141</p>1142</dd>1143<dt><samp class="option">atan(x)</samp></dt>1144<dd><p>Compute arctangent of <var class="var">x</var>.1145</p>1146</dd>1147<dt><samp class="option">atan2(y, x)</samp></dt>1148<dd><p>Compute principal value of the arc tangent of <var class="var">y</var>/<var class="var">x</var>.1149</p>1150</dd>1151<dt><samp class="option">between(x, min, max)</samp></dt>1152<dd><p>Return 1 if <var class="var">x</var> is greater than or equal to <var class="var">min</var> and lesser than or1153equal to <var class="var">max</var>, 0 otherwise.1154</p>1155</dd>1156<dt><samp class="option">bitand(x, y)</samp></dt>1157<dt><samp class="option">bitor(x, y)</samp></dt>1158<dd><p>Compute bitwise and/or operation on <var class="var">x</var> and <var class="var">y</var>.1159</p>1160<p>The results of the evaluation of <var class="var">x</var> and <var class="var">y</var> are converted to1161integers before executing the bitwise operation.1162</p>1163<p>Note that both the conversion to integer and the conversion back to1164floating point can lose precision. Beware of unexpected results for1165large numbers (usually 2^53 and larger).1166</p>1167</dd>1168<dt><samp class="option">ceil(expr)</samp></dt>1169<dd><p>Round the value of expression <var class="var">expr</var> upwards to the nearest1170integer. For example, "ceil(1.5)" is "2.0".1171</p>1172</dd>1173<dt><samp class="option">clip(x, min, max)</samp></dt>1174<dd><p>Return the value of <var class="var">x</var> clipped between <var class="var">min</var> and <var class="var">max</var>.1175</p>1176</dd>1177<dt><samp class="option">cos(x)</samp></dt>1178<dd><p>Compute cosine of <var class="var">x</var>.1179</p>1180</dd>1181<dt><samp class="option">cosh(x)</samp></dt>1182<dd><p>Compute hyperbolic cosine of <var class="var">x</var>.1183</p>1184</dd>1185<dt><samp class="option">eq(x, y)</samp></dt>1186<dd><p>Return 1 if <var class="var">x</var> and <var class="var">y</var> are equivalent, 0 otherwise.1187</p>1188</dd>1189<dt><samp class="option">exp(x)</samp></dt>1190<dd><p>Compute exponential of <var class="var">x</var> (with base <code class="code">e</code>, the Euler’s number).1191</p>1192</dd>1193<dt><samp class="option">floor(expr)</samp></dt>1194<dd><p>Round the value of expression <var class="var">expr</var> downwards to the nearest1195integer. For example, "floor(-1.5)" is "-2.0".1196</p>1197</dd>1198<dt><samp class="option">gauss(x)</samp></dt>1199<dd><p>Compute Gauss function of <var class="var">x</var>, corresponding to1200<code class="code">exp(-x*x/2) / sqrt(2*PI)</code>.