<html>

<head>
<title>libogg - function - ogg_sync_pageseek</title>
<link rel=stylesheet href="style.css" type="text/css">
</head>

<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
<table border=0 width=100%>
<tr>
<td><p class=tiny>libogg documentation</p></td>
<td align=right><p class=tiny>libogg release 1.3.3 - 20171107</p></td>
</tr>
</table>

<h1>ogg_sync_pageseek</h1>

<p><i>declared in "ogg/ogg.h";</i></p>

<p>This function synchronizes the ogg_sync_state struct to the next ogg_page.  
 <p>This is useful when seeking within a bitstream.  ogg_sync_pageseek will synchronize to the next page in the bitstream and return information about how many bytes we advanced or skipped in order to do so.

<br><br>
<table border=0 color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
	<td>
<pre><b>
int ogg_sync_pageseek(<a href="ogg_sync_state.html">ogg_sync_state</a> *oy, <a href="ogg_page.html">ogg_page</a> *og);
</b></pre>
	</td>
</tr>
</table>

<h3>Parameters</h3>
<dl>
<dt><i>oy</i></dt>
<dd>Pointer to a previously declared <a href="ogg_sync_state.html">ogg_sync_state</a> struct.</dd>
<dt><i>og</i></dt>
<dd>Pointer to a page (or an incomplete page) of data.  This is the page we are attempting to sync.
</dl>


<h3>Return Values</h3>
<blockquote>
<li>-n means that we skipped n bytes within the bitstream.</li>
<li>
0 means that the page isn't ready and we need more data, or than an internal error occurred.  No bytes have been skipped.</li>
<li>
n means that the page was synced at the current location, with a page length of n bytes.
</blockquote>
<p>

<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2017 Xiph.Org Foundation</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/">Ogg Container Format</a></p></td>
</tr><tr>
<td><p class=tiny>libogg documentation</p></td>
<td align=right><p class=tiny>libogg release 1.3.3 - 20171107</p></td>
</tr>
</table>


</body>

</html>
