<!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.12"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>gavl: Time</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="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 id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">gavl </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.12 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',false,false,'search.php','Search'); }); </script> <div id="main-nav"></div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#groups">Modules</a> | <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Time</div> </div> </div><!--header--> <div class="contents"> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a> Modules</h2></td></tr> <tr class="memitem:group__timer"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html">Software timer</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:gaf598353cbda9a5ad6878e368b6a15811"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#gaf598353cbda9a5ad6878e368b6a15811">GAVL_TIME_SCALE</a>   1000000</td></tr> <tr class="separator:gaf598353cbda9a5ad6878e368b6a15811"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga98a13c407599f7fd3186396337f2a313"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#ga98a13c407599f7fd3186396337f2a313">GAVL_TIME_UNDEFINED</a>   0x8000000000000000LL</td></tr> <tr class="separator:ga98a13c407599f7fd3186396337f2a313"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae6ef0c903b29a7584c2213c07d07cb5d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#gae6ef0c903b29a7584c2213c07d07cb5d">GAVL_TIME_MAX</a>   0x7fffffffffffffffLL</td></tr> <tr class="separator:gae6ef0c903b29a7584c2213c07d07cb5d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaea115f2815e637bbcd60fbade805ef76"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#gaea115f2815e637bbcd60fbade805ef76">gavl_seconds_to_time</a>(s)   (<a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a>)((s)*(double)(<a class="el" href="group__time.html#gaf598353cbda9a5ad6878e368b6a15811">GAVL_TIME_SCALE</a>))</td></tr> <tr class="memdesc:gaea115f2815e637bbcd60fbade805ef76"><td class="mdescLeft"> </td><td class="mdescRight">Convert seconds (as double) to a gavl time. <a href="#gaea115f2815e637bbcd60fbade805ef76">More...</a><br /></td></tr> <tr class="separator:gaea115f2815e637bbcd60fbade805ef76"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafe7168a31ad0b28ead955797a62a5ab2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#gafe7168a31ad0b28ead955797a62a5ab2">gavl_time_to_seconds</a>(t)   ((double)(t)/(double)(<a class="el" href="group__time.html#gaf598353cbda9a5ad6878e368b6a15811">GAVL_TIME_SCALE</a>))</td></tr> <tr class="memdesc:gafe7168a31ad0b28ead955797a62a5ab2"><td class="mdescLeft"> </td><td class="mdescRight">Convert a gavl time to seconds (as double) <a href="#gafe7168a31ad0b28ead955797a62a5ab2">More...</a><br /></td></tr> <tr class="separator:gafe7168a31ad0b28ead955797a62a5ab2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga49869e05d18cb1dfde4e80343ae37d50"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#ga49869e05d18cb1dfde4e80343ae37d50">GAVL_TIME_STRING_LEN</a>   11</td></tr> <tr class="memdesc:ga49869e05d18cb1dfde4e80343ae37d50"><td class="mdescLeft"> </td><td class="mdescRight">Length of the string passed to <a class="el" href="group__time.html#gafede1bf6bd567f8133f49291b1c91e46">gavl_time_prettyprint</a>. <a href="#ga49869e05d18cb1dfde4e80343ae37d50">More...</a><br /></td></tr> <tr class="separator:ga49869e05d18cb1dfde4e80343ae37d50"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0f4f6763633d6d42edd51b23017cfc37"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#ga0f4f6763633d6d42edd51b23017cfc37">GAVL_TIME_STRING_LEN_MS</a>   15</td></tr> <tr class="memdesc:ga0f4f6763633d6d42edd51b23017cfc37"><td class="mdescLeft"> </td><td class="mdescRight">Length of the string passed to <a class="el" href="group__time.html#ga5f5ae25902db97f374e1be584243a257">gavl_time_prettyprint_ms</a>. <a href="#ga0f4f6763633d6d42edd51b23017cfc37">More...</a><br /></td></tr> <tr class="separator:ga0f4f6763633d6d42edd51b23017cfc37"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:gaede83abbdd6102bd8683f4b94a7bd647"><td class="memItemLeft" align="right" valign="top">typedef int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a></td></tr> <tr class="memdesc:gaede83abbdd6102bd8683f4b94a7bd647"><td class="mdescLeft"> </td><td class="mdescRight">Times in gavl are 64 bit signed integers. <a href="#gaede83abbdd6102bd8683f4b94a7bd647">More...</a><br /></td></tr> <tr class="separator:gaede83abbdd6102bd8683f4b94a7bd647"><td class="memSeparator" colspan="2"> </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:ga811bdb175fd50af21138857ca53f9d19"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#ga811bdb175fd50af21138857ca53f9d19">gavl_samples_to_time</a> (int samplerate, int64_t samples)</td></tr> <tr class="memdesc:ga811bdb175fd50af21138857ca53f9d19"><td class="mdescLeft"> </td><td class="mdescRight">Convert a number of samples to a time for a given samplerate. <a href="#ga811bdb175fd50af21138857ca53f9d19">More...</a><br /></td></tr> <tr class="separator:ga811bdb175fd50af21138857ca53f9d19"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae29e41e11252623db0588cd6b728bcf3"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#gae29e41e11252623db0588cd6b728bcf3">gavl_time_to_samples</a> (int samplerate, <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> time)</td></tr> <tr class="memdesc:gae29e41e11252623db0588cd6b728bcf3"><td class="mdescLeft"> </td><td class="mdescRight">Convert a time to a number of audio samples for a given samplerate. <a href="#gae29e41e11252623db0588cd6b728bcf3">More...</a><br /></td></tr> <tr class="separator:gae29e41e11252623db0588cd6b728bcf3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga59df5a9311f8e15575c8a0f9414849af"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#ga59df5a9311f8e15575c8a0f9414849af">gavl_frames_to_time</a> (int rate_num, int rate_den, int64_t frames)</td></tr> <tr class="memdesc:ga59df5a9311f8e15575c8a0f9414849af"><td class="mdescLeft"> </td><td class="mdescRight">Convert a number of video frames to a time for a given framerate. <a href="#ga59df5a9311f8e15575c8a0f9414849af">More...</a><br /></td></tr> <tr class="separator:ga59df5a9311f8e15575c8a0f9414849af"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga2b8f1db0f226f1255afe2e0f21f47142"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#ga2b8f1db0f226f1255afe2e0f21f47142">gavl_time_to_frames</a> (int rate_num, int rate_den, <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> time)</td></tr> <tr class="memdesc:ga2b8f1db0f226f1255afe2e0f21f47142"><td class="mdescLeft"> </td><td class="mdescRight">Convert a time to a number of video frames for a given framerate. <a href="#ga2b8f1db0f226f1255afe2e0f21f47142">More...</a><br /></td></tr> <tr class="separator:ga2b8f1db0f226f1255afe2e0f21f47142"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8b96d7ef34d17497a099fa8971eb5661"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#ga8b96d7ef34d17497a099fa8971eb5661">gavl_time_scale</a> (int scale, <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> time)</td></tr> <tr class="memdesc:ga8b96d7ef34d17497a099fa8971eb5661"><td class="mdescLeft"> </td><td class="mdescRight">Convert a gavl time to a time scaled by another base. <a href="#ga8b96d7ef34d17497a099fa8971eb5661">More...</a><br /></td></tr> <tr class="separator:ga8b96d7ef34d17497a099fa8971eb5661"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4de3b9f7b985519953f332fbc283f2f6"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#ga4de3b9f7b985519953f332fbc283f2f6">gavl_time_unscale</a> (int scale, int64_t time)</td></tr> <tr class="memdesc:ga4de3b9f7b985519953f332fbc283f2f6"><td class="mdescLeft"> </td><td class="mdescRight">Convert a time scaled by another base to a gavl time. <a href="#ga4de3b9f7b985519953f332fbc283f2f6">More...</a><br /></td></tr> <tr class="separator:ga4de3b9f7b985519953f332fbc283f2f6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac2a78a7aa1330d94ac8c24882714ff2f"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#gac2a78a7aa1330d94ac8c24882714ff2f">gavl_time_rescale</a> (int scale1, int scale2, int64_t time)</td></tr> <tr class="memdesc:gac2a78a7aa1330d94ac8c24882714ff2f"><td class="mdescLeft"> </td><td class="mdescRight">Convert a time scaled by one base to a time scaled by another base. <a href="#gac2a78a7aa1330d94ac8c24882714ff2f">More...</a><br /></td></tr> <tr class="separator:gac2a78a7aa1330d94ac8c24882714ff2f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga3e883859ff24aa7af3a30cd6b1e80364"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#ga3e883859ff24aa7af3a30cd6b1e80364">gavl_time_delay</a> (<a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> *time)</td></tr> <tr class="memdesc:ga3e883859ff24aa7af3a30cd6b1e80364"><td class="mdescLeft"> </td><td class="mdescRight">Sleep for a specified time. <a href="#ga3e883859ff24aa7af3a30cd6b1e80364">More...</a><br /></td></tr> <tr class="separator:ga3e883859ff24aa7af3a30cd6b1e80364"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafede1bf6bd567f8133f49291b1c91e46"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#gafede1bf6bd567f8133f49291b1c91e46">gavl_time_prettyprint</a> (<a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> time, char str[<a class="el" href="group__time.html#ga49869e05d18cb1dfde4e80343ae37d50">GAVL_TIME_STRING_LEN</a>])</td></tr> <tr class="memdesc:gafede1bf6bd567f8133f49291b1c91e46"><td class="mdescLeft"> </td><td class="mdescRight">Convert a time to a string. <a href="#gafede1bf6bd567f8133f49291b1c91e46">More...</a><br /></td></tr> <tr class="separator:gafede1bf6bd567f8133f49291b1c91e46"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5f5ae25902db97f374e1be584243a257"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#ga5f5ae25902db97f374e1be584243a257">gavl_time_prettyprint_ms</a> (<a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> time, char str[<a class="el" href="group__time.html#ga0f4f6763633d6d42edd51b23017cfc37">GAVL_TIME_STRING_LEN_MS</a>])</td></tr> <tr class="memdesc:ga5f5ae25902db97f374e1be584243a257"><td class="mdescLeft"> </td><td class="mdescRight">Convert a time to a string with millisecond precision. <a href="#ga5f5ae25902db97f374e1be584243a257">More...</a><br /></td></tr> <tr class="separator:ga5f5ae25902db97f374e1be584243a257"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <h2 class="groupheader">Macro Definition Documentation</h2> <a id="gaf598353cbda9a5ad6878e368b6a15811"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaf598353cbda9a5ad6878e368b6a15811">§ </a></span>GAVL_TIME_SCALE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GAVL_TIME_SCALE   1000000</td> </tr> </table> </div><div class="memdoc"> <p>Generic time scale: Microsecond tics </p> </div> </div> <a id="ga98a13c407599f7fd3186396337f2a313"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga98a13c407599f7fd3186396337f2a313">§ </a></span>GAVL_TIME_UNDEFINED</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GAVL_TIME_UNDEFINED   0x8000000000000000LL</td> </tr> </table> </div><div class="memdoc"> <p>Unknown or undefined time </p> </div> </div> <a id="gae6ef0c903b29a7584c2213c07d07cb5d"></a> <h2 class="memtitle"><span class="permalink"><a href="#gae6ef0c903b29a7584c2213c07d07cb5d">§ </a></span>GAVL_TIME_MAX</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GAVL_TIME_MAX   0x7fffffffffffffffLL</td> </tr> </table> </div><div class="memdoc"> <p>Maximum possible value </p> </div> </div> <a id="gaea115f2815e637bbcd60fbade805ef76"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaea115f2815e637bbcd60fbade805ef76">§ </a></span>gavl_seconds_to_time</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define gavl_seconds_to_time</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">s</td><td>)</td> <td>   (<a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a>)((s)*(double)(<a class="el" href="group__time.html#gaf598353cbda9a5ad6878e368b6a15811">GAVL_TIME_SCALE</a>))</td> </tr> </table> </div><div class="memdoc"> <p>Convert seconds (as double) to a gavl time. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">s</td><td>Seconds as double </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Integer time scaled by <a class="el" href="group__time.html#gaf598353cbda9a5ad6878e368b6a15811">GAVL_TIME_SCALE</a> </dd></dl> </div> </div> <a id="gafe7168a31ad0b28ead955797a62a5ab2"></a> <h2 class="memtitle"><span class="permalink"><a href="#gafe7168a31ad0b28ead955797a62a5ab2">§ </a></span>gavl_time_to_seconds</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define gavl_time_to_seconds</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">t</td><td>)</td> <td>   ((double)(t)/(double)(<a class="el" href="group__time.html#gaf598353cbda9a5ad6878e368b6a15811">GAVL_TIME_SCALE</a>))</td> </tr> </table> </div><div class="memdoc"> <p>Convert a gavl time to seconds (as double) </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">t</td><td>Integer time scaled by <a class="el" href="group__time.html#gaf598353cbda9a5ad6878e368b6a15811">GAVL_TIME_SCALE</a> </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Seconds as double </dd></dl> </div> </div> <a id="ga49869e05d18cb1dfde4e80343ae37d50"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga49869e05d18cb1dfde4e80343ae37d50">§ </a></span>GAVL_TIME_STRING_LEN</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GAVL_TIME_STRING_LEN   11</td> </tr> </table> </div><div class="memdoc"> <p>Length of the string passed to <a class="el" href="group__time.html#gafede1bf6bd567f8133f49291b1c91e46">gavl_time_prettyprint</a>. </p> </div> </div> <a id="ga0f4f6763633d6d42edd51b23017cfc37"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga0f4f6763633d6d42edd51b23017cfc37">§ </a></span>GAVL_TIME_STRING_LEN_MS</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GAVL_TIME_STRING_LEN_MS   15</td> </tr> </table> </div><div class="memdoc"> <p>Length of the string passed to <a class="el" href="group__time.html#ga5f5ae25902db97f374e1be584243a257">gavl_time_prettyprint_ms</a>. </p> </div> </div> <h2 class="groupheader">Typedef Documentation</h2> <a id="gaede83abbdd6102bd8683f4b94a7bd647"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaede83abbdd6102bd8683f4b94a7bd647">§ </a></span>gavl_time_t</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef int64_t <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a></td> </tr> </table> </div><div class="memdoc"> <p>Times in gavl are 64 bit signed integers. </p> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a id="ga811bdb175fd50af21138857ca53f9d19"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga811bdb175fd50af21138857ca53f9d19">§ </a></span>gavl_samples_to_time()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> gavl_samples_to_time </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>samplerate</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int64_t </td> <td class="paramname"><em>samples</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convert a number of samples to a time for a given samplerate. </p> </div> </div> <a id="gae29e41e11252623db0588cd6b728bcf3"></a> <h2 class="memtitle"><span class="permalink"><a href="#gae29e41e11252623db0588cd6b728bcf3">§ </a></span>gavl_time_to_samples()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC int64_t gavl_time_to_samples </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>samplerate</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> </td> <td class="paramname"><em>time</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convert a time to a number of audio samples for a given samplerate. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">samplerate</td><td>Samplerate </td></tr> <tr><td class="paramname">time</td><td>Time </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Number of audio samples </dd></dl> </div> </div> <a id="ga59df5a9311f8e15575c8a0f9414849af"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga59df5a9311f8e15575c8a0f9414849af">§ </a></span>gavl_frames_to_time()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> gavl_frames_to_time </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>rate_num</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>rate_den</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int64_t </td> <td class="paramname"><em>frames</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convert a number of video frames to a time for a given framerate. </p> </div> </div> <a id="ga2b8f1db0f226f1255afe2e0f21f47142"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga2b8f1db0f226f1255afe2e0f21f47142">§ </a></span>gavl_time_to_frames()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC int64_t gavl_time_to_frames </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>rate_num</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>rate_den</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> </td> <td class="paramname"><em>time</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convert a time to a number of video frames for a given framerate. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">rate_num</td><td>Numerator of the framerate </td></tr> <tr><td class="paramname">rate_den</td><td>Denominator of the framerate </td></tr> <tr><td class="paramname">time</td><td>Time </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Number of frames </dd></dl> </div> </div> <a id="ga8b96d7ef34d17497a099fa8971eb5661"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga8b96d7ef34d17497a099fa8971eb5661">§ </a></span>gavl_time_scale()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC int64_t gavl_time_scale </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>scale</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> </td> <td class="paramname"><em>time</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convert a gavl time to a time scaled by another base. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">scale</td><td>Time scale </td></tr> <tr><td class="paramname">time</td><td>Time scaled by <a class="el" href="group__time.html#gaf598353cbda9a5ad6878e368b6a15811">GAVL_TIME_SCALE</a> </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Time scaled by scale </dd></dl> </div> </div> <a id="ga4de3b9f7b985519953f332fbc283f2f6"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga4de3b9f7b985519953f332fbc283f2f6">§ </a></span>gavl_time_unscale()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> gavl_time_unscale </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>scale</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int64_t </td> <td class="paramname"><em>time</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convert a time scaled by another base to a gavl time. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">scale</td><td>Time scale </td></tr> <tr><td class="paramname">time</td><td>Time scaled by scale </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Time scaled by <a class="el" href="group__time.html#gaf598353cbda9a5ad6878e368b6a15811">GAVL_TIME_SCALE</a> </dd></dl> </div> </div> <a id="gac2a78a7aa1330d94ac8c24882714ff2f"></a> <h2 class="memtitle"><span class="permalink"><a href="#gac2a78a7aa1330d94ac8c24882714ff2f">§ </a></span>gavl_time_rescale()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC int64_t gavl_time_rescale </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>scale1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>scale2</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int64_t </td> <td class="paramname"><em>time</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convert a time scaled by one base to a time scaled by another base. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">scale1</td><td>Initial time base </td></tr> <tr><td class="paramname">scale2</td><td>New time base </td></tr> <tr><td class="paramname">time</td><td>Time scaled by scale1 </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Time scaled by scale2 </dd></dl> </div> </div> <a id="ga3e883859ff24aa7af3a30cd6b1e80364"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga3e883859ff24aa7af3a30cd6b1e80364">§ </a></span>gavl_time_delay()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC void gavl_time_delay </td> <td>(</td> <td class="paramtype"><a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> * </td> <td class="paramname"><em>time</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Sleep for a specified time. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">time</td><td>Time after which execution of the current thread is resumed </td></tr> </table> </dd> </dl> </div> </div> <a id="gafede1bf6bd567f8133f49291b1c91e46"></a> <h2 class="memtitle"><span class="permalink"><a href="#gafede1bf6bd567f8133f49291b1c91e46">§ </a></span>gavl_time_prettyprint()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC void gavl_time_prettyprint </td> <td>(</td> <td class="paramtype"><a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> </td> <td class="paramname"><em>time</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char </td> <td class="paramname"><em>str</em>[GAVL_TIME_STRING_LEN] </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convert a time to a string. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">time</td><td>Time to print </td></tr> <tr><td class="paramname">str</td><td>String</td></tr> </table> </dd> </dl> <p>This prints a gavl_time into ASCII string if a format suitable for player displays. The format is: -hhh:mm:ss </p> </div> </div> <a id="ga5f5ae25902db97f374e1be584243a257"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga5f5ae25902db97f374e1be584243a257">§ </a></span>gavl_time_prettyprint_ms()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC void gavl_time_prettyprint_ms </td> <td>(</td> <td class="paramtype"><a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> </td> <td class="paramname"><em>time</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char </td> <td class="paramname"><em>str</em>[GAVL_TIME_STRING_LEN_MS] </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convert a time to a string with millisecond precision. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">time</td><td>Time to print </td></tr> <tr><td class="paramname">str</td><td>String</td></tr> </table> </dd> </dl> <p>This prints a gavl_time into ASCII string if a format suitable for player displays. The format is: -hhh:mm:ss.MMM</p> <p>Since 1.1.1 </p> </div> </div> </div><!-- contents --> <!-- start footer part --> <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.8.12 </small></address> </body> </html>