Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
ffmpeg-doc / usr / share / doc / ffmpeg / api / common_8h.html
Size: Mime:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>FFmpeg: libavutil/common.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">FFmpeg
   &#160;<span id="projectnumber">3.0.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_8d855866ba5d436d839c7fc557836cd9.html">libavutil</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">common.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>common internal and external API header  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;errno.h&gt;</code><br/>
<code>#include &lt;inttypes.h&gt;</code><br/>
<code>#include &lt;limits.h&gt;</code><br/>
<code>#include &lt;math.h&gt;</code><br/>
<code>#include &lt;stdint.h&gt;</code><br/>
<code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &quot;<a class="el" href="attributes_8h_source.html">attributes.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="macros_8h_source.html">macros.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="libavutil_2version_8h_source.html">version.h</a>&quot;</code><br/>
<code>#include &quot;libavutil/avconfig.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="common_8h_source.html">common.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="mem_8h_source.html">mem.h</a>&quot;</code><br/>
</div>
<p><a href="common_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a309bdca20f6a78431379fc69442d98ea"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a309bdca20f6a78431379fc69442d98ea">AV_NE</a>(be, le)&#160;&#160;&#160;(le)</td></tr>
<tr class="separator:a309bdca20f6a78431379fc69442d98ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa79ca71ef110a498d8275cbf7aa75a93"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#aa79ca71ef110a498d8275cbf7aa75a93">RSHIFT</a>(a, b)&#160;&#160;&#160;((a) &gt; 0 ? ((a) + ((1&lt;&lt;(b))&gt;&gt;1))&gt;&gt;(b) : ((a) + ((1&lt;&lt;(b))&gt;&gt;1)-1)&gt;&gt;(b))</td></tr>
<tr class="separator:aa79ca71ef110a498d8275cbf7aa75a93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a2a86492a286d6d20678da1dbb00525"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a7a2a86492a286d6d20678da1dbb00525">ROUNDED_DIV</a>(a, b)&#160;&#160;&#160;(((a)&gt;0 ? (a) + ((b)&gt;&gt;1) : (a) - ((b)&gt;&gt;1))/(b))</td></tr>
<tr class="separator:a7a2a86492a286d6d20678da1dbb00525"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d13452b0fac0d41b08ea2e49ea6eaa5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a5d13452b0fac0d41b08ea2e49ea6eaa5">AV_CEIL_RSHIFT</a>(a, b)</td></tr>
<tr class="separator:a5d13452b0fac0d41b08ea2e49ea6eaa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33703f1a958afda17362487ed065ee0c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a33703f1a958afda17362487ed065ee0c">FF_CEIL_RSHIFT</a>&#160;&#160;&#160;<a class="el" href="common_8h.html#a5d13452b0fac0d41b08ea2e49ea6eaa5">AV_CEIL_RSHIFT</a></td></tr>
<tr class="separator:a33703f1a958afda17362487ed065ee0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5117194af5289224bceaaa5466586d8f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a5117194af5289224bceaaa5466586d8f">FFUDIV</a>(a, b)&#160;&#160;&#160;(((a)&gt;0 ?(a):(a)-(b)+1) / (b))</td></tr>
<tr class="separator:a5117194af5289224bceaaa5466586d8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0241c1e04e45d7be1b388d83ab57f22"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#aa0241c1e04e45d7be1b388d83ab57f22">FFUMOD</a>(a, b)&#160;&#160;&#160;((a)-(b)*<a class="el" href="common_8h.html#a5117194af5289224bceaaa5466586d8f">FFUDIV</a>(a,b))</td></tr>
<tr class="separator:aa0241c1e04e45d7be1b388d83ab57f22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6d88940cfc29c13a3e51ded211fc242"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#ad6d88940cfc29c13a3e51ded211fc242">FFABS</a>(a)&#160;&#160;&#160;((a) &gt;= 0 ? (a) : (-(a)))</td></tr>
<tr class="memdesc:ad6d88940cfc29c13a3e51ded211fc242"><td class="mdescLeft">&#160;</td><td class="mdescRight">Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they are not representable as absolute values of their type.  <a href="#ad6d88940cfc29c13a3e51ded211fc242">More...</a><br/></td></tr>
<tr class="separator:ad6d88940cfc29c13a3e51ded211fc242"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5e4ff7761996bc901e59bd59756268d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#af5e4ff7761996bc901e59bd59756268d">FFSIGN</a>(a)&#160;&#160;&#160;((a) &gt; 0 ? 1 : -1)</td></tr>
<tr class="separator:af5e4ff7761996bc901e59bd59756268d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4752e34ce9cae031c792b625b0736d97"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a4752e34ce9cae031c792b625b0736d97">FFNABS</a>(a)&#160;&#160;&#160;((a) &lt;= 0 ? (a) : (-(a)))</td></tr>
<tr class="memdesc:a4752e34ce9cae031c792b625b0736d97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Negative Absolute value.  <a href="#a4752e34ce9cae031c792b625b0736d97">More...</a><br/></td></tr>
<tr class="separator:a4752e34ce9cae031c792b625b0736d97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add8913a6f8e5714b6174eeaad5751006"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#add8913a6f8e5714b6174eeaad5751006">FFDIFFSIGN</a>(x, y)&#160;&#160;&#160;(((x)&gt;(y)) - ((x)&lt;(y)))</td></tr>
<tr class="memdesc:add8913a6f8e5714b6174eeaad5751006"><td class="mdescLeft">&#160;</td><td class="mdescRight">Comparator.  <a href="#add8913a6f8e5714b6174eeaad5751006">More...</a><br/></td></tr>
<tr class="separator:add8913a6f8e5714b6174eeaad5751006"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9960bd6780a9b16a216a57be1ee04359"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a9960bd6780a9b16a216a57be1ee04359">FFMAX</a>(a, b)&#160;&#160;&#160;((a) &gt; (b) ? (a) : (b))</td></tr>
<tr class="separator:a9960bd6780a9b16a216a57be1ee04359"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a013fdaa079045ec5632fe121e211e516"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a013fdaa079045ec5632fe121e211e516">FFMAX3</a>(a, b, c)&#160;&#160;&#160;<a class="el" href="common_8h.html#a9960bd6780a9b16a216a57be1ee04359">FFMAX</a>(<a class="el" href="common_8h.html#a9960bd6780a9b16a216a57be1ee04359">FFMAX</a>(a,b),c)</td></tr>
<tr class="separator:a013fdaa079045ec5632fe121e211e516"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f84cbd7fd810cd678157c98cbfad4b0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a0f84cbd7fd810cd678157c98cbfad4b0">FFMIN</a>(a, b)&#160;&#160;&#160;((a) &gt; (b) ? (b) : (a))</td></tr>
<tr class="separator:a0f84cbd7fd810cd678157c98cbfad4b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6afbffa12562b076c34055bdcb3ad65"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#af6afbffa12562b076c34055bdcb3ad65">FFMIN3</a>(a, b, c)&#160;&#160;&#160;<a class="el" href="common_8h.html#a0f84cbd7fd810cd678157c98cbfad4b0">FFMIN</a>(<a class="el" href="common_8h.html#a0f84cbd7fd810cd678157c98cbfad4b0">FFMIN</a>(a,b),c)</td></tr>
<tr class="separator:af6afbffa12562b076c34055bdcb3ad65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09a0bb7d8fcfac416de7a5fe7fd8b0f1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a09a0bb7d8fcfac416de7a5fe7fd8b0f1">FFSWAP</a>(type, a, b)&#160;&#160;&#160;do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)</td></tr>
<tr class="separator:a09a0bb7d8fcfac416de7a5fe7fd8b0f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3508a98d3ee7e2c9a4841fe264cf70f7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a3508a98d3ee7e2c9a4841fe264cf70f7">FF_ARRAY_ELEMS</a>(a)&#160;&#160;&#160;(sizeof(a) / sizeof((a)[0]))</td></tr>
<tr class="separator:a3508a98d3ee7e2c9a4841fe264cf70f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19c68e2b5efcbab914d79db1e4fee734"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a19c68e2b5efcbab914d79db1e4fee734">MKTAG</a>(a, b, c, d)&#160;&#160;&#160;((a) | ((b) &lt;&lt; 8) | ((c) &lt;&lt; 16) | ((unsigned)(d) &lt;&lt; 24))</td></tr>
<tr class="separator:a19c68e2b5efcbab914d79db1e4fee734"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e233db224cd0a3079fd4572d1a3d717"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(a, b, c, d)&#160;&#160;&#160;((d) | ((c) &lt;&lt; 8) | ((b) &lt;&lt; 16) | ((unsigned)(a) &lt;&lt; 24))</td></tr>
<tr class="separator:a1e233db224cd0a3079fd4572d1a3d717"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a2fd8cd42afb00c9f69562f52b1ae4b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a1a2fd8cd42afb00c9f69562f52b1ae4b">GET_UTF8</a>(val, GET_BYTE, ERROR)</td></tr>
<tr class="memdesc:a1a2fd8cd42afb00c9f69562f52b1ae4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form.  <a href="#a1a2fd8cd42afb00c9f69562f52b1ae4b">More...</a><br/></td></tr>
<tr class="separator:a1a2fd8cd42afb00c9f69562f52b1ae4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2665137b6cc64bb5cf491ba9f9dbd215"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a2665137b6cc64bb5cf491ba9f9dbd215">GET_UTF16</a>(val, GET_16BIT, ERROR)</td></tr>
<tr class="memdesc:a2665137b6cc64bb5cf491ba9f9dbd215"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form.  <a href="#a2665137b6cc64bb5cf491ba9f9dbd215">More...</a><br/></td></tr>
<tr class="separator:a2665137b6cc64bb5cf491ba9f9dbd215"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6a994fe28410a8d14f70f0992db4f42"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#ac6a994fe28410a8d14f70f0992db4f42">PUT_UTF8</a>(val, tmp, PUT_BYTE)</td></tr>
<tr class="memdesc:ac6a994fe28410a8d14f70f0992db4f42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long).  <a href="#ac6a994fe28410a8d14f70f0992db4f42">More...</a><br/></td></tr>
<tr class="separator:ac6a994fe28410a8d14f70f0992db4f42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6486c4a216b16b4d2615c23d8429cd6b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a6486c4a216b16b4d2615c23d8429cd6b">PUT_UTF16</a>(val, tmp, PUT_16BIT)</td></tr>
<tr class="memdesc:a6486c4a216b16b4d2615c23d8429cd6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes).  <a href="#a6486c4a216b16b4d2615c23d8429cd6b">More...</a><br/></td></tr>
<tr class="separator:a6486c4a216b16b4d2615c23d8429cd6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a10e72d08c6a66c91cf7218532631684e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a10e72d08c6a66c91cf7218532631684e">av_log2</a> (unsigned v)</td></tr>
<tr class="separator:a10e72d08c6a66c91cf7218532631684e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a1d3f387b1eab65327453f6a8e7e9ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a8a1d3f387b1eab65327453f6a8e7e9ae">av_log2_16bit</a> (unsigned v)</td></tr>
<tr class="separator:a8a1d3f387b1eab65327453f6a8e7e9ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a465f39d69c5a5fe0e070b6ec4d0fed29"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a465f39d69c5a5fe0e070b6ec4d0fed29">av_clip_c</a> (int a, int amin, int amax)</td></tr>
<tr class="memdesc:a465f39d69c5a5fe0e070b6ec4d0fed29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip a signed integer value into the amin-amax range.  <a href="#a465f39d69c5a5fe0e070b6ec4d0fed29">More...</a><br/></td></tr>
<tr class="separator:a465f39d69c5a5fe0e070b6ec4d0fed29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4ed7e144d5b8397cff8656e9c786cb2"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#aa4ed7e144d5b8397cff8656e9c786cb2">av_clip64_c</a> (int64_t a, int64_t amin, int64_t amax)</td></tr>
<tr class="memdesc:aa4ed7e144d5b8397cff8656e9c786cb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip a signed 64bit integer value into the amin-amax range.  <a href="#aa4ed7e144d5b8397cff8656e9c786cb2">More...</a><br/></td></tr>
<tr class="separator:aa4ed7e144d5b8397cff8656e9c786cb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8deed4a1ec39d0b1ab82d1f0e590a6f5"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a8deed4a1ec39d0b1ab82d1f0e590a6f5">av_clip_uint8_c</a> (int a)</td></tr>
<tr class="memdesc:a8deed4a1ec39d0b1ab82d1f0e590a6f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip a signed integer value into the 0-255 range.  <a href="#a8deed4a1ec39d0b1ab82d1f0e590a6f5">More...</a><br/></td></tr>
<tr class="separator:a8deed4a1ec39d0b1ab82d1f0e590a6f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3091e5b3f2a340c3ddb29f6733fb2a4c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a3091e5b3f2a340c3ddb29f6733fb2a4c">av_clip_int8_c</a> (int a)</td></tr>
<tr class="memdesc:a3091e5b3f2a340c3ddb29f6733fb2a4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip a signed integer value into the -128,127 range.  <a href="#a3091e5b3f2a340c3ddb29f6733fb2a4c">More...</a><br/></td></tr>
<tr class="separator:a3091e5b3f2a340c3ddb29f6733fb2a4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70a9a6b77373c47c48ef93511edaf9ce"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a70a9a6b77373c47c48ef93511edaf9ce">av_clip_uint16_c</a> (int a)</td></tr>
<tr class="memdesc:a70a9a6b77373c47c48ef93511edaf9ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip a signed integer value into the 0-65535 range.  <a href="#a70a9a6b77373c47c48ef93511edaf9ce">More...</a><br/></td></tr>
<tr class="separator:a70a9a6b77373c47c48ef93511edaf9ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae95fa7073f1caa097951161985240f7"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#aae95fa7073f1caa097951161985240f7">av_clip_int16_c</a> (int a)</td></tr>
<tr class="memdesc:aae95fa7073f1caa097951161985240f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip a signed integer value into the -32768,32767 range.  <a href="#aae95fa7073f1caa097951161985240f7">More...</a><br/></td></tr>
<tr class="separator:aae95fa7073f1caa097951161985240f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae245fb123a6e2a664c4806c034421e1e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#ae245fb123a6e2a664c4806c034421e1e">av_clipl_int32_c</a> (int64_t a)</td></tr>
<tr class="memdesc:ae245fb123a6e2a664c4806c034421e1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip a signed 64-bit integer value into the -2147483648,2147483647 range.  <a href="#ae245fb123a6e2a664c4806c034421e1e">More...</a><br/></td></tr>
<tr class="separator:ae245fb123a6e2a664c4806c034421e1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad24148f23ca385e16b14885f52360abe"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#ad24148f23ca385e16b14885f52360abe">av_clip_intp2_c</a> (int a, int p)</td></tr>
<tr class="memdesc:ad24148f23ca385e16b14885f52360abe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip a signed integer into the -(2^p),(2^p-1) range.  <a href="#ad24148f23ca385e16b14885f52360abe">More...</a><br/></td></tr>
<tr class="separator:ad24148f23ca385e16b14885f52360abe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a867dba37c785d27d42b272aa968efda8"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a867dba37c785d27d42b272aa968efda8">av_clip_uintp2_c</a> (int a, int p)</td></tr>
<tr class="memdesc:a867dba37c785d27d42b272aa968efda8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip a signed integer to an unsigned power of two range.  <a href="#a867dba37c785d27d42b272aa968efda8">More...</a><br/></td></tr>
<tr class="separator:a867dba37c785d27d42b272aa968efda8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cb38786757c8f2a468560d9d7a6c59c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a3cb38786757c8f2a468560d9d7a6c59c">av_mod_uintp2_c</a> (unsigned a, unsigned p)</td></tr>
<tr class="memdesc:a3cb38786757c8f2a468560d9d7a6c59c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear high bits from an unsigned integer starting with specific bit position.  <a href="#a3cb38786757c8f2a468560d9d7a6c59c">More...</a><br/></td></tr>
<tr class="separator:a3cb38786757c8f2a468560d9d7a6c59c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ff75b1bf7fd1a261dd2f2919e8d23e1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a2ff75b1bf7fd1a261dd2f2919e8d23e1">av_sat_add32_c</a> (int a, int b)</td></tr>
<tr class="memdesc:a2ff75b1bf7fd1a261dd2f2919e8d23e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add two signed 32-bit values with saturation.  <a href="#a2ff75b1bf7fd1a261dd2f2919e8d23e1">More...</a><br/></td></tr>
<tr class="separator:a2ff75b1bf7fd1a261dd2f2919e8d23e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af235b48678850832493ac21160ff8458"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#af235b48678850832493ac21160ff8458">av_sat_dadd32_c</a> (int a, int b)</td></tr>
<tr class="memdesc:af235b48678850832493ac21160ff8458"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a doubled value to another value with saturation at both stages.  <a href="#af235b48678850832493ac21160ff8458">More...</a><br/></td></tr>
<tr class="separator:af235b48678850832493ac21160ff8458"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d5a6331d8708d4516aeab2413f86392"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a7d5a6331d8708d4516aeab2413f86392">av_clipf_c</a> (float a, float amin, float amax)</td></tr>
<tr class="memdesc:a7d5a6331d8708d4516aeab2413f86392"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip a float value into the amin-amax range.  <a href="#a7d5a6331d8708d4516aeab2413f86392">More...</a><br/></td></tr>
<tr class="separator:a7d5a6331d8708d4516aeab2413f86392"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a257b0d07c767325ee48b5e16e0b97f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a9a257b0d07c767325ee48b5e16e0b97f">av_clipd_c</a> (double a, double amin, double amax)</td></tr>
<tr class="memdesc:a9a257b0d07c767325ee48b5e16e0b97f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip a double value into the amin-amax range.  <a href="#a9a257b0d07c767325ee48b5e16e0b97f">More...</a><br/></td></tr>
<tr class="separator:a9a257b0d07c767325ee48b5e16e0b97f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad94b463be296690fc9c096d55203b42b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#ad94b463be296690fc9c096d55203b42b">av_ceil_log2_c</a> (int x)</td></tr>
<tr class="memdesc:ad94b463be296690fc9c096d55203b42b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute ceil(log2(x)).  <a href="#ad94b463be296690fc9c096d55203b42b">More...</a><br/></td></tr>
<tr class="separator:ad94b463be296690fc9c096d55203b42b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73ced2c040c8e53f58a6073c3f3927b5"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a73ced2c040c8e53f58a6073c3f3927b5">av_popcount_c</a> (uint32_t x)</td></tr>
<tr class="memdesc:a73ced2c040c8e53f58a6073c3f3927b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Count number of bits set to one in x.  <a href="#a73ced2c040c8e53f58a6073c3f3927b5">More...</a><br/></td></tr>
<tr class="separator:a73ced2c040c8e53f58a6073c3f3927b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1016d46d60ca2d27d8ab2af5f0f7c57a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#a1016d46d60ca2d27d8ab2af5f0f7c57a">av_popcount64_c</a> (uint64_t x)</td></tr>
<tr class="memdesc:a1016d46d60ca2d27d8ab2af5f0f7c57a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Count number of bits set to one in x.  <a href="#a1016d46d60ca2d27d8ab2af5f0f7c57a">More...</a><br/></td></tr>
<tr class="separator:a1016d46d60ca2d27d8ab2af5f0f7c57a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed51dfa317ec3988d6bb7734f19d5cba"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <br class="typebreak"/>
<a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8h.html#aed51dfa317ec3988d6bb7734f19d5cba">av_parity_c</a> (uint32_t v)</td></tr>
<tr class="separator:aed51dfa317ec3988d6bb7734f19d5cba"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>common internal and external API header </p>

<p>Definition in file <a class="el" href="common_8h_source.html">common.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a309bdca20f6a78431379fc69442d98ea"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AV_NE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">be, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">le&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(le)</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="demuxing_decoding_8c-example.html#a69">demuxing_decoding.c</a>, and <a class="el" href="resampling_audio_8c-example.html#a7">resampling_audio.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="common_8h_source.html#l00050">50</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

<p>Referenced by <a class="el" href="demuxing__decoding_8c_source.html#l00190">get_format_from_sample_fmt()</a>.</p>

</div>
</div>
<a class="anchor" id="aa79ca71ef110a498d8275cbf7aa75a93"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RSHIFT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((a) &gt; 0 ? ((a) + ((1&lt;&lt;(b))&gt;&gt;1))&gt;&gt;(b) : ((a) + ((1&lt;&lt;(b))&gt;&gt;1)-1)&gt;&gt;(b))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="common_8h_source.html#l00054">54</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7a2a86492a286d6d20678da1dbb00525"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ROUNDED_DIV</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(((a)&gt;0 ? (a) + ((b)&gt;&gt;1) : (a) - ((b)&gt;&gt;1))/(b))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="common_8h_source.html#l00056">56</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5d13452b0fac0d41b08ea2e49ea6eaa5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AV_CEIL_RSHIFT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(!<a class="code" href="attributes_8h.html#a4887afda7f138d25d3f0dd843ca0ac18">av_builtin_constant_p</a>(b) ? -((-(a)) &gt;&gt; (b)) \</div>
<div class="line">                                                       : ((a) + (1&lt;&lt;(b)) - 1) &gt;&gt; (b))</div>
<div class="ttc" id="attributes_8h_html_a4887afda7f138d25d3f0dd843ca0ac18"><div class="ttname"><a href="attributes_8h.html#a4887afda7f138d25d3f0dd843ca0ac18">av_builtin_constant_p</a></div><div class="ttdeci">#define av_builtin_constant_p</div><div class="ttdef"><b>Definition:</b> <a href="attributes_8h_source.html#l00155">attributes.h:155</a></div></div>
</div><!-- fragment -->
<p>Definition at line <a class="el" href="common_8h_source.html#l00058">58</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a33703f1a958afda17362487ed065ee0c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FF_CEIL_RSHIFT&#160;&#160;&#160;<a class="el" href="common_8h.html#a5d13452b0fac0d41b08ea2e49ea6eaa5">AV_CEIL_RSHIFT</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="common_8h_source.html#l00061">61</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5117194af5289224bceaaa5466586d8f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFUDIV</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(((a)&gt;0 ?(a):(a)-(b)+1) / (b))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="common_8h_source.html#l00063">63</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa0241c1e04e45d7be1b388d83ab57f22"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFUMOD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((a)-(b)*<a class="el" href="common_8h.html#a5117194af5289224bceaaa5466586d8f">FFUDIV</a>(a,b))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="common_8h_source.html#l00064">64</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad6d88940cfc29c13a3e51ded211fc242"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFABS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a</td><td>)</td>
          <td>&#160;&#160;&#160;((a) &gt;= 0 ? (a) : (-(a)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they are not representable as absolute values of their type. </p>
<p>This is the same as with *abs() </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="common_8h.html#a4752e34ce9cae031c792b625b0736d97" title="Negative Absolute value. ">FFNABS()</a> </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00072">72</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="af5e4ff7761996bc901e59bd59756268d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFSIGN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a</td><td>)</td>
          <td>&#160;&#160;&#160;((a) &gt; 0 ? 1 : -1)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="common_8h_source.html#l00073">73</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4752e34ce9cae031c792b625b0736d97"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFNABS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a</td><td>)</td>
          <td>&#160;&#160;&#160;((a) &lt;= 0 ? (a) : (-(a)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Negative Absolute value. </p>
<p>this works for all integers of all types. As with many macros, this evaluates its argument twice, it thus must not have a sideeffect, that is FFNABS(x++) has undefined behavior. </p>

<p>Definition at line <a class="el" href="common_8h_source.html#l00081">81</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="add8913a6f8e5714b6174eeaad5751006"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFDIFFSIGN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">y&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(((x)&gt;(y)) - ((x)&lt;(y)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Comparator. </p>
<p>For two numerical expressions x and y, gives 1 if x &gt; y, -1 if x &lt; y, and 0 if x == y. This is useful for instance in a qsort comparator callback. Furthermore, compilers are able to optimize this to branchless code, and there is no risk of overflow with signed types. As with many macros, this evaluates its argument multiple times, it thus must not have a side-effect. </p>

<p>Definition at line <a class="el" href="common_8h_source.html#l00092">92</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9960bd6780a9b16a216a57be1ee04359"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFMAX</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((a) &gt; (b) ? (a) : (b))</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="decoding_encoding_8c-example.html#a6">decoding_encoding.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="common_8h_source.html#l00094">94</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

<p>Referenced by <a class="el" href="decoding__encoding_8c_source.html#l00061">select_sample_rate()</a>.</p>

</div>
</div>
<a class="anchor" id="a013fdaa079045ec5632fe121e211e516"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFMAX3</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="common_8h.html#a9960bd6780a9b16a216a57be1ee04359">FFMAX</a>(<a class="el" href="common_8h.html#a9960bd6780a9b16a216a57be1ee04359">FFMAX</a>(a,b),c)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="common_8h_source.html#l00095">95</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0f84cbd7fd810cd678157c98cbfad4b0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFMIN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((a) &gt; (b) ? (b) : (a))</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="avio_reading_8c-example.html#a4">avio_reading.c</a>, <a class="el" href="demuxing_decoding_8c-example.html#a45">demuxing_decoding.c</a>, and <a class="el" href="transcode_aac_8c-example.html#a86">transcode_aac.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="common_8h_source.html#l00096">96</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

<p>Referenced by <a class="el" href="demuxing__decoding_8c_source.html#l00064">decode_packet()</a>, <a class="el" href="transcode__aac_8c_source.html#l00597">load_encode_and_write()</a>, and <a class="el" href="avio__reading_8c_source.html#l00042">read_packet()</a>.</p>

</div>
</div>
<a class="anchor" id="af6afbffa12562b076c34055bdcb3ad65"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFMIN3</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="common_8h.html#a0f84cbd7fd810cd678157c98cbfad4b0">FFMIN</a>(<a class="el" href="common_8h.html#a0f84cbd7fd810cd678157c98cbfad4b0">FFMIN</a>(a,b),c)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="common_8h_source.html#l00097">97</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a09a0bb7d8fcfac416de7a5fe7fd8b0f1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFSWAP</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="common_8h_source.html#l00099">99</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3508a98d3ee7e2c9a4841fe264cf70f7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FF_ARRAY_ELEMS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a</td><td>)</td>
          <td>&#160;&#160;&#160;(sizeof(a) / sizeof((a)[0]))</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="demuxing_decoding_8c-example.html#a68">demuxing_decoding.c</a>, and <a class="el" href="resampling_audio_8c-example.html#a6">resampling_audio.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="common_8h_source.html#l00100">100</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

<p>Referenced by <a class="el" href="demuxing__decoding_8c_source.html#l00190">get_format_from_sample_fmt()</a>.</p>

</div>
</div>
<a class="anchor" id="a19c68e2b5efcbab914d79db1e4fee734"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MKTAG</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">d&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((a) | ((b) &lt;&lt; 8) | ((c) &lt;&lt; 16) | ((unsigned)(d) &lt;&lt; 24))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="common_8h_source.html#l00342">342</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1e233db224cd0a3079fd4572d1a3d717"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MKBETAG</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">d&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((d) | ((c) &lt;&lt; 8) | ((b) &lt;&lt; 16) | ((unsigned)(a) &lt;&lt; 24))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="common_8h_source.html#l00343">343</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1a2fd8cd42afb00c9f69562f52b1ae4b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_UTF8</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">val, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">GET_BYTE, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ERROR&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">val= (GET_BYTE);\</div>
<div class="line">    {\</div>
<div class="line">        uint32_t top = (val &amp; 128) &gt;&gt; 1;\</div>
<div class="line">        if ((val &amp; 0xc0) == 0x80 || val &gt;= 0xFE)\</div>
<div class="line">            ERROR\</div>
<div class="line">        while (val &amp; top) {\</div>
<div class="line">            int tmp= (GET_BYTE) - 128;\</div>
<div class="line">            if(tmp&gt;&gt;6)\</div>
<div class="line">                ERROR\</div>
<div class="line">            val= (val&lt;&lt;6) + tmp;\</div>
<div class="line">            top &lt;&lt;= 5;\</div>
<div class="line">        }\</div>
<div class="line">        val &amp;= (top &lt;&lt; 1) - 1;\</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p>Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>Output value, must be an lvalue of type uint32_t. </td></tr>
    <tr><td class="paramname">GET_BYTE</td><td>Expression reading one byte from the input. Evaluated up to 7 times (4 for the currently assigned Unicode range). With a memory buffer input, this could be *ptr++. </td></tr>
    <tr><td class="paramname">ERROR</td><td>Expression to be evaluated on invalid input, typically a goto statement.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>ERROR should not contain a loop control statement which could interact with the internal while loop, and should force an exit from the macro code (e.g. through a goto or a return) in order to prevent undefined results. </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00361">361</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2665137b6cc64bb5cf491ba9f9dbd215"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_UTF16</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">val, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">GET_16BIT, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ERROR&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">val = GET_16BIT;\</div>
<div class="line">    {\</div>
<div class="line">        unsigned <span class="keywordtype">int</span> hi = val - 0xD800;\</div>
<div class="line">        if (hi &lt; 0x800) {\</div>
<div class="line">            val = GET_16BIT - 0xDC00;\</div>
<div class="line">            if (val &gt; 0x3FFU || hi &gt; 0x3FFU)\</div>
<div class="line">                ERROR\</div>
<div class="line">            val += (hi&lt;&lt;10) + 0x10000;\</div>
<div class="line">        }\</div>
<div class="line">    }\</div>
</div><!-- fragment -->
<p>Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>Output value, must be an lvalue of type uint32_t. </td></tr>
    <tr><td class="paramname">GET_16BIT</td><td>Expression returning two bytes of UTF-16 data converted to native byte order. Evaluated one or two times. </td></tr>
    <tr><td class="paramname">ERROR</td><td>Expression to be evaluated on invalid input, typically a goto statement. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00386">386</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac6a994fe28410a8d14f70f0992db4f42"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PUT_UTF8</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">val, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">tmp, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">PUT_BYTE&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">{\</div>
<div class="line">        int bytes, shift;\</div>
<div class="line">        uint32_t in = val;\</div>
<div class="line">        if (in &lt; 0x80) {\</div>
<div class="line">            tmp = in;\</div>
<div class="line">            PUT_BYTE\</div>
<div class="line">        } <span class="keywordflow">else</span> {\</div>
<div class="line">            bytes = (<a class="code" href="common_8h.html#a10e72d08c6a66c91cf7218532631684e">av_log2</a>(in) + 4) / 5;\</div>
<div class="line">            shift = (bytes - 1) * 6;\</div>
<div class="line">            tmp = (256 - (256 &gt;&gt; bytes)) | (in &gt;&gt; shift);\</div>
<div class="line">            PUT_BYTE\</div>
<div class="line">            while (shift &gt;= 6) {\</div>
<div class="line">                shift -= 6;\</div>
<div class="line">                tmp = 0x80 | ((in &gt;&gt; shift) &amp; 0x3f);\</div>
<div class="line">                PUT_BYTE\</div>
<div class="line">            }\</div>
<div class="line">        }\</div>
<div class="line">    }</div>
<div class="ttc" id="common_8h_html_a10e72d08c6a66c91cf7218532631684e"><div class="ttname"><a href="common_8h.html#a10e72d08c6a66c91cf7218532631684e">av_log2</a></div><div class="ttdeci">av_const int av_log2(unsigned v)</div></div>
</div><!-- fragment -->
<p>Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>is an input-only argument and should be of type uint32_t. It holds a UCS-4 encoded Unicode character that is to be converted to UTF-8. If val is given as a function it is executed only once. </td></tr>
    <tr><td class="paramname">tmp</td><td>is a temporary variable and should be of type uint8_t. It represents an intermediate value during conversion that is to be output by PUT_BYTE. </td></tr>
    <tr><td class="paramname">PUT_BYTE</td><td>writes the converted UTF-8 bytes to any proper destination. It could be a function or a statement, and uses tmp as the input byte. For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be executed up to 4 times for values in the valid UTF-8 range and up to 7 times in the general case, depending on the length of the converted Unicode character. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00414">414</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6486c4a216b16b4d2615c23d8429cd6b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PUT_UTF16</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">val, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">tmp, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">PUT_16BIT&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">{\</div>
<div class="line">        uint32_t in = val;\</div>
<div class="line">        if (in &lt; 0x10000) {\</div>
<div class="line">            tmp = in;\</div>
<div class="line">            PUT_16BIT\</div>
<div class="line">        } <span class="keywordflow">else</span> {\</div>
<div class="line">            tmp = 0xD800 | ((in - 0x10000) &gt;&gt; 10);\</div>
<div class="line">            PUT_16BIT\</div>
<div class="line">            tmp = 0xDC00 | ((in - 0x10000) &amp; 0x3FF);\</div>
<div class="line">            PUT_16BIT\</div>
<div class="line">        }\</div>
<div class="line">    }\</div>
</div><!-- fragment -->
<p>Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>is an input-only argument and should be of type uint32_t. It holds a UCS-4 encoded Unicode character that is to be converted to UTF-16. If val is given as a function it is executed only once. </td></tr>
    <tr><td class="paramname">tmp</td><td>is a temporary variable and should be of type uint16_t. It represents an intermediate value during conversion that is to be output by PUT_16BIT. </td></tr>
    <tr><td class="paramname">PUT_16BIT</td><td>writes the converted UTF-16 data to any proper destination in desired endianness. It could be a function or a statement, and uses tmp as the input byte. For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be executed 1 or 2 times depending on input character. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00448">448</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a10e72d08c6a66c91cf7218532631684e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_log2 </td>
          <td>(</td>
          <td class="paramtype">unsigned&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="common_8h_source.html#l00308">av_ceil_log2_c()</a>.</p>

</div>
</div>
<a class="anchor" id="a8a1d3f387b1eab65327453f6a8e7e9ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_log2_16bit </td>
          <td>(</td>
          <td class="paramtype">unsigned&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a465f39d69c5a5fe0e070b6ec4d0fed29"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_clip_c </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>amin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>amax</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clip a signed integer value into the amin-amax range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>value to clip </td></tr>
    <tr><td class="paramname">amin</td><td>minimum value of the clip range </td></tr>
    <tr><td class="paramname">amax</td><td>maximum value of the clip range </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>clipped value </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00127">127</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa4ed7e144d5b8397cff8656e9c786cb2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int64_t av_clip64_c </td>
          <td>(</td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>amin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>amax</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clip a signed 64bit integer value into the amin-amax range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>value to clip </td></tr>
    <tr><td class="paramname">amin</td><td>minimum value of the clip range </td></tr>
    <tr><td class="paramname">amax</td><td>maximum value of the clip range </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>clipped value </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00144">144</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8deed4a1ec39d0b1ab82d1f0e590a6f5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> uint8_t av_clip_uint8_c </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clip a signed integer value into the 0-255 range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>value to clip </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>clipped value </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00159">159</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3091e5b3f2a340c3ddb29f6733fb2a4c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int8_t av_clip_int8_c </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clip a signed integer value into the -128,127 range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>value to clip </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>clipped value </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00170">170</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a70a9a6b77373c47c48ef93511edaf9ce"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> uint16_t av_clip_uint16_c </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clip a signed integer value into the 0-65535 range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>value to clip </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>clipped value </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00181">181</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="aae95fa7073f1caa097951161985240f7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int16_t av_clip_int16_c </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clip a signed integer value into the -32768,32767 range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>value to clip </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>clipped value </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00192">192</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae245fb123a6e2a664c4806c034421e1e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int32_t av_clipl_int32_c </td>
          <td>(</td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>a</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clip a signed 64-bit integer value into the -2147483648,2147483647 range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>value to clip </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>clipped value </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00203">203</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad24148f23ca385e16b14885f52360abe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_clip_intp2_c </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clip a signed integer into the -(2^p),(2^p-1) range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>value to clip </td></tr>
    <tr><td class="paramname">p</td><td>bit position to clip at </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>clipped value </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00215">215</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a867dba37c785d27d42b272aa968efda8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> unsigned av_clip_uintp2_c </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clip a signed integer to an unsigned power of two range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>value to clip </td></tr>
    <tr><td class="paramname">p</td><td>bit position to clip at </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>clipped value </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00229">229</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3cb38786757c8f2a468560d9d7a6c59c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> unsigned av_mod_uintp2_c </td>
          <td>(</td>
          <td class="paramtype">unsigned&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clear high bits from an unsigned integer starting with specific bit position. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>value to clip </td></tr>
    <tr><td class="paramname">p</td><td>bit position to clip at </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>clipped value </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00241">241</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2ff75b1bf7fd1a261dd2f2919e8d23e1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> int av_sat_add32_c </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add two signed 32-bit values with saturation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>one value </td></tr>
    <tr><td class="paramname">b</td><td>another value </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>sum with signed saturation </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00253">253</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="af235b48678850832493ac21160ff8458"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> int av_sat_dadd32_c </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a doubled value to another value with saturation at both stages. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>first value </td></tr>
    <tr><td class="paramname">b</td><td>value doubled and added to a </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>sum with signed saturation </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00265">265</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7d5a6331d8708d4516aeab2413f86392"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> float av_clipf_c </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>amin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>amax</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clip a float value into the amin-amax range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>value to clip </td></tr>
    <tr><td class="paramname">amin</td><td>minimum value of the clip range </td></tr>
    <tr><td class="paramname">amax</td><td>maximum value of the clip range </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>clipped value </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00277">277</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9a257b0d07c767325ee48b5e16e0b97f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> double av_clipd_c </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>amin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>amax</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clip a double value into the amin-amax range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>value to clip </td></tr>
    <tr><td class="paramname">amin</td><td>minimum value of the clip range </td></tr>
    <tr><td class="paramname">amax</td><td>maximum value of the clip range </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>clipped value </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00294">294</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad94b463be296690fc9c096d55203b42b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_ceil_log2_c </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute ceil(log2(x)). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>value used to compute ceil(log2(x)) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>computed ceiling of log2(x) </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00308">308</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a73ced2c040c8e53f58a6073c3f3927b5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_popcount_c </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Count number of bits set to one in x. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>value to count bits of </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of bits set to one in x </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00318">318</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1016d46d60ca2d27d8ab2af5f0f7c57a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_popcount64_c </td>
          <td>(</td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Count number of bits set to one in x. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>value to count bits of </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of bits set to one in x </dd></dl>

<p>Definition at line <a class="el" href="common_8h_source.html#l00332">332</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
<a class="anchor" id="aed51dfa317ec3988d6bb7734f19d5cba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_parity_c </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="common_8h_source.html#l00337">337</a> of file <a class="el" href="common_8h_source.html">common.h</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>