<!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"/> <title>libkate: Granule calculations</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <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> </ul> </div> </div> <div class="contents"> <h1>Granule calculations</h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__granule.html#gae265915dec153797580ab25cc4d12762">kate_granule_shift</a> (const <a class="el" href="structkate__info.html">kate_info</a> *ki)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">kate_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__granule.html#ga39a421f2d4da4e657a35328d9154290f">kate_time_granule</a> (const <a class="el" href="structkate__info.html">kate_info</a> *ki, kate_float base, kate_float offset)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__granule.html#ga8a77ab382e5469b1ef4e6ee5088e0ba7">kate_granule_split_time</a> (const <a class="el" href="structkate__info.html">kate_info</a> *ki, kate_int64_t granulepos, kate_float *base, kate_float *offset)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">kate_float </td><td class="memItemRight" valign="bottom"><a class="el" href="group__granule.html#ga22c52f60e9bfe21611e36b8e49db75b2">kate_granule_time</a> (const <a class="el" href="structkate__info.html">kate_info</a> *ki, kate_int64_t granulepos)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">kate_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__granule.html#ga97968d326ab6e2d78ac46fbb0e825f44">kate_duration_granule</a> (const <a class="el" href="structkate__info.html">kate_info</a> *ki, kate_float duration)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">kate_float </td><td class="memItemRight" valign="bottom"><a class="el" href="group__granule.html#ga193045390452ca2de8d59754715ca6da">kate_granule_duration</a> (const <a class="el" href="structkate__info.html">kate_info</a> *ki, kate_int64_t duration)</td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga97968d326ab6e2d78ac46fbb0e825f44"></a><!-- doxytag: member="kate_granule.c::kate_duration_granule" ref="ga97968d326ab6e2d78ac46fbb0e825f44" args="(const kate_info *ki, kate_float duration)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">kate_int64_t kate_duration_granule </td> <td>(</td> <td class="paramtype">const <a class="el" href="structkate__info.html">kate_info</a> * </td> <td class="paramname"> <em>ki</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">kate_float </td> <td class="paramname"> <em>duration</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Converts a duration to a granule duration </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ki</em> </td><td>the <a class="el" href="structkate__info.html">kate_info</a> structure describing the granule encoding setup </td></tr> <tr><td valign="top"></td><td valign="top"><em>duration</em> </td><td>the duration in seconds to convert to a granulepos offset </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>>=0 the time corresponding to the granulepos </dd> <dd> KATE_E_* error </dd></dl> <p>References <a class="el" href="kate_8h_source.html#l00276">kate_info::gps_denominator</a>, <a class="el" href="kate_8h_source.html#l00275">kate_info::gps_numerator</a>, <a class="el" href="kate_8h_source.html#l00655">KATE_E_BAD_GRANULE</a>, and <a class="el" href="kate_8h_source.html#l00653">KATE_E_INVALID_PARAMETER</a>.</p> <p>Referenced by <a class="el" href="kate__encode_8c_source.html#l01181">kate_encode_finish()</a>, <a class="el" href="kate__encode_8c_source.html#l01042">kate_encode_keepalive()</a>, <a class="el" href="kate__encode_8c_source.html#l01117">kate_encode_repeat()</a>, and <a class="el" href="kate__encode_8c_source.html#l00981">kate_encode_text()</a>.</p> </div> </div> <a class="anchor" id="ga193045390452ca2de8d59754715ca6da"></a><!-- doxytag: member="kate_granule.c::kate_granule_duration" ref="ga193045390452ca2de8d59754715ca6da" args="(const kate_info *ki, kate_int64_t duration)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">kate_float kate_granule_duration </td> <td>(</td> <td class="paramtype">const <a class="el" href="structkate__info.html">kate_info</a> * </td> <td class="paramname"> <em>ki</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">kate_int64_t </td> <td class="paramname"> <em>duration</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Converts a granule offset position to a time in seconds. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ki</em> </td><td>the <a class="el" href="structkate__info.html">kate_info</a> structure describing the granule encoding setup </td></tr> <tr><td valign="top"></td><td valign="top"><em>duration</em> </td><td>the granulepos offset to convert to a time </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>>=0 the time corresponding to the granulepos offset </dd> <dd> KATE_E_* error </dd></dl> <p>References <a class="el" href="kate_8h_source.html#l00276">kate_info::gps_denominator</a>, <a class="el" href="kate_8h_source.html#l00275">kate_info::gps_numerator</a>, and <a class="el" href="kate_8h_source.html#l00653">KATE_E_INVALID_PARAMETER</a>.</p> </div> </div> <a class="anchor" id="gae265915dec153797580ab25cc4d12762"></a><!-- doxytag: member="kate_granule.c::kate_granule_shift" ref="gae265915dec153797580ab25cc4d12762" args="(const kate_info *ki)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int kate_granule_shift </td> <td>(</td> <td class="paramtype">const <a class="el" href="structkate__info.html">kate_info</a> * </td> <td class="paramname"> <em>ki</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the granule shift for the given stream </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ki</em> </td><td>the <a class="el" href="structkate__info.html">kate_info</a> structure describing the granule encoding setup </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>>=0 the granule shift </dd> <dd> KATE_E_* error </dd></dl> <p>References <a class="el" href="kate_8h_source.html#l00272">kate_info::granule_shift</a>, and <a class="el" href="kate_8h_source.html#l00653">KATE_E_INVALID_PARAMETER</a>.</p> </div> </div> <a class="anchor" id="ga8a77ab382e5469b1ef4e6ee5088e0ba7"></a><!-- doxytag: member="kate_granule.c::kate_granule_split_time" ref="ga8a77ab382e5469b1ef4e6ee5088e0ba7" args="(const kate_info *ki, kate_int64_t granulepos, kate_float *base, kate_float *offset)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int kate_granule_split_time </td> <td>(</td> <td class="paramtype">const <a class="el" href="structkate__info.html">kate_info</a> * </td> <td class="paramname"> <em>ki</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">kate_int64_t </td> <td class="paramname"> <em>granulepos</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">kate_float * </td> <td class="paramname"> <em>base</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">kate_float * </td> <td class="paramname"> <em>offset</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Converts a granule position to a base+offset time representation in seconds. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ki</em> </td><td>the <a class="el" href="structkate__info.html">kate_info</a> structure describing the granule encoding setup </td></tr> <tr><td valign="top"></td><td valign="top"><em>granulepos</em> </td><td>the granulepos to convert to a time representation </td></tr> <tr><td valign="top"></td><td valign="top"><em>base</em> </td><td>a pointer where to store the base part of the time corresponding to the granulepos </td></tr> <tr><td valign="top"></td><td valign="top"><em>offset</em> </td><td>a pointer where to store the offset part of the time corresponding to the granulepos </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 success </dd> <dd> KATE_E_* error </dd></dl> <p>References <a class="el" href="kate_8h_source.html#l00276">kate_info::gps_denominator</a>, <a class="el" href="kate_8h_source.html#l00275">kate_info::gps_numerator</a>, <a class="el" href="kate_8h_source.html#l00272">kate_info::granule_shift</a>, and <a class="el" href="kate_8h_source.html#l00653">KATE_E_INVALID_PARAMETER</a>.</p> <p>Referenced by <a class="el" href="kate__granule_8c_source.html#l00090">kate_granule_time()</a>.</p> </div> </div> <a class="anchor" id="ga22c52f60e9bfe21611e36b8e49db75b2"></a><!-- doxytag: member="kate_granule.c::kate_granule_time" ref="ga22c52f60e9bfe21611e36b8e49db75b2" args="(const kate_info *ki, kate_int64_t granulepos)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">kate_float kate_granule_time </td> <td>(</td> <td class="paramtype">const <a class="el" href="structkate__info.html">kate_info</a> * </td> <td class="paramname"> <em>ki</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">kate_int64_t </td> <td class="paramname"> <em>granulepos</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Converts a granule position to a time in seconds. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ki</em> </td><td>the <a class="el" href="structkate__info.html">kate_info</a> structure describing the granule encoding setup </td></tr> <tr><td valign="top"></td><td valign="top"><em>granulepos</em> </td><td>the granulepos to convert to a time </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>>=0 the time corresponding to the granulepos </dd> <dd> KATE_E_* error </dd></dl> <p>References <a class="el" href="kate__granule_8c_source.html#l00067">kate_granule_split_time()</a>.</p> </div> </div> <a class="anchor" id="ga39a421f2d4da4e657a35328d9154290f"></a><!-- doxytag: member="kate_granule.c::kate_time_granule" ref="ga39a421f2d4da4e657a35328d9154290f" args="(const kate_info *ki, kate_float base, kate_float offset)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">kate_int64_t kate_time_granule </td> <td>(</td> <td class="paramtype">const <a class="el" href="structkate__info.html">kate_info</a> * </td> <td class="paramname"> <em>ki</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">kate_float </td> <td class="paramname"> <em>base</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">kate_float </td> <td class="paramname"> <em>offset</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Converts a base/offset pair in seconds to a granule position </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ki</em> </td><td>the <a class="el" href="structkate__info.html">kate_info</a> structure describing the granule encoding setup </td></tr> <tr><td valign="top"></td><td valign="top"><em>base</em> </td><td>the base time in seconds to convert </td></tr> <tr><td valign="top"></td><td valign="top"><em>offset</em> </td><td>the time offset in seconds to convert </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>>=0 the granule corresponding to the base/offset pair </dd> <dd> KATE_E_* error </dd></dl> <p>References <a class="el" href="kate_8h_source.html#l00276">kate_info::gps_denominator</a>, <a class="el" href="kate_8h_source.html#l00275">kate_info::gps_numerator</a>, <a class="el" href="kate_8h_source.html#l00272">kate_info::granule_shift</a>, <a class="el" href="kate_8h_source.html#l00653">KATE_E_INVALID_PARAMETER</a>, and <a class="el" href="kate_8h_source.html#l00659">KATE_E_LIMIT</a>.</p> </div> </div> </div> <hr size="1"/><address style="text-align: right;"><small>Generated on Wed Dec 23 04:05:07 2009 for libkate by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>