Sophie

Sophie

distrib > Mageia > 6 > armv7hl > by-pkgid > b4d0ffc838646a67b3dd59a6006ff212 > files > 51

libgavl-devel-1.4.0-7.mga6.armv7hl.rpm

<!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: Frame table</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="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Frame table<div class="ingroups"><a class="el" href="group__video.html">Video</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">frame table structure  <a href="structgavl__frame__table__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gac265a8102f8c1cfd1a0a8e0d3cecd886"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#gac265a8102f8c1cfd1a0a8e0d3cecd886">gavl_frame_table_create</a> ()</td></tr>
<tr class="memdesc:gac265a8102f8c1cfd1a0a8e0d3cecd886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a frame table.  <a href="#gac265a8102f8c1cfd1a0a8e0d3cecd886">More...</a><br /></td></tr>
<tr class="separator:gac265a8102f8c1cfd1a0a8e0d3cecd886"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad45a0e09687b1f0e33266578b8858a71"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#gad45a0e09687b1f0e33266578b8858a71">gavl_frame_table_create_audio</a> (int samplerate, int64_t offset, int64_t duration, <a class="el" href="structgavl__timecode__format__t.html">gavl_timecode_format_t</a> *fmt_ret)</td></tr>
<tr class="memdesc:gad45a0e09687b1f0e33266578b8858a71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a frame table for an audio stream.  <a href="#gad45a0e09687b1f0e33266578b8858a71">More...</a><br /></td></tr>
<tr class="separator:gad45a0e09687b1f0e33266578b8858a71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa2971ad8831bc68b144ef8259d6e9ca"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#gaaa2971ad8831bc68b144ef8259d6e9ca">gavl_frame_table_create_cfr</a> (int64_t offset, int64_t frame_duration, int64_t num_frames, <a class="el" href="group__timecode.html#ga534f23baf96ee5cdabd99f1619672452">gavl_timecode_t</a> start_timecode)</td></tr>
<tr class="memdesc:gaaa2971ad8831bc68b144ef8259d6e9ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a frame table for constant framerate video.  <a href="#gaaa2971ad8831bc68b144ef8259d6e9ca">More...</a><br /></td></tr>
<tr class="separator:gaaa2971ad8831bc68b144ef8259d6e9ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga39e058c40317cf21f0573d4cc282f202"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#ga39e058c40317cf21f0573d4cc282f202">gavl_frame_table_copy</a> (const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *tab)</td></tr>
<tr class="memdesc:ga39e058c40317cf21f0573d4cc282f202"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a frame table to another.  <a href="#ga39e058c40317cf21f0573d4cc282f202">More...</a><br /></td></tr>
<tr class="separator:ga39e058c40317cf21f0573d4cc282f202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d49000351213b69385a85ab2c7d24a8"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#ga7d49000351213b69385a85ab2c7d24a8">gavl_frame_table_destroy</a> (<a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t)</td></tr>
<tr class="memdesc:ga7d49000351213b69385a85ab2c7d24a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a frame table and free all memory.  <a href="#ga7d49000351213b69385a85ab2c7d24a8">More...</a><br /></td></tr>
<tr class="separator:ga7d49000351213b69385a85ab2c7d24a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa3019fd2f14360c77724db64e6ea1500"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#gaa3019fd2f14360c77724db64e6ea1500">gavl_frame_table_append_entry</a> (<a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t, int64_t duration)</td></tr>
<tr class="memdesc:gaa3019fd2f14360c77724db64e6ea1500"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append an entry.  <a href="#gaa3019fd2f14360c77724db64e6ea1500">More...</a><br /></td></tr>
<tr class="separator:gaa3019fd2f14360c77724db64e6ea1500"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca3eb0d8345f72af6e4966d12744388d"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#gaca3eb0d8345f72af6e4966d12744388d">gavl_frame_table_append_timecode</a> (<a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t, int64_t pts, <a class="el" href="group__timecode.html#ga534f23baf96ee5cdabd99f1619672452">gavl_timecode_t</a> tc)</td></tr>
<tr class="memdesc:gaca3eb0d8345f72af6e4966d12744388d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append a timecodes.  <a href="#gaca3eb0d8345f72af6e4966d12744388d">More...</a><br /></td></tr>
<tr class="separator:gaca3eb0d8345f72af6e4966d12744388d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2cf755e56e4b50f0d3cc12db088aeca6"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#ga2cf755e56e4b50f0d3cc12db088aeca6">gavl_frame_table_frame_to_time</a> (const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t, int64_t frame, int *duration)</td></tr>
<tr class="memdesc:ga2cf755e56e4b50f0d3cc12db088aeca6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a frame index to a timestamp.  <a href="#ga2cf755e56e4b50f0d3cc12db088aeca6">More...</a><br /></td></tr>
<tr class="separator:ga2cf755e56e4b50f0d3cc12db088aeca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga623a74c4ff943db7f1157d845c64beb0"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#ga623a74c4ff943db7f1157d845c64beb0">gavl_frame_table_time_to_frame</a> (const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t, int64_t time, int64_t *start_time)</td></tr>
<tr class="memdesc:ga623a74c4ff943db7f1157d845c64beb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a timestamp to a frame index.  <a href="#ga623a74c4ff943db7f1157d845c64beb0">More...</a><br /></td></tr>
<tr class="separator:ga623a74c4ff943db7f1157d845c64beb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6069fd13db8bcb703d22827517c12b22"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="group__timecode.html#ga534f23baf96ee5cdabd99f1619672452">gavl_timecode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#ga6069fd13db8bcb703d22827517c12b22">gavl_frame_table_time_to_timecode</a> (const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t, int64_t time, int64_t *start_time, const <a class="el" href="structgavl__timecode__format__t.html">gavl_timecode_format_t</a> *fmt)</td></tr>
<tr class="memdesc:ga6069fd13db8bcb703d22827517c12b22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a timestamp to a timecode.  <a href="#ga6069fd13db8bcb703d22827517c12b22">More...</a><br /></td></tr>
<tr class="separator:ga6069fd13db8bcb703d22827517c12b22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafba6d572126c3b946c96944a9824e401"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#gafba6d572126c3b946c96944a9824e401">gavl_frame_table_timecode_to_time</a> (const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t, <a class="el" href="group__timecode.html#ga534f23baf96ee5cdabd99f1619672452">gavl_timecode_t</a> tc, const <a class="el" href="structgavl__timecode__format__t.html">gavl_timecode_format_t</a> *fmt)</td></tr>
<tr class="memdesc:gafba6d572126c3b946c96944a9824e401"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a timecode to a timestamp.  <a href="#gafba6d572126c3b946c96944a9824e401">More...</a><br /></td></tr>
<tr class="separator:gafba6d572126c3b946c96944a9824e401"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga44b9d9c826a39027327d3347011aadb3"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="group__timecode.html#ga534f23baf96ee5cdabd99f1619672452">gavl_timecode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#ga44b9d9c826a39027327d3347011aadb3">gavl_frame_table_frame_to_timecode</a> (const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t, int64_t frame, int64_t *start_time, const <a class="el" href="structgavl__timecode__format__t.html">gavl_timecode_format_t</a> *fmt)</td></tr>
<tr class="memdesc:ga44b9d9c826a39027327d3347011aadb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a frame index to a timecode.  <a href="#ga44b9d9c826a39027327d3347011aadb3">More...</a><br /></td></tr>
<tr class="separator:ga44b9d9c826a39027327d3347011aadb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga86b09c9a3a0537d3cbf31b33abe5beee"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#ga86b09c9a3a0537d3cbf31b33abe5beee">gavl_frame_table_num_frames</a> (const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t)</td></tr>
<tr class="memdesc:ga86b09c9a3a0537d3cbf31b33abe5beee"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the total number of frames  <a href="#ga86b09c9a3a0537d3cbf31b33abe5beee">More...</a><br /></td></tr>
<tr class="separator:ga86b09c9a3a0537d3cbf31b33abe5beee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7bc7232a41f14c82d1af0c00cb4fe8bb"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#ga7bc7232a41f14c82d1af0c00cb4fe8bb">gavl_frame_table_duration</a> (const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t)</td></tr>
<tr class="memdesc:ga7bc7232a41f14c82d1af0c00cb4fe8bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the total duration of all frames  <a href="#ga7bc7232a41f14c82d1af0c00cb4fe8bb">More...</a><br /></td></tr>
<tr class="separator:ga7bc7232a41f14c82d1af0c00cb4fe8bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga190ee3adfd6f512f11ef6c1f609443a0"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#ga190ee3adfd6f512f11ef6c1f609443a0">gavl_frame_table_end_time</a> (const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t)</td></tr>
<tr class="memdesc:ga190ee3adfd6f512f11ef6c1f609443a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the end time of the last frame  <a href="#ga190ee3adfd6f512f11ef6c1f609443a0">More...</a><br /></td></tr>
<tr class="separator:ga190ee3adfd6f512f11ef6c1f609443a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga15211644be347e181d22929e79ca6dbe"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#ga15211644be347e181d22929e79ca6dbe">gavl_frame_table_save</a> (const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t, const char *filename)</td></tr>
<tr class="memdesc:ga15211644be347e181d22929e79ca6dbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save a frame table to a file.  <a href="#ga15211644be347e181d22929e79ca6dbe">More...</a><br /></td></tr>
<tr class="separator:ga15211644be347e181d22929e79ca6dbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab3603f0d360e636cdd502dc8420bc9da"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#gab3603f0d360e636cdd502dc8420bc9da">gavl_frame_table_load</a> (const char *filename)</td></tr>
<tr class="memdesc:gab3603f0d360e636cdd502dc8420bc9da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a frame table from a file.  <a href="#gab3603f0d360e636cdd502dc8420bc9da">More...</a><br /></td></tr>
<tr class="separator:gab3603f0d360e636cdd502dc8420bc9da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga593f1f9fe0089c5ce01f2fa3b6091110"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__frame__table.html#ga593f1f9fe0089c5ce01f2fa3b6091110">gavl_frame_table_dump</a> (const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *t)</td></tr>
<tr class="memdesc:ga593f1f9fe0089c5ce01f2fa3b6091110"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump a frame table to stderr for debugging.  <a href="#ga593f1f9fe0089c5ce01f2fa3b6091110">More...</a><br /></td></tr>
<tr class="separator:ga593f1f9fe0089c5ce01f2fa3b6091110"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>This is a table, which tolds the complete timing information of a video sequence. If is meant for e.g. for editing applications, where the complete timing must be known in advance.</p>
<p>A frame table is always associated with a <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a>, which must be passed to most functions. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gac265a8102f8c1cfd1a0a8e0d3cecd886"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac265a8102f8c1cfd1a0a8e0d3cecd886">&sect;&nbsp;</a></span>gavl_frame_table_create()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a>* gavl_frame_table_create </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a frame table. </p>
<dl class="section return"><dt>Returns</dt><dd>A newly allocated frame table</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="gad45a0e09687b1f0e33266578b8858a71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad45a0e09687b1f0e33266578b8858a71">&sect;&nbsp;</a></span>gavl_frame_table_create_audio()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a>* gavl_frame_table_create_audio </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>samplerate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>duration</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__timecode__format__t.html">gavl_timecode_format_t</a> *&#160;</td>
          <td class="paramname"><em>fmt_ret</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a frame table for an audio stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">samplerate</td><td>Samplerate for this stream </td></tr>
    <tr><td class="paramname">offset</td><td>PTS offset of this stream in samples </td></tr>
    <tr><td class="paramname">duration</td><td>Sample count </td></tr>
    <tr><td class="paramname">fmt_ret</td><td>If non-null, returns the timecode format </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A newly allocated frame table</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="gaaa2971ad8831bc68b144ef8259d6e9ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaa2971ad8831bc68b144ef8259d6e9ca">&sect;&nbsp;</a></span>gavl_frame_table_create_cfr()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a>* gavl_frame_table_create_cfr </td>
          <td>(</td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>frame_duration</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>num_frames</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__timecode.html#ga534f23baf96ee5cdabd99f1619672452">gavl_timecode_t</a>&#160;</td>
          <td class="paramname"><em>start_timecode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a frame table for constant framerate video. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">offset</td><td>Timestamp of the first frame </td></tr>
    <tr><td class="paramname">frame_duration</td><td>Duration of each frame </td></tr>
    <tr><td class="paramname">num_frames</td><td>Number of frames </td></tr>
    <tr><td class="paramname">start_timecode</td><td>Timecode of the first frame (or GAVL_TIMECODE_UNDEFINED) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A newly allocated frame table</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="ga39e058c40317cf21f0573d4cc282f202"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga39e058c40317cf21f0573d4cc282f202">&sect;&nbsp;</a></span>gavl_frame_table_copy()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a>* gavl_frame_table_copy </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>tab</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy a frame table to another. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">tab</td><td>A frame table </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A newly allocated copy</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="ga7d49000351213b69385a85ab2c7d24a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7d49000351213b69385a85ab2c7d24a8">&sect;&nbsp;</a></span>gavl_frame_table_destroy()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_frame_table_destroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destroy a frame table and free all memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>A frame table</td></tr>
  </table>
  </dd>
</dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="gaa3019fd2f14360c77724db64e6ea1500"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa3019fd2f14360c77724db64e6ea1500">&sect;&nbsp;</a></span>gavl_frame_table_append_entry()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_frame_table_append_entry </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>duration</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Append an entry. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>A frame table </td></tr>
    <tr><td class="paramname">duration</td><td>The duration of this frame</td></tr>
  </table>
  </dd>
</dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="gaca3eb0d8345f72af6e4966d12744388d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaca3eb0d8345f72af6e4966d12744388d">&sect;&nbsp;</a></span>gavl_frame_table_append_timecode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_frame_table_append_timecode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>pts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__timecode.html#ga534f23baf96ee5cdabd99f1619672452">gavl_timecode_t</a>&#160;</td>
          <td class="paramname"><em>tc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Append a timecodes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>A frame table </td></tr>
    <tr><td class="paramname">pts</td><td>Presentation time of that frame </td></tr>
    <tr><td class="paramname">tc</td><td>Timecode of that frame</td></tr>
  </table>
  </dd>
</dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="ga2cf755e56e4b50f0d3cc12db088aeca6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2cf755e56e4b50f0d3cc12db088aeca6">&sect;&nbsp;</a></span>gavl_frame_table_frame_to_time()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC int64_t gavl_frame_table_frame_to_time </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>frame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>duration</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert a frame index to a timestamp. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>A frame table </td></tr>
    <tr><td class="paramname">frame</td><td>Frame index (starting with zero) </td></tr>
    <tr><td class="paramname">duration</td><td>If non NULL, returns the duration of that frame </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The timestamp of that frame in video timescale or GAVL_TIME_UNDEFINED if such frame doesn't exist.</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="ga623a74c4ff943db7f1157d845c64beb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga623a74c4ff943db7f1157d845c64beb0">&sect;&nbsp;</a></span>gavl_frame_table_time_to_frame()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC int64_t gavl_frame_table_time_to_frame </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t *&#160;</td>
          <td class="paramname"><em>start_time</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert a timestamp to a frame index. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>A frame table </td></tr>
    <tr><td class="paramname">time</td><td>Time in stream timescale </td></tr>
    <tr><td class="paramname">start_time</td><td>If non NULL, returns the start time of that frame </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The index that frame (starting with 0) or -1 if such frame doesn't exist.</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="ga6069fd13db8bcb703d22827517c12b22"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6069fd13db8bcb703d22827517c12b22">&sect;&nbsp;</a></span>gavl_frame_table_time_to_timecode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC <a class="el" href="group__timecode.html#ga534f23baf96ee5cdabd99f1619672452">gavl_timecode_t</a> gavl_frame_table_time_to_timecode </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t *&#160;</td>
          <td class="paramname"><em>start_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__timecode__format__t.html">gavl_timecode_format_t</a> *&#160;</td>
          <td class="paramname"><em>fmt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert a timestamp to a timecode. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>A frame table </td></tr>
    <tr><td class="paramname">time</td><td>Time in stream timescale </td></tr>
    <tr><td class="paramname">start_time</td><td>If non NULL, returns the start time of that frame </td></tr>
    <tr><td class="paramname">fmt</td><td>Timecode format </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The interpolated timecode that frame or GAVL_TIMECODE_UNDEFINED if such frame doesn't exist.</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="gafba6d572126c3b946c96944a9824e401"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafba6d572126c3b946c96944a9824e401">&sect;&nbsp;</a></span>gavl_frame_table_timecode_to_time()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC int64_t gavl_frame_table_timecode_to_time </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__timecode.html#ga534f23baf96ee5cdabd99f1619672452">gavl_timecode_t</a>&#160;</td>
          <td class="paramname"><em>tc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__timecode__format__t.html">gavl_timecode_format_t</a> *&#160;</td>
          <td class="paramname"><em>fmt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert a timecode to a timestamp. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>A frame table </td></tr>
    <tr><td class="paramname">tc</td><td>Timecode </td></tr>
    <tr><td class="paramname">fmt</td><td>Timecode format </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The pts corresponding to that timecode or GAVL_TIME_UNDEFINED if such frame doesn't exist.</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="ga44b9d9c826a39027327d3347011aadb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga44b9d9c826a39027327d3347011aadb3">&sect;&nbsp;</a></span>gavl_frame_table_frame_to_timecode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC <a class="el" href="group__timecode.html#ga534f23baf96ee5cdabd99f1619672452">gavl_timecode_t</a> gavl_frame_table_frame_to_timecode </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>frame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t *&#160;</td>
          <td class="paramname"><em>start_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__timecode__format__t.html">gavl_timecode_format_t</a> *&#160;</td>
          <td class="paramname"><em>fmt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert a frame index to a timecode. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>A frame table </td></tr>
    <tr><td class="paramname">frame</td><td>Frame index </td></tr>
    <tr><td class="paramname">start_time</td><td>If non NULL, returns the start time of that frame </td></tr>
    <tr><td class="paramname">fmt</td><td>Timecode format </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The interpolated timecode that frame or GAVL_TIMECODE_UNDEFINED if such frame doesn't exist.</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="ga86b09c9a3a0537d3cbf31b33abe5beee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga86b09c9a3a0537d3cbf31b33abe5beee">&sect;&nbsp;</a></span>gavl_frame_table_num_frames()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC int64_t gavl_frame_table_num_frames </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get the total number of frames </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>A frame table </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The total number of frames</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="ga7bc7232a41f14c82d1af0c00cb4fe8bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7bc7232a41f14c82d1af0c00cb4fe8bb">&sect;&nbsp;</a></span>gavl_frame_table_duration()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC int64_t gavl_frame_table_duration </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get the total duration of all frames </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>A frame table </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Total duration</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="ga190ee3adfd6f512f11ef6c1f609443a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga190ee3adfd6f512f11ef6c1f609443a0">&sect;&nbsp;</a></span>gavl_frame_table_end_time()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC int64_t gavl_frame_table_end_time </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get the end time of the last frame </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>A frame table </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End time</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="ga15211644be347e181d22929e79ca6dbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga15211644be347e181d22929e79ca6dbe">&sect;&nbsp;</a></span>gavl_frame_table_save()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC int gavl_frame_table_save </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Save a frame table to a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>Tab frame table </td></tr>
    <tr><td class="paramname">filename</td><td>Filename </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on error</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="gab3603f0d360e636cdd502dc8420bc9da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab3603f0d360e636cdd502dc8420bc9da">&sect;&nbsp;</a></span>gavl_frame_table_load()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a>* gavl_frame_table_load </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load a frame table from a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>Filename </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The loaded frame table or NULL if an error occurred</dd></dl>
<p>Since 1.1.2. </p>

</div>
</div>
<a id="ga593f1f9fe0089c5ce01f2fa3b6091110"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga593f1f9fe0089c5ce01f2fa3b6091110">&sect;&nbsp;</a></span>gavl_frame_table_dump()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_frame_table_dump </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structgavl__frame__table__t.html">gavl_frame_table_t</a> *&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Dump a frame table to stderr for debugging. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>A frame table</td></tr>
  </table>
  </dd>
</dl>
<p>Since 1.1.2. </p>

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