Repository URL to install this package:
Version:
7:2.7.1-1ubuntu3 ▾
|
<!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"/>
<title>FFmpeg: Maths</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">FFmpeg
 <span id="projectnumber">2.7.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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 Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data 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>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> |
<a href="#enum-members">Enumerations</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Maths</div> </div>
<div class="ingroups"><a class="el" href="group__lavu.html">Common utility functions</a></div></div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structAVRational.html">AVRational</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">rational number numerator/denominator <a href="structAVRational.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__math.html#ga921d656eaf2c4d6800a734a13af021d0">AVRounding</a> { <br/>
  <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/>
  <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><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> </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><td class="mdescLeft"> </td><td class="mdescRight">Return the greatest common divisor of a and b. <a href="#ga952147c7a40c48a05c39e918b153ba99"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t </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><td class="mdescLeft"> </td><td class="mdescRight">Rescale a 64-bit integer with rounding to nearest. <a href="#ga3daf97178dd1b08b5e916be381cd33e4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t </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><td class="mdescLeft"> </td><td class="mdescRight">Rescale a 64-bit integer with specified rounding. <a href="#gad686ab94939ed4c65218309e94bdca72"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t </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><td class="mdescLeft"> </td><td class="mdescRight">Rescale a 64-bit integer by 2 rational numbers. <a href="#gaf02994a8bbeaa91d4757df179cbe567f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t </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><td class="mdescLeft"> </td><td class="mdescRight">Rescale a 64-bit integer by 2 rational numbers with specified rounding. <a href="#gac167a841d10ac919407e77ae35391cf3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </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><td class="mdescLeft"> </td><td class="mdescRight">Compare 2 timestamps each in its own timebases. <a href="#ga151744358fff630942b926e67e67c415"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t </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><td class="mdescLeft"> </td><td class="mdescRight">Compare 2 integers modulo mod. <a href="#gaf268a1dde957d04da846e026e2ebe6e8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t </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><td class="mdescLeft"> </td><td class="mdescRight">Rescale a timestamp while preserving known durations. <a href="#ga29b7c3d60d68ef678ee1f4adc61a25dc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t </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><td class="mdescLeft"> </td><td class="mdescRight">Add a value to a timestamp. <a href="#ga0c4f9ed3f4102125be7451ad4d848a2f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structAVRational.html">AVRational</a> </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><td class="mdescLeft"> </td><td class="mdescRight">Create a rational. <a href="#ga7778b1d209ceb3e4bf34e40150d3b882"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int </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><td class="mdescLeft"> </td><td class="mdescRight">Compare two rationals. <a href="#gaa440bf42ede128219a571ae4ce0f90b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static double </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><td class="mdescLeft"> </td><td class="mdescRight">Convert rational to double. <a href="#ga935dbbf6bde8dfe5fa7ddb1da582eb07"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </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><td class="mdescLeft"> </td><td class="mdescRight">Reduce a fraction. <a href="#ga4fd9c0b8e663cf3d55e89fbc6ce71602"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVRational.html">AVRational</a> </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><td class="mdescLeft"> </td><td class="mdescRight">Multiply two rationals. <a href="#ga3f9c69432582e2857147bcba3c75dc32"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVRational.html">AVRational</a> </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><td class="mdescLeft"> </td><td class="mdescRight">Divide one rational by another. <a href="#gaffa24e7bd38e12dbac540d8b66461f97"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVRational.html">AVRational</a> </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><td class="mdescLeft"> </td><td class="mdescRight">Add two rationals. <a href="#ga2eb3a275aabacd8421f140a12bab4a91"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVRational.html">AVRational</a> </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><td class="mdescLeft"> </td><td class="mdescRight">Subtract one rational from another. <a href="#gac66c6198ce5e8a8caf88dfc20782fa59"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static av_always_inline <a class="el" href="structAVRational.html">AVRational</a> </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><td class="mdescLeft"> </td><td class="mdescRight">Invert a rational. <a href="#gab646f0a7cc30af543ba4a91b37f9de6e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVRational.html">AVRational</a> </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><td class="mdescLeft"> </td><td class="mdescRight">Convert a double precision floating point number to a rational. <a href="#ga7dfd5ba1eb1edf5845ac32b338de9e76"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </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><td class="memItemLeft" align="right" valign="top">int </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><td class="mdescLeft"> </td><td class="mdescRight">Find the nearest value in q_list to q. <a href="#ga63d5ef1c2f77a5fdccb2b3a1c8cc77f5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t </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><td class="mdescLeft"> </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"></a><br/></td></tr>
</table>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga921d656eaf2c4d6800a734a13af021d0"></a><!-- doxytag: member="mathematics.h::AVRounding" ref="ga921d656eaf2c4d6800a734a13af021d0" args="" -->
<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">
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga921d656eaf2c4d6800a734a13af021d0a35e291756025351803b97f7522b56eab"></a><!-- doxytag: member="AV_ROUND_ZERO" ref="gga921d656eaf2c4d6800a734a13af021d0a35e291756025351803b97f7522b56eab" args="" -->AV_ROUND_ZERO</em> </td><td>
<p>Round toward zero. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga921d656eaf2c4d6800a734a13af021d0a0ac08aede35de739ec5d0c1ba6217126"></a><!-- doxytag: member="AV_ROUND_INF" ref="gga921d656eaf2c4d6800a734a13af021d0a0ac08aede35de739ec5d0c1ba6217126" args="" -->AV_ROUND_INF</em> </td><td>
<p>Round away from zero. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga921d656eaf2c4d6800a734a13af021d0a4a4b2c2c77b7e20884440f7e57cfdb98"></a><!-- doxytag: member="AV_ROUND_DOWN" ref="gga921d656eaf2c4d6800a734a13af021d0a4a4b2c2c77b7e20884440f7e57cfdb98" args="" -->AV_ROUND_DOWN</em> </td><td>
<p>Round toward -infinity. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga921d656eaf2c4d6800a734a13af021d0aa1d28e08e2f8b49b256e056f93038c1a"></a><!-- doxytag: member="AV_ROUND_UP" ref="gga921d656eaf2c4d6800a734a13af021d0aa1d28e08e2f8b49b256e056f93038c1a" args="" -->AV_ROUND_UP</em> </td><td>
<p>Round toward +infinity. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga921d656eaf2c4d6800a734a13af021d0aea95b00154ff83c740b46376dfa06e11"></a><!-- doxytag: member="AV_ROUND_NEAR_INF" ref="gga921d656eaf2c4d6800a734a13af021d0aea95b00154ff83c740b46376dfa06e11" args="" -->AV_ROUND_NEAR_INF</em> </td><td>
<p>Round to nearest and halfway cases away from zero. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga921d656eaf2c4d6800a734a13af021d0a7fcb56631d6898b282d6c78ce6c14a43"></a><!-- doxytag: member="AV_ROUND_PASS_MINMAX" ref="gga921d656eaf2c4d6800a734a13af021d0a7fcb56631d6898b282d6c78ce6c14a43" args="" -->AV_ROUND_PASS_MINMAX</em> </td><td>
<p>Flag to pass INT64_MIN/MAX through instead of rescaling, this avoids special cases for AV_NOPTS_VALUE. </p>
</td></tr>
</table>
</dd>
</dl>
<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>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga952147c7a40c48a05c39e918b153ba99"></a><!-- doxytag: member="mathematics.h::av_gcd" ref="ga952147c7a40c48a05c39e918b153ba99" args="(int64_t a, int64_t b)" -->
<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> <a class="el" href="group__lavu__math.html#ga952147c7a40c48a05c39e918b153ba99">av_gcd</a> </td>
<td>(</td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>b</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return the greatest common divisor of a and b. </p>
<p>If both a and b are 0 or either or both are <0 then behavior is undefined. </p>
</div>
</div>
<a class="anchor" id="ga3daf97178dd1b08b5e916be381cd33e4"></a><!-- doxytag: member="mathematics.h::av_rescale" ref="ga3daf97178dd1b08b5e916be381cd33e4" args="(int64_t a, int64_t b, int64_t c) av_const" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t <a class="el" href="group__lavu__math.html#ga3daf97178dd1b08b5e916be381cd33e4">av_rescale</a> </td>
<td>(</td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>c</em> </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><!-- doxytag: member="mathematics.h::av_rescale_rnd" ref="gad686ab94939ed4c65218309e94bdca72" args="(int64_t a, int64_t b, int64_t c, enum AVRounding) av_const" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t <a class="el" href="group__lavu__math.html#gad686ab94939ed4c65218309e94bdca72">av_rescale_rnd</a> </td>
<td>(</td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum </td>
<td class="paramname"><em>AVRounding</em> </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="return"><dt><b>Returns:</b></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#a96">muxing.c</a>, and <a class="el" href="resampling_audio_8c-example.html#a20">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><!-- doxytag: member="mathematics.h::av_rescale_q" ref="gaf02994a8bbeaa91d4757df179cbe567f" args="(int64_t a, AVRational bq, AVRational cq) av_const" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t <a class="el" href="group__lavu__math.html#gaf02994a8bbeaa91d4757df179cbe567f">av_rescale_q</a> </td>
<td>(</td>
<td class="paramtype">int64_t </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> </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> </td>
<td class="paramname"><em>cq</em> </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#a102">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#l00172">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><!-- doxytag: member="mathematics.h::av_rescale_q_rnd" ref="gac167a841d10ac919407e77ae35391cf3" args="(int64_t a, AVRational bq, AVRational cq, enum AVRounding) av_const" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t <a class="el" href="group__lavu__math.html#gac167a841d10ac919407e77ae35391cf3">av_rescale_q_rnd</a> </td>
<td>(</td>
<td class="paramtype">int64_t </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> </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> </td>
<td class="paramname"><em>cq</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum </td>
<td class="paramname"><em>AVRounding</em> </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="return"><dt><b>Returns:</b></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><!-- doxytag: member="mathematics.h::av_compare_ts" ref="ga151744358fff630942b926e67e67c415" args="(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="group__lavu__math.html#ga151744358fff630942b926e67e67c415">av_compare_ts</a> </td>
<td>(</td>
<td class="paramtype">int64_t </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> </td>
<td class="paramname"><em>tb_a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </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> </td>
<td class="paramname"><em>tb_b</em> </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="return"><dt><b>Returns:</b></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#a91">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#l00556">main()</a>.</p>
</div>
</div>
<a class="anchor" id="gaf268a1dde957d04da846e026e2ebe6e8"></a><!-- doxytag: member="mathematics.h::av_compare_mod" ref="gaf268a1dde957d04da846e026e2ebe6e8" args="(uint64_t a, uint64_t b, uint64_t mod)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t <a class="el" href="group__lavu__math.html#gaf268a1dde957d04da846e026e2ebe6e8">av_compare_mod</a> </td>
<td>(</td>
<td class="paramtype">uint64_t </td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t </td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t </td>
<td class="paramname"><em>mod</em> </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><b>Parameters:</b></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="return"><dt><b>Returns:</b></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><!-- doxytag: member="mathematics.h::av_rescale_delta" ref="ga29b7c3d60d68ef678ee1f4adc61a25dc" args="(AVRational in_tb, int64_t in_ts, AVRational fs_tb, int duration, int64_t *last, AVRational out_tb)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t <a class="el" href="group__lavu__math.html#ga29b7c3d60d68ef678ee1f4adc61a25dc">av_rescale_delta</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a> </td>
<td class="paramname"><em>in_tb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </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> </td>
<td class="paramname"><em>fs_tb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>duration</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t * </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> </td>
<td class="paramname"><em>out_tb</em> </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><b>Parameters:</b></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><!-- doxytag: member="mathematics.h::av_add_stable" ref="ga0c4f9ed3f4102125be7451ad4d848a2f" args="(AVRational ts_tb, int64_t ts, AVRational inc_tb, int64_t inc)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t <a class="el" href="group__lavu__math.html#ga0c4f9ed3f4102125be7451ad4d848a2f">av_add_stable</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a> </td>
<td class="paramname"><em>ts_tb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </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> </td>
<td class="paramname"><em>inc_tb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>inc</em> </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><b>Parameters:</b></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><!-- doxytag: member="rational.h::av_make_q" ref="ga7778b1d209ceb3e4bf34e40150d3b882" args="(int num, int den)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="structAVRational.html">AVRational</a> <a class="el" href="group__lavu__math.html#ga7778b1d209ceb3e4bf34e40150d3b882">av_make_q</a> </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>den</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline, static]</code></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="note"><dt><b>Note:</b></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><!-- doxytag: member="rational.h::av_cmp_q" ref="gaa440bf42ede128219a571ae4ce0f90b8" args="(AVRational a, AVRational b)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static int <a class="el" href="group__lavu__math.html#gaa440bf42ede128219a571ae4ce0f90b8">av_cmp_q</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a> </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> </td>
<td class="paramname"><em>b</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Compare two rationals. </p>
<dl class="params"><dt><b>Parameters:</b></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="return"><dt><b>Returns:</b></dt><dd>0 if a==b, 1 if a>b, -1 if a<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><!-- doxytag: member="rational.h::av_q2d" ref="ga935dbbf6bde8dfe5fa7ddb1da582eb07" args="(AVRational a)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static double <a class="el" href="group__lavu__math.html#ga935dbbf6bde8dfe5fa7ddb1da582eb07">av_q2d</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a> </td>
<td class="paramname"><em>a</em></td><td>)</td>
<td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Convert rational to double. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">a</td><td>rational to convert </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></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><!-- doxytag: member="rational.h::av_reduce" ref="ga4fd9c0b8e663cf3d55e89fbc6ce71602" args="(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="group__lavu__math.html#ga4fd9c0b8e663cf3d55e89fbc6ce71602">av_reduce</a> </td>
<td>(</td>
<td class="paramtype">int * </td>
<td class="paramname"><em>dst_num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"><em>dst_den</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>den</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>max</em> </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><b>Parameters:</b></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 & dst_den </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 if exact, 0 otherwise </dd></dl>
</div>
</div>
<a class="anchor" id="ga3f9c69432582e2857147bcba3c75dc32"></a><!-- doxytag: member="rational.h::av_mul_q" ref="ga3f9c69432582e2857147bcba3c75dc32" args="(AVRational b, AVRational c) av_const" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structAVRational.html">AVRational</a> <a class="el" href="group__lavu__math.html#ga3f9c69432582e2857147bcba3c75dc32">av_mul_q</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a> </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> </td>
<td class="paramname"><em>c</em> </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><b>Parameters:</b></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="return"><dt><b>Returns:</b></dt><dd>b*c </dd></dl>
</div>
</div>
<a class="anchor" id="gaffa24e7bd38e12dbac540d8b66461f97"></a><!-- doxytag: member="rational.h::av_div_q" ref="gaffa24e7bd38e12dbac540d8b66461f97" args="(AVRational b, AVRational c) av_const" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structAVRational.html">AVRational</a> <a class="el" href="group__lavu__math.html#gaffa24e7bd38e12dbac540d8b66461f97">av_div_q</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a> </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> </td>
<td class="paramname"><em>c</em> </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><b>Parameters:</b></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="return"><dt><b>Returns:</b></dt><dd>b/c </dd></dl>
</div>
</div>
<a class="anchor" id="ga2eb3a275aabacd8421f140a12bab4a91"></a><!-- doxytag: member="rational.h::av_add_q" ref="ga2eb3a275aabacd8421f140a12bab4a91" args="(AVRational b, AVRational c) av_const" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structAVRational.html">AVRational</a> <a class="el" href="group__lavu__math.html#ga2eb3a275aabacd8421f140a12bab4a91">av_add_q</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a> </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> </td>
<td class="paramname"><em>c</em> </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><b>Parameters:</b></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="return"><dt><b>Returns:</b></dt><dd>b+c </dd></dl>
</div>
</div>
<a class="anchor" id="gac66c6198ce5e8a8caf88dfc20782fa59"></a><!-- doxytag: member="rational.h::av_sub_q" ref="gac66c6198ce5e8a8caf88dfc20782fa59" args="(AVRational b, AVRational c) av_const" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structAVRational.html">AVRational</a> <a class="el" href="group__lavu__math.html#gac66c6198ce5e8a8caf88dfc20782fa59">av_sub_q</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a> </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> </td>
<td class="paramname"><em>c</em> </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><b>Parameters:</b></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="return"><dt><b>Returns:</b></dt><dd>b-c </dd></dl>
</div>
</div>
<a class="anchor" id="gab646f0a7cc30af543ba4a91b37f9de6e"></a><!-- doxytag: member="rational.h::av_inv_q" ref="gab646f0a7cc30af543ba4a91b37f9de6e" args="(AVRational q)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static av_always_inline <a class="el" href="structAVRational.html">AVRational</a> <a class="el" href="group__lavu__math.html#gab646f0a7cc30af543ba4a91b37f9de6e">av_inv_q</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a> </td>
<td class="paramname"><em>q</em></td><td>)</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Invert a rational. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">q</td><td>value </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></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><!-- doxytag: member="rational.h::av_d2q" ref="ga7dfd5ba1eb1edf5845ac32b338de9e76" args="(double d, int max) av_const" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structAVRational.html">AVRational</a> <a class="el" href="group__lavu__math.html#ga7dfd5ba1eb1edf5845ac32b338de9e76">av_d2q</a> </td>
<td>(</td>
<td class="paramtype">double </td>
<td class="paramname"><em>d</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>max</em> </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><b>Parameters:</b></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="return"><dt><b>Returns:</b></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><!-- doxytag: member="rational.h::av_nearer_q" ref="ga111810c563749cd3081aaa19004f44df" args="(AVRational q, AVRational q1, AVRational q2)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="group__lavu__math.html#ga111810c563749cd3081aaa19004f44df">av_nearer_q</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a> </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> </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> </td>
<td class="paramname"><em>q2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></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><!-- doxytag: member="rational.h::av_find_nearest_q_idx" ref="ga63d5ef1c2f77a5fdccb2b3a1c8cc77f5" args="(AVRational q, const AVRational *q_list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="group__lavu__math.html#ga63d5ef1c2f77a5fdccb2b3a1c8cc77f5">av_find_nearest_q_idx</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a> </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> * </td>
<td class="paramname"><em>q_list</em> </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><b>Parameters:</b></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="return"><dt><b>Returns:</b></dt><dd>the index of the nearest value found in the array </dd></dl>
</div>
</div>
<a class="anchor" id="gafbcd96878344ade957d5bccc6bc705b2"></a><!-- doxytag: member="rational.h::av_q2intfloat" ref="gafbcd96878344ade957d5bccc6bc705b2" args="(AVRational q)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t <a class="el" href="group__lavu__math.html#gafbcd96878344ade957d5bccc6bc705b2">av_q2intfloat</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVRational.html">AVRational</a> </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 -->
<!-- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>