<!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>liboggz: oggz_seek.h File Reference</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.2-20100208 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</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 class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div class="contents"> <h1>oggz_seek.h File Reference</h1> <p>Seeking within files. <a href="#_details">More...</a></p> <p><a href="oggz__seek_8h_source.html">Go to the source code of this file.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef ogg_int64_t(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#ga8803bb406015a32f5172902e3e4e76e8">OggzMetric</a> )(<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, ogg_int64_t granulepos, void *user_data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This is the signature of a function to correlate Ogg streams. <a href="group__metric.html#ga8803bb406015a32f5172902e3e4e76e8"></a><br/></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">ogg_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#ga2ec088fc5541ce9749ce63ccc162761f">oggz_tell_units</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Query the current offset in milliseconds, or custom units as specified by a Metric function you have provided. <a href="group__seek__api.html#ga2ec088fc5541ce9749ce63ccc162761f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">ogg_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#ga60bac88ef3695629efacec43a21927e5">oggz_seek_units</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, ogg_int64_t units, int whence)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Seek to an offset in milliseconds, or custom units as specified by a Metric function you have provided. <a href="group__seek__api.html#ga60bac88ef3695629efacec43a21927e5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">ogg_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#ga29181fb4e8f4e3629cb84810614acd30">oggz_tell_granulepos</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Provide the exact stored granulepos (from the page header) if relevant to the current packet, or a constructed granulepos if the stored granulepos does not belong to this packet, or -1 if this codec does not have support for granulepos interpolation. <a href="group__seek__api.html#ga29181fb4e8f4e3629cb84810614acd30"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="oggz__off__t__generated_8h.html#ae4d9c2528ce26af562d8ad958d738050">oggz_off_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#ga553fabfa03553669f79e37b28eb07ec6">oggz_tell</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Query the file offset in bytes corresponding to the data read. <a href="group__seek__api.html#ga553fabfa03553669f79e37b28eb07ec6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="oggz__off__t__generated_8h.html#ae4d9c2528ce26af562d8ad958d738050">oggz_off_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#gaeef4b261d443701207954e5a636d6817">oggz_seek</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, <a class="el" href="oggz__off__t__generated_8h.html#ae4d9c2528ce26af562d8ad958d738050">oggz_off_t</a> offset, int whence)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Seek to a specific byte offset. <a href="group__seek__api.html#gaeef4b261d443701207954e5a636d6817"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#gab411ab113d5f0f67bf77506724c25633">oggz_get_preroll</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the preroll of a logical bitstream. <a href="group__metric.html#gab411ab113d5f0f67bf77506724c25633"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#gaa2b4ab5be298a11b5b91147b76996c83">oggz_set_preroll</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, int preroll)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Specify the preroll of a logical bitstream. <a href="group__metric.html#gaa2b4ab5be298a11b5b91147b76996c83"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#gad9b55e525a6e0b994a133314fd78e2c0">oggz_get_granuleshift</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the granuleshift of a logical bitstream. <a href="group__metric.html#gad9b55e525a6e0b994a133314fd78e2c0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#ga7ca67e0344580bf1541b9fbde39d481b">oggz_set_granuleshift</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, int granuleshift)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Specify the granuleshift of a logical bitstream. <a href="group__metric.html#ga7ca67e0344580bf1541b9fbde39d481b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#ga72a9a24e6f8483986859d7697fa611b6">oggz_get_granulerate</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, ogg_int64_t *granulerate_n, ogg_int64_t *granulerate_d)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the granulerate of a logical bitstream. <a href="group__metric.html#ga72a9a24e6f8483986859d7697fa611b6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#gaa2a86ec590161bc2295a2c8e91cefa49">oggz_set_granulerate</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, ogg_int64_t granule_rate_numerator, ogg_int64_t granule_rate_denominator)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Specify the granulerate of a logical bitstream. <a href="group__metric.html#gaa2a86ec590161bc2295a2c8e91cefa49"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#ga5a630e8dcd04e1dd6601d8f56f0af3f6">oggz_set_metric</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, <a class="el" href="group__metric.html#ga8803bb406015a32f5172902e3e4e76e8">OggzMetric</a> metric, void *user_data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the OggzMetric to use for an OGGZ handle. <a href="group__metric.html#ga5a630e8dcd04e1dd6601d8f56f0af3f6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#gaaec9a54e9b231797d245042ce23b619a">oggz_set_data_start</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, <a class="el" href="oggz__off__t__generated_8h.html#ae4d9c2528ce26af562d8ad958d738050">oggz_off_t</a> offset)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Tell Oggz to remember the given offset as the start of data. <a href="group__metric.html#gaaec9a54e9b231797d245042ce23b619a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">ogg_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__seek_8h.html#a116cf4ae056573ab69b1161671ff6c59">oggz_bounded_seek_set</a> (<a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, ogg_int64_t unit_target, ogg_int64_t offset_begin, ogg_int64_t offset_end)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Seeks Oggz to time unit_target, but with the bounds of the offset range [offset_begin, offset_end]. <a href="#a116cf4ae056573ab69b1161671ff6c59"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Seeking within files. </p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a116cf4ae056573ab69b1161671ff6c59"></a><!-- doxytag: member="oggz_seek.h::oggz_bounded_seek_set" ref="a116cf4ae056573ab69b1161671ff6c59" args="(OGGZ *oggz, ogg_int64_t unit_target, ogg_int64_t offset_begin, ogg_int64_t offset_end)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ogg_int64_t oggz_bounded_seek_set </td> <td>(</td> <td class="paramtype"><a class="el" href="oggz_8h.html#a672d218df13da45a4b41d5366211bfee">OGGZ</a> * </td> <td class="paramname"> <em>oggz</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">ogg_int64_t </td> <td class="paramname"> <em>unit_target</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">ogg_int64_t </td> <td class="paramname"> <em>offset_begin</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">ogg_int64_t </td> <td class="paramname"> <em>offset_end</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Seeks Oggz to time unit_target, but with the bounds of the offset range [offset_begin, offset_end]. </p> <p>This is useful when seeking in network streams where only parts of a media are buffered, and retrieving unbuffered parts is expensive. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>oggz</em> </td><td>An OGGZ handle previously opened for reading </td></tr> <tr><td valign="top"></td><td valign="top"><em>unit_target</em> </td><td>The seek target, in milliseconds, or custom units </td></tr> <tr><td valign="top"></td><td valign="top"><em>offset_begin</em> </td><td>Start of offset range to seek inside, in bytes </td></tr> <tr><td valign="top"></td><td valign="top"><em>offset_end</em> </td><td>End of offset range to seek inside, in bytes, pass -1 for end of media </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The new position, in milliseconds or custom units </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>-1</em> </td><td>on failure (unit_target is not within range) </td></tr> </table> </dd> </dl> </div> </div> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>