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 / group__lavu__math.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: Maths</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><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><!-- top -->
<!-- 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 class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Maths<div class="ingroups"><a class="el" href="group__lavu.html">Common utility functions</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structAVRational.html">AVRational</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">rational number numerator/denominator  <a href="structAVRational.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga921d656eaf2c4d6800a734a13af021d0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga921d656eaf2c4d6800a734a13af021d0">AVRounding</a> { <br/>
&#160;&#160;<a class="el" href="group__lavu__math.html#gga921d656eaf2c4d6800a734a13af021d0a35e291756025351803b97f7522b56eab">AV_ROUND_ZERO</a> = 0, 
<a class="el" href="group__lavu__math.html#gga921d656eaf2c4d6800a734a13af021d0a0ac08aede35de739ec5d0c1ba6217126">AV_ROUND_INF</a> = 1, 
<a class="el" href="group__lavu__math.html#gga921d656eaf2c4d6800a734a13af021d0a4a4b2c2c77b7e20884440f7e57cfdb98">AV_ROUND_DOWN</a> = 2, 
<a class="el" href="group__lavu__math.html#gga921d656eaf2c4d6800a734a13af021d0aa1d28e08e2f8b49b256e056f93038c1a">AV_ROUND_UP</a> = 3, 
<br/>
&#160;&#160;<a class="el" href="group__lavu__math.html#gga921d656eaf2c4d6800a734a13af021d0aea95b00154ff83c740b46376dfa06e11">AV_ROUND_NEAR_INF</a> = 5, 
<a class="el" href="group__lavu__math.html#gga921d656eaf2c4d6800a734a13af021d0a7fcb56631d6898b282d6c78ce6c14a43">AV_ROUND_PASS_MINMAX</a> = 8192
<br/>
 }</td></tr>
<tr class="separator:ga921d656eaf2c4d6800a734a13af021d0"><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:ga952147c7a40c48a05c39e918b153ba99"><td class="memItemLeft" align="right" valign="top">int64_t <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga952147c7a40c48a05c39e918b153ba99">av_gcd</a> (int64_t a, int64_t b)</td></tr>
<tr class="memdesc:ga952147c7a40c48a05c39e918b153ba99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the greatest common divisor of a and b.  <a href="#ga952147c7a40c48a05c39e918b153ba99">More...</a><br/></td></tr>
<tr class="separator:ga952147c7a40c48a05c39e918b153ba99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3daf97178dd1b08b5e916be381cd33e4"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga3daf97178dd1b08b5e916be381cd33e4">av_rescale</a> (int64_t a, int64_t b, int64_t c) <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a></td></tr>
<tr class="memdesc:ga3daf97178dd1b08b5e916be381cd33e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rescale a 64-bit integer with rounding to nearest.  <a href="#ga3daf97178dd1b08b5e916be381cd33e4">More...</a><br/></td></tr>
<tr class="separator:ga3daf97178dd1b08b5e916be381cd33e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad686ab94939ed4c65218309e94bdca72"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#gad686ab94939ed4c65218309e94bdca72">av_rescale_rnd</a> (int64_t a, int64_t b, int64_t c, enum <a class="el" href="group__lavu__math.html#ga921d656eaf2c4d6800a734a13af021d0">AVRounding</a>) <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a></td></tr>
<tr class="memdesc:gad686ab94939ed4c65218309e94bdca72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rescale a 64-bit integer with specified rounding.  <a href="#gad686ab94939ed4c65218309e94bdca72">More...</a><br/></td></tr>
<tr class="separator:gad686ab94939ed4c65218309e94bdca72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf02994a8bbeaa91d4757df179cbe567f"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#gaf02994a8bbeaa91d4757df179cbe567f">av_rescale_q</a> (int64_t a, <a class="el" href="structAVRational.html">AVRational</a> bq, <a class="el" href="structAVRational.html">AVRational</a> cq) <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a></td></tr>
<tr class="memdesc:gaf02994a8bbeaa91d4757df179cbe567f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rescale a 64-bit integer by 2 rational numbers.  <a href="#gaf02994a8bbeaa91d4757df179cbe567f">More...</a><br/></td></tr>
<tr class="separator:gaf02994a8bbeaa91d4757df179cbe567f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac167a841d10ac919407e77ae35391cf3"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#gac167a841d10ac919407e77ae35391cf3">av_rescale_q_rnd</a> (int64_t a, <a class="el" href="structAVRational.html">AVRational</a> bq, <a class="el" href="structAVRational.html">AVRational</a> cq, enum <a class="el" href="group__lavu__math.html#ga921d656eaf2c4d6800a734a13af021d0">AVRounding</a>) <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a></td></tr>
<tr class="memdesc:gac167a841d10ac919407e77ae35391cf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rescale a 64-bit integer by 2 rational numbers with specified rounding.  <a href="#gac167a841d10ac919407e77ae35391cf3">More...</a><br/></td></tr>
<tr class="separator:gac167a841d10ac919407e77ae35391cf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga151744358fff630942b926e67e67c415"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga151744358fff630942b926e67e67c415">av_compare_ts</a> (int64_t ts_a, <a class="el" href="structAVRational.html">AVRational</a> tb_a, int64_t ts_b, <a class="el" href="structAVRational.html">AVRational</a> tb_b)</td></tr>
<tr class="memdesc:ga151744358fff630942b926e67e67c415"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare 2 timestamps each in its own timebases.  <a href="#ga151744358fff630942b926e67e67c415">More...</a><br/></td></tr>
<tr class="separator:ga151744358fff630942b926e67e67c415"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf268a1dde957d04da846e026e2ebe6e8"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#gaf268a1dde957d04da846e026e2ebe6e8">av_compare_mod</a> (uint64_t a, uint64_t b, uint64_t mod)</td></tr>
<tr class="memdesc:gaf268a1dde957d04da846e026e2ebe6e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare 2 integers modulo mod.  <a href="#gaf268a1dde957d04da846e026e2ebe6e8">More...</a><br/></td></tr>
<tr class="separator:gaf268a1dde957d04da846e026e2ebe6e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29b7c3d60d68ef678ee1f4adc61a25dc"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga29b7c3d60d68ef678ee1f4adc61a25dc">av_rescale_delta</a> (<a class="el" href="structAVRational.html">AVRational</a> in_tb, int64_t in_ts, <a class="el" href="structAVRational.html">AVRational</a> fs_tb, int duration, int64_t *last, <a class="el" href="structAVRational.html">AVRational</a> out_tb)</td></tr>
<tr class="memdesc:ga29b7c3d60d68ef678ee1f4adc61a25dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rescale a timestamp while preserving known durations.  <a href="#ga29b7c3d60d68ef678ee1f4adc61a25dc">More...</a><br/></td></tr>
<tr class="separator:ga29b7c3d60d68ef678ee1f4adc61a25dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0c4f9ed3f4102125be7451ad4d848a2f"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga0c4f9ed3f4102125be7451ad4d848a2f">av_add_stable</a> (<a class="el" href="structAVRational.html">AVRational</a> ts_tb, int64_t ts, <a class="el" href="structAVRational.html">AVRational</a> inc_tb, int64_t inc)</td></tr>
<tr class="memdesc:ga0c4f9ed3f4102125be7451ad4d848a2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a value to a timestamp.  <a href="#ga0c4f9ed3f4102125be7451ad4d848a2f">More...</a><br/></td></tr>
<tr class="separator:ga0c4f9ed3f4102125be7451ad4d848a2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7778b1d209ceb3e4bf34e40150d3b882"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structAVRational.html">AVRational</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga7778b1d209ceb3e4bf34e40150d3b882">av_make_q</a> (int num, int den)</td></tr>
<tr class="memdesc:ga7778b1d209ceb3e4bf34e40150d3b882"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a rational.  <a href="#ga7778b1d209ceb3e4bf34e40150d3b882">More...</a><br/></td></tr>
<tr class="separator:ga7778b1d209ceb3e4bf34e40150d3b882"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa440bf42ede128219a571ae4ce0f90b8"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#gaa440bf42ede128219a571ae4ce0f90b8">av_cmp_q</a> (<a class="el" href="structAVRational.html">AVRational</a> a, <a class="el" href="structAVRational.html">AVRational</a> b)</td></tr>
<tr class="memdesc:gaa440bf42ede128219a571ae4ce0f90b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare two rationals.  <a href="#gaa440bf42ede128219a571ae4ce0f90b8">More...</a><br/></td></tr>
<tr class="separator:gaa440bf42ede128219a571ae4ce0f90b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga935dbbf6bde8dfe5fa7ddb1da582eb07"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga935dbbf6bde8dfe5fa7ddb1da582eb07">av_q2d</a> (<a class="el" href="structAVRational.html">AVRational</a> a)</td></tr>
<tr class="memdesc:ga935dbbf6bde8dfe5fa7ddb1da582eb07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert rational to double.  <a href="#ga935dbbf6bde8dfe5fa7ddb1da582eb07">More...</a><br/></td></tr>
<tr class="separator:ga935dbbf6bde8dfe5fa7ddb1da582eb07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4fd9c0b8e663cf3d55e89fbc6ce71602"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga4fd9c0b8e663cf3d55e89fbc6ce71602">av_reduce</a> (int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max)</td></tr>
<tr class="memdesc:ga4fd9c0b8e663cf3d55e89fbc6ce71602"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reduce a fraction.  <a href="#ga4fd9c0b8e663cf3d55e89fbc6ce71602">More...</a><br/></td></tr>
<tr class="separator:ga4fd9c0b8e663cf3d55e89fbc6ce71602"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f9c69432582e2857147bcba3c75dc32"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga3f9c69432582e2857147bcba3c75dc32">av_mul_q</a> (<a class="el" href="structAVRational.html">AVRational</a> b, <a class="el" href="structAVRational.html">AVRational</a> c) <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a></td></tr>
<tr class="memdesc:ga3f9c69432582e2857147bcba3c75dc32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply two rationals.  <a href="#ga3f9c69432582e2857147bcba3c75dc32">More...</a><br/></td></tr>
<tr class="separator:ga3f9c69432582e2857147bcba3c75dc32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaffa24e7bd38e12dbac540d8b66461f97"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#gaffa24e7bd38e12dbac540d8b66461f97">av_div_q</a> (<a class="el" href="structAVRational.html">AVRational</a> b, <a class="el" href="structAVRational.html">AVRational</a> c) <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a></td></tr>
<tr class="memdesc:gaffa24e7bd38e12dbac540d8b66461f97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Divide one rational by another.  <a href="#gaffa24e7bd38e12dbac540d8b66461f97">More...</a><br/></td></tr>
<tr class="separator:gaffa24e7bd38e12dbac540d8b66461f97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2eb3a275aabacd8421f140a12bab4a91"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga2eb3a275aabacd8421f140a12bab4a91">av_add_q</a> (<a class="el" href="structAVRational.html">AVRational</a> b, <a class="el" href="structAVRational.html">AVRational</a> c) <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a></td></tr>
<tr class="memdesc:ga2eb3a275aabacd8421f140a12bab4a91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add two rationals.  <a href="#ga2eb3a275aabacd8421f140a12bab4a91">More...</a><br/></td></tr>
<tr class="separator:ga2eb3a275aabacd8421f140a12bab4a91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac66c6198ce5e8a8caf88dfc20782fa59"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#gac66c6198ce5e8a8caf88dfc20782fa59">av_sub_q</a> (<a class="el" href="structAVRational.html">AVRational</a> b, <a class="el" href="structAVRational.html">AVRational</a> c) <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a></td></tr>
<tr class="memdesc:gac66c6198ce5e8a8caf88dfc20782fa59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract one rational from another.  <a href="#gac66c6198ce5e8a8caf88dfc20782fa59">More...</a><br/></td></tr>
<tr class="separator:gac66c6198ce5e8a8caf88dfc20782fa59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab646f0a7cc30af543ba4a91b37f9de6e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a28f50f4c125959216885f01d56dbe866">av_always_inline</a> <a class="el" href="structAVRational.html">AVRational</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#gab646f0a7cc30af543ba4a91b37f9de6e">av_inv_q</a> (<a class="el" href="structAVRational.html">AVRational</a> q)</td></tr>
<tr class="memdesc:gab646f0a7cc30af543ba4a91b37f9de6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invert a rational.  <a href="#gab646f0a7cc30af543ba4a91b37f9de6e">More...</a><br/></td></tr>
<tr class="separator:gab646f0a7cc30af543ba4a91b37f9de6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7dfd5ba1eb1edf5845ac32b338de9e76"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga7dfd5ba1eb1edf5845ac32b338de9e76">av_d2q</a> (double d, int max) <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a></td></tr>
<tr class="memdesc:ga7dfd5ba1eb1edf5845ac32b338de9e76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a double precision floating point number to a rational.  <a href="#ga7dfd5ba1eb1edf5845ac32b338de9e76">More...</a><br/></td></tr>
<tr class="separator:ga7dfd5ba1eb1edf5845ac32b338de9e76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga111810c563749cd3081aaa19004f44df"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga111810c563749cd3081aaa19004f44df">av_nearer_q</a> (<a class="el" href="structAVRational.html">AVRational</a> q, <a class="el" href="structAVRational.html">AVRational</a> q1, <a class="el" href="structAVRational.html">AVRational</a> q2)</td></tr>
<tr class="separator:ga111810c563749cd3081aaa19004f44df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga63d5ef1c2f77a5fdccb2b3a1c8cc77f5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga63d5ef1c2f77a5fdccb2b3a1c8cc77f5">av_find_nearest_q_idx</a> (<a class="el" href="structAVRational.html">AVRational</a> q, const <a class="el" href="structAVRational.html">AVRational</a> *q_list)</td></tr>
<tr class="memdesc:ga63d5ef1c2f77a5fdccb2b3a1c8cc77f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the nearest value in q_list to q.  <a href="#ga63d5ef1c2f77a5fdccb2b3a1c8cc77f5">More...</a><br/></td></tr>
<tr class="separator:ga63d5ef1c2f77a5fdccb2b3a1c8cc77f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafbcd96878344ade957d5bccc6bc705b2"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#gafbcd96878344ade957d5bccc6bc705b2">av_q2intfloat</a> (<a class="el" href="structAVRational.html">AVRational</a> q)</td></tr>
<tr class="memdesc:gafbcd96878344ade957d5bccc6bc705b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a <a class="el" href="structAVRational.html" title="rational number numerator/denominator ">AVRational</a> to a IEEE 32bit float.  <a href="#gafbcd96878344ade957d5bccc6bc705b2">More...</a><br/></td></tr>
<tr class="separator:gafbcd96878344ade957d5bccc6bc705b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga921d656eaf2c4d6800a734a13af021d0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__lavu__math.html#ga921d656eaf2c4d6800a734a13af021d0">AVRounding</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga921d656eaf2c4d6800a734a13af021d0a35e291756025351803b97f7522b56eab"></a>AV_ROUND_ZERO</em>&#160;</td><td class="fielddoc">
<p>Round toward zero. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga921d656eaf2c4d6800a734a13af021d0a0ac08aede35de739ec5d0c1ba6217126"></a>AV_ROUND_INF</em>&#160;</td><td class="fielddoc">
<p>Round away from zero. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga921d656eaf2c4d6800a734a13af021d0a4a4b2c2c77b7e20884440f7e57cfdb98"></a>AV_ROUND_DOWN</em>&#160;</td><td class="fielddoc">
<p>Round toward -infinity. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga921d656eaf2c4d6800a734a13af021d0aa1d28e08e2f8b49b256e056f93038c1a"></a>AV_ROUND_UP</em>&#160;</td><td class="fielddoc">
<p>Round toward +infinity. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga921d656eaf2c4d6800a734a13af021d0aea95b00154ff83c740b46376dfa06e11"></a>AV_ROUND_NEAR_INF</em>&#160;</td><td class="fielddoc">
<p>Round to nearest and halfway cases away from zero. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga921d656eaf2c4d6800a734a13af021d0a7fcb56631d6898b282d6c78ce6c14a43"></a>AV_ROUND_PASS_MINMAX</em>&#160;</td><td class="fielddoc">
<p>Flag to pass INT64_MIN/MAX through instead of rescaling, this avoids special cases for AV_NOPTS_VALUE. </p>
</td></tr>
</table>

<p>Definition at line <a class="el" href="mathematics_8h_source.html#l00070">70</a> of file <a class="el" href="mathematics_8h_source.html">mathematics.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga952147c7a40c48a05c39e918b153ba99"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> av_gcd </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>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compute the greatest common divisor of a and b. </p>
<dl class="section return"><dt>Returns</dt><dd>gcd of a and b up to sign; if a &gt;= 0 and b &gt;= 0, return value is &gt;= 0; if a == 0 and b == 0, returns 0. </dd></dl>

</div>
</div>
<a class="anchor" id="ga3daf97178dd1b08b5e916be381cd33e4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t av_rescale </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>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Rescale a 64-bit integer with rounding to nearest. </p>
<p>A simple a*b/c isn't possible as it can overflow. </p>

</div>
</div>
<a class="anchor" id="gad686ab94939ed4c65218309e94bdca72"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t av_rescale_rnd </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>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum&#160;</td>
          <td class="paramname"><em>AVRounding</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Rescale a 64-bit integer with specified rounding. </p>
<p>A simple a*b/c isn't possible as it can overflow.</p>
<dl class="section return"><dt>Returns</dt><dd>rescaled value a, or if AV_ROUND_PASS_MINMAX is set and a is INT64_MIN or INT64_MAX then a is passed through unchanged. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="muxing_8c-example.html#a97">muxing.c</a>, and <a class="el" href="resampling_audio_8c-example.html#a21">resampling_audio.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="resampling__audio_8c_source.html#l00081">main()</a>, and <a class="el" href="muxing_8c_source.html#l00296">write_audio_frame()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf02994a8bbeaa91d4757df179cbe567f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t av_rescale_q </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"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>bq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>cq</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Rescale a 64-bit integer by 2 rational numbers. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="filtering_video_8c-example.html#a57">filtering_video.c</a>, <a class="el" href="muxing_8c-example.html#a103">muxing.c</a>, and <a class="el" href="remuxing_8c-example.html#a43">remuxing.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="filtering__video_8c_source.html#l00174">display_frame()</a>, <a class="el" href="remuxing_8c_source.html#l00046">main()</a>, and <a class="el" href="muxing_8c_source.html#l00296">write_audio_frame()</a>.</p>

</div>
</div>
<a class="anchor" id="gac167a841d10ac919407e77ae35391cf3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t av_rescale_q_rnd </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"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>bq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>cq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum&#160;</td>
          <td class="paramname"><em>AVRounding</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Rescale a 64-bit integer by 2 rational numbers with specified rounding. </p>
<dl class="section return"><dt>Returns</dt><dd>rescaled value a, or if AV_ROUND_PASS_MINMAX is set and a is INT64_MIN or INT64_MAX then a is passed through unchanged. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="remuxing_8c-example.html#a40">remuxing.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="remuxing_8c_source.html#l00046">main()</a>.</p>

</div>
</div>
<a class="anchor" id="ga151744358fff630942b926e67e67c415"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int av_compare_ts </td>
          <td>(</td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>ts_a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>tb_a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>ts_b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>tb_b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compare 2 timestamps each in its own timebases. </p>
<p>The result of the function is undefined if one of the timestamps is outside the int64_t range when represented in the others timebase. </p>
<dl class="section return"><dt>Returns</dt><dd>-1 if ts_a is before ts_b, 1 if ts_a is after ts_b or 0 if they represent the same position </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="muxing_8c-example.html#a92">muxing.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="muxing_8c_source.html#l00267">get_audio_frame()</a>, <a class="el" href="muxing_8c_source.html#l00449">get_video_frame()</a>, and <a class="el" href="muxing_8c_source.html#l00537">main()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf268a1dde957d04da846e026e2ebe6e8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t av_compare_mod </td>
          <td>(</td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>mod</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compare 2 integers modulo mod. </p>
<p>That is we compare integers a and b for which only the least significant log2(mod) bits are known.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mod</td><td>must be a power of 2 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a negative value if a is smaller than b a positive value if a is greater than b 0 if a equals b </dd></dl>

</div>
</div>
<a class="anchor" id="ga29b7c3d60d68ef678ee1f4adc61a25dc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t av_rescale_delta </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>in_tb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>in_ts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>fs_tb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>duration</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t *&#160;</td>
          <td class="paramname"><em>last</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>out_tb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Rescale a timestamp while preserving known durations. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in_ts</td><td>Input timestamp </td></tr>
    <tr><td class="paramname">in_tb</td><td>Input timebase </td></tr>
    <tr><td class="paramname">fs_tb</td><td>Duration and *last timebase </td></tr>
    <tr><td class="paramname">duration</td><td>duration till the next call </td></tr>
    <tr><td class="paramname">out_tb</td><td>Output timebase </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga0c4f9ed3f4102125be7451ad4d848a2f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t av_add_stable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>ts_tb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>ts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>inc_tb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>inc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a value to a timestamp. </p>
<p>This function guarantees that when the same value is repeatly added that no accumulation of rounding errors occurs.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ts</td><td>Input timestamp </td></tr>
    <tr><td class="paramname">ts_tb</td><td>Input timestamp timebase </td></tr>
    <tr><td class="paramname">inc</td><td>value to add to ts </td></tr>
    <tr><td class="paramname">inc_tb</td><td>inc timebase </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga7778b1d209ceb3e4bf34e40150d3b882"></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="structAVRational.html">AVRational</a> av_make_q </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>den</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">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a rational. </p>
<p>Useful for compilers that do not support compound literals. </p>
<dl class="section note"><dt>Note</dt><dd>The return value is not reduced. </dd></dl>

<p>Definition at line <a class="el" href="rational_8h_source.html#l00053">53</a> of file <a class="el" href="rational_8h_source.html">rational.h</a>.</p>

</div>
</div>
<a class="anchor" id="gaa440bf42ede128219a571ae4ce0f90b8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int av_cmp_q </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#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">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compare two rationals. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>first rational </td></tr>
    <tr><td class="paramname">b</td><td>second rational </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if a==b, 1 if a&gt;b, -1 if a&lt;b, and INT_MIN if one of the values is of the form 0/0 </dd></dl>

<p>Definition at line <a class="el" href="rational_8h_source.html#l00066">66</a> of file <a class="el" href="rational_8h_source.html">rational.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga935dbbf6bde8dfe5fa7ddb1da582eb07"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static double av_q2d </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#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">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert rational to double. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>rational to convert </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>(double) a </dd></dl>

<p>Definition at line <a class="el" href="rational_8h_source.html#l00080">80</a> of file <a class="el" href="rational_8h_source.html">rational.h</a>.</p>

<p>Referenced by <a class="el" href="timestamp_8h_source.html#l00065">av_ts_make_time_string()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4fd9c0b8e663cf3d55e89fbc6ce71602"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int av_reduce </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>dst_num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>dst_den</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>den</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reduce a fraction. </p>
<p>This is useful for framerate calculations. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dst_num</td><td>destination numerator </td></tr>
    <tr><td class="paramname">dst_den</td><td>destination denominator </td></tr>
    <tr><td class="paramname">num</td><td>source numerator </td></tr>
    <tr><td class="paramname">den</td><td>source denominator </td></tr>
    <tr><td class="paramname">max</td><td>the maximum allowed for dst_num &amp; dst_den </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if exact, 0 otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="ga3f9c69432582e2857147bcba3c75dc32"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structAVRational.html">AVRational</a> av_mul_q </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Multiply two rationals. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">b</td><td>first rational </td></tr>
    <tr><td class="paramname">c</td><td>second rational </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>b*c </dd></dl>

</div>
</div>
<a class="anchor" id="gaffa24e7bd38e12dbac540d8b66461f97"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structAVRational.html">AVRational</a> av_div_q </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Divide one rational by another. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">b</td><td>first rational </td></tr>
    <tr><td class="paramname">c</td><td>second rational </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>b/c </dd></dl>

</div>
</div>
<a class="anchor" id="ga2eb3a275aabacd8421f140a12bab4a91"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structAVRational.html">AVRational</a> av_add_q </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add two rationals. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">b</td><td>first rational </td></tr>
    <tr><td class="paramname">c</td><td>second rational </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>b+c </dd></dl>

</div>
</div>
<a class="anchor" id="gac66c6198ce5e8a8caf88dfc20782fa59"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structAVRational.html">AVRational</a> av_sub_q </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Subtract one rational from another. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">b</td><td>first rational </td></tr>
    <tr><td class="paramname">c</td><td>second rational </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>b-c </dd></dl>

</div>
</div>
<a class="anchor" id="gab646f0a7cc30af543ba4a91b37f9de6e"></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="structAVRational.html">AVRational</a> av_inv_q </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>q</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>Invert a rational. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">q</td><td>value </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 / q </dd></dl>

<p>Definition at line <a class="el" href="rational_8h_source.html#l00133">133</a> of file <a class="el" href="rational_8h_source.html">rational.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga7dfd5ba1eb1edf5845ac32b338de9e76"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structAVRational.html">AVRational</a> av_d2q </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert a double precision floating point number to a rational. </p>
<p>inf is expressed as {1,0} or {-1,0} depending on the sign.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">d</td><td>double to convert </td></tr>
    <tr><td class="paramname">max</td><td>the maximum allowed numerator and denominator </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>(<a class="el" href="structAVRational.html" title="rational number numerator/denominator ">AVRational</a>) d </dd></dl>

</div>
</div>
<a class="anchor" id="ga111810c563749cd3081aaa19004f44df"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int av_nearer_q </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>q1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>q2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>1 if q1 is nearer to q than q2, -1 if q2 is nearer than q1, 0 if they have the same distance. </dd></dl>

</div>
</div>
<a class="anchor" id="ga63d5ef1c2f77a5fdccb2b3a1c8cc77f5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int av_find_nearest_q_idx </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structAVRational.html">AVRational</a> *&#160;</td>
          <td class="paramname"><em>q_list</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find the nearest value in q_list to q. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">q_list</td><td>an array of rationals terminated by {0, 0} </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the index of the nearest value found in the array </dd></dl>

</div>
</div>
<a class="anchor" id="gafbcd96878344ade957d5bccc6bc705b2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t av_q2intfloat </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a>&#160;</td>
          <td class="paramname"><em>q</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Converts a <a class="el" href="structAVRational.html" title="rational number numerator/denominator ">AVRational</a> to a IEEE 32bit float. </p>
<p>The float is returned in a uint32_t and its value is platform indepenant. </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>