[xiph-commits] r15933 - in websites/xiph.org/oggz: . doc

conrad at svn.xiph.org conrad at svn.xiph.org
Thu Apr 9 19:10:57 PDT 2009


Author: conrad
Date: 2009-04-09 19:10:55 -0700 (Thu, 09 Apr 2009)
New Revision: 15933

Added:
   websites/xiph.org/oggz/doc/
   websites/xiph.org/oggz/doc/annotated.html
   websites/xiph.org/oggz/doc/doxygen.css
   websites/xiph.org/oggz/doc/doxygen.png
   websites/xiph.org/oggz/doc/files.html
   websites/xiph.org/oggz/doc/functions.html
   websites/xiph.org/oggz/doc/functions_vars.html
   websites/xiph.org/oggz/doc/globals.html
   websites/xiph.org/oggz/doc/globals_defs.html
   websites/xiph.org/oggz/doc/globals_enum.html
   websites/xiph.org/oggz/doc/globals_eval.html
   websites/xiph.org/oggz/doc/globals_func.html
   websites/xiph.org/oggz/doc/globals_type.html
   websites/xiph.org/oggz/doc/group__basics.html
   websites/xiph.org/oggz/doc/group__building.html
   websites/xiph.org/oggz/doc/group__configuration.html
   websites/xiph.org/oggz/doc/group__force__feed.html
   websites/xiph.org/oggz/doc/group__hungry.html
   websites/xiph.org/oggz/doc/group__install.html
   websites/xiph.org/oggz/doc/group__metric.html
   websites/xiph.org/oggz/doc/group__read__api.html
   websites/xiph.org/oggz/doc/group__seek__api.html
   websites/xiph.org/oggz/doc/group__seek__semantics.html
   websites/xiph.org/oggz/doc/group__write__api.html
   websites/xiph.org/oggz/doc/index.html
   websites/xiph.org/oggz/doc/modules.html
   websites/xiph.org/oggz/doc/oggz_8h-source.html
   websites/xiph.org/oggz/doc/oggz_8h.html
   websites/xiph.org/oggz/doc/oggz__comments_8h-source.html
   websites/xiph.org/oggz/doc/oggz__comments_8h.html
   websites/xiph.org/oggz/doc/oggz__constants_8h-source.html
   websites/xiph.org/oggz/doc/oggz__constants_8h.html
   websites/xiph.org/oggz/doc/oggz__deprecated_8h-source.html
   websites/xiph.org/oggz/doc/oggz__deprecated_8h.html
   websites/xiph.org/oggz/doc/oggz__io_8h-source.html
   websites/xiph.org/oggz/doc/oggz__io_8h.html
   websites/xiph.org/oggz/doc/oggz__off__t_8h-source.html
   websites/xiph.org/oggz/doc/oggz__off__t_8h.html
   websites/xiph.org/oggz/doc/oggz__read_8h-source.html
   websites/xiph.org/oggz/doc/oggz__read_8h.html
   websites/xiph.org/oggz/doc/oggz__seek_8h-source.html
   websites/xiph.org/oggz/doc/oggz__seek_8h.html
   websites/xiph.org/oggz/doc/oggz__stream_8h-source.html
   websites/xiph.org/oggz/doc/oggz__stream_8h.html
   websites/xiph.org/oggz/doc/oggz__table_8h-source.html
   websites/xiph.org/oggz/doc/oggz__table_8h.html
   websites/xiph.org/oggz/doc/oggz__write_8h-source.html
   websites/xiph.org/oggz/doc/oggz__write_8h.html
   websites/xiph.org/oggz/doc/structOggzComment.html
   websites/xiph.org/oggz/doc/tab_b.gif
   websites/xiph.org/oggz/doc/tab_l.gif
   websites/xiph.org/oggz/doc/tab_r.gif
   websites/xiph.org/oggz/doc/tabs.css
Log:
add liboggz Doxygen docs

Added: websites/xiph.org/oggz/doc/annotated.html
===================================================================
--- websites/xiph.org/oggz/doc/annotated.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/annotated.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Data Structures</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Data Structures</h1>Here are the data structures with brief descriptions:<table>
+  <tr><td class="indexkey"><a class="el" href="structOggzComment.html">OggzComment</a></td><td class="indexvalue">A comment </td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/doxygen.css
===================================================================
--- websites/xiph.org/oggz/doc/doxygen.css	                        (rev 0)
+++ websites/xiph.org/oggz/doc/doxygen.css	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,473 @@
+BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
+	font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+BODY,TD {
+	font-size: 90%;
+}
+H1 {
+	text-align: center;
+	font-size: 160%;
+}
+H2 {
+	font-size: 120%;
+}
+H3 {
+	font-size: 100%;
+}
+CAPTION { 
+	font-weight: bold 
+}
+DIV.qindex {
+	width: 100%;
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+	line-height: 140%;
+}
+DIV.navpath {
+	width: 100%;
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+	line-height: 140%;
+}
+DIV.navtab {
+       background-color: #e8eef2;
+       border: 1px solid #84b0c7;
+       text-align: center;
+       margin: 2px;
+       margin-right: 15px;
+       padding: 2px;
+}
+TD.navtab {
+       font-size: 70%;
+}
+A.qindex {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D;
+}
+A.qindex:visited {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D
+}
+A.qindex:hover {
+	text-decoration: none;
+	background-color: #ddddff;
+}
+A.qindexHL {
+	text-decoration: none;
+	font-weight: bold;
+	background-color: #6666cc;
+	color: #ffffff;
+	border: 1px double #9295C2;
+}
+A.qindexHL:hover {
+	text-decoration: none;
+	background-color: #6666cc;
+	color: #ffffff;
+}
+A.qindexHL:visited { 
+	text-decoration: none; 
+	background-color: #6666cc; 
+	color: #ffffff 
+}
+A.el { 
+	text-decoration: none; 
+	font-weight: bold 
+}
+A.elRef { 
+	font-weight: bold 
+}
+A.code:link { 
+	text-decoration: none; 
+	font-weight: normal; 
+	color: #0000FF
+}
+A.code:visited { 
+	text-decoration: none; 
+	font-weight: normal; 
+	color: #0000FF
+}
+A.codeRef:link { 
+	font-weight: normal; 
+	color: #0000FF
+}
+A.codeRef:visited { 
+	font-weight: normal; 
+	color: #0000FF
+}
+A:hover { 
+	text-decoration: none; 	
+	background-color: #f2f2ff 
+}
+DL.el { 
+	margin-left: -1cm 
+}
+.fragment {
+       font-family: monospace, fixed;
+       font-size: 95%;
+}
+PRE.fragment {
+	border: 1px solid #CCCCCC;
+	background-color: #f5f5f5;
+	margin-top: 4px;
+	margin-bottom: 4px;
+	margin-left: 2px;
+	margin-right: 8px;
+	padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 4px;
+	padding-bottom: 4px;
+}
+DIV.ah { 
+	background-color: black; 
+	font-weight: bold; 
+	color: #ffffff; 
+	margin-bottom: 3px; 
+	margin-top: 3px 
+}
+
+DIV.groupHeader {
+       margin-left: 16px;
+       margin-top: 12px;
+       margin-bottom: 6px;
+       font-weight: bold;
+}
+DIV.groupText { 
+	margin-left: 16px; 
+	font-style: italic; 
+	font-size: 90% 
+}
+BODY {
+	background: white;
+	color: black;
+	margin-right: 20px;
+	margin-left: 20px;
+}
+TD.indexkey {
+	background-color: #e8eef2;
+	font-weight: bold;
+	padding-right  : 10px;
+	padding-top    : 2px;
+	padding-left   : 10px;
+	padding-bottom : 2px;
+	margin-left    : 0px;
+	margin-right   : 0px;
+	margin-top     : 2px;
+	margin-bottom  : 2px;
+	border: 1px solid #CCCCCC;
+}
+TD.indexvalue {
+	background-color: #e8eef2;
+	font-style: italic;
+	padding-right  : 10px;
+	padding-top    : 2px;
+	padding-left   : 10px;
+	padding-bottom : 2px;
+	margin-left    : 0px;
+	margin-right   : 0px;
+	margin-top     : 2px;
+	margin-bottom  : 2px;
+	border: 1px solid #CCCCCC;
+}
+TR.memlist {
+	background-color: #f0f0f0; 
+}
+P.formulaDsp { 
+	text-align: center; 
+}
+IMG.formulaDsp {
+}
+IMG.formulaInl { 
+	vertical-align: middle; 
+}
+SPAN.keyword       { color: #008000 }
+SPAN.keywordtype   { color: #604020 }
+SPAN.keywordflow   { color: #e08000 }
+SPAN.comment       { color: #800000 }
+SPAN.preprocessor  { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral   { color: #008080 }
+SPAN.vhdldigit     { color: #ff00ff }
+SPAN.vhdlchar      { color: #000000 }
+SPAN.vhdlkeyword   { color: #700070 }
+SPAN.vhdllogic     { color: #ff0000 }
+
+.mdescLeft {
+	padding: 0px 8px 4px 8px;
+	font-size: 80%;
+	font-style: italic;
+	background-color: #FAFAFA;
+	border-top: 1px none #E0E0E0;
+	border-right: 1px none #E0E0E0;
+	border-bottom: 1px none #E0E0E0;
+	border-left: 1px none #E0E0E0;
+	margin: 0px;
+}
+.mdescRight {
+        padding: 0px 8px 4px 8px;
+	font-size: 80%;
+	font-style: italic;
+	background-color: #FAFAFA;
+	border-top: 1px none #E0E0E0;
+	border-right: 1px none #E0E0E0;
+	border-bottom: 1px none #E0E0E0;
+	border-left: 1px none #E0E0E0;
+	margin: 0px;
+}
+.memItemLeft {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memItemRight {
+	padding: 1px 8px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memTemplItemLeft {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: none;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memTemplItemRight {
+	padding: 1px 8px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: none;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memTemplParams {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	color: #606060;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.search { 
+	color: #003399;
+	font-weight: bold;
+}
+FORM.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+INPUT.search { 
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+TD.tiny { 
+	font-size: 75%;
+}
+a {
+	color: #1A41A8;
+}
+a:visited {
+	color: #2A3798;
+}
+.dirtab { 
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #84b0c7;
+}
+TH.dirtab { 
+	background: #e8eef2;
+	font-weight: bold;
+}
+HR { 
+	height: 1px;
+	border: none;
+	border-top: 1px solid black;
+}
+
+/* Style for detailed member documentation */
+.memtemplate {
+	font-size: 80%;
+	color: #606060;
+	font-weight: normal;
+	margin-left: 3px;
+} 
+.memnav { 
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+.memitem {
+	padding: 4px;
+	background-color: #eef3f5;
+	border-width: 1px;
+	border-style: solid;
+	border-color: #dedeee;
+	-moz-border-radius: 8px 8px 8px 8px;
+}
+.memname {
+	white-space: nowrap;
+	font-weight: bold;
+}
+.memdoc{
+	padding-left: 10px;
+}
+.memproto {
+	background-color: #d5e1e8;
+	width: 100%;
+	border-width: 1px;
+	border-style: solid;
+	border-color: #84b0c7;
+	font-weight: bold;
+	-moz-border-radius: 8px 8px 8px 8px;
+}
+.paramkey {
+	text-align: right;
+}
+.paramtype {
+	white-space: nowrap;
+}
+.paramname {
+	color: #602020;
+	font-style: italic;
+	white-space: nowrap;
+}
+/* End Styling for detailed member documentation */
+
+/* for the tree view */
+.ftvtree {
+	font-family: sans-serif;
+	margin:0.5em;
+}
+/* these are for tree view when used as main index */
+.directory { 
+	font-size: 9pt; 
+	font-weight: bold; 
+}
+.directory h3 { 
+	margin: 0px; 
+	margin-top: 1em; 
+	font-size: 11pt; 
+}
+
+/* The following two styles can be used to replace the root node title */
+/* with an image of your choice.  Simply uncomment the next two styles, */
+/* specify the name of your image and be sure to set 'height' to the */
+/* proper pixel height of your image. */
+
+/* .directory h3.swap { */
+/* 	height: 61px; */
+/* 	background-repeat: no-repeat; */
+/* 	background-image: url("yourimage.gif"); */
+/* } */
+/* .directory h3.swap span { */
+/* 	display: none; */
+/* } */
+
+.directory > h3 { 
+	margin-top: 0; 
+}
+.directory p { 
+	margin: 0px; 
+	white-space: nowrap; 
+}
+.directory div { 
+	display: none; 
+	margin: 0px; 
+}
+.directory img { 
+	vertical-align: -30%; 
+}
+/* these are for tree view when not used as main index */
+.directory-alt { 
+	font-size: 100%; 
+	font-weight: bold; 
+}
+.directory-alt h3 { 
+	margin: 0px; 
+	margin-top: 1em; 
+	font-size: 11pt; 
+}
+.directory-alt > h3 { 
+	margin-top: 0; 
+}
+.directory-alt p { 
+	margin: 0px; 
+	white-space: nowrap; 
+}
+.directory-alt div { 
+	display: none; 
+	margin: 0px; 
+}
+.directory-alt img { 
+	vertical-align: -30%; 
+}
+

Added: websites/xiph.org/oggz/doc/doxygen.png
===================================================================
--- websites/xiph.org/oggz/doc/doxygen.png	                        (rev 0)
+++ websites/xiph.org/oggz/doc/doxygen.png	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,10 @@
+‰PNG
+
+   
+IHDR   d   -   ok>   gAMA  ÖØÔOX2   tEXtSoftware Adobe ImageReadyqÉe<   ]PLTE   ǾÏ"&©ÈÎﶻÖÓÚú“¢Þ ¬à¶Âõ‡§ÕÙêÉÊÎáâæ{ŽÔ¡ëˆ™× ²ø§¬¹ÀÀ±ÝÝÎùùéõõçëëåED9×ÖËhg]_X<@:#mhUÿÿÿÝÀ1   tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Ív  ÿIDATxÚbC £:  d#„„………h`	@ ¡X",***LK ˆ.– ], ºX@t± €èb	@ ÑÅ€ BµD„6– š%""´° €˜%ˆ™B:H¢ˆ²Áf@•  ˆRPy"K`\PbC(!II!h©…ëƒ(ñ„Ä!ꈬC„Ä…àl!0[X\J\$TMˆ(’>a$S„Ù@Ш@R.$‚¬LJBR¢‰AÌG1
+¬Â(FȃÔPhhÁTÀ¢„%!`€&q°%uÂP ¹¢¬ € ¹CT$B¢à|‚ºW„¤Àl £!B`R$(…Ĉ‘’ž@ AÅ%ĤÄ%@,(—Ê‚Ú±%$ÁââRPmB U`1IˆYB 99€ \1  yCCCÿf"[N ' Ü=TGÈ’øl8˜^Kû5<êSæRɤ”%î@@ à›Ê
+b1 qÅAXHˆ¸&ØB’R y	n˜P„Ìã– 4A €€j¹€€>Ü ˜t!˜+(.ÈÅWQ±A2ÜÜMUÜ‚’’‚‚â`1 %`19€ F<3cZÄ`óe!\ˆ DÈ+.83‹³Àä¸!lYYA -6‚EJŠ¢V €@©žXXX 4„å
+Ê@86Ð`RdB´€4I	"Ý	"–@xr ÊŒ‚H€AÊ`—f	ÉÈ°CŒ"X V0ɲ³Cb at 2…¬H
+¬È“ p)!( ì‚ 0Ž4ˆ)(%RÁÎ	¶$€T Ê€¥Àþb‡b,sä Ð@7 À üÑ°‚Òî?f¥Ö—\PIx!I´¦"”Èˆ’3¨
+QY˜ÿt^^ÛØgv- }>W JOAV`$&#”¦8ùøø8€\FF ›SFJ$ÂÆ€ÐÆŠÐ¡ä ˆ‰ÀÀ4ª…Èäå	 -Á§‡ €H²…—ŸŸŸf	?ðâ5„ €k1 d‰,ŒÃ	³ƒ“€.€ "­F™ËË€àñ‚½ÁIÈ€ "±Ù 4ÉH gx|‚f ©m)))9´.
+aM Dƒ&  ºX@t± €èb	@ ÑÅ€ ¢‹% DK ˆ.– ], ºX@t± €èb	@€ d`‚ɽSµO    IEND®B`‚
\ No newline at end of file

Added: websites/xiph.org/oggz/doc/files.html
===================================================================
--- websites/xiph.org/oggz/doc/files.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/files.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: File Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>File List</h1>Here is a list of all documented files with brief descriptions:<table>
+  <tr><td class="indexkey"><a class="el" href="oggz_8h.html">oggz.h</a> <a href="oggz_8h-source.html">[code]</a></td><td class="indexvalue">The liboggz C API </td></tr>
+  <tr><td class="indexkey"><a class="el" href="oggz__comments_8h.html">oggz_comments.h</a> <a href="oggz__comments_8h-source.html">[code]</a></td><td class="indexvalue">Reading of comments </td></tr>
+  <tr><td class="indexkey"><a class="el" href="oggz__constants_8h.html">oggz_constants.h</a> <a href="oggz__constants_8h-source.html">[code]</a></td><td class="indexvalue">General constants used by liboggz </td></tr>
+  <tr><td class="indexkey"><a class="el" href="oggz__deprecated_8h.html">oggz_deprecated.h</a> <a href="oggz__deprecated_8h-source.html">[code]</a></td><td class="indexvalue">Deprecated interfaces </td></tr>
+  <tr><td class="indexkey"><a class="el" href="oggz__io_8h.html">oggz_io.h</a> <a href="oggz__io_8h-source.html">[code]</a></td><td class="indexvalue">Overriding the functions used for input and output of raw data </td></tr>
+  <tr><td class="indexkey"><a class="el" href="oggz__off__t_8h.html">oggz_off_t.h</a> <a href="oggz__off__t_8h-source.html">[code]</a></td><td class="indexvalue">Architecture-dependent type and printf format for file position </td></tr>
+  <tr><td class="indexkey"><a class="el" href="oggz__read_8h.html">oggz_read.h</a> <a href="oggz__read_8h-source.html">[code]</a></td><td class="indexvalue">Interfaces for reading Ogg files and streams </td></tr>
+  <tr><td class="indexkey"><a class="el" href="oggz__seek_8h.html">oggz_seek.h</a> <a href="oggz__seek_8h-source.html">[code]</a></td><td class="indexvalue">Seeking within files </td></tr>
+  <tr><td class="indexkey"><a class="el" href="oggz__stream_8h.html">oggz_stream.h</a> <a href="oggz__stream_8h-source.html">[code]</a></td><td class="indexvalue">Interfaces for querying Ogg streams </td></tr>
+  <tr><td class="indexkey"><a class="el" href="oggz__table_8h.html">oggz_table.h</a> <a href="oggz__table_8h-source.html">[code]</a></td><td class="indexvalue">A lookup table </td></tr>
+  <tr><td class="indexkey"><a class="el" href="oggz__write_8h.html">oggz_write.h</a> <a href="oggz__write_8h-source.html">[code]</a></td><td class="indexvalue">Interfaces for writing Ogg files and streams </td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/functions.html
===================================================================
--- websites/xiph.org/oggz/doc/functions.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/functions.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+<p>
+<ul>
+<li>name
+: <a class="el" href="structOggzComment.html#f1b4e3c3e42e17054b6164bbdee5a37f">OggzComment</a>
+<li>value
+: <a class="el" href="structOggzComment.html#e300da8b29b69ea083b47035e944f9bb">OggzComment</a>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/functions_vars.html
===================================================================
--- websites/xiph.org/oggz/doc/functions_vars.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/functions_vars.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Data Fields - Variables</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>name
+: <a class="el" href="structOggzComment.html#f1b4e3c3e42e17054b6164bbdee5a37f">OggzComment</a>
+<li>value
+: <a class="el" href="structOggzComment.html#e300da8b29b69ea083b47035e944f9bb">OggzComment</a>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/globals.html
===================================================================
--- websites/xiph.org/oggz/doc/globals.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/globals.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,300 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;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&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="#index_o"><span>o</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+<p>
+<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
+<li>OGGZ
+: <a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">oggz.h</a>
+<li>OGGZ_AUTO
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3f5b915c8762126bff52a0499745d1732">oggz_constants.h</a>
+<li>oggz_close()
+: <a class="el" href="oggz_8h.html#adcfc04b2930660710bbcbc93140b783">oggz.h</a>
+<li>oggz_comment_add()
+: <a class="el" href="oggz__comments_8h.html#de23081a738d67bec473bdaf317a68d8">oggz_comments.h</a>
+<li>oggz_comment_add_byname()
+: <a class="el" href="oggz__comments_8h.html#d869a8a7246567ba4162183436127a6f">oggz_comments.h</a>
+<li>oggz_comment_first()
+: <a class="el" href="oggz__comments_8h.html#306a979d84b61932930d44ea5d4f95d9">oggz_comments.h</a>
+<li>oggz_comment_first_byname()
+: <a class="el" href="oggz__comments_8h.html#9a3a72be012b6474a1e1d95f7ce7afe8">oggz_comments.h</a>
+<li>oggz_comment_generate()
+: <a class="el" href="oggz__deprecated_8h.html#ab908fe161372aceb99f98a3be54ead5">oggz_deprecated.h</a>
+<li>oggz_comment_get_vendor()
+: <a class="el" href="oggz__comments_8h.html#e5d522df5fce262953d8bb5cb8c00b00">oggz_comments.h</a>
+<li>oggz_comment_next()
+: <a class="el" href="oggz__comments_8h.html#9501d8c166187c8d503e1335827b2d5e">oggz_comments.h</a>
+<li>oggz_comment_next_byname()
+: <a class="el" href="oggz__comments_8h.html#1dd05e02a121ba639b8012acaa21a37c">oggz_comments.h</a>
+<li>oggz_comment_remove()
+: <a class="el" href="oggz__comments_8h.html#75ca47a020dcddce846a320481120a8e">oggz_comments.h</a>
+<li>oggz_comment_remove_byname()
+: <a class="el" href="oggz__comments_8h.html#a0f3f3a3ea3ca28d8678b94495634876">oggz_comments.h</a>
+<li>oggz_comment_set_vendor()
+: <a class="el" href="oggz__comments_8h.html#281a0956a9a160337f7d00f102d18131">oggz_comments.h</a>
+<li>oggz_comments_generate()
+: <a class="el" href="oggz__comments_8h.html#1ee69481fa517d80e63db962a23d53ae">oggz_comments.h</a>
+<li>oggz_content_type()
+: <a class="el" href="oggz_8h.html#b1b16dec307b6544b5f82a60a14c8518">oggz.h</a>
+<li>OGGZ_CONTINUE
+: <a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5fff5242099c219d1330ddd861585cc3bf3">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_B_O_S
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e82a9669e837d20e2fb392c9f1f5eb960">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_BYTES
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ecf1a748ac6d70d304c193ac4d8a0142a">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_E_O_S
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ee2352f40f9376e4b9dc234db18a93798">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_GRANULEPOS
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9d49be12111ae95d12252528496a88a7">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_GUARD
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e57d5c64dce5d60f559e13dbe3e3c1c22">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_METRIC
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e82714dc1b1505af8e373c2b877ce0a04">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_OGGZ
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e195b205e2a10b746a9426da0d8fd22f6">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_PACKETNO
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e5e0116f755d019616406ac341f1f6e98">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_SERIALNO
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ed19554f4b1f544a1b575664b4a38694d">oggz_constants.h</a>
+<li>OGGZ_ERR_BOS
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ec447250ac1367c84c875df0d01b70661">oggz_constants.h</a>
+<li>OGGZ_ERR_COMMENT_INVALID
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ed27c93cddea5ddaeaf168426f14833de">oggz_constants.h</a>
+<li>OGGZ_ERR_DISABLED
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e77029ff6686a406f966209f78f62c3ff">oggz_constants.h</a>
+<li>OGGZ_ERR_EOS
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83efb09184b514aee32f1b512937fa618e0">oggz_constants.h</a>
+<li>OGGZ_ERR_GENERIC
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9cb5d186a7de1c24f0b72894ebc9886b">oggz_constants.h</a>
+<li>OGGZ_ERR_HOLE_IN_DATA
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83eed1eccb86408055f065009e64b88a7d4">oggz_constants.h</a>
+<li>OGGZ_ERR_INVALID
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83edcd2c8d2d0624da6b5faa5c26fc87628">oggz_constants.h</a>
+<li>OGGZ_ERR_IO_AGAIN
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83eb837c50e1cd4b858c02e1f89842bd134">oggz_constants.h</a>
+<li>OGGZ_ERR_NO_STREAMS
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83efd7a0ff230f3892aae44a8003203afd7">oggz_constants.h</a>
+<li>OGGZ_ERR_NOSEEK
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e761cede14a1d709ea722b607c59723ed">oggz_constants.h</a>
+<li>OGGZ_ERR_OK
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9c2ac780c03b38ba06e9ffe9c7f95a08">oggz_constants.h</a>
+<li>OGGZ_ERR_OUT_OF_MEMORY
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e3edc55802c7a9052f14608b9c101b92c">oggz_constants.h</a>
+<li>OGGZ_ERR_READ_STOP_ERR
+: <a class="el" href="oggz__deprecated_8h.html#7fb3e5030a672e6ecfd8e8e6bf57fdfa">oggz_deprecated.h</a>
+<li>OGGZ_ERR_READ_STOP_OK
+: <a class="el" href="oggz__deprecated_8h.html#0d9b4d212038e72fb45d751fe750d3cf">oggz_deprecated.h</a>
+<li>OGGZ_ERR_RECURSIVE_WRITE
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e8f0a11d443e4bf9f89a2cc4d44548081">oggz_constants.h</a>
+<li>OGGZ_ERR_STOP_ERR
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e59dffeb8be96b2ac026735f7e5bb8a2a">oggz_constants.h</a>
+<li>OGGZ_ERR_STOP_OK
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e5f9bde92dc6e7cc407e52e5dd61fdbf4">oggz_constants.h</a>
+<li>OGGZ_ERR_SYSTEM
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e607f17c9c37f2d5c40d1ed55cb1d7e17">oggz_constants.h</a>
+<li>OGGZ_ERR_USER_STOPPED
+: <a class="el" href="oggz__deprecated_8h.html#aa24ef96507165b2c5e1ac4108d59288">oggz_deprecated.h</a>
+<li>oggz_flush()
+: <a class="el" href="oggz_8h.html#8090c7e886af90dbea4dd5df8035dbf3">oggz.h</a>
+<li>OGGZ_FLUSH_AFTER
+: <a class="el" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c84723742efb730f40edcdb0dfdb8a6294619c4">oggz_constants.h</a>
+<li>OGGZ_FLUSH_BEFORE
+: <a class="el" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c8472379dc1d61b8f27fe00ba9d0a8005a9bcfb">oggz_constants.h</a>
+<li>oggz_get_bos()
+: <a class="el" href="oggz_8h.html#357244f9e73d219015d9ce8260ee08d3">oggz.h</a>
+<li>oggz_get_eos()
+: <a class="el" href="oggz_8h.html#ee6a754e123ec0fd347d1ed0d4d4b3b7">oggz.h</a>
+<li>oggz_get_granulerate()
+: <a class="el" href="group__metric.html#g72a9a24e6f8483986859d7697fa611b6">oggz_seek.h</a>
+<li>oggz_get_granuleshift()
+: <a class="el" href="group__metric.html#gd9b55e525a6e0b994a133314fd78e2c0">oggz_seek.h</a>
+<li>oggz_get_numtracks()
+: <a class="el" href="oggz_8h.html#0dd3be49fc94531e35546318c14b64e7">oggz.h</a>
+<li>oggz_get_preroll()
+: <a class="el" href="group__metric.html#gb411ab113d5f0f67bf77506724c25633">oggz_seek.h</a>
+<li>oggz_io_get_flush_user_handle()
+: <a class="el" href="oggz__io_8h.html#6150bee0cc28c68553bdcc6d020f6932">oggz_io.h</a>
+<li>oggz_io_get_read_user_handle()
+: <a class="el" href="oggz__io_8h.html#f5bbd37e9a390e3c282fdc8bfadc43f6">oggz_io.h</a>
+<li>oggz_io_get_seek_user_handle()
+: <a class="el" href="oggz__io_8h.html#718ea817110f0d94d9d6f3a457707a08">oggz_io.h</a>
+<li>oggz_io_get_tell_user_handle()
+: <a class="el" href="oggz__io_8h.html#54b69e5159280c1224025df925e67b50">oggz_io.h</a>
+<li>oggz_io_get_write_user_handle()
+: <a class="el" href="oggz__io_8h.html#024a62f080f1b64c465b0bf475ebfd2e">oggz_io.h</a>
+<li>oggz_io_set_flush()
+: <a class="el" href="oggz__io_8h.html#f45a2d33c7e17d1b64f794b32d69e7da">oggz_io.h</a>
+<li>oggz_io_set_read()
+: <a class="el" href="oggz__io_8h.html#640ecb60fcee9323f1f735ad23f7abc4">oggz_io.h</a>
+<li>oggz_io_set_seek()
+: <a class="el" href="oggz__io_8h.html#8482fb0783df2621e811c14d642b01fc">oggz_io.h</a>
+<li>oggz_io_set_tell()
+: <a class="el" href="oggz__io_8h.html#d97da84267d72ab9abf8dbb9ff5e8931">oggz_io.h</a>
+<li>oggz_io_set_write()
+: <a class="el" href="oggz__io_8h.html#f92f5b20bb5f247b5302dfc8b4edfbee">oggz_io.h</a>
+<li>oggz_new()
+: <a class="el" href="oggz_8h.html#6eb34d123389ae38d993601f9e7bb9d6">oggz.h</a>
+<li>OGGZ_NONSTRICT
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd324e9b4267730b726756241d7de2e8cf2">oggz_constants.h</a>
+<li>oggz_open()
+: <a class="el" href="oggz_8h.html#65197cdd03f755f7ebfabf2fdff4c7db">oggz.h</a>
+<li>oggz_open_stdio()
+: <a class="el" href="oggz_8h.html#c49e9de0bc4ef1d91b43b13605f98b19">oggz.h</a>
+<li>oggz_packet_destroy()
+: <a class="el" href="oggz__comments_8h.html#9301332e99b0397cff54c3593595b809">oggz_comments.h</a>
+<li>OGGZ_PREFIX
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3cb0fc6d8842462d7a1624c3312c299fb">oggz_constants.h</a>
+<li>oggz_purge()
+: <a class="el" href="oggz__read_8h.html#df606e6641a7d59eff2030b7b9ce51f8">oggz_read.h</a>
+<li>OGGZ_READ
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd395bd4a2b27d6e9e119ee11a7c5c26c50">oggz_constants.h</a>
+<li>oggz_read()
+: <a class="el" href="group__read__api.html#g3ce7a31de5da56375057436c6b5108f2">oggz_read.h</a>
+<li>oggz_read_input()
+: <a class="el" href="group__read__api.html#g77d4158dd119f496f73311ace7f630d6">oggz_read.h</a>
+<li>oggz_run()
+: <a class="el" href="oggz_8h.html#0561df532fc37f98725007a79f898356">oggz.h</a>
+<li>oggz_run_set_blocksize()
+: <a class="el" href="oggz_8h.html#d500c8ed7147f7fb1ddc6c915a6c10d7">oggz.h</a>
+<li>oggz_seek()
+: <a class="el" href="group__seek__api.html#geef4b261d443701207954e5a636d6817">oggz_seek.h</a>
+<li>oggz_seek_units()
+: <a class="el" href="group__seek__api.html#g60bac88ef3695629efacec43a21927e5">oggz_seek.h</a>
+<li>oggz_serialno_new()
+: <a class="el" href="oggz_8h.html#af89877e3e89408387d422f487bcf094">oggz.h</a>
+<li>oggz_set_data_start()
+: <a class="el" href="group__metric.html#gaec9a54e9b231797d245042ce23b619a">oggz_seek.h</a>
+<li>oggz_set_granulerate()
+: <a class="el" href="group__metric.html#ga2a86ec590161bc2295a2c8e91cefa49">oggz_seek.h</a>
+<li>oggz_set_granuleshift()
+: <a class="el" href="group__metric.html#g7ca67e0344580bf1541b9fbde39d481b">oggz_seek.h</a>
+<li>oggz_set_metric()
+: <a class="el" href="group__metric.html#g5a630e8dcd04e1dd6601d8f56f0af3f6">oggz_seek.h</a>
+<li>oggz_set_metric_linear()
+: <a class="el" href="oggz__deprecated_8h.html#12f232bca448853e66a1226ddccff7e0">oggz_deprecated.h</a>
+<li>oggz_set_preroll()
+: <a class="el" href="group__metric.html#ga2b4ab5be298a11b5b91147b76996c83">oggz_seek.h</a>
+<li>oggz_set_read_callback()
+: <a class="el" href="group__read__api.html#g6d5aae4f7f186fffe19d4fd3cd63148d">oggz_read.h</a>
+<li>oggz_set_read_page()
+: <a class="el" href="group__read__api.html#gfe738d4fdd4b00b1280f5978be19b2d5">oggz_read.h</a>
+<li>OGGZ_STOP_ERR
+: <a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ff09454b9448ae3d93439b644243b6e552">oggz_constants.h</a>
+<li>OGGZ_STOP_OK
+: <a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ffc05c70a0c2213533267f8494eb928282">oggz_constants.h</a>
+<li>oggz_stream_get_content()
+: <a class="el" href="oggz__stream_8h.html#1cd43b28f34bf82dc1830cc517b19e14">oggz_stream.h</a>
+, <a class="el" href="oggz__read_8h.html#1cd43b28f34bf82dc1830cc517b19e14">oggz_read.h</a>
+<li>oggz_stream_get_content_type()
+: <a class="el" href="oggz__read_8h.html#85665d758dbc159bc48055bf3f572b37">oggz_read.h</a>
+, <a class="el" href="oggz__stream_8h.html#85665d758dbc159bc48055bf3f572b37">oggz_stream.h</a>
+<li>oggz_stream_get_numheaders()
+: <a class="el" href="oggz__stream_8h.html#e3b1aa364b5bf0d7b331aab70646ab10">oggz_stream.h</a>
+, <a class="el" href="oggz__read_8h.html#e3b1aa364b5bf0d7b331aab70646ab10">oggz_read.h</a>
+<li>OGGZ_SUFFIX
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd370e2ea0bfd95ff858125a4f777eb90e8">oggz_constants.h</a>
+<li>oggz_table_delete()
+: <a class="el" href="oggz__table_8h.html#989e307feecf2adc2ebe905c067051c4">oggz_table.h</a>
+<li>oggz_table_insert()
+: <a class="el" href="oggz__table_8h.html#dbcdb0cdf6e8392c78956e911cbf6634">oggz_table.h</a>
+<li>oggz_table_lookup()
+: <a class="el" href="oggz__table_8h.html#92ea55bffd5657be29cf1972f33364e3">oggz_table.h</a>
+<li>oggz_table_new()
+: <a class="el" href="oggz__table_8h.html#40772505443484de93526882c48f0dd8">oggz_table.h</a>
+<li>oggz_table_nth()
+: <a class="el" href="oggz__table_8h.html#285c3cbdb46e9b8c2a831728182856f1">oggz_table.h</a>
+<li>oggz_table_remove()
+: <a class="el" href="oggz__table_8h.html#c137e535f1da63ee52266b47f114020f">oggz_table.h</a>
+<li>oggz_table_size()
+: <a class="el" href="oggz__table_8h.html#62db2037df45db88a75b89b8a8ac7766">oggz_table.h</a>
+<li>oggz_tell()
+: <a class="el" href="group__seek__api.html#g553fabfa03553669f79e37b28eb07ec6">oggz_seek.h</a>
+<li>oggz_tell_granulepos()
+: <a class="el" href="group__seek__api.html#g29181fb4e8f4e3629cb84810614acd30">oggz_seek.h</a>
+<li>oggz_tell_units()
+: <a class="el" href="group__seek__api.html#g2ec088fc5541ce9749ce63ccc162761f">oggz_seek.h</a>
+<li>OGGZ_WRITE
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd38819c3d01c84191dbf846b5e0a98d757">oggz_constants.h</a>
+<li>oggz_write()
+: <a class="el" href="group__write__api.html#g3c97d94ea425d64546adf9c368b71904">oggz_write.h</a>
+<li>oggz_write_feed()
+: <a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889">oggz_write.h</a>
+<li>oggz_write_get_next_page_size()
+: <a class="el" href="group__write__api.html#gb25da7d2cbf39585357f2a426d3dba2f">oggz_write.h</a>
+<li>oggz_write_output()
+: <a class="el" href="group__write__api.html#g5606dff01964caec4582eb172fde0c1c">oggz_write.h</a>
+<li>oggz_write_set_hungry_callback()
+: <a class="el" href="group__write__api.html#gf362c030bc7a7f57cb23f2b863a59389">oggz_write.h</a>
+<li>OggzError
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e">oggz_constants.h</a>
+<li>OggzFlags
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3">oggz_constants.h</a>
+<li>OggzFlushOpts
+: <a class="el" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c847237">oggz_constants.h</a>
+<li>OggzIOFlush
+: <a class="el" href="oggz__io_8h.html#2d41d748db3b60bb25f716bcebf2f1e3">oggz_io.h</a>
+<li>OggzIORead
+: <a class="el" href="oggz__io_8h.html#e4995dabd7027c5a2273fe6db94c4733">oggz_io.h</a>
+<li>OggzIOSeek
+: <a class="el" href="oggz__io_8h.html#b92c1e4e1bc98165cb7e9a0920a09b75">oggz_io.h</a>
+<li>OggzIOTell
+: <a class="el" href="oggz__io_8h.html#dac7e4773781ad067f0591e1699fd669">oggz_io.h</a>
+<li>OggzIOWrite
+: <a class="el" href="oggz__io_8h.html#0274a389b81ba93dae32d3d2fe39637f">oggz_io.h</a>
+<li>OggzMetric
+: <a class="el" href="group__metric.html#g8803bb406015a32f5172902e3e4e76e8">oggz_seek.h</a>
+<li>OggzReadPacket
+: <a class="el" href="group__read__api.html#gef015044907510cda7a3c06241e959e7">oggz_read.h</a>
+<li>OggzReadPage
+: <a class="el" href="group__read__api.html#g8a1df0166fad1a0a6fe55d24e1a4b2e6">oggz_read.h</a>
+<li>OggzStopCtl
+: <a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ff">oggz_constants.h</a>
+<li>OggzStreamContent
+: <a class="el" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598">oggz_constants.h</a>
+<li>OggzTable
+: <a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">oggz_table.h</a>
+<li>OggzWriteHungry
+: <a class="el" href="group__write__api.html#g27ef9f56078d3c015431b1a67b2c1812">oggz_write.h</a>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/globals_defs.html
===================================================================
--- websites/xiph.org/oggz/doc/globals_defs.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/globals_defs.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;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&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>OGGZ_ERR_READ_STOP_ERR
+: <a class="el" href="oggz__deprecated_8h.html#7fb3e5030a672e6ecfd8e8e6bf57fdfa">oggz_deprecated.h</a>
+<li>OGGZ_ERR_READ_STOP_OK
+: <a class="el" href="oggz__deprecated_8h.html#0d9b4d212038e72fb45d751fe750d3cf">oggz_deprecated.h</a>
+<li>OGGZ_ERR_USER_STOPPED
+: <a class="el" href="oggz__deprecated_8h.html#aa24ef96507165b2c5e1ac4108d59288">oggz_deprecated.h</a>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/globals_enum.html
===================================================================
--- websites/xiph.org/oggz/doc/globals_enum.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/globals_enum.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;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&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>OggzError
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e">oggz_constants.h</a>
+<li>OggzFlags
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3">oggz_constants.h</a>
+<li>OggzFlushOpts
+: <a class="el" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c847237">oggz_constants.h</a>
+<li>OggzStopCtl
+: <a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ff">oggz_constants.h</a>
+<li>OggzStreamContent
+: <a class="el" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598">oggz_constants.h</a>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/globals_eval.html
===================================================================
--- websites/xiph.org/oggz/doc/globals_eval.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/globals_eval.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;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&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="#index_o"><span>o</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
+<li>OGGZ_AUTO
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3f5b915c8762126bff52a0499745d1732">oggz_constants.h</a>
+<li>OGGZ_CONTINUE
+: <a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5fff5242099c219d1330ddd861585cc3bf3">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_B_O_S
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e82a9669e837d20e2fb392c9f1f5eb960">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_BYTES
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ecf1a748ac6d70d304c193ac4d8a0142a">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_E_O_S
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ee2352f40f9376e4b9dc234db18a93798">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_GRANULEPOS
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9d49be12111ae95d12252528496a88a7">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_GUARD
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e57d5c64dce5d60f559e13dbe3e3c1c22">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_METRIC
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e82714dc1b1505af8e373c2b877ce0a04">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_OGGZ
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e195b205e2a10b746a9426da0d8fd22f6">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_PACKETNO
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e5e0116f755d019616406ac341f1f6e98">oggz_constants.h</a>
+<li>OGGZ_ERR_BAD_SERIALNO
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ed19554f4b1f544a1b575664b4a38694d">oggz_constants.h</a>
+<li>OGGZ_ERR_BOS
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ec447250ac1367c84c875df0d01b70661">oggz_constants.h</a>
+<li>OGGZ_ERR_COMMENT_INVALID
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ed27c93cddea5ddaeaf168426f14833de">oggz_constants.h</a>
+<li>OGGZ_ERR_DISABLED
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e77029ff6686a406f966209f78f62c3ff">oggz_constants.h</a>
+<li>OGGZ_ERR_EOS
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83efb09184b514aee32f1b512937fa618e0">oggz_constants.h</a>
+<li>OGGZ_ERR_GENERIC
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9cb5d186a7de1c24f0b72894ebc9886b">oggz_constants.h</a>
+<li>OGGZ_ERR_HOLE_IN_DATA
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83eed1eccb86408055f065009e64b88a7d4">oggz_constants.h</a>
+<li>OGGZ_ERR_INVALID
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83edcd2c8d2d0624da6b5faa5c26fc87628">oggz_constants.h</a>
+<li>OGGZ_ERR_IO_AGAIN
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83eb837c50e1cd4b858c02e1f89842bd134">oggz_constants.h</a>
+<li>OGGZ_ERR_NO_STREAMS
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83efd7a0ff230f3892aae44a8003203afd7">oggz_constants.h</a>
+<li>OGGZ_ERR_NOSEEK
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e761cede14a1d709ea722b607c59723ed">oggz_constants.h</a>
+<li>OGGZ_ERR_OK
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9c2ac780c03b38ba06e9ffe9c7f95a08">oggz_constants.h</a>
+<li>OGGZ_ERR_OUT_OF_MEMORY
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e3edc55802c7a9052f14608b9c101b92c">oggz_constants.h</a>
+<li>OGGZ_ERR_RECURSIVE_WRITE
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e8f0a11d443e4bf9f89a2cc4d44548081">oggz_constants.h</a>
+<li>OGGZ_ERR_STOP_ERR
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e59dffeb8be96b2ac026735f7e5bb8a2a">oggz_constants.h</a>
+<li>OGGZ_ERR_STOP_OK
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e5f9bde92dc6e7cc407e52e5dd61fdbf4">oggz_constants.h</a>
+<li>OGGZ_ERR_SYSTEM
+: <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e607f17c9c37f2d5c40d1ed55cb1d7e17">oggz_constants.h</a>
+<li>OGGZ_FLUSH_AFTER
+: <a class="el" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c84723742efb730f40edcdb0dfdb8a6294619c4">oggz_constants.h</a>
+<li>OGGZ_FLUSH_BEFORE
+: <a class="el" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c8472379dc1d61b8f27fe00ba9d0a8005a9bcfb">oggz_constants.h</a>
+<li>OGGZ_NONSTRICT
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd324e9b4267730b726756241d7de2e8cf2">oggz_constants.h</a>
+<li>OGGZ_PREFIX
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3cb0fc6d8842462d7a1624c3312c299fb">oggz_constants.h</a>
+<li>OGGZ_READ
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd395bd4a2b27d6e9e119ee11a7c5c26c50">oggz_constants.h</a>
+<li>OGGZ_STOP_ERR
+: <a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ff09454b9448ae3d93439b644243b6e552">oggz_constants.h</a>
+<li>OGGZ_STOP_OK
+: <a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ffc05c70a0c2213533267f8494eb928282">oggz_constants.h</a>
+<li>OGGZ_SUFFIX
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd370e2ea0bfd95ff858125a4f777eb90e8">oggz_constants.h</a>
+<li>OGGZ_WRITE
+: <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd38819c3d01c84191dbf846b5e0a98d757">oggz_constants.h</a>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/globals_func.html
===================================================================
--- websites/xiph.org/oggz/doc/globals_func.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/globals_func.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;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&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="#index_o"><span>o</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
+<li>oggz_close()
+: <a class="el" href="oggz_8h.html#adcfc04b2930660710bbcbc93140b783">oggz.h</a>
+<li>oggz_comment_add()
+: <a class="el" href="oggz__comments_8h.html#de23081a738d67bec473bdaf317a68d8">oggz_comments.h</a>
+<li>oggz_comment_add_byname()
+: <a class="el" href="oggz__comments_8h.html#d869a8a7246567ba4162183436127a6f">oggz_comments.h</a>
+<li>oggz_comment_first()
+: <a class="el" href="oggz__comments_8h.html#306a979d84b61932930d44ea5d4f95d9">oggz_comments.h</a>
+<li>oggz_comment_first_byname()
+: <a class="el" href="oggz__comments_8h.html#9a3a72be012b6474a1e1d95f7ce7afe8">oggz_comments.h</a>
+<li>oggz_comment_generate()
+: <a class="el" href="oggz__deprecated_8h.html#ab908fe161372aceb99f98a3be54ead5">oggz_deprecated.h</a>
+<li>oggz_comment_get_vendor()
+: <a class="el" href="oggz__comments_8h.html#e5d522df5fce262953d8bb5cb8c00b00">oggz_comments.h</a>
+<li>oggz_comment_next()
+: <a class="el" href="oggz__comments_8h.html#9501d8c166187c8d503e1335827b2d5e">oggz_comments.h</a>
+<li>oggz_comment_next_byname()
+: <a class="el" href="oggz__comments_8h.html#1dd05e02a121ba639b8012acaa21a37c">oggz_comments.h</a>
+<li>oggz_comment_remove()
+: <a class="el" href="oggz__comments_8h.html#75ca47a020dcddce846a320481120a8e">oggz_comments.h</a>
+<li>oggz_comment_remove_byname()
+: <a class="el" href="oggz__comments_8h.html#a0f3f3a3ea3ca28d8678b94495634876">oggz_comments.h</a>
+<li>oggz_comment_set_vendor()
+: <a class="el" href="oggz__comments_8h.html#281a0956a9a160337f7d00f102d18131">oggz_comments.h</a>
+<li>oggz_comments_generate()
+: <a class="el" href="oggz__comments_8h.html#1ee69481fa517d80e63db962a23d53ae">oggz_comments.h</a>
+<li>oggz_content_type()
+: <a class="el" href="oggz_8h.html#b1b16dec307b6544b5f82a60a14c8518">oggz.h</a>
+<li>oggz_flush()
+: <a class="el" href="oggz_8h.html#8090c7e886af90dbea4dd5df8035dbf3">oggz.h</a>
+<li>oggz_get_bos()
+: <a class="el" href="oggz_8h.html#357244f9e73d219015d9ce8260ee08d3">oggz.h</a>
+<li>oggz_get_eos()
+: <a class="el" href="oggz_8h.html#ee6a754e123ec0fd347d1ed0d4d4b3b7">oggz.h</a>
+<li>oggz_get_granulerate()
+: <a class="el" href="group__metric.html#g72a9a24e6f8483986859d7697fa611b6">oggz_seek.h</a>
+<li>oggz_get_granuleshift()
+: <a class="el" href="group__metric.html#gd9b55e525a6e0b994a133314fd78e2c0">oggz_seek.h</a>
+<li>oggz_get_numtracks()
+: <a class="el" href="oggz_8h.html#0dd3be49fc94531e35546318c14b64e7">oggz.h</a>
+<li>oggz_get_preroll()
+: <a class="el" href="group__metric.html#gb411ab113d5f0f67bf77506724c25633">oggz_seek.h</a>
+<li>oggz_io_get_flush_user_handle()
+: <a class="el" href="oggz__io_8h.html#6150bee0cc28c68553bdcc6d020f6932">oggz_io.h</a>
+<li>oggz_io_get_read_user_handle()
+: <a class="el" href="oggz__io_8h.html#f5bbd37e9a390e3c282fdc8bfadc43f6">oggz_io.h</a>
+<li>oggz_io_get_seek_user_handle()
+: <a class="el" href="oggz__io_8h.html#718ea817110f0d94d9d6f3a457707a08">oggz_io.h</a>
+<li>oggz_io_get_tell_user_handle()
+: <a class="el" href="oggz__io_8h.html#54b69e5159280c1224025df925e67b50">oggz_io.h</a>
+<li>oggz_io_get_write_user_handle()
+: <a class="el" href="oggz__io_8h.html#024a62f080f1b64c465b0bf475ebfd2e">oggz_io.h</a>
+<li>oggz_io_set_flush()
+: <a class="el" href="oggz__io_8h.html#f45a2d33c7e17d1b64f794b32d69e7da">oggz_io.h</a>
+<li>oggz_io_set_read()
+: <a class="el" href="oggz__io_8h.html#640ecb60fcee9323f1f735ad23f7abc4">oggz_io.h</a>
+<li>oggz_io_set_seek()
+: <a class="el" href="oggz__io_8h.html#8482fb0783df2621e811c14d642b01fc">oggz_io.h</a>
+<li>oggz_io_set_tell()
+: <a class="el" href="oggz__io_8h.html#d97da84267d72ab9abf8dbb9ff5e8931">oggz_io.h</a>
+<li>oggz_io_set_write()
+: <a class="el" href="oggz__io_8h.html#f92f5b20bb5f247b5302dfc8b4edfbee">oggz_io.h</a>
+<li>oggz_new()
+: <a class="el" href="oggz_8h.html#6eb34d123389ae38d993601f9e7bb9d6">oggz.h</a>
+<li>oggz_open()
+: <a class="el" href="oggz_8h.html#65197cdd03f755f7ebfabf2fdff4c7db">oggz.h</a>
+<li>oggz_open_stdio()
+: <a class="el" href="oggz_8h.html#c49e9de0bc4ef1d91b43b13605f98b19">oggz.h</a>
+<li>oggz_packet_destroy()
+: <a class="el" href="oggz__comments_8h.html#9301332e99b0397cff54c3593595b809">oggz_comments.h</a>
+<li>oggz_purge()
+: <a class="el" href="oggz__read_8h.html#df606e6641a7d59eff2030b7b9ce51f8">oggz_read.h</a>
+<li>oggz_read()
+: <a class="el" href="group__read__api.html#g3ce7a31de5da56375057436c6b5108f2">oggz_read.h</a>
+<li>oggz_read_input()
+: <a class="el" href="group__read__api.html#g77d4158dd119f496f73311ace7f630d6">oggz_read.h</a>
+<li>oggz_run()
+: <a class="el" href="oggz_8h.html#0561df532fc37f98725007a79f898356">oggz.h</a>
+<li>oggz_run_set_blocksize()
+: <a class="el" href="oggz_8h.html#d500c8ed7147f7fb1ddc6c915a6c10d7">oggz.h</a>
+<li>oggz_seek()
+: <a class="el" href="group__seek__api.html#geef4b261d443701207954e5a636d6817">oggz_seek.h</a>
+<li>oggz_seek_units()
+: <a class="el" href="group__seek__api.html#g60bac88ef3695629efacec43a21927e5">oggz_seek.h</a>
+<li>oggz_serialno_new()
+: <a class="el" href="oggz_8h.html#af89877e3e89408387d422f487bcf094">oggz.h</a>
+<li>oggz_set_data_start()
+: <a class="el" href="group__metric.html#gaec9a54e9b231797d245042ce23b619a">oggz_seek.h</a>
+<li>oggz_set_granulerate()
+: <a class="el" href="group__metric.html#ga2a86ec590161bc2295a2c8e91cefa49">oggz_seek.h</a>
+<li>oggz_set_granuleshift()
+: <a class="el" href="group__metric.html#g7ca67e0344580bf1541b9fbde39d481b">oggz_seek.h</a>
+<li>oggz_set_metric()
+: <a class="el" href="group__metric.html#g5a630e8dcd04e1dd6601d8f56f0af3f6">oggz_seek.h</a>
+<li>oggz_set_metric_linear()
+: <a class="el" href="oggz__deprecated_8h.html#12f232bca448853e66a1226ddccff7e0">oggz_deprecated.h</a>
+<li>oggz_set_preroll()
+: <a class="el" href="group__metric.html#ga2b4ab5be298a11b5b91147b76996c83">oggz_seek.h</a>
+<li>oggz_set_read_callback()
+: <a class="el" href="group__read__api.html#g6d5aae4f7f186fffe19d4fd3cd63148d">oggz_read.h</a>
+<li>oggz_set_read_page()
+: <a class="el" href="group__read__api.html#gfe738d4fdd4b00b1280f5978be19b2d5">oggz_read.h</a>
+<li>oggz_stream_get_content()
+: <a class="el" href="oggz__read_8h.html#1cd43b28f34bf82dc1830cc517b19e14">oggz_read.h</a>
+, <a class="el" href="oggz__stream_8h.html#1cd43b28f34bf82dc1830cc517b19e14">oggz_stream.h</a>
+<li>oggz_stream_get_content_type()
+: <a class="el" href="oggz__stream_8h.html#85665d758dbc159bc48055bf3f572b37">oggz_stream.h</a>
+, <a class="el" href="oggz__read_8h.html#85665d758dbc159bc48055bf3f572b37">oggz_read.h</a>
+<li>oggz_stream_get_numheaders()
+: <a class="el" href="oggz__stream_8h.html#e3b1aa364b5bf0d7b331aab70646ab10">oggz_stream.h</a>
+, <a class="el" href="oggz__read_8h.html#e3b1aa364b5bf0d7b331aab70646ab10">oggz_read.h</a>
+<li>oggz_table_delete()
+: <a class="el" href="oggz__table_8h.html#989e307feecf2adc2ebe905c067051c4">oggz_table.h</a>
+<li>oggz_table_insert()
+: <a class="el" href="oggz__table_8h.html#dbcdb0cdf6e8392c78956e911cbf6634">oggz_table.h</a>
+<li>oggz_table_lookup()
+: <a class="el" href="oggz__table_8h.html#92ea55bffd5657be29cf1972f33364e3">oggz_table.h</a>
+<li>oggz_table_new()
+: <a class="el" href="oggz__table_8h.html#40772505443484de93526882c48f0dd8">oggz_table.h</a>
+<li>oggz_table_nth()
+: <a class="el" href="oggz__table_8h.html#285c3cbdb46e9b8c2a831728182856f1">oggz_table.h</a>
+<li>oggz_table_remove()
+: <a class="el" href="oggz__table_8h.html#c137e535f1da63ee52266b47f114020f">oggz_table.h</a>
+<li>oggz_table_size()
+: <a class="el" href="oggz__table_8h.html#62db2037df45db88a75b89b8a8ac7766">oggz_table.h</a>
+<li>oggz_tell()
+: <a class="el" href="group__seek__api.html#g553fabfa03553669f79e37b28eb07ec6">oggz_seek.h</a>
+<li>oggz_tell_granulepos()
+: <a class="el" href="group__seek__api.html#g29181fb4e8f4e3629cb84810614acd30">oggz_seek.h</a>
+<li>oggz_tell_units()
+: <a class="el" href="group__seek__api.html#g2ec088fc5541ce9749ce63ccc162761f">oggz_seek.h</a>
+<li>oggz_write()
+: <a class="el" href="group__write__api.html#g3c97d94ea425d64546adf9c368b71904">oggz_write.h</a>
+<li>oggz_write_feed()
+: <a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889">oggz_write.h</a>
+<li>oggz_write_get_next_page_size()
+: <a class="el" href="group__write__api.html#gb25da7d2cbf39585357f2a426d3dba2f">oggz_write.h</a>
+<li>oggz_write_output()
+: <a class="el" href="group__write__api.html#g5606dff01964caec4582eb172fde0c1c">oggz_write.h</a>
+<li>oggz_write_set_hungry_callback()
+: <a class="el" href="group__write__api.html#gf362c030bc7a7f57cb23f2b863a59389">oggz_write.h</a>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/globals_type.html
===================================================================
--- websites/xiph.org/oggz/doc/globals_type.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/globals_type.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;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&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>OGGZ
+: <a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">oggz.h</a>
+<li>OggzIOFlush
+: <a class="el" href="oggz__io_8h.html#2d41d748db3b60bb25f716bcebf2f1e3">oggz_io.h</a>
+<li>OggzIORead
+: <a class="el" href="oggz__io_8h.html#e4995dabd7027c5a2273fe6db94c4733">oggz_io.h</a>
+<li>OggzIOSeek
+: <a class="el" href="oggz__io_8h.html#b92c1e4e1bc98165cb7e9a0920a09b75">oggz_io.h</a>
+<li>OggzIOTell
+: <a class="el" href="oggz__io_8h.html#dac7e4773781ad067f0591e1699fd669">oggz_io.h</a>
+<li>OggzIOWrite
+: <a class="el" href="oggz__io_8h.html#0274a389b81ba93dae32d3d2fe39637f">oggz_io.h</a>
+<li>OggzMetric
+: <a class="el" href="group__metric.html#g8803bb406015a32f5172902e3e4e76e8">oggz_seek.h</a>
+<li>OggzReadPacket
+: <a class="el" href="group__read__api.html#gef015044907510cda7a3c06241e959e7">oggz_read.h</a>
+<li>OggzReadPage
+: <a class="el" href="group__read__api.html#g8a1df0166fad1a0a6fe55d24e1a4b2e6">oggz_read.h</a>
+<li>OggzTable
+: <a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">oggz_table.h</a>
+<li>OggzWriteHungry
+: <a class="el" href="group__write__api.html#g27ef9f56078d3c015431b1a67b2c1812">oggz_write.h</a>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/group__basics.html
===================================================================
--- websites/xiph.org/oggz/doc/group__basics.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/group__basics.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Ogg basics</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Ogg basics</h1><h2><a class="anchor" name="Scope">
+Scope</a></h2>
+This section provides a minimal introduction to Ogg concepts, covering only that which is required to use liboggz.<p>
+For more detailed information, see the <a href="http://www.xiph.org/ogg/">Ogg</a> homepage or IETF <a href="http://www.ietf.org/rfc/rfc3533.txt">RFC 3533</a> <em>The Ogg File Format version 0</em>.<h2><a class="anchor" name="Terminology">
+Terminology</a></h2>
+The monospace text below is quoted directly from RFC 3533. For each concept introduced, tips related to liboggz are provided in bullet points.<h3><a class="anchor" name="bitstreams">
+Physical and Logical Bitstreams</a></h3>
+The raw data of an Ogg stream, as read directly from a file or network socket, is called a <em>physical bitstream</em>.<p>
+<pre>
+   The result of an Ogg encapsulation is called the "Physical (Ogg)
+   Bitstream".  It encapsulates one or several encoder-created
+   bitstreams, which are called "Logical Bitstreams".  A logical
+   bitstream, provided to the Ogg encapsulation process, has a
+   structure, i.e., it is split up into a sequence of so-called
+   "Packets".  The packets are created by the encoder of that logical
+   bitstream and represent meaningful entities for that encoder only
+   (e.g., an uncompressed stream may use video frames as packets).
+</pre><h3><a class="anchor" name="pages">
+Packets and Pages</a></h3>
+Within the Ogg format, packets are written into <em>pages</em>. You can think of pages like pages in a book, and packets as items of the actual text. Consider, for example, individual poems or short stories as the packets. Pages are of course all the same size, and a few very short packets could be written into a single page. On the other hand, a very long packet will use many pages.<p>
+<ul>
+<li>liboggz handles the details of writing packets into pages, and of reading packets from pages; your application deals only with <code>ogg_packet</code> structures.</li><li>Each <code>ogg_packet</code> structure contains a block of data and its length in bytes, plus other information related to the stream structure as explained below.</li></ul>
+<h3><a class="anchor" name="serialno">
+serialno</a></h3>
+Each logical bitstream is uniquely identified by a serial number or <em>serialno</em>.<p>
+<ul>
+<li>Packets are always associated with a <em>serialno</em>. This is not actually part of the <code>ogg_packet</code> structure, so wherever you see an <code>ogg_packet</code> in the liboggz API, you will see an accompanying <em>serialno</em>.</li></ul>
+<p>
+<pre>
+   This unique serial number is created randomly and does not have any
+   connection to the content or encoder of the logical bitstream it
+   represents.
+</pre><p>
+<ul>
+<li>Use <a class="el" href="oggz_8h.html#af89877e3e89408387d422f487bcf094" title="Request a new serialno, as required for a new stream, ensuring the serialno is not...">oggz_serialno_new()</a> to generate a new serial number for each logical bitstream you write.</li><li>Use an <a class="el" href="oggz__table_8h.html">OggzTable </a>, keyed by <em>serialno</em>, to store and retrieve data related to each logical bitstream.</li></ul>
+<h3><a class="anchor" name="boseos">
+b_o_s and e_o_s</a></h3>
+<pre>
+   bos page: The initial page (beginning of stream) of a logical
+      bitstream which contains information to identify the codec type
+      and other decoding-relevant information.</pre><p>
+<pre>   eos page: The final page (end of stream) of a logical bitstream.
+</pre><p>
+<ul>
+<li>Every <code>ogg_packet</code> contains <em>b_o_s</em> and <em>e_o_s</em> flags. Of course each of these will be set only once per logical bitstream. See the Structuring section below for rules on setting <em>b_o_s</em> and <em>e_o_s</em> when interleaving logical bitstreams.</li><li>This documentation will refer to <em>bos</em> and <em>eos</em> <em>packets</em> (not <em>pages</em>) as that is more closely represented by the API. The <em>bos</em> packet is the only packet on the <em>bos</em> page, and the <em>eos</em> packet is the last packet on the <em>eos</em> page.</li></ul>
+<h3><a class="anchor" name="granulepos">
+granulepos</a></h3>
+<pre>
+   granule position: An increasing position number for a specific
+      logical bitstream stored in the page header.  Its meaning is
+      dependent on the codec for that logical bitstream
+</pre><p>
+<ul>
+<li>Every <code>ogg_packet</code> contains a <em>granulepos</em>. The <em>granulepos</em> of each packet is used mostly for <a class="el" href="group__seek__api.html">seeking. </a></li></ul>
+<h2><a class="anchor" name="Structuring">
+Structuring</a></h2>
+The general structure of an Ogg stream is governed by various rules.<h3><a class="anchor" name="secondaries">
+Secondary header packets</a></h3>
+Some data sources require initial setup information such as comments and codebooks to be present near the beginning of the stream (directly following the b_o_s packets.<p>
+<pre>
+   Ogg also allows but does not require secondary header packets after
+   the bos page for logical bitstreams and these must also precede any
+   data packets in any logical bitstream.  These subsequent header
+   packets are framed into an integral number of pages, which will not
+   contain any data packets.  So, a physical bitstream begins with the
+   bos pages of all logical bitstreams containing one initial header
+   packet per page, followed by the subsidiary header packets of all
+   streams, followed by pages containing data packets.
+</pre><p>
+<ul>
+<li>liboggz handles the framing of <em>packets</em> into low-level <em>pages</em>. To ensure that the pages used by secondary headers contain no data packets, set the <em>flush</em> parameter of <a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889" title="Add a packet to oggz&#39;s packet queue.">oggz_write_feed()</a> to <em>OGGZ_FLUSH_AFTER</em> when queueing the last of the secondary headers.</li><li>or, equivalently, set <em>flush</em> to <em>OGGZ_FLUSH_BEFORE</em> when queueing the first of the data packets.</li></ul>
+<h3><a class="anchor" name="boseosseq">
+Sequencing b_o_s and e_o_s packets</a></h3>
+The following rules apply for sequencing <em>bos</em> and <em>eos</em> packets in a physical bitstream: <pre>
+   ... All bos pages of all logical bitstreams MUST appear together at
+   the beginning of the Ogg bitstream.</pre><p>
+<pre>   ... eos pages for the logical bitstreams need not all occur
+   contiguously.  Eos pages may be 'nil' pages, that is, pages
+   containing no content but simply a page header with position
+   information and the eos flag set in the page header.
+</pre><p>
+<ul>
+<li><a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889" title="Add a packet to oggz&#39;s packet queue.">oggz_write_feed()</a> will fail with a return value of <em>OGGZ_ERR_BOS</em> if an attempt is made to queue a late <em>bos</em> packet</li></ul>
+<h3><a class="anchor" name="interleaving">
+Interleaving logical bitstreams</a></h3>
+<pre>
+   It is possible to consecutively chain groups of concurrently
+   multiplexed bitstreams.  The groups, when unchained, MUST stand on
+   their own as a valid concurrently multiplexed bitstream.  The
+   following diagram shows a schematic example of such a physical
+   bitstream that obeys all the rules of both grouped and chained
+   multiplexed bitstreams.</pre><p>
+<pre>               physical bitstream with pages of
+          different logical bitstreams grouped and chained
+      -------------------------------------------------------------
+      |*A*|*B*|*C*|A|A|C|B|A|B|A#|C|...|B|C|B#|C#|*D*|D|...|D#|
+      -------------------------------------------------------------
+       bos bos bos             eos           eos eos bos       eos</pre><p>
+<pre>   In this example, there are two chained physical bitstreams, the first
+   of which is a grouped stream of three logical bitstreams A, B, and C.
+   The second physical bitstream is chained after the end of the grouped
+   bitstream, which ends after the last eos page of all its grouped
+   logical bitstreams.  As can be seen, grouped bitstreams begin
+   together - all of the bos pages MUST appear before any data pages.
+   It can also be seen that pages of concurrently multiplexed bitstreams
+   need not conform to a regular order.  And it can be seen that a
+   grouped bitstream can end long before the other bitstreams in the
+   group end.
+</pre><p>
+<ul>
+<li><a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889" title="Add a packet to oggz&#39;s packet queue.">oggz_write_feed()</a> will fail, returning an explicit error value, if an attempt is made to queue a packet in violation of these rules.</li></ul>
+<h2><a class="anchor" name="References">
+References</a></h2>
+This introduction to the Ogg format is derived from IETF <a href="http://www.ietf.org/rfc/rfc3533.txt">RFC 3533</a> <em>The Ogg File Format version 0</em> in accordance with the following copyright statement pertaining to the text of RFC 3533:<p>
+<pre>
+   Copyright (C) The Internet Society (2003).  All Rights Reserved.</pre><p>
+<pre>   This document and translations of it may be copied and furnished to
+   others, and derivative works that comment on or otherwise explain it
+   or assist in its implementation may be prepared, copied, published
+   and distributed, in whole or in part, without restriction of any
+   kind, provided that the above copyright notice and this paragraph are
+   included on all such copies and derivative works.  However, this
+   document itself may not be modified in any way, such as by removing
+   the copyright notice or references to the Internet Society or other
+   Internet organizations, except as needed for the purpose of
+   developing Internet standards in which case the procedures for
+   copyrights defined in the Internet Standards process must be
+   followed, or as required to translate it into languages other than
+   English.</pre><p>
+<pre>   The limited permissions granted above are perpetual and will not be
+   revoked by the Internet Society or its successors or assigns.</pre><p>
+<pre>   This document and the information contained herein is provided on an
+   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+</pre> 
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/group__building.html
===================================================================
--- websites/xiph.org/oggz/doc/group__building.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/group__building.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Building against liboggz</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Building against liboggz</h1><h2><a class="anchor" name="autoconf">
+Using GNU autoconf</a></h2>
+If you are using GNU autoconf, you do not need to call pkg-config directly. Use the following macro to determine if liboggz is available:<p>
+<pre>
+ PKG_CHECK_MODULES(OGGZ, oggz &gt;= 0.6.0,
+                   HAVE_OGGZ="yes", HAVE_OGGZ="no")
+ if test "x$HAVE_OGGZ" = "xyes" ; then
+   AC_SUBST(OGGZ_CFLAGS)
+   AC_SUBST(OGGZ_LIBS)
+ fi
+ </pre><p>
+If liboggz is found, HAVE_OGGZ will be set to "yes", and the autoconf variables OGGZ_CFLAGS and OGGZ_LIBS will be set appropriately.<h2><a class="anchor" name="pkg-config">
+Determining compiler options with pkg-config</a></h2>
+If you are not using GNU autoconf in your project, you can use the pkg-config tool directly to determine the correct compiler options.<p>
+<pre>
+ OGGZ_CFLAGS=`pkg-config --cflags oggz`</pre><p>
+<pre> OGGZ_LIBS=`pkg-config --libs oggz`
+ </pre> 
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/group__configuration.html
===================================================================
--- websites/xiph.org/oggz/doc/group__configuration.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/group__configuration.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Configuration</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Configuration</h1><h2><a class="anchor" name="configure">
+./configure</a></h2>
+It is possible to customize the functionality of liboggz by using various ./configure flags when building it from source. You can build a smaller version of liboggz to only read or write. By default, both reading and writing support is built.<p>
+For general information about using ./configure, see the file <a class="el" href="group__install.html">INSTALL </a><h3><a class="anchor" name="no_encode">
+Removing writing support</a></h3>
+Configuring with <em>--disable-write</em> will remove all support for writing:<ul>
+<li>All internal write related functions will not be built</li><li>Any attempt to call <a class="el" href="oggz_8h.html#6eb34d123389ae38d993601f9e7bb9d6" title="Create a new OGGZ object.">oggz_new()</a>, <a class="el" href="oggz_8h.html#65197cdd03f755f7ebfabf2fdff4c7db" title="Open an Ogg file, creating an OGGZ handle for it.">oggz_open()</a> or <a class="el" href="oggz_8h.html#c49e9de0bc4ef1d91b43b13605f98b19" title="Create an OGGZ handle associated with a stdio stream.">oggz_open_stdio()</a> with <em>flags</em> == OGGZ_WRITE will fail, returning NULL</li><li>Any attempt to call <a class="el" href="group__write__api.html#g3c97d94ea425d64546adf9c368b71904" title="Write n bytes from an OGGZ handle.">oggz_write()</a>, <a class="el" href="group__write__api.html#g5606dff01964caec4582eb172fde0c1c" title="Output data from an OGGZ handle.">oggz_write_output()</a>, <a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889" title="Add a packet to oggz&#39;s packet 
 queue.">oggz_write_feed()</a>, <a class="el" href="group__write__api.html#gf362c030bc7a7f57cb23f2b863a59389" title="Set a callback for Oggz to call when oggz is hungry .">oggz_write_set_hungry_callback()</a>, or <a class="el" href="group__write__api.html#gb25da7d2cbf39585357f2a426d3dba2f" title="Query the number of bytes in the next page to be written.">oggz_write_get_next_page_size()</a> will return OGGZ_ERR_DISABLED</li></ul>
+<h3><a class="anchor" name="no_decode">
+Removing reading support</a></h3>
+Configuring with <em>--disable-read</em> will remove all support for reading:<ul>
+<li>All internal reading related functions will not be built</li><li>Any attempt to call <a class="el" href="oggz_8h.html#6eb34d123389ae38d993601f9e7bb9d6" title="Create a new OGGZ object.">oggz_new()</a>, <a class="el" href="oggz_8h.html#65197cdd03f755f7ebfabf2fdff4c7db" title="Open an Ogg file, creating an OGGZ handle for it.">oggz_open()</a> or <a class="el" href="oggz_8h.html#c49e9de0bc4ef1d91b43b13605f98b19" title="Create an OGGZ handle associated with a stdio stream.">oggz_open_stdio()</a> with <em>flags</em> == OGGZ_READ will fail, returning NULL</li><li>Any attempt to call <a class="el" href="group__read__api.html#g3ce7a31de5da56375057436c6b5108f2" title="Read n bytes into oggz, calling any read callbacks on the fly.">oggz_read()</a>, <a class="el" href="group__read__api.html#g77d4158dd119f496f73311ace7f630d6" title="Input data into oggz.">oggz_read_input()</a>, <a class="el" href="group__read__api.html#g6d5aae4f7f186fffe19d4fd3cd63148d" title="Set a callback for Ogg
 z to call when a new Ogg packet is found in the stream.">oggz_set_read_callback()</a>, <a class="el" href="group__seek__api.html#geef4b261d443701207954e5a636d6817" title="Seek to a specific byte offset.">oggz_seek()</a>, or <a class="el" href="group__seek__api.html#g60bac88ef3695629efacec43a21927e5" title="Seek to an offset in milliseconds, or custom units as specified by a Metric function...">oggz_seek_units()</a> will return OGGZ_ERR_DISABLED </li></ul>
+
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/group__force__feed.html
===================================================================
--- websites/xiph.org/oggz/doc/group__force__feed.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/group__force__feed.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Writing by force feeding Oggz</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Writing by force feeding Oggz</h1>This process is illustrated in the following diagram:<p>
+<div align="center">
+<img src="forcefeed.png" alt="forcefeed.png">
+</div>
+ <p>
+The following example code generates a stream of ten packets, each containing a single byte ('A', 'B', ... , 'J'):<p>
+<div class="fragment"><pre class="fragment"></pre></div> 
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/group__hungry.html
===================================================================
--- websites/xiph.org/oggz/doc/group__hungry.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/group__hungry.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Writing with OggzHungry callbacks</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Writing with OggzHungry callbacks</h1>An OggzHungry callback will:<ul>
+<li>Create an <em>ogg_packet</em> structure</li><li>Add it to the packet queue with <a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889" title="Add a packet to oggz&#39;s packet queue.">oggz_write_feed()</a></li></ul>
+<p>
+Once you have set such a callback with <a class="el" href="group__write__api.html#gf362c030bc7a7f57cb23f2b863a59389" title="Set a callback for Oggz to call when oggz is hungry .">oggz_write_set_hungry_callback()</a>, simply call <a class="el" href="group__write__api.html#g3c97d94ea425d64546adf9c368b71904" title="Write n bytes from an OGGZ handle.">oggz_write()</a> or <a class="el" href="group__write__api.html#g5606dff01964caec4582eb172fde0c1c" title="Output data from an OGGZ handle.">oggz_write_output()</a> repeatedly, and Oggz will call your callback to provide packets when it is hungry.<p>
+This process is illustrated in the following diagram:<p>
+<div align="center">
+<img src="hungry.png" alt="hungry.png">
+</div>
+ <p>
+The following example code generates a stream of ten packets, each containing a single byte ('A', 'B', ... , 'J'):<p>
+<div class="fragment"><pre class="fragment"></pre></div> 
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/group__install.html
===================================================================
--- websites/xiph.org/oggz/doc/group__install.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/group__install.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Installation</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Installation</h1><h2><a class="anchor" name="install">
+INSTALL</a></h2>
+<div class="fragment"><pre class="fragment"></pre></div> 
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/group__metric.html
===================================================================
--- websites/xiph.org/oggz/doc/group__metric.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/group__metric.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,522 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Using OggzMetric</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Using OggzMetric</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="metric_intro">
+Introduction</a></h2>
+An OggzMetric is a helper function for Oggz's seeking mechanism.<p>
+If every position in an Ogg stream can be described by a metric such as time, then it is possible to define a function that, given a serialno and granulepos, returns a measurement in units such as milliseconds. Oggz will use this function repeatedly while seeking in order to navigate through the Ogg stream.<p>
+The meaning of the units is arbitrary, but must be consistent across all logical bitstreams. This allows Oggz to seek accurately through Ogg bitstreams containing multiple logical bitstreams such as tracks of media.<h2><a class="anchor" name="setting">
+How to set metrics</a></h2>
+You don't need to set metrics for Speex, Vorbis, FLAC, Theora, CMML or Annodex. These can be handled <a class="el" href="group__seek__api.html">automatically </a> by Oggz.<p>
+For most others it is simply a matter of providing a "granulerate": a frame or sampling rate, if each packet's granulepos represents a sample number.<p>
+<ul>
+<li>Set the <em>granule_rate_numerator</em> and <em>granule_rate_denominator</em> appropriately using <a class="el" href="group__metric.html#ga2a86ec590161bc2295a2c8e91cefa49" title="Specify the granulerate of a logical bitstream.">oggz_set_granulerate()</a></li></ul>
+<p>
+Some codecs use a "granuleshift" to divide a granulepos into two halves; the first describing a dependency on a previous packet, the second giving the offset since that packet. This is used to mark keyframes and intermediate frames.<p>
+<ul>
+<li>Set the <em>granuleshift</em> appropriately using <a class="el" href="group__metric.html#g7ca67e0344580bf1541b9fbde39d481b" title="Specify the granuleshift of a logical bitstream.">oggz_set_granuleshift()</a></li></ul>
+<h3><a class="anchor" name="custom">
+Custom Metrics</a></h3>
+For streams with non-linear granulepos, you need to set a custom metric:<p>
+<ul>
+<li>Implement an OggzMetric callback</li><li>Set the OggzMetric callback using <a class="el" href="group__metric.html#g5a630e8dcd04e1dd6601d8f56f0af3f6" title="Set the OggzMetric to use for an OGGZ handle.">oggz_set_metric()</a></li></ul>
+<h2><a class="anchor" name="using">
+Seeking with OggzMetrics</a></h2>
+To seek, use <a class="el" href="group__seek__api.html#g60bac88ef3695629efacec43a21927e5" title="Seek to an offset in milliseconds, or custom units as specified by a Metric function...">oggz_seek_units()</a>. Oggz will perform a ratio search through the Ogg bitstream, using the OggzMetric callback to determine its position relative to the desired unit.<p>
+<dl class="note" compact><dt><b>Note:</b></dt><dd></dd></dl>
+Many data streams begin with headers describing such things as codec setup parameters. One of the assumptions Monty makes is:<p>
+<ul>
+<li>Given pre-cached decode headers, a player may seek into a stream at any point and begin decode.</li></ul>
+<p>
+Thus, the first action taken by applications dealing with such data is to read in and cache the decode headers; thereafter the application can safely seek to arbitrary points in the data.<p>
+This impacts seeking because the portion of the bitstream containing decode headers should not be considered part of the metric space. To inform Oggz not to seek earlier than the end of the decode headers, use <a class="el" href="group__metric.html#gaec9a54e9b231797d245042ce23b619a" title="Tell Oggz to remember the given offset as the start of data.">oggz_set_data_start()</a>. 
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef ogg_int64_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#g8803bb406015a32f5172902e3e4e76e8">OggzMetric</a> )(<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, ogg_int64_t granulepos, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function to correlate Ogg streams.  <a href="#g8803bb406015a32f5172902e3e4e76e8"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#gb411ab113d5f0f67bf77506724c25633">oggz_get_preroll</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the preroll of a logical bitstream.  <a href="#gb411ab113d5f0f67bf77506724c25633"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#ga2b4ab5be298a11b5b91147b76996c83">oggz_set_preroll</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, int preroll)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify the preroll of a logical bitstream.  <a href="#ga2b4ab5be298a11b5b91147b76996c83"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#gd9b55e525a6e0b994a133314fd78e2c0">oggz_get_granuleshift</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the granuleshift of a logical bitstream.  <a href="#gd9b55e525a6e0b994a133314fd78e2c0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#g7ca67e0344580bf1541b9fbde39d481b">oggz_set_granuleshift</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, int granuleshift)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify the granuleshift of a logical bitstream.  <a href="#g7ca67e0344580bf1541b9fbde39d481b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#g72a9a24e6f8483986859d7697fa611b6">oggz_get_granulerate</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, ogg_int64_t *granulerate_n, ogg_int64_t *granulerate_d)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the granulerate of a logical bitstream.  <a href="#g72a9a24e6f8483986859d7697fa611b6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#ga2a86ec590161bc2295a2c8e91cefa49">oggz_set_granulerate</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, ogg_int64_t granule_rate_numerator, ogg_int64_t granule_rate_denominator)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify the granulerate of a logical bitstream.  <a href="#ga2a86ec590161bc2295a2c8e91cefa49"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#g5a630e8dcd04e1dd6601d8f56f0af3f6">oggz_set_metric</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, <a class="el" href="group__metric.html#g8803bb406015a32f5172902e3e4e76e8">OggzMetric</a> metric, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the OggzMetric to use for an OGGZ handle.  <a href="#g5a630e8dcd04e1dd6601d8f56f0af3f6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#gaec9a54e9b231797d245042ce23b619a">oggz_set_data_start</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, oggz_off_t offset)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tell Oggz to remember the given offset as the start of data.  <a href="#gaec9a54e9b231797d245042ce23b619a"></a><br></td></tr>
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a class="anchor" name="g8803bb406015a32f5172902e3e4e76e8"></a><!-- doxytag: member="oggz_seek.h::OggzMetric" ref="g8803bb406015a32f5172902e3e4e76e8" args=")(OGGZ *oggz, long serialno, ogg_int64_t granulepos, void *user_data)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ogg_int64_t(* <a class="el" href="group__metric.html#g8803bb406015a32f5172902e3e4e76e8">OggzMetric</a>)(<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, ogg_int64_t granulepos, void *user_data)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+This is the signature of a function to correlate Ogg streams. 
+<p>
+If every position in an Ogg stream can be described by a metric (eg. time) then define this function that returns some arbitrary unit value. This is the normal use of Oggz for media streams. The meaning of units is arbitrary, but must be consistent across all logical bitstreams; for example a conversion of the time offset of a given packet into nanoseconds or a similar stream-specific subdivision may be appropriate.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identifies a logical bitstream within <em>oggz</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>granulepos</em>&nbsp;</td><td>A granulepos within the logical bitstream identified by <em>serialno</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>Arbitrary data you wish to pass to your callback </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A conversion of the (serialno, granulepos) pair into a measure in units which is consistent across all logical bitstreams within <em>oggz</em> </dd></dl>
+
+</div>
+</div><p>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="g72a9a24e6f8483986859d7697fa611b6"></a><!-- doxytag: member="oggz_seek.h::oggz_get_granulerate" ref="g72a9a24e6f8483986859d7697fa611b6" args="(OGGZ *oggz, long serialno, ogg_int64_t *granulerate_n, ogg_int64_t *granulerate_d)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_get_granulerate           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_int64_t *&nbsp;</td>
+          <td class="paramname"> <em>granulerate_n</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_int64_t *&nbsp;</td>
+          <td class="paramname"> <em>granulerate_d</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the granulerate of a logical bitstream. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify the logical bitstream in <em>oggz</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>granulerate_n</em>&nbsp;</td><td>Return location for the granulerate numerator </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>granulerate_d</em>&nbsp;</td><td>Return location for the granulerate denominator </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 Success </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gd9b55e525a6e0b994a133314fd78e2c0"></a><!-- doxytag: member="oggz_seek.h::oggz_get_granuleshift" ref="gd9b55e525a6e0b994a133314fd78e2c0" args="(OGGZ *oggz, long serialno)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_get_granuleshift           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the granuleshift of a logical bitstream. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify the logical bitstream in <em>oggz</em> </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The granuleshift of the specified logical bitstream. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gb411ab113d5f0f67bf77506724c25633"></a><!-- doxytag: member="oggz_seek.h::oggz_get_preroll" ref="gb411ab113d5f0f67bf77506724c25633" args="(OGGZ *oggz, long serialno)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_get_preroll           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the preroll of a logical bitstream. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify the logical bitstream in <em>oggz</em> </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The preroll of the specified logical bitstream. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gaec9a54e9b231797d245042ce23b619a"></a><!-- doxytag: member="oggz_seek.h::oggz_set_data_start" ref="gaec9a54e9b231797d245042ce23b619a" args="(OGGZ *oggz, oggz_off_t offset)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_set_data_start           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">oggz_off_t&nbsp;</td>
+          <td class="paramname"> <em>offset</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Tell Oggz to remember the given offset as the start of data. 
+<p>
+This informs the seeking mechanism that when seeking back to unit 0, go to the given offset, not to the start of the file, which is usually codec headers. The usual usage is: <pre>
+    oggz_set_data_start (oggz, oggz_tell (oggz));
+</pre> <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle previously opened for reading </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>The offset of the start of data </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="ga2a86ec590161bc2295a2c8e91cefa49"></a><!-- doxytag: member="oggz_seek.h::oggz_set_granulerate" ref="ga2a86ec590161bc2295a2c8e91cefa49" args="(OGGZ *oggz, long serialno, ogg_int64_t granule_rate_numerator, ogg_int64_t granule_rate_denominator)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_set_granulerate           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_int64_t&nbsp;</td>
+          <td class="paramname"> <em>granule_rate_numerator</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_int64_t&nbsp;</td>
+          <td class="paramname"> <em>granule_rate_denominator</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Specify the granulerate of a logical bitstream. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify the logical bitstream in <em>oggz</em> to attach this linear metric to. A value of -1 indicates that the metric should be attached to all unattached logical bitstreams in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>granule_rate_numerator</em>&nbsp;</td><td>The numerator of the granule rate </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>granule_rate_denominator</em>&nbsp;</td><td>The denominator of the granule rate </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 Success </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g7ca67e0344580bf1541b9fbde39d481b"></a><!-- doxytag: member="oggz_seek.h::oggz_set_granuleshift" ref="g7ca67e0344580bf1541b9fbde39d481b" args="(OGGZ *oggz, long serialno, int granuleshift)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_set_granuleshift           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>granuleshift</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Specify the granuleshift of a logical bitstream. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify the logical bitstream in <em>oggz</em> to attach this granuleshift metric to. A value of -1 indicates that the metric should be attached to all unattached logical bitstreams in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>granuleshift</em>&nbsp;</td><td>The granuleshift </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 Success </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g5a630e8dcd04e1dd6601d8f56f0af3f6"></a><!-- doxytag: member="oggz_seek.h::oggz_set_metric" ref="g5a630e8dcd04e1dd6601d8f56f0af3f6" args="(OGGZ *oggz, long serialno, OggzMetric metric, void *user_data)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_set_metric           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group__metric.html#g8803bb406015a32f5172902e3e4e76e8">OggzMetric</a>&nbsp;</td>
+          <td class="paramname"> <em>metric</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>user_data</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set the OggzMetric to use for an OGGZ handle. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify the logical bitstream in <em>oggz</em> to attach this metric to. A value of -1 indicates that this metric should be attached to all unattached logical bitstreams in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>metric</em>&nbsp;</td><td>An OggzMetric callback </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>arbitrary data to pass to the metric callback</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 Success </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>, and is not -1 </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Specifying values of <em>serialno</em> other than -1 allows you to pass logical bitstream specific user_data to the same metric. <p>
+Alternatively, you may use a different <em>metric</em> for each <em>serialno</em>, but all metrics used must return mutually consistent unit measurements. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="ga2b4ab5be298a11b5b91147b76996c83"></a><!-- doxytag: member="oggz_seek.h::oggz_set_preroll" ref="ga2b4ab5be298a11b5b91147b76996c83" args="(OGGZ *oggz, long serialno, int preroll)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_set_preroll           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>preroll</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Specify the preroll of a logical bitstream. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify the logical bitstream in <em>oggz</em> to attach this preroll to. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>preroll</em>&nbsp;</td><td>The preroll </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 Success </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/group__read__api.html
===================================================================
--- websites/xiph.org/oggz/doc/group__read__api.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/group__read__api.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,336 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Oggz Read API</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Oggz Read API</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Oggz parses Ogg bitstreams, forming ogg_packet structures, and calling your OggzReadPacket callback(s). 
+<p>
+You provide Ogg data to Oggz with <a class="el" href="group__read__api.html#g3ce7a31de5da56375057436c6b5108f2" title="Read n bytes into oggz, calling any read callbacks on the fly.">oggz_read()</a> or <a class="el" href="group__read__api.html#g77d4158dd119f496f73311ace7f630d6" title="Input data into oggz.">oggz_read_input()</a>, and independently process it in OggzReadPacket callbacks. It is possible to set a different callback per <em>serialno</em> (ie. for each logical bitstream in the Ogg bitstream - see the <a class="el" href="group__basics.html">Ogg basics</a> section for more detail).<p>
+When using an OGGZ* opened with the OGGZ_AUTO flag set, Oggz will internally calculate the granulepos for each packet, even though these are not all recorded in the file: only the last packet ending on a page will have its granulepos recorded in the page header. Within a OggzReadPacket callback, calling <a class="el" href="group__seek__api.html#g29181fb4e8f4e3629cb84810614acd30" title="Provide the exact stored granulepos (from the page header) if relevant to the current...">oggz_tell_granulepos()</a> will retrieve the calculated granulepos.<p>
+See <a class="el" href="group__seek__api.html">Oggz Seek API</a> for information on seeking on interleaved Ogg data, and for working with calculated granulepos values. 
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__read__api.html#gef015044907510cda7a3c06241e959e7">OggzReadPacket</a> )(<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, ogg_packet *op, long serialno, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a callback which you must provide for Oggz to call whenever it finds a new packet in the Ogg stream associated with <em>oggz</em>.  <a href="#gef015044907510cda7a3c06241e959e7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__read__api.html#g8a1df0166fad1a0a6fe55d24e1a4b2e6">OggzReadPage</a> )(<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, const ogg_page *og, long serialno, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a callback which you must provide for Oggz to call whenever it finds a new page in the Ogg stream associated with <em>oggz</em>.  <a href="#g8a1df0166fad1a0a6fe55d24e1a4b2e6"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__read__api.html#g6d5aae4f7f186fffe19d4fd3cd63148d">oggz_set_read_callback</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, <a class="el" href="group__read__api.html#gef015044907510cda7a3c06241e959e7">OggzReadPacket</a> read_packet, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a callback for Oggz to call when a new Ogg packet is found in the stream.  <a href="#g6d5aae4f7f186fffe19d4fd3cd63148d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__read__api.html#gfe738d4fdd4b00b1280f5978be19b2d5">oggz_set_read_page</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, <a class="el" href="group__read__api.html#g8a1df0166fad1a0a6fe55d24e1a4b2e6">OggzReadPage</a> read_page, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a callback for Oggz to call when a new Ogg page is found in the stream.  <a href="#gfe738d4fdd4b00b1280f5978be19b2d5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__read__api.html#g3ce7a31de5da56375057436c6b5108f2">oggz_read</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long n)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read n bytes into <em>oggz</em>, calling any read callbacks on the fly.  <a href="#g3ce7a31de5da56375057436c6b5108f2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__read__api.html#g77d4158dd119f496f73311ace7f630d6">oggz_read_input</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, unsigned char *buf, long n)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Input data into <em>oggz</em>.  <a href="#g77d4158dd119f496f73311ace7f630d6"></a><br></td></tr>
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a class="anchor" name="gef015044907510cda7a3c06241e959e7"></a><!-- doxytag: member="oggz_read.h::OggzReadPacket" ref="gef015044907510cda7a3c06241e959e7" args=")(OGGZ *oggz, ogg_packet *op, long serialno, void *user_data)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int(* <a class="el" href="group__read__api.html#gef015044907510cda7a3c06241e959e7">OggzReadPacket</a>)(<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, ogg_packet *op, long serialno, void *user_data)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+This is the signature of a callback which you must provide for Oggz to call whenever it finds a new packet in the Ogg stream associated with <em>oggz</em>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>The OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>The full ogg_packet (see &lt;ogg/ogg.h&gt;) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify the logical bistream in <em>oggz</em> that contains <em>op</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 to continue, non-zero to instruct Oggz to stop.</dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>It is possible to provide different callbacks per logical bitstream -- see <a class="el" href="group__read__api.html#g6d5aae4f7f186fffe19d4fd3cd63148d" title="Set a callback for Oggz to call when a new Ogg packet is found in the stream.">oggz_set_read_callback()</a> for more information. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g8a1df0166fad1a0a6fe55d24e1a4b2e6"></a><!-- doxytag: member="oggz_read.h::OggzReadPage" ref="g8a1df0166fad1a0a6fe55d24e1a4b2e6" args=")(OGGZ *oggz, const ogg_page *og, long serialno, void *user_data)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int(* <a class="el" href="group__read__api.html#g8a1df0166fad1a0a6fe55d24e1a4b2e6">OggzReadPage</a>)(<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, const ogg_page *og, long serialno, void *user_data)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+This is the signature of a callback which you must provide for Oggz to call whenever it finds a new page in the Ogg stream associated with <em>oggz</em>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>The OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>The full ogg_page (see &lt;ogg/ogg.h&gt;) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 to continue, non-zero to instruct Oggz to stop. </dd></dl>
+
+</div>
+</div><p>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="g3ce7a31de5da56375057436c6b5108f2"></a><!-- doxytag: member="oggz_read.h::oggz_read" ref="g3ce7a31de5da56375057436c6b5108f2" args="(OGGZ *oggz, long n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">long oggz_read           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Read n bytes into <em>oggz</em>, calling any read callbacks on the fly. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle previously opened for reading </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>A count of bytes to ingest </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>&gt;  0</em>&nbsp;</td><td>The number of bytes successfully ingested. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>End of file </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_SYSTEM</em>&nbsp;</td><td>System error; check errno for details </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_STOP_OK</em>&nbsp;</td><td>Reading was stopped by a user callback returning OGGZ_STOP_OK </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_STOP_ERR</em>&nbsp;</td><td>Reading was stopped by a user callback returning OGGZ_STOP_ERR </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_HOLE_IN_DATA</em>&nbsp;</td><td>Hole (sequence number gap) detected in input data </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Out of memory </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g77d4158dd119f496f73311ace7f630d6"></a><!-- doxytag: member="oggz_read.h::oggz_read_input" ref="g77d4158dd119f496f73311ace7f630d6" args="(OGGZ *oggz, unsigned char *buf, long n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">long oggz_read_input           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned char *&nbsp;</td>
+          <td class="paramname"> <em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Input data into <em>oggz</em>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle previously opened for reading </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>A memory buffer </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>A count of bytes to input </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>&gt;  0</em>&nbsp;</td><td>The number of bytes successfully ingested. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_STOP_OK</em>&nbsp;</td><td>Reading was stopped by a user callback returning OGGZ_STOP_OK </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_STOP_ERR</em>&nbsp;</td><td>Reading was stopped by a user callback returning OGGZ_STOP_ERR </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_HOLE_IN_DATA</em>&nbsp;</td><td>Hole (sequence number gap) detected in input data </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Out of memory </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g6d5aae4f7f186fffe19d4fd3cd63148d"></a><!-- doxytag: member="oggz_read.h::oggz_set_read_callback" ref="g6d5aae4f7f186fffe19d4fd3cd63148d" args="(OGGZ *oggz, long serialno, OggzReadPacket read_packet, void *user_data)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_set_read_callback           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group__read__api.html#gef015044907510cda7a3c06241e959e7">OggzReadPacket</a>&nbsp;</td>
+          <td class="paramname"> <em>read_packet</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>user_data</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set a callback for Oggz to call when a new Ogg packet is found in the stream. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle previously opened for reading </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify the logical bitstream in <em>oggz</em> to attach this callback to, or -1 to attach this callback to all unattached logical bitstreams in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>read_packet</em>&nbsp;</td><td>Your callback function </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>Arbitrary data you wish to pass to your callback </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Out of memory</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Values of <em>serialno</em> other than -1 allows you to specify different callback functions for each logical bitstream.<p>
+It is safe to call this callback from within an OggzReadPacket function, in order to specify that subsequent packets should be handled by a different OggzReadPacket function. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gfe738d4fdd4b00b1280f5978be19b2d5"></a><!-- doxytag: member="oggz_read.h::oggz_set_read_page" ref="gfe738d4fdd4b00b1280f5978be19b2d5" args="(OGGZ *oggz, long serialno, OggzReadPage read_page, void *user_data)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_set_read_page           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group__read__api.html#g8a1df0166fad1a0a6fe55d24e1a4b2e6">OggzReadPage</a>&nbsp;</td>
+          <td class="paramname"> <em>read_page</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>user_data</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set a callback for Oggz to call when a new Ogg page is found in the stream. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle previously opened for reading </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify the logical bitstream in <em>oggz</em> to attach this callback to, or -1 to attach this callback to all unattached logical bitstreams in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>read_page</em>&nbsp;</td><td>Your OggzReadPage callback function </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>Arbitrary data you wish to pass to your callback </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Out of memory</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Values of <em>serialno</em> other than -1 allows you to specify different callback functions for each logical bitstream.<p>
+It is safe to call this callback from within an OggzReadPage function, in order to specify that subsequent pages should be handled by a different OggzReadPage function. </dd></dl>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/group__seek__api.html
===================================================================
--- websites/xiph.org/oggz/doc/group__seek__api.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/group__seek__api.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,243 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Oggz Seek API</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Oggz Seek API</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Oggz can seek on multitrack, multicodec bitstreams. 
+<p>
+<h2><a class="anchor" name="seek_time">
+Time seeking</a></h2>
+Support is built-in for seeking to time positions in <a href="http://www.celt-codec.org/">CELT</a>, <a href="http://www.annodex.net/">CMML</a>. <a href="http://flac.sourceforge.net/">FLAC</a>, <a href="http://wiki.xiph.org/OggPCM">OggPCM</a>, <a href="http://www.speex.org/">Speex</a>, <a href="http://www.theora.org/">Theora</a> and <a href="http://www.vorbis.com/">Vorbis</a>. Oggz is also compatible with <a href="http://www.annodex.net/">Annodex</a> streams, and supports seeking on all tracks described in an <a href="http://wiki.xiph.org/OggSkeleton">Ogg Skeleton</a> track.<p>
+You need to open the file with the OGGZ_AUTO flag set:<p>
+<ul>
+<li>Create an OGGZ handle for reading with <em>flags</em> = OGGZ_READ | OGGZ_AUTO</li><li>Read data, ensuring that you have received all b_o_s pages before attempting to seek.</li></ul>
+<p>
+Oggz will silently parse known codec headers and associate metrics appropriately; if you attempt to seek before you have received all b_o_s pages, Oggz will not have had a chance to parse the codec headers and associate metrics. It is safe to seek once you have received a packet with <em>b_o_s</em> == 0; see the <a class="el" href="group__basics.html">Ogg basics </a> section for more details.<p>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Oggz parses these codec headers internally, and so liboggz is <b>not</b> linked to libspeex, libvorbis, libflac, libtheora, libcmml or libannodex.</dd></dl>
+For other data streams, you will need to provide a metric function; see the section on <a class="el" href="group__metric.html">Using OggzMetrics </a> for details of setting up and seeking with metrics.<h2><a class="anchor" name="seek_bytes">
+Byte seeking</a></h2>
+<a class="el" href="group__seek__api.html#geef4b261d443701207954e5a636d6817" title="Seek to a specific byte offset.">oggz_seek()</a> provides low-level seeking to byte positions.<h2><a class="anchor" name="seek_info">
+More detail</a></h2>
+For a full description of the seeking methods possible in Ogg, see <a class="el" href="group__seek__semantics.html">Semantics of seeking in Ogg bitstreams </a>. 
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ogg_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#g2ec088fc5541ce9749ce63ccc162761f">oggz_tell_units</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query the current offset in milliseconds, or custom units as specified by a Metric function you have provided.  <a href="#g2ec088fc5541ce9749ce63ccc162761f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ogg_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#g60bac88ef3695629efacec43a21927e5">oggz_seek_units</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, ogg_int64_t units, int whence)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Seek to an offset in milliseconds, or custom units as specified by a Metric function you have provided.  <a href="#g60bac88ef3695629efacec43a21927e5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ogg_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#g29181fb4e8f4e3629cb84810614acd30">oggz_tell_granulepos</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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="#g29181fb4e8f4e3629cb84810614acd30"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">oggz_off_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#g553fabfa03553669f79e37b28eb07ec6">oggz_tell</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query the file offset in bytes corresponding to the data read.  <a href="#g553fabfa03553669f79e37b28eb07ec6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">oggz_off_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#geef4b261d443701207954e5a636d6817">oggz_seek</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, oggz_off_t offset, int whence)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Seek to a specific byte offset.  <a href="#geef4b261d443701207954e5a636d6817"></a><br></td></tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="geef4b261d443701207954e5a636d6817"></a><!-- doxytag: member="oggz_seek.h::oggz_seek" ref="geef4b261d443701207954e5a636d6817" args="(OGGZ *oggz, oggz_off_t offset, int whence)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">oggz_off_t oggz_seek           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">oggz_off_t&nbsp;</td>
+          <td class="paramname"> <em>offset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>whence</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Seek to a specific byte offset. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>a byte offset </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>whence</em>&nbsp;</td><td>As defined in &lt;stdio.h&gt;: SEEK_SET, SEEK_CUR or SEEK_END </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>the new file offset, or -1 on failure. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g60bac88ef3695629efacec43a21927e5"></a><!-- doxytag: member="oggz_seek.h::oggz_seek_units" ref="g60bac88ef3695629efacec43a21927e5" args="(OGGZ *oggz, ogg_int64_t units, int whence)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_int64_t oggz_seek_units           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_int64_t&nbsp;</td>
+          <td class="paramname"> <em>units</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>whence</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Seek to an offset in milliseconds, or custom units as specified by a Metric function you have provided. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>units</em>&nbsp;</td><td>A number of milliseconds, or custom units </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>whence</em>&nbsp;</td><td>As defined in &lt;stdio.h&gt;: SEEK_SET, SEEK_CUR or SEEK_END </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>the new file offset, or -1 on failure. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g553fabfa03553669f79e37b28eb07ec6"></a><!-- doxytag: member="oggz_seek.h::oggz_tell" ref="g553fabfa03553669f79e37b28eb07ec6" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">oggz_off_t oggz_tell           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Query the file offset in bytes corresponding to the data read. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The current offset of oggz.</dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>When reading, the value returned by <a class="el" href="group__seek__api.html#g553fabfa03553669f79e37b28eb07ec6" title="Query the file offset in bytes corresponding to the data read.">oggz_tell()</a> reflects the data offset of the start of the most recent packet processed, so that when called from an OggzReadPacket callback it reflects the byte offset of the start of the packet. As Oggz may have internally read ahead, this may differ from the current offset of the associated file descriptor. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g29181fb4e8f4e3629cb84810614acd30"></a><!-- doxytag: member="oggz_seek.h::oggz_tell_granulepos" ref="g29181fb4e8f4e3629cb84810614acd30" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_int64_t oggz_tell_granulepos           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>the granulepos of the <em>current</em> packet (if available) </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g2ec088fc5541ce9749ce63ccc162761f"></a><!-- doxytag: member="oggz_seek.h::oggz_tell_units" ref="g2ec088fc5541ce9749ce63ccc162761f" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_int64_t oggz_tell_units           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Query the current offset in milliseconds, or custom units as specified by a Metric function you have provided. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>the offset in milliseconds, or custom units </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/group__seek__semantics.html
===================================================================
--- websites/xiph.org/oggz/doc/group__seek__semantics.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/group__seek__semantics.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Semantics of seeking in Ogg bitstreams</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Semantics of seeking in Ogg bitstreams</h1><h2><a class="anchor" name="seek_semantics_intro">
+Introduction</a></h2>
+[*** This line works around a bug in doxygen ***]<p>
+[*** This line works around a bug in doxygen ***]<p>
+The seeking semantics of the Ogg file format were outlined by Monty in <a href="http://web.archive.org/web/20031201054855/http://www.xiph.org/archives/theora-dev/200209/0040.html">a post to theora-dev</a> in September 2002. Quoting from that post, we have the following assumptions:<p>
+<ul>
+<li>Ogg is not a non-linear format. ... It is a media transport format designed to do nothing more than deliver content, in a stream, and have all the pieces arrive on time and in sync.</li><li>The Ogg layer does not know the specifics of the codec data it's multiplexing into a stream. It knows nothing beyond 'Oooo, packets!', that the packets belong to different buckets, that the packets go in order, and that packets have position markers. Ogg does not even have a concept of 'time'; it only knows about the sequentially increasing, unitless position markers. It is up to higher layers which have access to the codec APIs to assign and convert units of framing or time.</li></ul>
+<p>
+(For more details on the structure of Ogg streams, see the <a class="el" href="group__basics.html">Ogg Basics </a> section).<p>
+For data such as media, for which it is possible to provide a mapping such as 'time', Oggz can efficiently navigate through an Ogg stream by use of an OggzMetric callback, thus allowing automatic seeking to points in 'time'.<p>
+For common codecs you can ask Oggz to set this for you automatically by instantiating the OGGZ handle with the OGGZ_AUTO flag set. For others you can specify a multiplier with <a class="el" href="oggz__deprecated_8h.html#12f232bca448853e66a1226ddccff7e0" title="DEPRECATED FUNCTION This function has been replaced with the more clearly named oggz_set_granulerate...">oggz_set_metric_linear()</a>, or a generic non-linear metric with <a class="el" href="group__metric.html#g5a630e8dcd04e1dd6601d8f56f0af3f6" title="Set the OggzMetric to use for an OGGZ handle.">oggz_set_metric()</a>. 
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/group__write__api.html
===================================================================
--- websites/xiph.org/oggz/doc/group__write__api.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/group__write__api.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Oggz Write API</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Oggz Write API</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Oggz maintains a packet queue, such that you can independently add packets to the queue and write an Ogg bitstream. 
+<p>
+There are two complementary methods for adding packets to the packet queue.<p>
+<ul>
+<li>by <a class="el" href="group__force__feed.html">force feeding Oggz </a></li><li>by using <a class="el" href="group__hungry.html">OggzHungry </a> callbacks</li></ul>
+<p>
+As each packet is enqueued, its validity is checked against the framing constraints outlined in the <a class="el" href="group__basics.html">Ogg basics </a> section. If it does not pass these constraints, <a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889" title="Add a packet to oggz&#39;s packet queue.">oggz_write_feed()</a> will fail with an appropriate error code.<p>
+<dl class="note" compact><dt><b>Note:</b></dt><dd><ul>
+<li>When writing, you can ensure that a packet starts on a new page by setting the <em>flush</em> parameter of <a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889" title="Add a packet to oggz&#39;s packet queue.">oggz_write_feed()</a> to <em>OGGZ_FLUSH_BEFORE</em> when enqueuing it. Similarly you can ensure that the last page a packet is written into won't contain any following packets by setting the <em>flush</em> parameter of <a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889" title="Add a packet to oggz&#39;s packet queue.">oggz_write_feed()</a> to <em>OGGZ_FLUSH_AFTER</em>.</li><li>The <em>OGGZ_FLUSH_BEFORE</em> and <em>OGGZ_FLUSH_AFTER</em> flags can be bitwise OR'd together to ensure that the packet will not share any pages with any other packets, either before or after. </li></ul>
+</dd></dl>
+
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__write__api.html#g27ef9f56078d3c015431b1a67b2c1812">OggzWriteHungry</a> )(<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, int empty, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a callback which Oggz will call when <em>oggz</em> is <a class="el" href="group__hungry.html">hungry </a>.  <a href="#g27ef9f56078d3c015431b1a67b2c1812"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__write__api.html#gf362c030bc7a7f57cb23f2b863a59389">oggz_write_set_hungry_callback</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, <a class="el" href="group__write__api.html#g27ef9f56078d3c015431b1a67b2c1812">OggzWriteHungry</a> hungry, int only_when_empty, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a callback for Oggz to call when <em>oggz</em> is <a class="el" href="group__hungry.html">hungry </a>.  <a href="#gf362c030bc7a7f57cb23f2b863a59389"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889">oggz_write_feed</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, ogg_packet *op, long serialno, int flush, int *guard)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a packet to <em>oggz's</em> packet queue.  <a href="#g6ccaceb107db1fd2eae047dbdbaa5889"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__write__api.html#g5606dff01964caec4582eb172fde0c1c">oggz_write_output</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, unsigned char *buf, long n)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output data from an OGGZ handle.  <a href="#g5606dff01964caec4582eb172fde0c1c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__write__api.html#g3c97d94ea425d64546adf9c368b71904">oggz_write</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long n)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write n bytes from an OGGZ handle.  <a href="#g3c97d94ea425d64546adf9c368b71904"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__write__api.html#gb25da7d2cbf39585357f2a426d3dba2f">oggz_write_get_next_page_size</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query the number of bytes in the next page to be written.  <a href="#gb25da7d2cbf39585357f2a426d3dba2f"></a><br></td></tr>
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a class="anchor" name="g27ef9f56078d3c015431b1a67b2c1812"></a><!-- doxytag: member="oggz_write.h::OggzWriteHungry" ref="g27ef9f56078d3c015431b1a67b2c1812" args=")(OGGZ *oggz, int empty, void *user_data)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int(* <a class="el" href="group__write__api.html#g27ef9f56078d3c015431b1a67b2c1812">OggzWriteHungry</a>)(<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, int empty, void *user_data)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+This is the signature of a callback which Oggz will call when <em>oggz</em> is <a class="el" href="group__hungry.html">hungry </a>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>The OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>empty</em>&nbsp;</td><td>A value of 1 indicates that the packet queue is currently empty. A value of 0 indicates that the packet queue is not empty. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Continue </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>non-zero</em>&nbsp;</td><td>Instruct Oggz to stop. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="g3c97d94ea425d64546adf9c368b71904"></a><!-- doxytag: member="oggz_write.h::oggz_write" ref="g3c97d94ea425d64546adf9c368b71904" args="(OGGZ *oggz, long n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">long oggz_write           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Write n bytes from an OGGZ handle. 
+<p>
+Oggz will call your write callback as needed.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle previously opened for writing </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>A count of bytes to be written </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>&gt; 0</em>&nbsp;</td><td>The number of bytes successfully output </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>End of stream </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_RECURSIVE_WRITE</em>&nbsp;</td><td>Attempt to initiate writing from within an OggzHungry callback </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_STOP_OK</em>&nbsp;</td><td>Writing was stopped by an OggzHungry callback returning OGGZ_STOP_OK </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_STOP_ERR</em>&nbsp;</td><td>Reading was stopped by an OggzHungry callback returning OGGZ_STOP_ERR </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g6ccaceb107db1fd2eae047dbdbaa5889"></a><!-- doxytag: member="oggz_write.h::oggz_write_feed" ref="g6ccaceb107db1fd2eae047dbdbaa5889" args="(OGGZ *oggz, ogg_packet *op, long serialno, int flush, int *guard)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_write_feed           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>op</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>flush</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int *&nbsp;</td>
+          <td class="paramname"> <em>guard</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Add a packet to <em>oggz's</em> packet queue. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle previously opened for writing </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>An ogg_packet with all fields filled in </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify the logical bitstream in <em>oggz</em> to add the packet to </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>flush</em>&nbsp;</td><td>Bitmask of OGGZ_FLUSH_BEFORE, OGGZ_FLUSH_AFTER </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>guard</em>&nbsp;</td><td>A guard for nocopy, NULL otherwise </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_GUARD</em>&nbsp;</td><td><em>guard</em> specified has non-zero initialization </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BOS</em>&nbsp;</td><td>Packet would be bos packet of a new logical bitstream, but oggz has already written one or more non-bos packets in other logical bitstreams, and <em>oggz</em> is not flagged OGGZ_NONSTRICT </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_EOS</em>&nbsp;</td><td>The logical bitstream identified by <em>serialno</em> is already at eos, and <em>oggz</em> is not flagged OGGZ_NONSTRICT </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_BYTES</em>&nbsp;</td><td><em>op-&gt;bytes</em> is invalid, and <em>oggz</em> is not flagged OGGZ_NONSTRICT </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_B_O_S</em>&nbsp;</td><td><em>op-&gt;b_o_s</em> is invalid, and <em>oggz</em> is not flagged OGGZ_NONSTRICT </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_GRANULEPOS</em>&nbsp;</td><td><em>op-&gt;granulepos</em> is less than that of an earlier packet within this logical bitstream, and <em>oggz</em> is not flagged OGGZ_NONSTRICT </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_PACKETNO</em>&nbsp;</td><td><em>op-&gt;packetno</em> is less than that of an earlier packet within this logical bitstream, and <em>oggz</em> is not flagged OGGZ_NONSTRICT </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>, and <em>oggz</em> is not flagged OGGZ_NONSTRICT or <em>serialno</em> is equal to -1, or <em>serialno</em> does not fit in 32 bits, ie. within the range (-(2^31), (2^31)-1) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Unable to allocate memory to queue packet</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>If <em>op-&gt;b_o_s</em> is initialized to <em>-1</em> before calling <a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889" title="Add a packet to oggz&#39;s packet queue.">oggz_write_feed()</a>, Oggz will fill it in with the appropriate value; ie. 1 for the first packet of a new stream, and 0 otherwise. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gb25da7d2cbf39585357f2a426d3dba2f"></a><!-- doxytag: member="oggz_write.h::oggz_write_get_next_page_size" ref="gb25da7d2cbf39585357f2a426d3dba2f" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">long oggz_write_get_next_page_size           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Query the number of bytes in the next page to be written. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle previously opened for writing </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>&gt;= 0</em>&nbsp;</td><td>The number of bytes in the next page </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g5606dff01964caec4582eb172fde0c1c"></a><!-- doxytag: member="oggz_write.h::oggz_write_output" ref="g5606dff01964caec4582eb172fde0c1c" args="(OGGZ *oggz, unsigned char *buf, long n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">long oggz_write_output           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned char *&nbsp;</td>
+          <td class="paramname"> <em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Output data from an OGGZ handle. 
+<p>
+Oggz will call your write callback as needed.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle previously opened for writing </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>A memory buffer </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>A count of bytes to output </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>&gt; 0</em>&nbsp;</td><td>The number of bytes successfully output </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>End of stream </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_RECURSIVE_WRITE</em>&nbsp;</td><td>Attempt to initiate writing from within an OggzHungry callback </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_STOP_OK</em>&nbsp;</td><td>Writing was stopped by an OggzHungry callback returning OGGZ_STOP_OK </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_STOP_ERR</em>&nbsp;</td><td>Reading was stopped by an OggzHungry callback returning OGGZ_STOP_ERR </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gf362c030bc7a7f57cb23f2b863a59389"></a><!-- doxytag: member="oggz_write.h::oggz_write_set_hungry_callback" ref="gf362c030bc7a7f57cb23f2b863a59389" args="(OGGZ *oggz, OggzWriteHungry hungry, int only_when_empty, void *user_data)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_write_set_hungry_callback           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group__write__api.html#g27ef9f56078d3c015431b1a67b2c1812">OggzWriteHungry</a>&nbsp;</td>
+          <td class="paramname"> <em>hungry</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>only_when_empty</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>user_data</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set a callback for Oggz to call when <em>oggz</em> is <a class="el" href="group__hungry.html">hungry </a>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle previously opened for writing </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>hungry</em>&nbsp;</td><td>Your callback function </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>only_when_empty</em>&nbsp;</td><td>When to call: a value of 0 indicates that Oggz should call <em>hungry()</em> after each and every packet is written; a value of 1 indicates that Oggz should call <em>hungry()</em> only when its packet queue is empty </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>Arbitrary data you wish to pass to your callback </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Passing a value of 0 for <em>only_when_empty</em> allows you to feed new packets into <em>oggz's</em> packet queue on the fly. </dd></dl>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/index.html
===================================================================
--- websites/xiph.org/oggz/doc/index.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/index.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>liboggz Documentation</h1>
+<p>
+<h3 align="center">0.9.9 </h3><h2><a class="anchor" name="intro">
+Oggz makes programming with Ogg easy!</a></h2>
+This is the documentation for the Oggz C API. Oggz provides a simple programming interface for reading and writing Ogg files and streams. Ogg is an interleaving data container developed by Monty at <a href="http://www.xiph.org/">Xiph.Org</a>, originally to support the Ogg Vorbis audio format.<p>
+liboggz supports the flexibility afforded by the Ogg file format while presenting the following API niceties:<p>
+<ul>
+<li>Strict adherence to the formatting requirements of Ogg <a class="el" href="group__basics.html">bitstreams </a>, to ensure that only valid bitstreams are generated</li><li>A simple, callback based open/read/close or open/write/close <a class="el" href="oggz_8h.html">interface </a> to raw Ogg files</li><li>A customisable <a class="el" href="group__seek__api.html">seeking </a> abstraction for seeking on multitrack Ogg data</li><li>A packet queue for feeding incoming packets for writing, with callback based notification when this queue is empty</li><li>A means of overriding the <a class="el" href="oggz__io_8h.html">IO functions </a> used by Oggz, for easier integration with media frameworks and similar systems.</li><li>A handy <a class="el" href="oggz__table_8h.html">table </a> structure for storing information on each logical bitstream</li></ul>
+<h3><a class="anchor" name="contents">
+Contents</a></h3>
+<ul>
+<li><a class="el" href="group__basics.html">Basics </a>: Information about Ogg required to understand liboggz</li></ul>
+<p>
+<ul>
+<li><a class="el" href="oggz_8h.html">oggz.h </a>: Documentation of the Oggz C API</li></ul>
+<p>
+<ul>
+<li><a class="el" href="group__configuration.html">Configuration </a>: Customizing liboggz to only read or write.</li></ul>
+<p>
+<ul>
+<li><a class="el" href="group__building.html">Building </a>: Information related to building software that uses liboggz.</li></ul>
+<h2><a class="anchor" name="Licensing">
+Licensing</a></h2>
+liboggz is provided under the following BSD-style open source license:<p>
+<div class="fragment"><pre class="fragment"></pre></div> </div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/modules.html
===================================================================
--- websites/xiph.org/oggz/doc/modules.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/modules.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: Module Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Modules</h1>Here is a list of all modules:<ul>
+<li><a class="el" href="group__basics.html">Ogg basics</a>
+<li><a class="el" href="group__configuration.html">Configuration</a>
+<li><a class="el" href="group__install.html">Installation</a>
+<li><a class="el" href="group__building.html">Building against liboggz</a>
+<li><a class="el" href="group__read__api.html">Oggz Read API</a>
+<li><a class="el" href="group__seek__api.html">Oggz Seek API</a>
+<li><a class="el" href="group__seek__semantics.html">Semantics of seeking in Ogg bitstreams</a>
+<li><a class="el" href="group__metric.html">Using OggzMetric</a>
+<li><a class="el" href="group__force__feed.html">Writing by force feeding Oggz</a>
+<li><a class="el" href="group__hungry.html">Writing with OggzHungry callbacks</a>
+<li><a class="el" href="group__write__api.html">Oggz Write API</a>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz_8h-source.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz_8h-source.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz_8h-source.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,109 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>oggz.h</h1><a href="oggz_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">   Copyright (C) 2003 Commonwealth Scientific and Industrial Research</span>
+<a name="l00003"></a>00003 <span class="comment">   Organisation (CSIRO) Australia</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">   Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">   modification, are permitted provided that the following conditions</span>
+<a name="l00007"></a>00007 <span class="comment">   are met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">   - Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">   notice, this list of conditions and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">   - Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">   notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">   documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">   - Neither the name of CSIRO Australia nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">   contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">   this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span>
+<a name="l00023"></a>00023 <span class="comment">   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR</span>
+<a name="l00024"></a>00024 <span class="comment">   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
+<a name="l00025"></a>00025 <span class="comment">   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
+<a name="l00026"></a>00026 <span class="comment">   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
+<a name="l00027"></a>00027 <span class="comment">   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
+<a name="l00028"></a>00028 <span class="comment">   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
+<a name="l00029"></a>00029 <span class="comment">   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
+<a name="l00030"></a>00030 <span class="comment">   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="preprocessor">#ifndef __OGGZ_H__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define __OGGZ_H__</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;ogg/ogg.h&gt;</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;<a class="code" href="oggz__constants_8h.html" title="General constants used by liboggz.">oggz/oggz_constants.h</a>&gt;</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="code" href="oggz__table_8h.html" title="A lookup table.">oggz/oggz_table.h</a>&gt;</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
+<a name="l00045"></a>00045 <span class="preprocessor">#endif</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span>
+<a name="l00441"></a><a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">00441</a> <span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a>;
+<a name="l00442"></a>00442 
+<a name="l00449"></a>00449 OGGZ * <a class="code" href="oggz_8h.html#6eb34d123389ae38d993601f9e7bb9d6" title="Create a new OGGZ object.">oggz_new</a> (<span class="keywordtype">int</span> flags);
+<a name="l00450"></a>00450 
+<a name="l00458"></a>00458 OGGZ * <a class="code" href="oggz_8h.html#65197cdd03f755f7ebfabf2fdff4c7db" title="Open an Ogg file, creating an OGGZ handle for it.">oggz_open</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> * filename, <span class="keywordtype">int</span> flags);
+<a name="l00459"></a>00459 
+<a name="l00467"></a>00467 OGGZ * <a class="code" href="oggz_8h.html#c49e9de0bc4ef1d91b43b13605f98b19" title="Create an OGGZ handle associated with a stdio stream.">oggz_open_stdio</a> (FILE * file, <span class="keywordtype">int</span> flags);
+<a name="l00468"></a>00468 
+<a name="l00477"></a>00477 <span class="keywordtype">int</span> <a class="code" href="oggz_8h.html#8090c7e886af90dbea4dd5df8035dbf3" title="Ensure any associated io streams are flushed.">oggz_flush</a> (OGGZ * oggz);
+<a name="l00478"></a>00478 
+<a name="l00500"></a>00500 <span class="keywordtype">long</span> <a class="code" href="oggz_8h.html#0561df532fc37f98725007a79f898356" title="Run an OGGZ until completion, or error.">oggz_run</a> (OGGZ * oggz);
+<a name="l00501"></a>00501 
+<a name="l00510"></a>00510 <span class="keywordtype">int</span> <a class="code" href="oggz_8h.html#d500c8ed7147f7fb1ddc6c915a6c10d7" title="Set the blocksize to use internally for oggz_run().">oggz_run_set_blocksize</a> (OGGZ * oggz, <span class="keywordtype">long</span> blocksize);
+<a name="l00511"></a>00511 
+<a name="l00519"></a>00519 <span class="keywordtype">int</span> <a class="code" href="oggz_8h.html#adcfc04b2930660710bbcbc93140b783" title="Close an OGGZ handle.">oggz_close</a> (OGGZ * oggz);
+<a name="l00520"></a>00520 
+<a name="l00531"></a>00531 <span class="keywordtype">int</span> <a class="code" href="oggz_8h.html#357244f9e73d219015d9ce8260ee08d3" title="Determine if a given logical bitstream is at bos (beginning of stream).">oggz_get_bos</a> (OGGZ * oggz, <span class="keywordtype">long</span> serialno);
+<a name="l00532"></a>00532 
+<a name="l00543"></a>00543 <span class="keywordtype">int</span> <a class="code" href="oggz_8h.html#ee6a754e123ec0fd347d1ed0d4d4b3b7" title="Determine if a given logical bitstream is at eos (end of stream).">oggz_get_eos</a> (OGGZ * oggz, <span class="keywordtype">long</span> serialno);
+<a name="l00544"></a>00544 
+<a name="l00555"></a>00555 <span class="keywordtype">int</span> <a class="code" href="oggz_8h.html#0dd3be49fc94531e35546318c14b64e7" title="Query the number of tracks (logical bitstreams).">oggz_get_numtracks</a> (OGGZ * oggz);
+<a name="l00556"></a>00556 
+<a name="l00564"></a>00564 <span class="keywordtype">long</span> <a class="code" href="oggz_8h.html#af89877e3e89408387d422f487bcf094" title="Request a new serialno, as required for a new stream, ensuring the serialno is not...">oggz_serialno_new</a> (OGGZ * oggz);
+<a name="l00565"></a>00565 
+<a name="l00572"></a>00572 <span class="keyword">const</span> <span class="keywordtype">char</span> *
+<a name="l00573"></a>00573 <a class="code" href="oggz_8h.html#b1b16dec307b6544b5f82a60a14c8518" title="Return human-readable string representation of a content type.">oggz_content_type</a> (<a class="code" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598" title="Definition of stream content types.">OggzStreamContent</a> content);
+<a name="l00574"></a>00574 
+<a name="l00575"></a>00575 <span class="preprocessor">#include &lt;<a class="code" href="oggz__off__t_8h.html" title="Architecture-dependent type and printf format for file position.">oggz/oggz_off_t.h</a>&gt;</span>
+<a name="l00576"></a>00576 <span class="preprocessor">#include &lt;<a class="code" href="oggz__read_8h.html" title="Interfaces for reading Ogg files and streams.">oggz/oggz_read.h</a>&gt;</span>
+<a name="l00577"></a>00577 <span class="preprocessor">#include &lt;<a class="code" href="oggz__stream_8h.html" title="Interfaces for querying Ogg streams.">oggz/oggz_stream.h</a>&gt;</span>
+<a name="l00578"></a>00578 <span class="preprocessor">#include &lt;<a class="code" href="oggz__seek_8h.html" title="Seeking within files.">oggz/oggz_seek.h</a>&gt;</span>
+<a name="l00579"></a>00579 <span class="preprocessor">#include &lt;<a class="code" href="oggz__write_8h.html" title="Interfaces for writing Ogg files and streams.">oggz/oggz_write.h</a>&gt;</span>
+<a name="l00580"></a>00580 <span class="preprocessor">#include &lt;<a class="code" href="oggz__io_8h.html" title="Overriding the functions used for input and output of raw data.">oggz/oggz_io.h</a>&gt;</span>
+<a name="l00581"></a>00581 <span class="preprocessor">#include &lt;<a class="code" href="oggz__comments_8h.html" title="Reading of comments.">oggz/oggz_comments.h</a>&gt;</span>
+<a name="l00582"></a>00582 <span class="preprocessor">#include &lt;<a class="code" href="oggz__deprecated_8h.html" title="Deprecated interfaces.">oggz/oggz_deprecated.h</a>&gt;</span>
+<a name="l00583"></a>00583 
+<a name="l00584"></a>00584 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00585"></a>00585 <span class="preprocessor"></span>}
+<a name="l00586"></a>00586 <span class="preprocessor">#endif</span>
+<a name="l00587"></a>00587 <span class="preprocessor"></span>
+<a name="l00588"></a>00588 <span class="preprocessor">#endif </span><span class="comment">/* __OGGZ_H__ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz_8h.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz_8h.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz_8h.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,571 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>oggz.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+The liboggz C API. 
+<p>
+<h2><a class="anchor" name="general">
+Generic semantics</a></h2>
+All access is managed via an OGGZ handle. This can be instantiated in one of three ways:<p>
+<ul>
+<li><a class="el" href="oggz_8h.html#65197cdd03f755f7ebfabf2fdff4c7db" title="Open an Ogg file, creating an OGGZ handle for it.">oggz_open()</a> - Open a full pathname</li><li><a class="el" href="oggz_8h.html#c49e9de0bc4ef1d91b43b13605f98b19" title="Create an OGGZ handle associated with a stdio stream.">oggz_open_stdio()</a> - Use an already opened FILE *</li><li><a class="el" href="oggz_8h.html#6eb34d123389ae38d993601f9e7bb9d6" title="Create a new OGGZ object.">oggz_new()</a> - Create an anonymous OGGZ object, which you can later handle via memory buffers</li></ul>
+<p>
+To finish using an OGGZ handle, it should be closed with <a class="el" href="oggz_8h.html#adcfc04b2930660710bbcbc93140b783" title="Close an OGGZ handle.">oggz_close()</a>.<h2><a class="anchor" name="reading">
+Reading Ogg data</a></h2>
+To read from Ogg files or streams you must instantiate an OGGZ handle with flags set to OGGZ_READ, and provide an OggzReadPacket callback with <a class="el" href="group__read__api.html#g6d5aae4f7f186fffe19d4fd3cd63148d" title="Set a callback for Oggz to call when a new Ogg packet is found in the stream.">oggz_set_read_callback()</a>. See the <a class="el" href="group__read__api.html">Oggz Read API</a> section for details.<h2><a class="anchor" name="writing">
+Writing Ogg data</a></h2>
+To write to Ogg files or streams you must instantiate an OGGZ handle with flags set to OGGZ_WRITE, and provide an OggzWritePacket callback with oggz_set_write_callback(). See the <a class="el" href="group__write__api.html">Oggz Write API</a> section for details.<h2><a class="anchor" name="seeking">
+Seeking on Ogg data</a></h2>
+To seek while reading Ogg files or streams you must instantiate an OGGZ handle for reading, and ensure that an <a class="el" href="group__metric.html">OggzMetric </a> function is defined to translate packet positions into units such as time. See the <a class="el" href="group__seek__api.html">Oggz Seek API</a> section for details.<h2><a class="anchor" name="io">
+Overriding the IO methods</a></h2>
+When an OGGZ handle is instantiated by <a class="el" href="oggz_8h.html#65197cdd03f755f7ebfabf2fdff4c7db" title="Open an Ogg file, creating an OGGZ handle for it.">oggz_open()</a> or <a class="el" href="oggz_8h.html#c49e9de0bc4ef1d91b43b13605f98b19" title="Create an OGGZ handle associated with a stdio stream.">oggz_open_stdio()</a>, Oggz uses stdio functions internally to access the raw data. However for some applications, the raw data cannot be accessed via stdio -- this commonly occurs when integrating with media frameworks. For such applications, you can provide Oggz with custom IO methods that it should use to access the raw data. Oggz will then use these custom methods, rather than using stdio methods, to access the raw data internally.<p>
+For details, see <a class="el" href="oggz__io_8h.html">&lt;oggz/oggz_io.h&gt; </a>.<h2><a class="anchor" name="headers">
+Headers</a></h2>
+<a class="el" href="oggz_8h.html" title="The liboggz C API.">oggz.h</a> provides direct access to libogg types such as ogg_packet, defined in &lt;ogg/ogg.h&gt;. 
+<p>
+<code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;sys/types.h&gt;</code><br>
+<code>#include &lt;ogg/ogg.h&gt;</code><br>
+<code>#include &lt;<a class="el" href="oggz__constants_8h-source.html">oggz/oggz_constants.h</a>&gt;</code><br>
+<code>#include &lt;<a class="el" href="oggz__table_8h-source.html">oggz/oggz_table.h</a>&gt;</code><br>
+<code>#include &lt;<a class="el" href="oggz__off__t_8h-source.html">oggz/oggz_off_t.h</a>&gt;</code><br>
+<code>#include &lt;<a class="el" href="oggz__read_8h-source.html">oggz/oggz_read.h</a>&gt;</code><br>
+<code>#include &lt;<a class="el" href="oggz__stream_8h-source.html">oggz/oggz_stream.h</a>&gt;</code><br>
+<code>#include &lt;<a class="el" href="oggz__seek_8h-source.html">oggz/oggz_seek.h</a>&gt;</code><br>
+<code>#include &lt;<a class="el" href="oggz__write_8h-source.html">oggz/oggz_write.h</a>&gt;</code><br>
+<code>#include &lt;<a class="el" href="oggz__io_8h-source.html">oggz/oggz_io.h</a>&gt;</code><br>
+<code>#include &lt;<a class="el" href="oggz__comments_8h-source.html">oggz/oggz_comments.h</a>&gt;</code><br>
+<code>#include &lt;<a class="el" href="oggz__deprecated_8h-source.html">oggz/oggz_deprecated.h</a>&gt;</code><br>
+
+<p>
+<a href="oggz_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An opaque handle to an Ogg file.  <a href="#672d218df13da45a4b41d5366211bfee"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#6eb34d123389ae38d993601f9e7bb9d6">oggz_new</a> (int flags)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new OGGZ object.  <a href="#6eb34d123389ae38d993601f9e7bb9d6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#65197cdd03f755f7ebfabf2fdff4c7db">oggz_open</a> (const char *filename, int flags)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open an Ogg file, creating an OGGZ handle for it.  <a href="#65197cdd03f755f7ebfabf2fdff4c7db"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#c49e9de0bc4ef1d91b43b13605f98b19">oggz_open_stdio</a> (FILE *file, int flags)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an OGGZ handle associated with a stdio stream.  <a href="#c49e9de0bc4ef1d91b43b13605f98b19"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#8090c7e886af90dbea4dd5df8035dbf3">oggz_flush</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Ensure any associated io streams are flushed.  <a href="#8090c7e886af90dbea4dd5df8035dbf3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#0561df532fc37f98725007a79f898356">oggz_run</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Run an OGGZ until completion, or error.  <a href="#0561df532fc37f98725007a79f898356"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#d500c8ed7147f7fb1ddc6c915a6c10d7">oggz_run_set_blocksize</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long blocksize)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the blocksize to use internally for <a class="el" href="oggz_8h.html#0561df532fc37f98725007a79f898356" title="Run an OGGZ until completion, or error.">oggz_run()</a>.  <a href="#d500c8ed7147f7fb1ddc6c915a6c10d7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#adcfc04b2930660710bbcbc93140b783">oggz_close</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close an OGGZ handle.  <a href="#adcfc04b2930660710bbcbc93140b783"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#357244f9e73d219015d9ce8260ee08d3">oggz_get_bos</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if a given logical bitstream is at bos (beginning of stream).  <a href="#357244f9e73d219015d9ce8260ee08d3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#ee6a754e123ec0fd347d1ed0d4d4b3b7">oggz_get_eos</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if a given logical bitstream is at eos (end of stream).  <a href="#ee6a754e123ec0fd347d1ed0d4d4b3b7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#0dd3be49fc94531e35546318c14b64e7">oggz_get_numtracks</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query the number of tracks (logical bitstreams).  <a href="#0dd3be49fc94531e35546318c14b64e7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#af89877e3e89408387d422f487bcf094">oggz_serialno_new</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request a new serialno, as required for a new stream, ensuring the serialno is not yet used for any other streams managed by this OGGZ.  <a href="#af89877e3e89408387d422f487bcf094"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz_8h.html#b1b16dec307b6544b5f82a60a14c8518">oggz_content_type</a> (<a class="el" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598">OggzStreamContent</a> content)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return human-readable string representation of a content type.  <a href="#b1b16dec307b6544b5f82a60a14c8518"></a><br></td></tr>
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a class="anchor" name="672d218df13da45a4b41d5366211bfee"></a><!-- doxytag: member="oggz.h::OGGZ" ref="672d218df13da45a4b41d5366211bfee" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void <a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+An opaque handle to an Ogg file. 
+<p>
+This is returned by <a class="el" href="oggz_8h.html#65197cdd03f755f7ebfabf2fdff4c7db" title="Open an Ogg file, creating an OGGZ handle for it.">oggz_open()</a> or <a class="el" href="oggz_8h.html#6eb34d123389ae38d993601f9e7bb9d6" title="Create a new OGGZ object.">oggz_new()</a>, and is passed to all other oggz_* functions. 
+</div>
+</div><p>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="adcfc04b2930660710bbcbc93140b783"></a><!-- doxytag: member="oggz.h::oggz_close" ref="adcfc04b2930660710bbcbc93140b783" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_close           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Close an OGGZ handle. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_SYSTEM</em>&nbsp;</td><td>System error; check errno for details </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="b1b16dec307b6544b5f82a60a14c8518"></a><!-- doxytag: member="oggz.h::oggz_content_type" ref="b1b16dec307b6544b5f82a60a14c8518" args="(OggzStreamContent content)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* oggz_content_type           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598">OggzStreamContent</a>&nbsp;</td>
+          <td class="paramname"> <em>content</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Return human-readable string representation of a content type. 
+<p>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>the name of the content type </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td><em>content</em> invalid </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="8090c7e886af90dbea4dd5df8035dbf3"></a><!-- doxytag: member="oggz.h::oggz_flush" ref="8090c7e886af90dbea4dd5df8035dbf3" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_flush           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Ensure any associated io streams are flushed. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_SYSTEM</em>&nbsp;</td><td>System error; check errno for details </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="357244f9e73d219015d9ce8260ee08d3"></a><!-- doxytag: member="oggz.h::oggz_get_bos" ref="357244f9e73d219015d9ce8260ee08d3" args="(OGGZ *oggz, long serialno)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_get_bos           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Determine if a given logical bitstream is at bos (beginning of stream). 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em>, or -1 to query if all logical bitstreams in <em>oggz</em> are at bos </td></tr>
+  </table>
+</dl>
+<dl compact><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>&nbsp;</td><td>The given stream is at bos </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>The given stream is not at bos </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="ee6a754e123ec0fd347d1ed0d4d4b3b7"></a><!-- doxytag: member="oggz.h::oggz_get_eos" ref="ee6a754e123ec0fd347d1ed0d4d4b3b7" args="(OGGZ *oggz, long serialno)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_get_eos           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Determine if a given logical bitstream is at eos (end of stream). 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em>, or -1 to query if all logical bitstreams in <em>oggz</em> are at eos </td></tr>
+  </table>
+</dl>
+<dl compact><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>&nbsp;</td><td>The given stream is at eos </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>The given stream is not at eos </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="0dd3be49fc94531e35546318c14b64e7"></a><!-- doxytag: member="oggz.h::oggz_get_numtracks" ref="0dd3be49fc94531e35546318c14b64e7" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_get_numtracks           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Query the number of tracks (logical bitstreams). 
+<p>
+When reading, this number is incremented every time a new track is found, so the returned value is only correct once the OGGZ is no longer at bos (beginning of stream): see <a class="el" href="oggz_8h.html#357244f9e73d219015d9ce8260ee08d3" title="Determine if a given logical bitstream is at bos (beginning of stream).">oggz_get_bos()</a> for determining this. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of tracks in OGGZ </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="6eb34d123389ae38d993601f9e7bb9d6"></a><!-- doxytag: member="oggz.h::oggz_new" ref="6eb34d123389ae38d993601f9e7bb9d6" args="(int flags)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a>* oggz_new           </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>flags</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Create a new OGGZ object. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>OGGZ_READ or OGGZ_WRITE </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A new OGGZ object </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>on system error; check errno for details </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="65197cdd03f755f7ebfabf2fdff4c7db"></a><!-- doxytag: member="oggz.h::oggz_open" ref="65197cdd03f755f7ebfabf2fdff4c7db" args="(const char *filename, int flags)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a>* oggz_open           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>filename</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Open an Ogg file, creating an OGGZ handle for it. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>The file to open </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>OGGZ_READ or OGGZ_WRITE </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A new OGGZ handle </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>System error; check errno for details </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="c49e9de0bc4ef1d91b43b13605f98b19"></a><!-- doxytag: member="oggz.h::oggz_open_stdio" ref="c49e9de0bc4ef1d91b43b13605f98b19" args="(FILE *file, int flags)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a>* oggz_open_stdio           </td>
+          <td>(</td>
+          <td class="paramtype">FILE *&nbsp;</td>
+          <td class="paramname"> <em>file</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Create an OGGZ handle associated with a stdio stream. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>file</em>&nbsp;</td><td>An open FILE handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>OGGZ_READ or OGGZ_WRITE </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A new OGGZ handle </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>System error; check errno for details </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="0561df532fc37f98725007a79f898356"></a><!-- doxytag: member="oggz.h::oggz_run" ref="0561df532fc37f98725007a79f898356" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">long oggz_run           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Run an OGGZ until completion, or error. 
+<p>
+This is a convenience function which repeatedly calls <a class="el" href="group__read__api.html#g3ce7a31de5da56375057436c6b5108f2" title="Read n bytes into oggz, calling any read callbacks on the fly.">oggz_read()</a> or <a class="el" href="group__write__api.html#g3c97d94ea425d64546adf9c368b71904" title="Write n bytes from an OGGZ handle.">oggz_write()</a> as appropriate. For an OGGZ opened for reading, an OggzReadPacket or OggzReadPage callback should have been set before calling this function. For an OGGZ opened for writing, either an OggzHungry callback should have been set before calling this function, or you can use this function to write out all unwritten Ogg pages which are pending. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle previously opened for either reading or writing </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_SYSTEM</em>&nbsp;</td><td>System error; check errno for details </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_STOP_OK</em>&nbsp;</td><td>Operation was stopped by a user callback returning OGGZ_STOP_OK </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_STOP_ERR</em>&nbsp;</td><td>Operation was stopped by a user callback returning OGGZ_STOP_ERR </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_RECURSIVE_WRITE</em>&nbsp;</td><td>Attempt to initiate writing from within an OggzHungry callback </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d500c8ed7147f7fb1ddc6c915a6c10d7"></a><!-- doxytag: member="oggz.h::oggz_run_set_blocksize" ref="d500c8ed7147f7fb1ddc6c915a6c10d7" args="(OGGZ *oggz, long blocksize)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_run_set_blocksize           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>blocksize</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set the blocksize to use internally for <a class="el" href="oggz_8h.html#0561df532fc37f98725007a79f898356" title="Run an OGGZ until completion, or error.">oggz_run()</a>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle previously opened for either reading or writing </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>blocksize</em>&nbsp;</td><td>The blocksize to use within <a class="el" href="oggz_8h.html#0561df532fc37f98725007a79f898356" title="Run an OGGZ until completion, or error.">oggz_run()</a> </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Invalid blocksize (<em>run_blocksize</em> &lt;= 0) </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="af89877e3e89408387d422f487bcf094"></a><!-- doxytag: member="oggz.h::oggz_serialno_new" ref="af89877e3e89408387d422f487bcf094" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">long oggz_serialno_new           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Request a new serialno, as required for a new stream, ensuring the serialno is not yet used for any other streams managed by this OGGZ. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A new serialno, not already occuring in any logical bitstreams in <em>oggz</em>. </dd></dl>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__comments_8h-source.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__comments_8h-source.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__comments_8h-source.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_comments.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>oggz_comments.h</h1><a href="oggz__comments_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">   Copyright (C) 2003 Commonwealth Scientific and Industrial Research</span>
+<a name="l00003"></a>00003 <span class="comment">   Organisation (CSIRO) Australia</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">   Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">   modification, are permitted provided that the following conditions</span>
+<a name="l00007"></a>00007 <span class="comment">   are met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">   - Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">   notice, this list of conditions and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">   - Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">   notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">   documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">   - Neither the name of CSIRO Australia nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">   contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">   this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span>
+<a name="l00023"></a>00023 <span class="comment">   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR</span>
+<a name="l00024"></a>00024 <span class="comment">   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
+<a name="l00025"></a>00025 <span class="comment">   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
+<a name="l00026"></a>00026 <span class="comment">   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
+<a name="l00027"></a>00027 <span class="comment">   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
+<a name="l00028"></a>00028 <span class="comment">   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
+<a name="l00029"></a>00029 <span class="comment">   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
+<a name="l00030"></a>00030 <span class="comment">   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="preprocessor">#ifndef __OGGZ_COMMENT_H__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define __OGGZ_COMMENT_H__</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00086"></a>00086 <span class="preprocessor">#include &lt;<a class="code" href="oggz_8h.html" title="The liboggz C API.">oggz/oggz.h</a>&gt;</span>
+<a name="l00087"></a>00087 
+<a name="l00091"></a><a class="code" href="structOggzComment.html">00091</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
+<a name="l00093"></a><a class="code" href="structOggzComment.html#f1b4e3c3e42e17054b6164bbdee5a37f">00093</a>   <span class="keywordtype">char</span> * name;
+<a name="l00094"></a>00094 
+<a name="l00096"></a><a class="code" href="structOggzComment.html#e300da8b29b69ea083b47035e944f9bb">00096</a>   <span class="keywordtype">char</span> * value;
+<a name="l00097"></a>00097 } <a class="code" href="structOggzComment.html" title="A comment.">OggzComment</a>;
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00100"></a>00100 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
+<a name="l00101"></a>00101 <span class="preprocessor">#endif</span>
+<a name="l00102"></a>00102 <span class="preprocessor"></span>
+<a name="l00112"></a>00112 <span class="keyword">const</span> <span class="keywordtype">char</span> *
+<a name="l00113"></a>00113 <a class="code" href="oggz__comments_8h.html#e5d522df5fce262953d8bb5cb8c00b00" title="Retrieve the vendor string.">oggz_comment_get_vendor</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno);
+<a name="l00114"></a>00114 
+<a name="l00128"></a>00128 <span class="keywordtype">int</span>
+<a name="l00129"></a>00129 <a class="code" href="oggz__comments_8h.html#281a0956a9a160337f7d00f102d18131" title="Set the vendor string.">oggz_comment_set_vendor</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno,
+<a name="l00130"></a>00130                          <span class="keyword">const</span> <span class="keywordtype">char</span> * vendor_string);
+<a name="l00131"></a>00131 
+<a name="l00140"></a>00140 <span class="keyword">const</span> <a class="code" href="structOggzComment.html" title="A comment.">OggzComment</a> *
+<a name="l00141"></a>00141 <a class="code" href="oggz__comments_8h.html#306a979d84b61932930d44ea5d4f95d9" title="Retrieve the first comment.">oggz_comment_first</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno);
+<a name="l00142"></a>00142 
+<a name="l00153"></a>00153 <span class="keyword">const</span> <a class="code" href="structOggzComment.html" title="A comment.">OggzComment</a> *
+<a name="l00154"></a>00154 <a class="code" href="oggz__comments_8h.html#9501d8c166187c8d503e1335827b2d5e" title="Retrieve the next comment.">oggz_comment_next</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno, <span class="keyword">const</span> <a class="code" href="structOggzComment.html" title="A comment.">OggzComment</a> * comment);
+<a name="l00155"></a>00155 
+<a name="l00167"></a>00167 <span class="keyword">const</span> <a class="code" href="structOggzComment.html" title="A comment.">OggzComment</a> *
+<a name="l00168"></a>00168 <a class="code" href="oggz__comments_8h.html#9a3a72be012b6474a1e1d95f7ce7afe8" title="Retrieve the first comment with a given name.">oggz_comment_first_byname</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno, <span class="keywordtype">char</span> * name);
+<a name="l00169"></a>00169 
+<a name="l00182"></a>00182 <span class="keyword">const</span> <a class="code" href="structOggzComment.html" title="A comment.">OggzComment</a> *
+<a name="l00183"></a>00183 <a class="code" href="oggz__comments_8h.html#1dd05e02a121ba639b8012acaa21a37c" title="Retrieve the next comment following and with the same name as a given comment.">oggz_comment_next_byname</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno,
+<a name="l00184"></a>00184                           <span class="keyword">const</span> <a class="code" href="structOggzComment.html" title="A comment.">OggzComment</a> * comment);
+<a name="l00185"></a>00185 
+<a name="l00196"></a>00196 <span class="keywordtype">int</span>
+<a name="l00197"></a>00197 <a class="code" href="oggz__comments_8h.html#de23081a738d67bec473bdaf317a68d8" title="Add a comment.">oggz_comment_add</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno, <a class="code" href="structOggzComment.html" title="A comment.">OggzComment</a> * comment);
+<a name="l00198"></a>00198 
+<a name="l00210"></a>00210 <span class="keywordtype">int</span>
+<a name="l00211"></a>00211 <a class="code" href="oggz__comments_8h.html#d869a8a7246567ba4162183436127a6f" title="Add a comment by name and value.">oggz_comment_add_byname</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno,
+<a name="l00212"></a>00212                          <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <span class="keyword">const</span> <span class="keywordtype">char</span> * value);
+<a name="l00213"></a>00213 
+<a name="l00226"></a>00226 <span class="keywordtype">int</span>
+<a name="l00227"></a>00227 <a class="code" href="oggz__comments_8h.html#75ca47a020dcddce846a320481120a8e" title="Remove a comment.">oggz_comment_remove</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno, <a class="code" href="structOggzComment.html" title="A comment.">OggzComment</a> * comment);
+<a name="l00228"></a>00228 
+<a name="l00240"></a>00240 <span class="keywordtype">int</span>
+<a name="l00241"></a>00241 <a class="code" href="oggz__comments_8h.html#a0f3f3a3ea3ca28d8678b94495634876" title="Remove all comments with a given name.">oggz_comment_remove_byname</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno, <span class="keywordtype">char</span> * name);
+<a name="l00242"></a>00242 
+<a name="l00265"></a>00265 ogg_packet *
+<a name="l00266"></a>00266 <a class="code" href="oggz__comments_8h.html#1ee69481fa517d80e63db962a23d53ae" title="Output a comment packet for the specified stream.">oggz_comments_generate</a>(<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno,
+<a name="l00267"></a>00267                        <span class="keywordtype">int</span> FLAC_final_metadata_block);
+<a name="l00268"></a>00268   
+<a name="l00269"></a>00269 <span class="comment">/*</span>
+<a name="l00270"></a>00270 <span class="comment"> * Copy comments between two streams.</span>
+<a name="l00271"></a>00271 <span class="comment"> * \param src A OGGZ* handle</span>
+<a name="l00272"></a>00272 <span class="comment"> * \param src_serialno Identify a logical bitstream within \a src</span>
+<a name="l00273"></a>00273 <span class="comment"> * \param dest A OGGZ* handle (created with OGGZ_WRITE)</span>
+<a name="l00274"></a>00274 <span class="comment"> * \param dest_serialno Identify a logical bitstream within \a dest</span>
+<a name="l00275"></a>00275 <span class="comment"> * \retval OGGZ_ERR_BAD \a oggz is not a valid OGGZ* handle</span>
+<a name="l00276"></a>00276 <span class="comment"> * \retval OGGZ_ERR_INVALID Operation not suitable for \a dest</span>
+<a name="l00277"></a>00277 <span class="comment"> */</span>
+<a name="l00278"></a>00278 <span class="keywordtype">int</span>
+<a name="l00279"></a>00279 oggz_comments_copy (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * src, <span class="keywordtype">long</span> src_serialno,
+<a name="l00280"></a>00280                     <a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * dest, <span class="keywordtype">long</span> dest_serialno);
+<a name="l00281"></a>00281 
+<a name="l00287"></a>00287 <span class="keywordtype">void</span> <a class="code" href="oggz__comments_8h.html#9301332e99b0397cff54c3593595b809" title="Free a packet and its payload.">oggz_packet_destroy</a> (ogg_packet *packet);
+<a name="l00288"></a>00288 
+<a name="l00289"></a>00289 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00290"></a>00290 <span class="preprocessor"></span>}
+<a name="l00291"></a>00291 <span class="preprocessor">#endif</span>
+<a name="l00292"></a>00292 <span class="preprocessor"></span>
+<a name="l00293"></a>00293 <span class="preprocessor">#endif </span><span class="comment">/* __OGGZ_COMMENTS_H__ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__comments_8h.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__comments_8h.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__comments_8h.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,677 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_comments.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>oggz_comments.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Reading of comments. 
+<p>
+Vorbis, Speex and Theora bitstreams use a comment format called "Vorbiscomment", defined <a href="http://www.xiph.org/ogg/vorbis/doc/v-comment.html">here</a>. Many standard comment names (such as TITLE, COPYRIGHT and GENRE) are defined in that document.<p>
+The following general features of Vorbiscomment are relevant to this API:<ul>
+<li>Each stream has one comment packet, which occurs before any encoded audio data in the stream.</li><li>When reading, Oggz will decode the comment block before calling the second read() callback for each stream. Hence, retrieving comment data is possible once the read() callback has been called a second time.</li><li>When writing, Oggz allows you to set up the comments in memory, and provides a single function to generate a corresponding ogg_packet. It is your responsibility to then actually write that packet in sequence.</li></ul>
+<p>
+Each comment block contains one Vendor string, which can be retrieved with <a class="el" href="oggz__comments_8h.html#e5d522df5fce262953d8bb5cb8c00b00" title="Retrieve the vendor string.">oggz_comment_get_vendor()</a>.<p>
+The rest of a comment block consists of <em>name</em> = <em>value</em> pairs, with the following restrictions:<ul>
+<li>Both the <em>name</em> and <em>value</em> must be non-empty</li><li>The <em>name</em> is case-insensitive and must consist of ASCII within the range 0x20 to 0x7D inclusive, 0x3D ('=') excluded.</li><li>The <em>name</em> is not unique; multiple entries may exist with equivalent <em>name</em> within a Vorbiscomment block.</li><li>The <em>value</em> may be any UTF-8 string.</li></ul>
+<h2><a class="anchor" name="comments_get">
+Reading comments</a></h2>
+Oggz contains API methods to iterate through all comments associated with the logical bitstreams of an OGGZ* handle (<a class="el" href="oggz__comments_8h.html#306a979d84b61932930d44ea5d4f95d9" title="Retrieve the first comment.">oggz_comment_first()</a> and <a class="el" href="oggz__comments_8h.html#9501d8c166187c8d503e1335827b2d5e" title="Retrieve the next comment.">oggz_comment_next()</a>, and to iterate through comments matching a particular name (<a class="el" href="oggz__comments_8h.html#9a3a72be012b6474a1e1d95f7ce7afe8" title="Retrieve the first comment with a given name.">oggz_comment_first_byname()</a> and <a class="el" href="oggz__comments_8h.html#1dd05e02a121ba639b8012acaa21a37c" title="Retrieve the next comment following and with the same name as a given comment.">oggz_comment_next_byname()</a>). Given that multiple comments may exist with the same <em>name</em>, you should not use <a class="el" href="oggz__comments_8h.html#9a3a72be012b6474a1e1d95f7ce7afe8" title
 ="Retrieve the first comment with a given name.">oggz_comment_first_byname()</a> as a simple "get" function.<h2><a class="anchor" name="comments_set">
+Writing comments</a></h2>
+For writing, Oggz contains API methods for adding comments (<a class="el" href="oggz__comments_8h.html#de23081a738d67bec473bdaf317a68d8" title="Add a comment.">oggz_comment_add()</a> and <a class="el" href="oggz__comments_8h.html#d869a8a7246567ba4162183436127a6f" title="Add a comment by name and value.">oggz_comment_add_byname()</a>), for removing comments (<a class="el" href="oggz__comments_8h.html#75ca47a020dcddce846a320481120a8e" title="Remove a comment.">oggz_comment_remove()</a> and <a class="el" href="oggz__comments_8h.html#a0f3f3a3ea3ca28d8678b94495634876" title="Remove all comments with a given name.">oggz_comment_remove_byname()</a>) and for setting the vendor string (<a class="el" href="oggz__comments_8h.html#281a0956a9a160337f7d00f102d18131" title="Set the vendor string.">oggz_comment_set_vendor()</a>). 
+<p>
+<code>#include &lt;<a class="el" href="oggz_8h-source.html">oggz/oggz.h</a>&gt;</code><br>
+
+<p>
+<a href="oggz__comments_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structOggzComment.html">OggzComment</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A comment.  <a href="structOggzComment.html#_details">More...</a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__comments_8h.html#e5d522df5fce262953d8bb5cb8c00b00">oggz_comment_get_vendor</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the vendor string.  <a href="#e5d522df5fce262953d8bb5cb8c00b00"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__comments_8h.html#281a0956a9a160337f7d00f102d18131">oggz_comment_set_vendor</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, const char *vendor_string)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the vendor string.  <a href="#281a0956a9a160337f7d00f102d18131"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structOggzComment.html">OggzComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__comments_8h.html#306a979d84b61932930d44ea5d4f95d9">oggz_comment_first</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the first comment.  <a href="#306a979d84b61932930d44ea5d4f95d9"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structOggzComment.html">OggzComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__comments_8h.html#9501d8c166187c8d503e1335827b2d5e">oggz_comment_next</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, const <a class="el" href="structOggzComment.html">OggzComment</a> *comment)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the next comment.  <a href="#9501d8c166187c8d503e1335827b2d5e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structOggzComment.html">OggzComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__comments_8h.html#9a3a72be012b6474a1e1d95f7ce7afe8">oggz_comment_first_byname</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, char *name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the first comment with a given name.  <a href="#9a3a72be012b6474a1e1d95f7ce7afe8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structOggzComment.html">OggzComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__comments_8h.html#1dd05e02a121ba639b8012acaa21a37c">oggz_comment_next_byname</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, const <a class="el" href="structOggzComment.html">OggzComment</a> *comment)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the next comment following and with the same name as a given comment.  <a href="#1dd05e02a121ba639b8012acaa21a37c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__comments_8h.html#de23081a738d67bec473bdaf317a68d8">oggz_comment_add</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, <a class="el" href="structOggzComment.html">OggzComment</a> *comment)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a comment.  <a href="#de23081a738d67bec473bdaf317a68d8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__comments_8h.html#d869a8a7246567ba4162183436127a6f">oggz_comment_add_byname</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, const char *name, const char *value)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a comment by name and value.  <a href="#d869a8a7246567ba4162183436127a6f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__comments_8h.html#75ca47a020dcddce846a320481120a8e">oggz_comment_remove</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, <a class="el" href="structOggzComment.html">OggzComment</a> *comment)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a comment.  <a href="#75ca47a020dcddce846a320481120a8e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__comments_8h.html#a0f3f3a3ea3ca28d8678b94495634876">oggz_comment_remove_byname</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, char *name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove all comments with a given name.  <a href="#a0f3f3a3ea3ca28d8678b94495634876"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ogg_packet *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__comments_8h.html#1ee69481fa517d80e63db962a23d53ae">oggz_comments_generate</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, int FLAC_final_metadata_block)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output a comment packet for the specified stream.  <a href="#1ee69481fa517d80e63db962a23d53ae"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="486cd52284cb03032360265d2027f8db"></a><!-- doxytag: member="oggz_comments.h::oggz_comments_copy" ref="486cd52284cb03032360265d2027f8db" args="(OGGZ *src, long src_serialno, OGGZ *dest, long dest_serialno)" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><b>oggz_comments_copy</b> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *src, long src_serialno, <a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *dest, long dest_serialno)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__comments_8h.html#9301332e99b0397cff54c3593595b809">oggz_packet_destroy</a> (ogg_packet *packet)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free a packet and its payload.  <a href="#9301332e99b0397cff54c3593595b809"></a><br></td></tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="de23081a738d67bec473bdaf317a68d8"></a><!-- doxytag: member="oggz_comments.h::oggz_comment_add" ref="de23081a738d67bec473bdaf317a68d8" args="(OGGZ *oggz, long serialno, OggzComment *comment)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_comment_add           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structOggzComment.html">OggzComment</a> *&nbsp;</td>
+          <td class="paramname"> <em>comment</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Add a comment. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>A OGGZ* handle (created with mode OGGZ_WRITE) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>comment</em>&nbsp;</td><td>The comment to add </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD</em>&nbsp;</td><td><em>oggz</em> is not a valid OGGZ* handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Out of memory </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d869a8a7246567ba4162183436127a6f"></a><!-- doxytag: member="oggz_comments.h::oggz_comment_add_byname" ref="d869a8a7246567ba4162183436127a6f" args="(OGGZ *oggz, long serialno, const char *name, const char *value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_comment_add_byname           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Add a comment by name and value. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>A OGGZ* handle (created with mode OGGZ_WRITE) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the comment to add </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The contents of the comment to add </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD</em>&nbsp;</td><td><em>oggz</em> is not a valid OGGZ* handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Out of memory </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="306a979d84b61932930d44ea5d4f95d9"></a><!-- doxytag: member="oggz_comments.h::oggz_comment_first" ref="306a979d84b61932930d44ea5d4f95d9" args="(OGGZ *oggz, long serialno)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="structOggzComment.html">OggzComment</a>* oggz_comment_first           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the first comment. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>A OGGZ* handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em> </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A read-only copy of the first comment. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>No comments exist for this OGGZ* object, or <em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="9a3a72be012b6474a1e1d95f7ce7afe8"></a><!-- doxytag: member="oggz_comments.h::oggz_comment_first_byname" ref="9a3a72be012b6474a1e1d95f7ce7afe8" args="(OGGZ *oggz, long serialno, char *name)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="structOggzComment.html">OggzComment</a>* oggz_comment_first_byname           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the first comment with a given name. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>A OGGZ* handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>the name of the comment to retrieve. </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A read-only copy of the first comment matching the given <em>name</em>. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>No match was found, or <em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>If <em>name</em> is NULL, the behaviour is the same as for <a class="el" href="oggz__comments_8h.html#306a979d84b61932930d44ea5d4f95d9" title="Retrieve the first comment.">oggz_comment_first()</a> </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="e5d522df5fce262953d8bb5cb8c00b00"></a><!-- doxytag: member="oggz_comments.h::oggz_comment_get_vendor" ref="e5d522df5fce262953d8bb5cb8c00b00" args="(OGGZ *oggz, long serialno)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* oggz_comment_get_vendor           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the vendor string. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>A OGGZ* handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em> </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A read-only copy of the vendor string. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>No vendor string is associated with <em>oggz</em>, or <em>oggz</em> is NULL, or <em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="9501d8c166187c8d503e1335827b2d5e"></a><!-- doxytag: member="oggz_comments.h::oggz_comment_next" ref="9501d8c166187c8d503e1335827b2d5e" args="(OGGZ *oggz, long serialno, const OggzComment *comment)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="structOggzComment.html">OggzComment</a>* oggz_comment_next           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structOggzComment.html">OggzComment</a> *&nbsp;</td>
+          <td class="paramname"> <em>comment</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the next comment. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>A OGGZ* handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>comment</em>&nbsp;</td><td>The previous comment. </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A read-only copy of the comment immediately following the given comment. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="1dd05e02a121ba639b8012acaa21a37c"></a><!-- doxytag: member="oggz_comments.h::oggz_comment_next_byname" ref="1dd05e02a121ba639b8012acaa21a37c" args="(OGGZ *oggz, long serialno, const OggzComment *comment)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="structOggzComment.html">OggzComment</a>* oggz_comment_next_byname           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structOggzComment.html">OggzComment</a> *&nbsp;</td>
+          <td class="paramname"> <em>comment</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the next comment following and with the same name as a given comment. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>A OGGZ* handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>comment</em>&nbsp;</td><td>A comment </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A read-only copy of the next comment with the same name as <em>comment</em>. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>No further comments with the same name exist for this OGGZ* object, or <em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="75ca47a020dcddce846a320481120a8e"></a><!-- doxytag: member="oggz_comments.h::oggz_comment_remove" ref="75ca47a020dcddce846a320481120a8e" args="(OGGZ *oggz, long serialno, OggzComment *comment)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_comment_remove           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structOggzComment.html">OggzComment</a> *&nbsp;</td>
+          <td class="paramname"> <em>comment</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Remove a comment. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>A OGGZ* handle (created with OGGZ_WRITE) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>comment</em>&nbsp;</td><td>The comment to remove. </td></tr>
+  </table>
+</dl>
+<dl compact><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>&nbsp;</td><td>Success: comment removed </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>No-op: comment not found, nothing to remove </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD</em>&nbsp;</td><td><em>oggz</em> is not a valid OGGZ* handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a0f3f3a3ea3ca28d8678b94495634876"></a><!-- doxytag: member="oggz_comments.h::oggz_comment_remove_byname" ref="a0f3f3a3ea3ca28d8678b94495634876" args="(OGGZ *oggz, long serialno, char *name)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_comment_remove_byname           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Remove all comments with a given name. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>A OGGZ* handle (created with OGGZ_WRITE) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the comments to remove </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>&gt;= 0</em>&nbsp;</td><td>The number of comments removed </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD</em>&nbsp;</td><td><em>oggz</em> is not a valid OGGZ* handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="281a0956a9a160337f7d00f102d18131"></a><!-- doxytag: member="oggz_comments.h::oggz_comment_set_vendor" ref="281a0956a9a160337f7d00f102d18131" args="(OGGZ *oggz, long serialno, const char *vendor_string)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_comment_set_vendor           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>vendor_string</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set the vendor string. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>A OGGZ* handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>vendor_string</em>&nbsp;</td><td>The contents of the vendor string to add </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD</em>&nbsp;</td><td><em>oggz</em> is not a valid OGGZ* handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Out of memory </td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>The vendor string should identify the library used to produce the stream, e.g. libvorbis 1.0 used "Xiph.Org libVorbis I 20020717". If copying a bitstream it should be the same as the source. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="1ee69481fa517d80e63db962a23d53ae"></a><!-- doxytag: member="oggz_comments.h::oggz_comments_generate" ref="1ee69481fa517d80e63db962a23d53ae" args="(OGGZ *oggz, long serialno, int FLAC_final_metadata_block)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_packet* oggz_comments_generate           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>FLAC_final_metadata_block</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Output a comment packet for the specified stream. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>A OGGZ* handle (created with OGGZ_WRITE) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>FLAC_final_metadata_block</em>&nbsp;</td><td>Set this to zero unless the packet_type is FLAC, and there are no further metadata blocks to follow. See note below for details. </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A comment packet for the stream. When no longer needed it should be freed with <a class="el" href="oggz__comments_8h.html#9301332e99b0397cff54c3593595b809" title="Free a packet and its payload.">oggz_packet_destroy()</a>. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>content type does not support comments, not enough memory or comment was too long for FLAC </td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>FLAC streams may contain multiple metadata blocks of different types. When encapsulated in Ogg the first of these must be a Vorbis comment packet but PADDING, APPLICATION, SEEKTABLE, CUESHEET and PICTURE may follow. The last metadata block must have its first bit set to 1. Since liboggz does not know whether you will supply more metadata blocks you must tell it if this is the last (or only) metadata block by setting FLAC_final_metadata_block to 1. <br>
+ As FLAC metadata blocks are limited in size to 16MB minus 1 byte, this function will refuse to produce longer comment packets for FLAC. <br>
+ See <a href="http://flac.sourceforge.net/format.html">http://flac.sourceforge.net/format.html</a> for more details. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="9301332e99b0397cff54c3593595b809"></a><!-- doxytag: member="oggz_comments.h::oggz_packet_destroy" ref="9301332e99b0397cff54c3593595b809" args="(ogg_packet *packet)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void oggz_packet_destroy           </td>
+          <td>(</td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>packet</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Free a packet and its payload. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>packet</em>&nbsp;</td><td>A packet previously returned from a function such as <a class="el" href="oggz__deprecated_8h.html#ab908fe161372aceb99f98a3be54ead5" title="DEPRECATED FUNCTION This function has been replaced with oggz_comments_generate()...">oggz_comment_generate()</a>. User generated packets should not be passed. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__constants_8h-source.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__constants_8h-source.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__constants_8h-source.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_constants.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>oggz_constants.h</h1><a href="oggz__constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">   Copyright (C) 2003 Commonwealth Scientific and Industrial Research</span>
+<a name="l00003"></a>00003 <span class="comment">   Organisation (CSIRO) Australia</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">   Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">   modification, are permitted provided that the following conditions</span>
+<a name="l00007"></a>00007 <span class="comment">   are met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">   - Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">   notice, this list of conditions and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">   - Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">   notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">   documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">   - Neither the name of CSIRO Australia nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">   contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">   this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span>
+<a name="l00023"></a>00023 <span class="comment">   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR</span>
+<a name="l00024"></a>00024 <span class="comment">   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
+<a name="l00025"></a>00025 <span class="comment">   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
+<a name="l00026"></a>00026 <span class="comment">   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
+<a name="l00027"></a>00027 <span class="comment">   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
+<a name="l00028"></a>00028 <span class="comment">   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
+<a name="l00029"></a>00029 <span class="comment">   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
+<a name="l00030"></a>00030 <span class="comment">   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="preprocessor">#ifndef __OGGZ_CONSTANTS_H__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define __OGGZ_CONSTANTS_H__</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00046"></a><a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3">00046</a> <span class="keyword">enum</span> <a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3" title="Flags to oggz_new(), oggz_open(), and oggz_openfd().">OggzFlags</a> {
+<a name="l00048"></a><a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd395bd4a2b27d6e9e119ee11a7c5c26c50">00048</a>   <a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd395bd4a2b27d6e9e119ee11a7c5c26c50" title="Read only.">OGGZ_READ</a>         = 0x00,
+<a name="l00049"></a>00049 
+<a name="l00051"></a><a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd38819c3d01c84191dbf846b5e0a98d757">00051</a>   <a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd38819c3d01c84191dbf846b5e0a98d757" title="Write only.">OGGZ_WRITE</a>        = 0x01,
+<a name="l00052"></a>00052 
+<a name="l00055"></a><a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd324e9b4267730b726756241d7de2e8cf2">00055</a>   <a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd324e9b4267730b726756241d7de2e8cf2" title="Disable strict adherence to mapping constraints, eg for handling an incomplete stream...">OGGZ_NONSTRICT</a>    = 0x10,
+<a name="l00056"></a>00056 
+<a name="l00063"></a><a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3f5b915c8762126bff52a0499745d1732">00063</a>   <a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3f5b915c8762126bff52a0499745d1732" title="Scan for known headers while reading, and automatically set metrics appropriately...">OGGZ_AUTO</a>         = 0x20,
+<a name="l00064"></a>00064 
+<a name="l00070"></a><a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3cb0fc6d8842462d7a1624c3312c299fb">00070</a>   <a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3cb0fc6d8842462d7a1624c3312c299fb" title="Write Prefix: Assume that we are only writing the prefix of an Ogg stream, ie.">OGGZ_PREFIX</a>       = 0x40,
+<a name="l00071"></a>00071 
+<a name="l00077"></a><a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd370e2ea0bfd95ff858125a4f777eb90e8">00077</a>   <a class="code" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd370e2ea0bfd95ff858125a4f777eb90e8" title="Write Suffix: Assume that we are only writing the suffix of an Ogg stream, ie.">OGGZ_SUFFIX</a>       = 0x80
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079 };
+<a name="l00080"></a>00080 
+<a name="l00081"></a><a class="code" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ff">00081</a> <span class="keyword">enum</span> <a class="code" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ff">OggzStopCtl</a> {
+<a name="l00083"></a><a class="code" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5fff5242099c219d1330ddd861585cc3bf3">00083</a>   <a class="code" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5fff5242099c219d1330ddd861585cc3bf3" title="Continue calling read callbacks.">OGGZ_CONTINUE</a>     = 0,
+<a name="l00084"></a>00084 
+<a name="l00086"></a><a class="code" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ffc05c70a0c2213533267f8494eb928282">00086</a>   <a class="code" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ffc05c70a0c2213533267f8494eb928282" title="Stop calling callbacks, but retain buffered packet data.">OGGZ_STOP_OK</a>      = 1,
+<a name="l00087"></a>00087 
+<a name="l00089"></a><a class="code" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ff09454b9448ae3d93439b644243b6e552">00089</a>   <a class="code" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ff09454b9448ae3d93439b644243b6e552" title="Stop calling callbacks, and purge buffered packet data.">OGGZ_STOP_ERR</a>     = -1
+<a name="l00090"></a>00090 };
+<a name="l00091"></a>00091 
+<a name="l00095"></a><a class="code" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c847237">00095</a> <span class="keyword">enum</span> <a class="code" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c847237" title="Flush options for oggz_write_feed; can be or&amp;#39;ed together.">OggzFlushOpts</a> {
+<a name="l00097"></a><a class="code" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c8472379dc1d61b8f27fe00ba9d0a8005a9bcfb">00097</a>   <a class="code" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c8472379dc1d61b8f27fe00ba9d0a8005a9bcfb" title="Flush all streams before beginning this packet.">OGGZ_FLUSH_BEFORE</a> = 0x01,
+<a name="l00098"></a>00098 
+<a name="l00100"></a><a class="code" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c84723742efb730f40edcdb0dfdb8a6294619c4">00100</a>   <a class="code" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c84723742efb730f40edcdb0dfdb8a6294619c4" title="Flush after this packet.">OGGZ_FLUSH_AFTER</a>  = 0x02
+<a name="l00101"></a>00101 };
+<a name="l00102"></a>00102 
+<a name="l00106"></a><a class="code" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598">00106</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598" title="Definition of stream content types.">OggzStreamContent</a> {
+<a name="l00107"></a>00107   OGGZ_CONTENT_THEORA = 0,
+<a name="l00108"></a>00108   OGGZ_CONTENT_VORBIS,
+<a name="l00109"></a>00109   OGGZ_CONTENT_SPEEX,
+<a name="l00110"></a>00110   OGGZ_CONTENT_PCM,
+<a name="l00111"></a>00111   OGGZ_CONTENT_CMML,
+<a name="l00112"></a>00112   OGGZ_CONTENT_ANX2,
+<a name="l00113"></a>00113   OGGZ_CONTENT_SKELETON,
+<a name="l00114"></a>00114   OGGZ_CONTENT_FLAC0,
+<a name="l00115"></a>00115   OGGZ_CONTENT_FLAC,
+<a name="l00116"></a>00116   OGGZ_CONTENT_ANXDATA,
+<a name="l00117"></a>00117   OGGZ_CONTENT_CELT,
+<a name="l00118"></a>00118   OGGZ_CONTENT_KATE,
+<a name="l00119"></a>00119   OGGZ_CONTENT_DIRAC,
+<a name="l00120"></a>00120   OGGZ_CONTENT_UNKNOWN
+<a name="l00121"></a>00121 } <a class="code" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598" title="Definition of stream content types.">OggzStreamContent</a>;
+<a name="l00122"></a>00122 
+<a name="l00126"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e">00126</a> <span class="keyword">enum</span> <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e" title="Definitions of error return values.">OggzError</a> {
+<a name="l00128"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9c2ac780c03b38ba06e9ffe9c7f95a08">00128</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9c2ac780c03b38ba06e9ffe9c7f95a08" title="No error.">OGGZ_ERR_OK</a>                           = 0,
+<a name="l00129"></a>00129 
+<a name="l00131"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9cb5d186a7de1c24f0b72894ebc9886b">00131</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9cb5d186a7de1c24f0b72894ebc9886b" title="generic error">OGGZ_ERR_GENERIC</a>                      = -1,
+<a name="l00132"></a>00132 
+<a name="l00134"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e195b205e2a10b746a9426da0d8fd22f6">00134</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e195b205e2a10b746a9426da0d8fd22f6" title="oggz is not a valid OGGZ">OGGZ_ERR_BAD_OGGZ</a>                     = -2,
+<a name="l00135"></a>00135 
+<a name="l00137"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83edcd2c8d2d0624da6b5faa5c26fc87628">00137</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83edcd2c8d2d0624da6b5faa5c26fc87628" title="The requested operation is not suitable for this OGGZ.">OGGZ_ERR_INVALID</a>                      = -3,
+<a name="l00138"></a>00138 
+<a name="l00140"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83efd7a0ff230f3892aae44a8003203afd7">00140</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83efd7a0ff230f3892aae44a8003203afd7" title="oggz contains no logical bitstreams">OGGZ_ERR_NO_STREAMS</a>                   = -4,
+<a name="l00141"></a>00141 
+<a name="l00143"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ec447250ac1367c84c875df0d01b70661">00143</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ec447250ac1367c84c875df0d01b70661" title="Operation is inappropriate for oggz in current bos state.">OGGZ_ERR_BOS</a>                          = -5,
+<a name="l00144"></a>00144 
+<a name="l00146"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83efb09184b514aee32f1b512937fa618e0">00146</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83efb09184b514aee32f1b512937fa618e0" title="Operation is inappropriate for oggz in current eos state.">OGGZ_ERR_EOS</a>                          = -6,
+<a name="l00147"></a>00147 
+<a name="l00149"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e82714dc1b1505af8e373c2b877ce0a04">00149</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e82714dc1b1505af8e373c2b877ce0a04" title="Operation requires a valid metric, but none has been set.">OGGZ_ERR_BAD_METRIC</a>                   = -7,
+<a name="l00150"></a>00150 
+<a name="l00152"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e607f17c9c37f2d5c40d1ed55cb1d7e17">00152</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e607f17c9c37f2d5c40d1ed55cb1d7e17" title="System specific error; check errno for details.">OGGZ_ERR_SYSTEM</a>                       = -10,
+<a name="l00153"></a>00153 
+<a name="l00155"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e77029ff6686a406f966209f78f62c3ff">00155</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e77029ff6686a406f966209f78f62c3ff" title="Functionality disabled at build time.">OGGZ_ERR_DISABLED</a>                     = -11,
+<a name="l00156"></a>00156 
+<a name="l00158"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e761cede14a1d709ea722b607c59723ed">00158</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e761cede14a1d709ea722b607c59723ed" title="Seeking operation is not possible for this OGGZ.">OGGZ_ERR_NOSEEK</a>                       = -13,
+<a name="l00159"></a>00159 
+<a name="l00163"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e5f9bde92dc6e7cc407e52e5dd61fdbf4">00163</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e5f9bde92dc6e7cc407e52e5dd61fdbf4" title="Reading was stopped by an OggzReadCallback returning OGGZ_STOP_OK or writing was...">OGGZ_ERR_STOP_OK</a>                      = -14,
+<a name="l00164"></a>00164 
+<a name="l00168"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e59dffeb8be96b2ac026735f7e5bb8a2a">00168</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e59dffeb8be96b2ac026735f7e5bb8a2a" title="Reading was stopped by an OggzReadCallback returning OGGZ_STOP_ERR or writing was...">OGGZ_ERR_STOP_ERR</a>                     = -15,
+<a name="l00169"></a>00169 
+<a name="l00171"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83eb837c50e1cd4b858c02e1f89842bd134">00171</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83eb837c50e1cd4b858c02e1f89842bd134" title="no data available from IO, try again">OGGZ_ERR_IO_AGAIN</a>                     = -16,
+<a name="l00172"></a>00172 
+<a name="l00174"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83eed1eccb86408055f065009e64b88a7d4">00174</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83eed1eccb86408055f065009e64b88a7d4" title="Hole (sequence number gap) detected in input data.">OGGZ_ERR_HOLE_IN_DATA</a>                 = -17,
+<a name="l00175"></a>00175 
+<a name="l00177"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e3edc55802c7a9052f14608b9c101b92c">00177</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e3edc55802c7a9052f14608b9c101b92c" title="Out of memory.">OGGZ_ERR_OUT_OF_MEMORY</a>                = -18,
+<a name="l00178"></a>00178 
+<a name="l00180"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ed19554f4b1f544a1b575664b4a38694d">00180</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ed19554f4b1f544a1b575664b4a38694d" title="The requested serialno does not exist in this OGGZ.">OGGZ_ERR_BAD_SERIALNO</a>                 = -20,
+<a name="l00181"></a>00181 
+<a name="l00183"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ecf1a748ac6d70d304c193ac4d8a0142a">00183</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ecf1a748ac6d70d304c193ac4d8a0142a" title="Packet disallowed due to invalid byte length.">OGGZ_ERR_BAD_BYTES</a>                    = -21,
+<a name="l00184"></a>00184 
+<a name="l00186"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e82a9669e837d20e2fb392c9f1f5eb960">00186</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e82a9669e837d20e2fb392c9f1f5eb960" title="Packet disallowed due to invalid b_o_s (beginning of stream) flag.">OGGZ_ERR_BAD_B_O_S</a>                    = -22,
+<a name="l00187"></a>00187 
+<a name="l00189"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ee2352f40f9376e4b9dc234db18a93798">00189</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ee2352f40f9376e4b9dc234db18a93798" title="Packet disallowed due to invalid e_o_s (end of stream) flag.">OGGZ_ERR_BAD_E_O_S</a>                    = -23,
+<a name="l00190"></a>00190 
+<a name="l00192"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9d49be12111ae95d12252528496a88a7">00192</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9d49be12111ae95d12252528496a88a7" title="Packet disallowed due to invalid granulepos.">OGGZ_ERR_BAD_GRANULEPOS</a>               = -24,
+<a name="l00193"></a>00193 
+<a name="l00195"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e5e0116f755d019616406ac341f1f6e98">00195</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e5e0116f755d019616406ac341f1f6e98" title="Packet disallowed due to invalid packetno.">OGGZ_ERR_BAD_PACKETNO</a>                 = -25,
+<a name="l00196"></a>00196 
+<a name="l00198"></a>00198   <span class="comment">/* 129 == 0x81 is the frame marker for Theora's comments page ;-) */</span>
+<a name="l00199"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ed27c93cddea5ddaeaf168426f14833de">00199</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ed27c93cddea5ddaeaf168426f14833de" title="Comment violates VorbisComment restrictions.">OGGZ_ERR_COMMENT_INVALID</a>              = -129,
+<a name="l00200"></a>00200 
+<a name="l00202"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e57d5c64dce5d60f559e13dbe3e3c1c22">00202</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e57d5c64dce5d60f559e13dbe3e3c1c22" title="Guard provided by user has non-zero value.">OGGZ_ERR_BAD_GUARD</a>                    = -210,
+<a name="l00203"></a>00203 
+<a name="l00206"></a><a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e8f0a11d443e4bf9f89a2cc4d44548081">00206</a>   <a class="code" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e8f0a11d443e4bf9f89a2cc4d44548081" title="Attempt to call oggz_write() or oggz_write_output() from within a hungry() callback...">OGGZ_ERR_RECURSIVE_WRITE</a>              = -266
+<a name="l00207"></a>00207 };
+<a name="l00208"></a>00208 
+<a name="l00209"></a>00209 <span class="preprocessor">#endif </span><span class="comment">/* __OGGZ_CONSTANTS_H__ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__constants_8h.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__constants_8h.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__constants_8h.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,278 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_constants.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>oggz_constants.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+General constants used by liboggz. 
+<p>
+
+<p>
+
+<p>
+<a href="oggz__constants_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3">OggzFlags</a> { <br>
+&nbsp;&nbsp;<a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd395bd4a2b27d6e9e119ee11a7c5c26c50">OGGZ_READ</a> =  0x00, 
+<a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd38819c3d01c84191dbf846b5e0a98d757">OGGZ_WRITE</a> =  0x01, 
+<a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd324e9b4267730b726756241d7de2e8cf2">OGGZ_NONSTRICT</a> =  0x10, 
+<a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3f5b915c8762126bff52a0499745d1732">OGGZ_AUTO</a> =  0x20, 
+<br>
+&nbsp;&nbsp;<a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3cb0fc6d8842462d7a1624c3312c299fb">OGGZ_PREFIX</a> =  0x40, 
+<a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd370e2ea0bfd95ff858125a4f777eb90e8">OGGZ_SUFFIX</a> =  0x80
+<br>
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flags to <a class="el" href="oggz_8h.html#6eb34d123389ae38d993601f9e7bb9d6" title="Create a new OGGZ object.">oggz_new()</a>, <a class="el" href="oggz_8h.html#65197cdd03f755f7ebfabf2fdff4c7db" title="Open an Ogg file, creating an OGGZ handle for it.">oggz_open()</a>, and oggz_openfd().  <a href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ff">OggzStopCtl</a> { <a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5fff5242099c219d1330ddd861585cc3bf3">OGGZ_CONTINUE</a> =  0, 
+<a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ffc05c70a0c2213533267f8494eb928282">OGGZ_STOP_OK</a> =  1, 
+<a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ff09454b9448ae3d93439b644243b6e552">OGGZ_STOP_ERR</a> =  -1
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c847237">OggzFlushOpts</a> { <a class="el" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c8472379dc1d61b8f27fe00ba9d0a8005a9bcfb">OGGZ_FLUSH_BEFORE</a> =  0x01, 
+<a class="el" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c84723742efb730f40edcdb0dfdb8a6294619c4">OGGZ_FLUSH_AFTER</a> =  0x02
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flush options for oggz_write_feed; can be or'ed together.  <a href="oggz__constants_8h.html#6a09e7685c864a9116473b236c847237">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598">OggzStreamContent</a> { <br>
+&nbsp;&nbsp;<b>OGGZ_CONTENT_THEORA</b> =  0, 
+<b>OGGZ_CONTENT_VORBIS</b>, 
+<b>OGGZ_CONTENT_SPEEX</b>, 
+<b>OGGZ_CONTENT_PCM</b>, 
+<br>
+&nbsp;&nbsp;<b>OGGZ_CONTENT_CMML</b>, 
+<b>OGGZ_CONTENT_ANX2</b>, 
+<b>OGGZ_CONTENT_SKELETON</b>, 
+<b>OGGZ_CONTENT_FLAC0</b>, 
+<br>
+&nbsp;&nbsp;<b>OGGZ_CONTENT_FLAC</b>, 
+<b>OGGZ_CONTENT_ANXDATA</b>, 
+<b>OGGZ_CONTENT_CELT</b>, 
+<b>OGGZ_CONTENT_KATE</b>, 
+<br>
+&nbsp;&nbsp;<b>OGGZ_CONTENT_DIRAC</b>, 
+<b>OGGZ_CONTENT_UNKNOWN</b>
+<br>
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Definition of stream content types. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e">OggzError</a> { <br>
+&nbsp;&nbsp;<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9c2ac780c03b38ba06e9ffe9c7f95a08">OGGZ_ERR_OK</a> =  0, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9cb5d186a7de1c24f0b72894ebc9886b">OGGZ_ERR_GENERIC</a> =  -1, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e195b205e2a10b746a9426da0d8fd22f6">OGGZ_ERR_BAD_OGGZ</a> =  -2, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83edcd2c8d2d0624da6b5faa5c26fc87628">OGGZ_ERR_INVALID</a> =  -3, 
+<br>
+&nbsp;&nbsp;<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83efd7a0ff230f3892aae44a8003203afd7">OGGZ_ERR_NO_STREAMS</a> =  -4, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ec447250ac1367c84c875df0d01b70661">OGGZ_ERR_BOS</a> =  -5, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83efb09184b514aee32f1b512937fa618e0">OGGZ_ERR_EOS</a> =  -6, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e82714dc1b1505af8e373c2b877ce0a04">OGGZ_ERR_BAD_METRIC</a> =  -7, 
+<br>
+&nbsp;&nbsp;<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e607f17c9c37f2d5c40d1ed55cb1d7e17">OGGZ_ERR_SYSTEM</a> =  -10, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e77029ff6686a406f966209f78f62c3ff">OGGZ_ERR_DISABLED</a> =  -11, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e761cede14a1d709ea722b607c59723ed">OGGZ_ERR_NOSEEK</a> =  -13, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e5f9bde92dc6e7cc407e52e5dd61fdbf4">OGGZ_ERR_STOP_OK</a> =  -14, 
+<br>
+&nbsp;&nbsp;<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e59dffeb8be96b2ac026735f7e5bb8a2a">OGGZ_ERR_STOP_ERR</a> =  -15, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83eb837c50e1cd4b858c02e1f89842bd134">OGGZ_ERR_IO_AGAIN</a> =  -16, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83eed1eccb86408055f065009e64b88a7d4">OGGZ_ERR_HOLE_IN_DATA</a> =  -17, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e3edc55802c7a9052f14608b9c101b92c">OGGZ_ERR_OUT_OF_MEMORY</a> =  -18, 
+<br>
+&nbsp;&nbsp;<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ed19554f4b1f544a1b575664b4a38694d">OGGZ_ERR_BAD_SERIALNO</a> =  -20, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ecf1a748ac6d70d304c193ac4d8a0142a">OGGZ_ERR_BAD_BYTES</a> =  -21, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e82a9669e837d20e2fb392c9f1f5eb960">OGGZ_ERR_BAD_B_O_S</a> =  -22, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ee2352f40f9376e4b9dc234db18a93798">OGGZ_ERR_BAD_E_O_S</a> =  -23, 
+<br>
+&nbsp;&nbsp;<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e9d49be12111ae95d12252528496a88a7">OGGZ_ERR_BAD_GRANULEPOS</a> =  -24, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e5e0116f755d019616406ac341f1f6e98">OGGZ_ERR_BAD_PACKETNO</a> =  -25, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83ed27c93cddea5ddaeaf168426f14833de">OGGZ_ERR_COMMENT_INVALID</a> =  -129, 
+<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e57d5c64dce5d60f559e13dbe3e3c1c22">OGGZ_ERR_BAD_GUARD</a> =  -210, 
+<br>
+&nbsp;&nbsp;<a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e8f0a11d443e4bf9f89a2cc4d44548081">OGGZ_ERR_RECURSIVE_WRITE</a> =  -266
+<br>
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Definitions of error return values.  <a href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e">More...</a><br></td></tr>
+</table>
+<hr><h2>Enumeration Type Documentation</h2>
+<a class="anchor" name="68ad49468cba9eb61380abd603b0f83e"></a><!-- doxytag: member="oggz_constants.h::OggzError" ref="68ad49468cba9eb61380abd603b0f83e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="oggz__constants_8h.html#68ad49468cba9eb61380abd603b0f83e">OggzError</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Definitions of error return values. 
+<p>
+<dl compact><dt><b>Enumerator: </b></dt><dd>
+<table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e9c2ac780c03b38ba06e9ffe9c7f95a08"></a><!-- doxytag: member="OGGZ_ERR_OK" ref="68ad49468cba9eb61380abd603b0f83e9c2ac780c03b38ba06e9ffe9c7f95a08" args="" -->OGGZ_ERR_OK</em>&nbsp;</td><td>
+No error. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e9cb5d186a7de1c24f0b72894ebc9886b"></a><!-- doxytag: member="OGGZ_ERR_GENERIC" ref="68ad49468cba9eb61380abd603b0f83e9cb5d186a7de1c24f0b72894ebc9886b" args="" -->OGGZ_ERR_GENERIC</em>&nbsp;</td><td>
+generic error </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e195b205e2a10b746a9426da0d8fd22f6"></a><!-- doxytag: member="OGGZ_ERR_BAD_OGGZ" ref="68ad49468cba9eb61380abd603b0f83e195b205e2a10b746a9426da0d8fd22f6" args="" -->OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td>
+oggz is not a valid OGGZ </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83edcd2c8d2d0624da6b5faa5c26fc87628"></a><!-- doxytag: member="OGGZ_ERR_INVALID" ref="68ad49468cba9eb61380abd603b0f83edcd2c8d2d0624da6b5faa5c26fc87628" args="" -->OGGZ_ERR_INVALID</em>&nbsp;</td><td>
+The requested operation is not suitable for this OGGZ. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83efd7a0ff230f3892aae44a8003203afd7"></a><!-- doxytag: member="OGGZ_ERR_NO_STREAMS" ref="68ad49468cba9eb61380abd603b0f83efd7a0ff230f3892aae44a8003203afd7" args="" -->OGGZ_ERR_NO_STREAMS</em>&nbsp;</td><td>
+oggz contains no logical bitstreams </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83ec447250ac1367c84c875df0d01b70661"></a><!-- doxytag: member="OGGZ_ERR_BOS" ref="68ad49468cba9eb61380abd603b0f83ec447250ac1367c84c875df0d01b70661" args="" -->OGGZ_ERR_BOS</em>&nbsp;</td><td>
+Operation is inappropriate for oggz in current bos state. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83efb09184b514aee32f1b512937fa618e0"></a><!-- doxytag: member="OGGZ_ERR_EOS" ref="68ad49468cba9eb61380abd603b0f83efb09184b514aee32f1b512937fa618e0" args="" -->OGGZ_ERR_EOS</em>&nbsp;</td><td>
+Operation is inappropriate for oggz in current eos state. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e82714dc1b1505af8e373c2b877ce0a04"></a><!-- doxytag: member="OGGZ_ERR_BAD_METRIC" ref="68ad49468cba9eb61380abd603b0f83e82714dc1b1505af8e373c2b877ce0a04" args="" -->OGGZ_ERR_BAD_METRIC</em>&nbsp;</td><td>
+Operation requires a valid metric, but none has been set. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e607f17c9c37f2d5c40d1ed55cb1d7e17"></a><!-- doxytag: member="OGGZ_ERR_SYSTEM" ref="68ad49468cba9eb61380abd603b0f83e607f17c9c37f2d5c40d1ed55cb1d7e17" args="" -->OGGZ_ERR_SYSTEM</em>&nbsp;</td><td>
+System specific error; check errno for details. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e77029ff6686a406f966209f78f62c3ff"></a><!-- doxytag: member="OGGZ_ERR_DISABLED" ref="68ad49468cba9eb61380abd603b0f83e77029ff6686a406f966209f78f62c3ff" args="" -->OGGZ_ERR_DISABLED</em>&nbsp;</td><td>
+Functionality disabled at build time. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e761cede14a1d709ea722b607c59723ed"></a><!-- doxytag: member="OGGZ_ERR_NOSEEK" ref="68ad49468cba9eb61380abd603b0f83e761cede14a1d709ea722b607c59723ed" args="" -->OGGZ_ERR_NOSEEK</em>&nbsp;</td><td>
+Seeking operation is not possible for this OGGZ. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e5f9bde92dc6e7cc407e52e5dd61fdbf4"></a><!-- doxytag: member="OGGZ_ERR_STOP_OK" ref="68ad49468cba9eb61380abd603b0f83e5f9bde92dc6e7cc407e52e5dd61fdbf4" args="" -->OGGZ_ERR_STOP_OK</em>&nbsp;</td><td>
+Reading was stopped by an OggzReadCallback returning OGGZ_STOP_OK or writing was stopped by an OggzWriteHungry callback returning OGGZ_STOP_OK. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e59dffeb8be96b2ac026735f7e5bb8a2a"></a><!-- doxytag: member="OGGZ_ERR_STOP_ERR" ref="68ad49468cba9eb61380abd603b0f83e59dffeb8be96b2ac026735f7e5bb8a2a" args="" -->OGGZ_ERR_STOP_ERR</em>&nbsp;</td><td>
+Reading was stopped by an OggzReadCallback returning OGGZ_STOP_ERR or writing was stopped by an OggzWriteHungry callback returning OGGZ_STOP_ERR. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83eb837c50e1cd4b858c02e1f89842bd134"></a><!-- doxytag: member="OGGZ_ERR_IO_AGAIN" ref="68ad49468cba9eb61380abd603b0f83eb837c50e1cd4b858c02e1f89842bd134" args="" -->OGGZ_ERR_IO_AGAIN</em>&nbsp;</td><td>
+no data available from IO, try again </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83eed1eccb86408055f065009e64b88a7d4"></a><!-- doxytag: member="OGGZ_ERR_HOLE_IN_DATA" ref="68ad49468cba9eb61380abd603b0f83eed1eccb86408055f065009e64b88a7d4" args="" -->OGGZ_ERR_HOLE_IN_DATA</em>&nbsp;</td><td>
+Hole (sequence number gap) detected in input data. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e3edc55802c7a9052f14608b9c101b92c"></a><!-- doxytag: member="OGGZ_ERR_OUT_OF_MEMORY" ref="68ad49468cba9eb61380abd603b0f83e3edc55802c7a9052f14608b9c101b92c" args="" -->OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>
+Out of memory. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83ed19554f4b1f544a1b575664b4a38694d"></a><!-- doxytag: member="OGGZ_ERR_BAD_SERIALNO" ref="68ad49468cba9eb61380abd603b0f83ed19554f4b1f544a1b575664b4a38694d" args="" -->OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td>
+The requested serialno does not exist in this OGGZ. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83ecf1a748ac6d70d304c193ac4d8a0142a"></a><!-- doxytag: member="OGGZ_ERR_BAD_BYTES" ref="68ad49468cba9eb61380abd603b0f83ecf1a748ac6d70d304c193ac4d8a0142a" args="" -->OGGZ_ERR_BAD_BYTES</em>&nbsp;</td><td>
+Packet disallowed due to invalid byte length. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e82a9669e837d20e2fb392c9f1f5eb960"></a><!-- doxytag: member="OGGZ_ERR_BAD_B_O_S" ref="68ad49468cba9eb61380abd603b0f83e82a9669e837d20e2fb392c9f1f5eb960" args="" -->OGGZ_ERR_BAD_B_O_S</em>&nbsp;</td><td>
+Packet disallowed due to invalid b_o_s (beginning of stream) flag. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83ee2352f40f9376e4b9dc234db18a93798"></a><!-- doxytag: member="OGGZ_ERR_BAD_E_O_S" ref="68ad49468cba9eb61380abd603b0f83ee2352f40f9376e4b9dc234db18a93798" args="" -->OGGZ_ERR_BAD_E_O_S</em>&nbsp;</td><td>
+Packet disallowed due to invalid e_o_s (end of stream) flag. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e9d49be12111ae95d12252528496a88a7"></a><!-- doxytag: member="OGGZ_ERR_BAD_GRANULEPOS" ref="68ad49468cba9eb61380abd603b0f83e9d49be12111ae95d12252528496a88a7" args="" -->OGGZ_ERR_BAD_GRANULEPOS</em>&nbsp;</td><td>
+Packet disallowed due to invalid granulepos. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e5e0116f755d019616406ac341f1f6e98"></a><!-- doxytag: member="OGGZ_ERR_BAD_PACKETNO" ref="68ad49468cba9eb61380abd603b0f83e5e0116f755d019616406ac341f1f6e98" args="" -->OGGZ_ERR_BAD_PACKETNO</em>&nbsp;</td><td>
+Packet disallowed due to invalid packetno. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83ed27c93cddea5ddaeaf168426f14833de"></a><!-- doxytag: member="OGGZ_ERR_COMMENT_INVALID" ref="68ad49468cba9eb61380abd603b0f83ed27c93cddea5ddaeaf168426f14833de" args="" -->OGGZ_ERR_COMMENT_INVALID</em>&nbsp;</td><td>
+Comment violates VorbisComment restrictions. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e57d5c64dce5d60f559e13dbe3e3c1c22"></a><!-- doxytag: member="OGGZ_ERR_BAD_GUARD" ref="68ad49468cba9eb61380abd603b0f83e57d5c64dce5d60f559e13dbe3e3c1c22" args="" -->OGGZ_ERR_BAD_GUARD</em>&nbsp;</td><td>
+Guard provided by user has non-zero value. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="68ad49468cba9eb61380abd603b0f83e8f0a11d443e4bf9f89a2cc4d44548081"></a><!-- doxytag: member="OGGZ_ERR_RECURSIVE_WRITE" ref="68ad49468cba9eb61380abd603b0f83e8f0a11d443e4bf9f89a2cc4d44548081" args="" -->OGGZ_ERR_RECURSIVE_WRITE</em>&nbsp;</td><td>
+Attempt to call <a class="el" href="group__write__api.html#g3c97d94ea425d64546adf9c368b71904" title="Write n bytes from an OGGZ handle.">oggz_write()</a> or <a class="el" href="group__write__api.html#g5606dff01964caec4582eb172fde0c1c" title="Output data from an OGGZ handle.">oggz_write_output()</a> from within a hungry() callback. </td></tr>
+</table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="12afc3c052f6e84eff5a99ac9f1ccdd3"></a><!-- doxytag: member="oggz_constants.h::OggzFlags" ref="12afc3c052f6e84eff5a99ac9f1ccdd3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="oggz__constants_8h.html#12afc3c052f6e84eff5a99ac9f1ccdd3">OggzFlags</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Flags to <a class="el" href="oggz_8h.html#6eb34d123389ae38d993601f9e7bb9d6" title="Create a new OGGZ object.">oggz_new()</a>, <a class="el" href="oggz_8h.html#65197cdd03f755f7ebfabf2fdff4c7db" title="Open an Ogg file, creating an OGGZ handle for it.">oggz_open()</a>, and oggz_openfd(). 
+<p>
+Can be or'ed together in the following combinations:<ul>
+<li>OGGZ_READ | OGGZ_AUTO</li><li>OGGZ_WRITE | OGGZ_NONSTRICT | OGGZ_PREFIX | OGGZ_SUFFIX </li></ul>
+<dl compact><dt><b>Enumerator: </b></dt><dd>
+<table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" name="12afc3c052f6e84eff5a99ac9f1ccdd395bd4a2b27d6e9e119ee11a7c5c26c50"></a><!-- doxytag: member="OGGZ_READ" ref="12afc3c052f6e84eff5a99ac9f1ccdd395bd4a2b27d6e9e119ee11a7c5c26c50" args="" -->OGGZ_READ</em>&nbsp;</td><td>
+Read only. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="12afc3c052f6e84eff5a99ac9f1ccdd38819c3d01c84191dbf846b5e0a98d757"></a><!-- doxytag: member="OGGZ_WRITE" ref="12afc3c052f6e84eff5a99ac9f1ccdd38819c3d01c84191dbf846b5e0a98d757" args="" -->OGGZ_WRITE</em>&nbsp;</td><td>
+Write only. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="12afc3c052f6e84eff5a99ac9f1ccdd324e9b4267730b726756241d7de2e8cf2"></a><!-- doxytag: member="OGGZ_NONSTRICT" ref="12afc3c052f6e84eff5a99ac9f1ccdd324e9b4267730b726756241d7de2e8cf2" args="" -->OGGZ_NONSTRICT</em>&nbsp;</td><td>
+Disable strict adherence to mapping constraints, eg for handling an incomplete stream. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="12afc3c052f6e84eff5a99ac9f1ccdd3f5b915c8762126bff52a0499745d1732"></a><!-- doxytag: member="OGGZ_AUTO" ref="12afc3c052f6e84eff5a99ac9f1ccdd3f5b915c8762126bff52a0499745d1732" args="" -->OGGZ_AUTO</em>&nbsp;</td><td>
+Scan for known headers while reading, and automatically set metrics appropriately. 
+<p>
+Opening a file for reading with <em>flags</em> = OGGZ_READ | OGGZ_AUTO will allow seeking on Speex, Vorbis, FLAC, Theora, CMML and all Annodex streams in units of milliseconds, once all bos pages have been delivered. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="12afc3c052f6e84eff5a99ac9f1ccdd3cb0fc6d8842462d7a1624c3312c299fb"></a><!-- doxytag: member="OGGZ_PREFIX" ref="12afc3c052f6e84eff5a99ac9f1ccdd3cb0fc6d8842462d7a1624c3312c299fb" args="" -->OGGZ_PREFIX</em>&nbsp;</td><td>
+Write Prefix: Assume that we are only writing the prefix of an Ogg stream, ie. 
+<p>
+disable checking for conformance with end-of-stream constraints. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="12afc3c052f6e84eff5a99ac9f1ccdd370e2ea0bfd95ff858125a4f777eb90e8"></a><!-- doxytag: member="OGGZ_SUFFIX" ref="12afc3c052f6e84eff5a99ac9f1ccdd370e2ea0bfd95ff858125a4f777eb90e8" args="" -->OGGZ_SUFFIX</em>&nbsp;</td><td>
+Write Suffix: Assume that we are only writing the suffix of an Ogg stream, ie. 
+<p>
+disable checking for conformance with beginning-of-stream constraints. </td></tr>
+</table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="6a09e7685c864a9116473b236c847237"></a><!-- doxytag: member="oggz_constants.h::OggzFlushOpts" ref="6a09e7685c864a9116473b236c847237" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="oggz__constants_8h.html#6a09e7685c864a9116473b236c847237">OggzFlushOpts</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Flush options for oggz_write_feed; can be or'ed together. 
+<p>
+<dl compact><dt><b>Enumerator: </b></dt><dd>
+<table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" name="6a09e7685c864a9116473b236c8472379dc1d61b8f27fe00ba9d0a8005a9bcfb"></a><!-- doxytag: member="OGGZ_FLUSH_BEFORE" ref="6a09e7685c864a9116473b236c8472379dc1d61b8f27fe00ba9d0a8005a9bcfb" args="" -->OGGZ_FLUSH_BEFORE</em>&nbsp;</td><td>
+Flush all streams before beginning this packet. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="6a09e7685c864a9116473b236c84723742efb730f40edcdb0dfdb8a6294619c4"></a><!-- doxytag: member="OGGZ_FLUSH_AFTER" ref="6a09e7685c864a9116473b236c84723742efb730f40edcdb0dfdb8a6294619c4" args="" -->OGGZ_FLUSH_AFTER</em>&nbsp;</td><td>
+Flush after this packet. </td></tr>
+</table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="0dacf1292b80037e9aefeaee1b90f5ff"></a><!-- doxytag: member="oggz_constants.h::OggzStopCtl" ref="0dacf1292b80037e9aefeaee1b90f5ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="oggz__constants_8h.html#0dacf1292b80037e9aefeaee1b90f5ff">OggzStopCtl</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Enumerator: </b></dt><dd>
+<table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" name="0dacf1292b80037e9aefeaee1b90f5fff5242099c219d1330ddd861585cc3bf3"></a><!-- doxytag: member="OGGZ_CONTINUE" ref="0dacf1292b80037e9aefeaee1b90f5fff5242099c219d1330ddd861585cc3bf3" args="" -->OGGZ_CONTINUE</em>&nbsp;</td><td>
+Continue calling read callbacks. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="0dacf1292b80037e9aefeaee1b90f5ffc05c70a0c2213533267f8494eb928282"></a><!-- doxytag: member="OGGZ_STOP_OK" ref="0dacf1292b80037e9aefeaee1b90f5ffc05c70a0c2213533267f8494eb928282" args="" -->OGGZ_STOP_OK</em>&nbsp;</td><td>
+Stop calling callbacks, but retain buffered packet data. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="0dacf1292b80037e9aefeaee1b90f5ff09454b9448ae3d93439b644243b6e552"></a><!-- doxytag: member="OGGZ_STOP_ERR" ref="0dacf1292b80037e9aefeaee1b90f5ff09454b9448ae3d93439b644243b6e552" args="" -->OGGZ_STOP_ERR</em>&nbsp;</td><td>
+Stop calling callbacks, and purge buffered packet data. </td></tr>
+</table>
+</dl>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__deprecated_8h-source.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__deprecated_8h-source.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__deprecated_8h-source.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_deprecated.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>oggz_deprecated.h</h1><a href="oggz__deprecated_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">   Copyright (C) 2003 Commonwealth Scientific and Industrial Research</span>
+<a name="l00003"></a>00003 <span class="comment">   Organisation (CSIRO) Australia</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">   Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">   modification, are permitted provided that the following conditions</span>
+<a name="l00007"></a>00007 <span class="comment">   are met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">   - Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">   notice, this list of conditions and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">   - Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">   notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">   documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">   - Neither the name of CSIRO Australia nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">   contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">   this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span>
+<a name="l00023"></a>00023 <span class="comment">   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR</span>
+<a name="l00024"></a>00024 <span class="comment">   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
+<a name="l00025"></a>00025 <span class="comment">   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
+<a name="l00026"></a>00026 <span class="comment">   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
+<a name="l00027"></a>00027 <span class="comment">   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
+<a name="l00028"></a>00028 <span class="comment">   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
+<a name="l00029"></a>00029 <span class="comment">   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
+<a name="l00030"></a>00030 <span class="comment">   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="preprocessor">#ifndef __OGGZ_DEPRECATED_H__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define __OGGZ_DEPRECATED_H__</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00050"></a><a class="code" href="oggz__deprecated_8h.html#aa24ef96507165b2c5e1ac4108d59288">00050</a> <span class="preprocessor">#define OGGZ_ERR_USER_STOPPED OGGZ_ERR_STOP_OK</span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span>
+<a name="l00060"></a><a class="code" href="oggz__deprecated_8h.html#0d9b4d212038e72fb45d751fe750d3cf">00060</a> <span class="preprocessor">#define OGGZ_ERR_READ_STOP_OK  OGGZ_ERR_STOP_OK</span>
+<a name="l00061"></a>00061 <span class="preprocessor"></span>
+<a name="l00070"></a><a class="code" href="oggz__deprecated_8h.html#7fb3e5030a672e6ecfd8e8e6bf57fdfa">00070</a> <span class="preprocessor">#define OGGZ_ERR_READ_STOP_ERR OGGZ_ERR_STOP_ERR</span>
+<a name="l00071"></a>00071 <span class="preprocessor"></span>
+<a name="l00088"></a>00088 <span class="keywordtype">int</span> <a class="code" href="oggz__deprecated_8h.html#12f232bca448853e66a1226ddccff7e0" title="DEPRECATED FUNCTION This function has been replaced with the more clearly named oggz_set_granulerate...">oggz_set_metric_linear</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno,
+<a name="l00089"></a>00089                             ogg_int64_t granule_rate_numerator,
+<a name="l00090"></a>00090                             ogg_int64_t granule_rate_denominator);
+<a name="l00091"></a>00091 
+<a name="l00122"></a>00122 ogg_packet *
+<a name="l00123"></a>00123 <a class="code" href="oggz__deprecated_8h.html#ab908fe161372aceb99f98a3be54ead5" title="DEPRECATED FUNCTION This function has been replaced with oggz_comments_generate()...">oggz_comment_generate</a>(<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno,
+<a name="l00124"></a>00124                       <a class="code" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598" title="Definition of stream content types.">OggzStreamContent</a> packet_type,
+<a name="l00125"></a>00125                       <span class="keywordtype">int</span> FLAC_final_metadata_block);
+<a name="l00126"></a>00126 
+<a name="l00127"></a>00127 <span class="preprocessor">#endif </span><span class="comment">/* __OGGZ_DEPRECATED_H__ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__deprecated_8h.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__deprecated_8h.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__deprecated_8h.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_deprecated.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>oggz_deprecated.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Deprecated interfaces. 
+<p>
+
+<p>
+
+<p>
+<a href="oggz__deprecated_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__deprecated_8h.html#aa24ef96507165b2c5e1ac4108d59288">OGGZ_ERR_USER_STOPPED</a>&nbsp;&nbsp;&nbsp;OGGZ_ERR_STOP_OK</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DEPRECATED CONSTANT.  <a href="#aa24ef96507165b2c5e1ac4108d59288"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__deprecated_8h.html#0d9b4d212038e72fb45d751fe750d3cf">OGGZ_ERR_READ_STOP_OK</a>&nbsp;&nbsp;&nbsp;OGGZ_ERR_STOP_OK</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DEPRECATED CONSTANT.  <a href="#0d9b4d212038e72fb45d751fe750d3cf"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__deprecated_8h.html#7fb3e5030a672e6ecfd8e8e6bf57fdfa">OGGZ_ERR_READ_STOP_ERR</a>&nbsp;&nbsp;&nbsp;OGGZ_ERR_STOP_ERR</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DEPRECATED CONSTANT.  <a href="#7fb3e5030a672e6ecfd8e8e6bf57fdfa"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__deprecated_8h.html#12f232bca448853e66a1226ddccff7e0">oggz_set_metric_linear</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, ogg_int64_t granule_rate_numerator, ogg_int64_t granule_rate_denominator)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DEPRECATED FUNCTION This function has been replaced with the more clearly named <a class="el" href="group__metric.html#ga2a86ec590161bc2295a2c8e91cefa49" title="Specify the granulerate of a logical bitstream.">oggz_set_granulerate()</a>.  <a href="#12f232bca448853e66a1226ddccff7e0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ogg_packet *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__deprecated_8h.html#ab908fe161372aceb99f98a3be54ead5">oggz_comment_generate</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, <a class="el" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598">OggzStreamContent</a> packet_type, int FLAC_final_metadata_block)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DEPRECATED FUNCTION This function has been replaced with <a class="el" href="oggz__comments_8h.html#1ee69481fa517d80e63db962a23d53ae" title="Output a comment packet for the specified stream.">oggz_comments_generate()</a>, which does not require the packet_type argument.  <a href="#ab908fe161372aceb99f98a3be54ead5"></a><br></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="7fb3e5030a672e6ecfd8e8e6bf57fdfa"></a><!-- doxytag: member="oggz_deprecated.h::OGGZ_ERR_READ_STOP_ERR" ref="7fb3e5030a672e6ecfd8e8e6bf57fdfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OGGZ_ERR_READ_STOP_ERR&nbsp;&nbsp;&nbsp;OGGZ_ERR_STOP_ERR          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+DEPRECATED CONSTANT. 
+<p>
+OGGZ_ERR_READ_STOP_OK, OGGZ_ERR_READ_STOP_ERR were introduced to allow the user to differentiate between a cancelled oggz_read_*() returning due to error or an ok condition. From 0.9.4 similar functionality was added for oggz_write_*(), hence this constant was renamed. 
+</div>
+</div><p>
+<a class="anchor" name="0d9b4d212038e72fb45d751fe750d3cf"></a><!-- doxytag: member="oggz_deprecated.h::OGGZ_ERR_READ_STOP_OK" ref="0d9b4d212038e72fb45d751fe750d3cf" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OGGZ_ERR_READ_STOP_OK&nbsp;&nbsp;&nbsp;OGGZ_ERR_STOP_OK          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+DEPRECATED CONSTANT. 
+<p>
+OGGZ_ERR_READ_STOP_OK, OGGZ_ERR_READ_STOP_ERR were introduced to allow the user to differentiate between a cancelled oggz_read_*() returning due to error or an ok condition. From 0.9.4 similar functionality was added for oggz_write_*(), hence this constant was renamed. 
+</div>
+</div><p>
+<a class="anchor" name="aa24ef96507165b2c5e1ac4108d59288"></a><!-- doxytag: member="oggz_deprecated.h::OGGZ_ERR_USER_STOPPED" ref="aa24ef96507165b2c5e1ac4108d59288" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OGGZ_ERR_USER_STOPPED&nbsp;&nbsp;&nbsp;OGGZ_ERR_STOP_OK          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+DEPRECATED CONSTANT. 
+<p>
+OGGZ_ERR_USER_STOPPED was introduced during development (post 0.8.3), and is similar in functionality to and numerically equal to (ie. ABI compatible with) OGGZ_ERR_STOP_OK in &lt;<a class="el" href="oggz__constants_8h.html" title="General constants used by liboggz.">oggz/oggz_constants.h</a>&gt;. It was badly named, as the preferred functionality distinguishes between a user's OggzReadCallback returning OGGZ_STOP_OK or OGGZ_STOP_ERR; your code should distinguish between these two too :-) Hence, don't use this (unreleased) name in new code. 
+</div>
+</div><p>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="ab908fe161372aceb99f98a3be54ead5"></a><!-- doxytag: member="oggz_deprecated.h::oggz_comment_generate" ref="ab908fe161372aceb99f98a3be54ead5" args="(OGGZ *oggz, long serialno, OggzStreamContent packet_type, int FLAC_final_metadata_block)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_packet* oggz_comment_generate           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598">OggzStreamContent</a>&nbsp;</td>
+          <td class="paramname"> <em>packet_type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>FLAC_final_metadata_block</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+DEPRECATED FUNCTION This function has been replaced with <a class="el" href="oggz__comments_8h.html#1ee69481fa517d80e63db962a23d53ae" title="Output a comment packet for the specified stream.">oggz_comments_generate()</a>, which does not require the packet_type argument. 
+<p>
+Instead, the packet type is determined by the content type of the stream, which was discovered when the bos packet was passed to oggz_write_feed.<p>
+Output a comment packet for the specified stream. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>A OGGZ* handle (created with OGGZ_WRITE) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify a logical bitstream within <em>oggz</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>packet_type</em>&nbsp;</td><td>Type of comment packet to generate, FLAC, OggPCM, Speex, Theora and Vorbis are supported </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>FLAC_final_metadata_block</em>&nbsp;</td><td>Set this to zero unless the packet_type is FLAC, and there are no further metadata blocks to follow. See note below for details. </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A comment packet for the stream. When no longer needed it should be freed with <a class="el" href="oggz__comments_8h.html#9301332e99b0397cff54c3593595b809" title="Free a packet and its payload.">oggz_packet_destroy()</a>. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>content type does not support comments, not enough memory or comment was too long for FLAC </td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>FLAC streams may contain multiple metadata blocks of different types. When encapsulated in Ogg the first of these must be a Vorbis comment packet but PADDING, APPLICATION, SEEKTABLE, CUESHEET and PICTURE may follow. The last metadata block must have its first bit set to 1. Since liboggz does not know whether you will supply more metadata blocks you must tell it if this is the last (or only) metadata block by setting FLAC_final_metadata_block to 1. <br>
+ As FLAC metadata blocks are limited in size to 16MB minus 1 byte, this function will refuse to produce longer comment packets for FLAC. <br>
+ See <a href="http://flac.sourceforge.net/format.html">http://flac.sourceforge.net/format.html</a> for more details. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="12f232bca448853e66a1226ddccff7e0"></a><!-- doxytag: member="oggz_deprecated.h::oggz_set_metric_linear" ref="12f232bca448853e66a1226ddccff7e0" args="(OGGZ *oggz, long serialno, ogg_int64_t granule_rate_numerator, ogg_int64_t granule_rate_denominator)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_set_metric_linear           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_int64_t&nbsp;</td>
+          <td class="paramname"> <em>granule_rate_numerator</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_int64_t&nbsp;</td>
+          <td class="paramname"> <em>granule_rate_denominator</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+DEPRECATED FUNCTION This function has been replaced with the more clearly named <a class="el" href="group__metric.html#ga2a86ec590161bc2295a2c8e91cefa49" title="Specify the granulerate of a logical bitstream.">oggz_set_granulerate()</a>. 
+<p>
+Specify that a logical bitstream has a linear metric <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>Identify the logical bitstream in <em>oggz</em> to attach this linear metric to. A value of -1 indicates that the metric should be attached to all unattached logical bitstreams in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>granule_rate_numerator</em>&nbsp;</td><td>The numerator of the granule rate </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>granule_rate_denominator</em>&nbsp;</td><td>The denominator of the granule rate </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 Success </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not identify an existing logical bitstream in <em>oggz</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__io_8h-source.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__io_8h-source.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__io_8h-source.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_io.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>oggz_io.h</h1><a href="oggz__io_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">   Copyright (C) 2003 Commonwealth Scientific and Industrial Research</span>
+<a name="l00003"></a>00003 <span class="comment">   Organisation (CSIRO) Australia</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">   Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">   modification, are permitted provided that the following conditions</span>
+<a name="l00007"></a>00007 <span class="comment">   are met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">   - Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">   notice, this list of conditions and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">   - Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">   notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">   documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">   - Neither the name of CSIRO Australia nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">   contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">   this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span>
+<a name="l00023"></a>00023 <span class="comment">   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR</span>
+<a name="l00024"></a>00024 <span class="comment">   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
+<a name="l00025"></a>00025 <span class="comment">   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
+<a name="l00026"></a>00026 <span class="comment">   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
+<a name="l00027"></a>00027 <span class="comment">   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
+<a name="l00028"></a>00028 <span class="comment">   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
+<a name="l00029"></a>00029 <span class="comment">   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
+<a name="l00030"></a>00030 <span class="comment">   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="preprocessor">#ifndef __OGGZ_IO_H__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define __OGGZ_IO_H__</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00065"></a><a class="code" href="oggz__io_8h.html#e4995dabd7027c5a2273fe6db94c4733">00065</a> <span class="keyword">typedef</span> size_t (*<a class="code" href="oggz__io_8h.html#e4995dabd7027c5a2273fe6db94c4733" title="This is the signature of a function which you provide for Oggz to call when it needs...">OggzIORead</a>) (<span class="keywordtype">void</span> * user_handle, <span class="keywordtype">void</span> * buf, <span class="keywordtype">size_t</span> n);
+<a name="l00066"></a>00066 
+<a name="l00078"></a><a class="code" href="oggz__io_8h.html#0274a389b81ba93dae32d3d2fe39637f">00078</a> <span class="keyword">typedef</span> size_t (*<a class="code" href="oggz__io_8h.html#0274a389b81ba93dae32d3d2fe39637f" title="This is the signature of a function which you provide for Oggz to call when it needs...">OggzIOWrite</a>) (<span class="keywordtype">void</span> * user_handle, <span class="keywordtype">void</span> * buf, <span class="keywordtype">size_t</span> n);
+<a name="l00079"></a>00079 
+<a name="l00093"></a><a class="code" href="oggz__io_8h.html#b92c1e4e1bc98165cb7e9a0920a09b75">00093</a> <span class="keyword">typedef</span> int (*<a class="code" href="oggz__io_8h.html#b92c1e4e1bc98165cb7e9a0920a09b75" title="This is the signature of a function which you provide for Oggz to call when it needs...">OggzIOSeek</a>) (<span class="keywordtype">void</span> * user_handle, <span class="keywordtype">long</span> offset, <span class="keywordtype">int</span> whence);
+<a name="l00094"></a>00094 
+<a name="l00104"></a><a class="code" href="oggz__io_8h.html#dac7e4773781ad067f0591e1699fd669">00104</a> <span class="keyword">typedef</span> long (*<a class="code" href="oggz__io_8h.html#dac7e4773781ad067f0591e1699fd669" title="This is the signature of a function which you provide for Oggz to call when it needs...">OggzIOTell</a>) (<span class="keywordtype">void</span> * user_handle);
+<a name="l00105"></a>00105 
+<a name="l00115"></a><a class="code" href="oggz__io_8h.html#2d41d748db3b60bb25f716bcebf2f1e3">00115</a> <span class="keyword">typedef</span> int (*<a class="code" href="oggz__io_8h.html#2d41d748db3b60bb25f716bcebf2f1e3" title="This is the signature of a function which you provide for Oggz to call when it needs...">OggzIOFlush</a>) (<span class="keywordtype">void</span> * user_handle);
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117 
+<a name="l00130"></a>00130 <span class="keywordtype">int</span> <a class="code" href="oggz__io_8h.html#640ecb60fcee9323f1f735ad23f7abc4" title="Set a function for Oggz to call when it needs to read input data.">oggz_io_set_read</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <a class="code" href="oggz__io_8h.html#e4995dabd7027c5a2273fe6db94c4733" title="This is the signature of a function which you provide for Oggz to call when it needs...">OggzIORead</a> read, <span class="keywordtype">void</span> * user_handle);
+<a name="l00131"></a>00131 
+<a name="l00139"></a>00139 <span class="keywordtype">void</span> * <a class="code" href="oggz__io_8h.html#f5bbd37e9a390e3c282fdc8bfadc43f6" title="Retrieve the user_handle associated with the function you have provided for reading...">oggz_io_get_read_user_handle</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz);
+<a name="l00140"></a>00140 
+<a name="l00153"></a>00153 <span class="keywordtype">int</span> <a class="code" href="oggz__io_8h.html#f92f5b20bb5f247b5302dfc8b4edfbee" title="Set a function for Oggz to call when it needs to write output data.">oggz_io_set_write</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <a class="code" href="oggz__io_8h.html#0274a389b81ba93dae32d3d2fe39637f" title="This is the signature of a function which you provide for Oggz to call when it needs...">OggzIOWrite</a> write, <span class="keywordtype">void</span> * user_handle);
+<a name="l00154"></a>00154 
+<a name="l00162"></a>00162 <span class="keywordtype">void</span> * <a class="code" href="oggz__io_8h.html#024a62f080f1b64c465b0bf475ebfd2e" title="Retrieve the user_handle associated with the function you have provided for writing...">oggz_io_get_write_user_handle</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz);
+<a name="l00163"></a>00163 
+<a name="l00178"></a>00178 <span class="keywordtype">int</span> <a class="code" href="oggz__io_8h.html#8482fb0783df2621e811c14d642b01fc" title="Set a function for Oggz to call when it needs to seek on its raw data.">oggz_io_set_seek</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <a class="code" href="oggz__io_8h.html#b92c1e4e1bc98165cb7e9a0920a09b75" title="This is the signature of a function which you provide for Oggz to call when it needs...">OggzIOSeek</a> seek, <span class="keywordtype">void</span> * user_handle);
+<a name="l00179"></a>00179 
+<a name="l00187"></a>00187 <span class="keywordtype">void</span> * <a class="code" href="oggz__io_8h.html#718ea817110f0d94d9d6f3a457707a08" title="Retrieve the user_handle associated with the function you have provided for seeking...">oggz_io_get_seek_user_handle</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz);
+<a name="l00188"></a>00188 
+<a name="l00201"></a>00201 <span class="keywordtype">int</span> <a class="code" href="oggz__io_8h.html#d97da84267d72ab9abf8dbb9ff5e8931" title="Set a function for Oggz to call when it needs to determine the offset within its...">oggz_io_set_tell</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <a class="code" href="oggz__io_8h.html#dac7e4773781ad067f0591e1699fd669" title="This is the signature of a function which you provide for Oggz to call when it needs...">OggzIOTell</a> tell, <span class="keywordtype">void</span> * user_handle);
+<a name="l00202"></a>00202 
+<a name="l00210"></a>00210 <span class="keywordtype">void</span> * <a class="code" href="oggz__io_8h.html#54b69e5159280c1224025df925e67b50" title="Retrieve the user_handle associated with the function you have provided for determining...">oggz_io_get_tell_user_handle</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz);
+<a name="l00211"></a>00211 
+<a name="l00225"></a>00225 <span class="keywordtype">int</span> <a class="code" href="oggz__io_8h.html#f45a2d33c7e17d1b64f794b32d69e7da" title="Set a function for Oggz to call when it needs to flush its output.">oggz_io_set_flush</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <a class="code" href="oggz__io_8h.html#2d41d748db3b60bb25f716bcebf2f1e3" title="This is the signature of a function which you provide for Oggz to call when it needs...">OggzIOFlush</a> flush, <span class="keywordtype">void</span> * user_handle);
+<a name="l00226"></a>00226 
+<a name="l00234"></a>00234 <span class="keywordtype">void</span> * <a class="code" href="oggz__io_8h.html#6150bee0cc28c68553bdcc6d020f6932" title="Retrieve the user_handle associated with the function you have provided for flushing...">oggz_io_get_flush_user_handle</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz);
+<a name="l00235"></a>00235 
+<a name="l00236"></a>00236 <span class="preprocessor">#endif </span><span class="comment">/* __OGGZ_IO_H__ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__io_8h.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__io_8h.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__io_8h.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,637 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_io.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>oggz_io.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Overriding the functions used for input and output of raw data. 
+<p>
+OggzIO provides a way of overriding the functions Oggz uses to access its raw input or output data. This is required in many situations where the raw stream cannot be accessed via stdio, but can be accessed by other means. This is typically useful within media frameworks, where accessing and moving around in the data is possible only using methods provided by the framework.<p>
+The functions you provide for overriding IO will be used by Oggz whenever you call <a class="el" href="group__read__api.html#g3ce7a31de5da56375057436c6b5108f2" title="Read n bytes into oggz, calling any read callbacks on the fly.">oggz_read()</a> or <a class="el" href="group__write__api.html#g3c97d94ea425d64546adf9c368b71904" title="Write n bytes from an OGGZ handle.">oggz_write()</a>. They will also be used repeatedly by Oggz when you call <a class="el" href="group__seek__api.html#geef4b261d443701207954e5a636d6817" title="Seek to a specific byte offset.">oggz_seek()</a>.<p>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Opening a file with <a class="el" href="oggz_8h.html#65197cdd03f755f7ebfabf2fdff4c7db" title="Open an Ogg file, creating an OGGZ handle for it.">oggz_open()</a> or <a class="el" href="oggz_8h.html#c49e9de0bc4ef1d91b43b13605f98b19" title="Create an OGGZ handle associated with a stdio stream.">oggz_open_stdio()</a> is equivalent to calling <a class="el" href="oggz_8h.html#6eb34d123389ae38d993601f9e7bb9d6" title="Create a new OGGZ object.">oggz_new()</a> and setting stdio based functions for data IO. </dd></dl>
+
+<p>
+
+<p>
+<a href="oggz__io_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef size_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#e4995dabd7027c5a2273fe6db94c4733">OggzIORead</a> )(void *user_handle, void *buf, size_t n)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to acquire raw input data.  <a href="#e4995dabd7027c5a2273fe6db94c4733"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef size_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#0274a389b81ba93dae32d3d2fe39637f">OggzIOWrite</a> )(void *user_handle, void *buf, size_t n)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to output raw data.  <a href="#0274a389b81ba93dae32d3d2fe39637f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#b92c1e4e1bc98165cb7e9a0920a09b75">OggzIOSeek</a> )(void *user_handle, long offset, int whence)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to seek on the raw input or output data.  <a href="#b92c1e4e1bc98165cb7e9a0920a09b75"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef long(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#dac7e4773781ad067f0591e1699fd669">OggzIOTell</a> )(void *user_handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to determine the current offset of the raw input or output data.  <a href="#dac7e4773781ad067f0591e1699fd669"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#2d41d748db3b60bb25f716bcebf2f1e3">OggzIOFlush</a> )(void *user_handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to flush the output data.  <a href="#2d41d748db3b60bb25f716bcebf2f1e3"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#640ecb60fcee9323f1f735ad23f7abc4">oggz_io_set_read</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#e4995dabd7027c5a2273fe6db94c4733">OggzIORead</a> read, void *user_handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to read input data.  <a href="#640ecb60fcee9323f1f735ad23f7abc4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#f5bbd37e9a390e3c282fdc8bfadc43f6">oggz_io_get_read_user_handle</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for reading input data.  <a href="#f5bbd37e9a390e3c282fdc8bfadc43f6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#f92f5b20bb5f247b5302dfc8b4edfbee">oggz_io_set_write</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#0274a389b81ba93dae32d3d2fe39637f">OggzIOWrite</a> write, void *user_handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to write output data.  <a href="#f92f5b20bb5f247b5302dfc8b4edfbee"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#024a62f080f1b64c465b0bf475ebfd2e">oggz_io_get_write_user_handle</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for writing output data.  <a href="#024a62f080f1b64c465b0bf475ebfd2e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#8482fb0783df2621e811c14d642b01fc">oggz_io_set_seek</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#b92c1e4e1bc98165cb7e9a0920a09b75">OggzIOSeek</a> seek, void *user_handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to seek on its raw data.  <a href="#8482fb0783df2621e811c14d642b01fc"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#718ea817110f0d94d9d6f3a457707a08">oggz_io_get_seek_user_handle</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for seeking on input or output data.  <a href="#718ea817110f0d94d9d6f3a457707a08"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#d97da84267d72ab9abf8dbb9ff5e8931">oggz_io_set_tell</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#dac7e4773781ad067f0591e1699fd669">OggzIOTell</a> tell, void *user_handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to determine the offset within its input data (if OGGZ_READ) or output data (if OGGZ_WRITE).  <a href="#d97da84267d72ab9abf8dbb9ff5e8931"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#54b69e5159280c1224025df925e67b50">oggz_io_get_tell_user_handle</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for determining the current offset in input or output data.  <a href="#54b69e5159280c1224025df925e67b50"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#f45a2d33c7e17d1b64f794b32d69e7da">oggz_io_set_flush</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#2d41d748db3b60bb25f716bcebf2f1e3">OggzIOFlush</a> flush, void *user_handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to flush its output.  <a href="#f45a2d33c7e17d1b64f794b32d69e7da"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#6150bee0cc28c68553bdcc6d020f6932">oggz_io_get_flush_user_handle</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for flushing output.  <a href="#6150bee0cc28c68553bdcc6d020f6932"></a><br></td></tr>
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a class="anchor" name="2d41d748db3b60bb25f716bcebf2f1e3"></a><!-- doxytag: member="oggz_io.h::OggzIOFlush" ref="2d41d748db3b60bb25f716bcebf2f1e3" args=")(void *user_handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int(* <a class="el" href="oggz__io_8h.html#2d41d748db3b60bb25f716bcebf2f1e3">OggzIOFlush</a>)(void *user_handle)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+This is the signature of a function which you provide for Oggz to call when it needs to flush the output data. 
+<p>
+The behaviour of this function is similar to that of fflush() in stdio.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>&lt;  0</em>&nbsp;</td><td>An error condition </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="e4995dabd7027c5a2273fe6db94c4733"></a><!-- doxytag: member="oggz_io.h::OggzIORead" ref="e4995dabd7027c5a2273fe6db94c4733" args=")(void *user_handle, void *buf, size_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef size_t(* <a class="el" href="oggz__io_8h.html#e4995dabd7027c5a2273fe6db94c4733">OggzIORead</a>)(void *user_handle, void *buf, size_t n)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+This is the signature of a function which you provide for Oggz to call when it needs to acquire raw input data. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>The length in bytes that Oggz wants to read </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>The buffer that you read data into </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>&gt;  0</em>&nbsp;</td><td>The number of bytes successfully read into the buffer </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>to indicate that there is no more data to read (End of file) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>&lt;  0</em>&nbsp;</td><td>An error condition </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="b92c1e4e1bc98165cb7e9a0920a09b75"></a><!-- doxytag: member="oggz_io.h::OggzIOSeek" ref="b92c1e4e1bc98165cb7e9a0920a09b75" args=")(void *user_handle, long offset, int whence)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int(* <a class="el" href="oggz__io_8h.html#b92c1e4e1bc98165cb7e9a0920a09b75">OggzIOSeek</a>)(void *user_handle, long offset, int whence)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+This is the signature of a function which you provide for Oggz to call when it needs to seek on the raw input or output data. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>The offset in bytes to seek to </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>whence</em>&nbsp;</td><td>SEEK_SET, SEEK_CUR or SEEK_END (as for stdio.h) </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>&gt;= 0</em>&nbsp;</td><td>The offset seeked to </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>&lt;  0</em>&nbsp;</td><td>An error condition</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>If you provide an OggzIOSeek function, you MUST also provide an OggzIOTell function, or else all your seeks will fail. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="dac7e4773781ad067f0591e1699fd669"></a><!-- doxytag: member="oggz_io.h::OggzIOTell" ref="dac7e4773781ad067f0591e1699fd669" args=")(void *user_handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef long(* <a class="el" href="oggz__io_8h.html#dac7e4773781ad067f0591e1699fd669">OggzIOTell</a>)(void *user_handle)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+This is the signature of a function which you provide for Oggz to call when it needs to determine the current offset of the raw input or output data. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>&gt;= 0</em>&nbsp;</td><td>The offset </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>&lt;  0</em>&nbsp;</td><td>An error condition </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="0274a389b81ba93dae32d3d2fe39637f"></a><!-- doxytag: member="oggz_io.h::OggzIOWrite" ref="0274a389b81ba93dae32d3d2fe39637f" args=")(void *user_handle, void *buf, size_t n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef size_t(* <a class="el" href="oggz__io_8h.html#0274a389b81ba93dae32d3d2fe39637f">OggzIOWrite</a>)(void *user_handle, void *buf, size_t n)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+This is the signature of a function which you provide for Oggz to call when it needs to output raw data. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>The length in bytes of the data </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>A buffer containing data to write </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>&gt;= 0</em>&nbsp;</td><td>The number of bytes successfully written (may be less than <em>n</em> if a write error has occurred) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>&lt;  0</em>&nbsp;</td><td>An error condition </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="6150bee0cc28c68553bdcc6d020f6932"></a><!-- doxytag: member="oggz_io.h::oggz_io_get_flush_user_handle" ref="6150bee0cc28c68553bdcc6d020f6932" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* oggz_io_get_flush_user_handle           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the user_handle associated with the function you have provided for flushing output. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>the associated user_handle </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="f5bbd37e9a390e3c282fdc8bfadc43f6"></a><!-- doxytag: member="oggz_io.h::oggz_io_get_read_user_handle" ref="f5bbd37e9a390e3c282fdc8bfadc43f6" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* oggz_io_get_read_user_handle           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the user_handle associated with the function you have provided for reading input data. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>the associated user_handle </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="718ea817110f0d94d9d6f3a457707a08"></a><!-- doxytag: member="oggz_io.h::oggz_io_get_seek_user_handle" ref="718ea817110f0d94d9d6f3a457707a08" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* oggz_io_get_seek_user_handle           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the user_handle associated with the function you have provided for seeking on input or output data. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>the associated user_handle </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="54b69e5159280c1224025df925e67b50"></a><!-- doxytag: member="oggz_io.h::oggz_io_get_tell_user_handle" ref="54b69e5159280c1224025df925e67b50" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* oggz_io_get_tell_user_handle           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the user_handle associated with the function you have provided for determining the current offset in input or output data. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>the associated user_handle </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="024a62f080f1b64c465b0bf475ebfd2e"></a><!-- doxytag: member="oggz_io.h::oggz_io_get_write_user_handle" ref="024a62f080f1b64c465b0bf475ebfd2e" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* oggz_io_get_write_user_handle           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the user_handle associated with the function you have provided for writing output data. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>the associated user_handle </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="f45a2d33c7e17d1b64f794b32d69e7da"></a><!-- doxytag: member="oggz_io.h::oggz_io_set_flush" ref="f45a2d33c7e17d1b64f794b32d69e7da" args="(OGGZ *oggz, OggzIOFlush flush, void *user_handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_io_set_flush           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="oggz__io_8h.html#2d41d748db3b60bb25f716bcebf2f1e3">OggzIOFlush</a>&nbsp;</td>
+          <td class="paramname"> <em>flush</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>user_handle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set a function for Oggz to call when it needs to flush its output. 
+<p>
+The meaning of this is similar to that of fflush() in stdio.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>flush</em>&nbsp;</td><td>Your flushing function </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ; <em>oggz</em> not open for writing. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Out of memory </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="640ecb60fcee9323f1f735ad23f7abc4"></a><!-- doxytag: member="oggz_io.h::oggz_io_set_read" ref="640ecb60fcee9323f1f735ad23f7abc4" args="(OGGZ *oggz, OggzIORead read, void *user_handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_io_set_read           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="oggz__io_8h.html#e4995dabd7027c5a2273fe6db94c4733">OggzIORead</a>&nbsp;</td>
+          <td class="paramname"> <em>read</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>user_handle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set a function for Oggz to call when it needs to read input data. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>read</em>&nbsp;</td><td>Your reading function </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ; <em>oggz</em> not open for reading. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Out of memory </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="8482fb0783df2621e811c14d642b01fc"></a><!-- doxytag: member="oggz_io.h::oggz_io_set_seek" ref="8482fb0783df2621e811c14d642b01fc" args="(OGGZ *oggz, OggzIOSeek seek, void *user_handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_io_set_seek           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="oggz__io_8h.html#b92c1e4e1bc98165cb7e9a0920a09b75">OggzIOSeek</a>&nbsp;</td>
+          <td class="paramname"> <em>seek</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>user_handle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set a function for Oggz to call when it needs to seek on its raw data. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>seek</em>&nbsp;</td><td>Your seeking function </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Out of memory</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>If you provide an OggzIOSeek function, you MUST also provide an OggzIOTell function, or else all your seeks will fail. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d97da84267d72ab9abf8dbb9ff5e8931"></a><!-- doxytag: member="oggz_io.h::oggz_io_set_tell" ref="d97da84267d72ab9abf8dbb9ff5e8931" args="(OGGZ *oggz, OggzIOTell tell, void *user_handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_io_set_tell           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="oggz__io_8h.html#dac7e4773781ad067f0591e1699fd669">OggzIOTell</a>&nbsp;</td>
+          <td class="paramname"> <em>tell</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>user_handle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set a function for Oggz to call when it needs to determine the offset within its input data (if OGGZ_READ) or output data (if OGGZ_WRITE). 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>tell</em>&nbsp;</td><td>Your tell function </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Out of memory </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="f92f5b20bb5f247b5302dfc8b4edfbee"></a><!-- doxytag: member="oggz_io.h::oggz_io_set_write" ref="f92f5b20bb5f247b5302dfc8b4edfbee" args="(OGGZ *oggz, OggzIOWrite write, void *user_handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_io_set_write           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="oggz__io_8h.html#0274a389b81ba93dae32d3d2fe39637f">OggzIOWrite</a>&nbsp;</td>
+          <td class="paramname"> <em>write</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>user_handle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set a function for Oggz to call when it needs to write output data. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>write</em>&nbsp;</td><td>Your writing function </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ; <em>oggz</em> not open for writing. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_OUT_OF_MEMORY</em>&nbsp;</td><td>Out of memory </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__off__t_8h-source.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__off__t_8h-source.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__off__t_8h-source.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_off_t.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>oggz_off_t.h</h1><a href="oggz__off__t_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">   Copyright (C) 2007 Commonwealth Scientific and Industrial Research</span>
+<a name="l00003"></a>00003 <span class="comment">   Organisation (CSIRO) Australia</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">   Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">   modification, are permitted provided that the following conditions</span>
+<a name="l00007"></a>00007 <span class="comment">   are met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">   - Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">   notice, this list of conditions and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">   - Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">   notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">   documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">   - Neither the name of CSIRO Australia nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">   contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">   this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span>
+<a name="l00023"></a>00023 <span class="comment">   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR</span>
+<a name="l00024"></a>00024 <span class="comment">   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
+<a name="l00025"></a>00025 <span class="comment">   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
+<a name="l00026"></a>00026 <span class="comment">   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
+<a name="l00027"></a>00027 <span class="comment">   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
+<a name="l00028"></a>00028 <span class="comment">   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
+<a name="l00029"></a>00029 <span class="comment">   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
+<a name="l00030"></a>00030 <span class="comment">   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="preprocessor">#ifndef __OGGZ_OFF_T_H__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define __OGGZ_OFF_T_H__</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="preprocessor">#ifdef _WIN32</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span>  <span class="comment">/* MSVC/Borland &amp; Cygwin */</span>
+<a name="l00043"></a>00043    <span class="keyword">typedef</span> off_t oggz_off_t;
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="preprocessor">#define PRI_OGGZ_OFF_T "l"</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span>
+<a name="l00047"></a>00047 <span class="preprocessor">#else</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#include &lt;oggz/oggz_off_t_generated.h&gt;</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#endif</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span>
+<a name="l00051"></a>00051 <span class="preprocessor">#endif </span><span class="comment">/* __OGGZ_OFF_T__ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__off__t_8h.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__off__t_8h.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__off__t_8h.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_off_t.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>oggz_off_t.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Architecture-dependent type and printf format for file position. 
+<p>
+Allows Large File Sizes on systems supporting 64-bit off_t types. 
+<p>
+<code>#include &lt;oggz/oggz_off_t_generated.h&gt;</code><br>
+
+<p>
+<a href="oggz__off__t_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__read_8h-source.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__read_8h-source.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__read_8h-source.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_read.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>oggz_read.h</h1><a href="oggz__read_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">   Copyright (C) 2003 Commonwealth Scientific and Industrial Research</span>
+<a name="l00003"></a>00003 <span class="comment">   Organisation (CSIRO) Australia</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">   Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">   modification, are permitted provided that the following conditions</span>
+<a name="l00007"></a>00007 <span class="comment">   are met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">   - Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">   notice, this list of conditions and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">   - Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">   notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">   documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">   - Neither the name of CSIRO Australia nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">   contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">   this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span>
+<a name="l00023"></a>00023 <span class="comment">   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR</span>
+<a name="l00024"></a>00024 <span class="comment">   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
+<a name="l00025"></a>00025 <span class="comment">   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
+<a name="l00026"></a>00026 <span class="comment">   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
+<a name="l00027"></a>00027 <span class="comment">   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
+<a name="l00028"></a>00028 <span class="comment">   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
+<a name="l00029"></a>00029 <span class="comment">   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
+<a name="l00030"></a>00030 <span class="comment">   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="preprocessor">#ifndef __OGGZ_READ_H__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define __OGGZ_READ_H__</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00079"></a><a class="code" href="group__read__api.html#gef015044907510cda7a3c06241e959e7">00079</a> <span class="keyword">typedef</span> int (*<a class="code" href="group__read__api.html#gef015044907510cda7a3c06241e959e7" title="This is the signature of a callback which you must provide for Oggz to call whenever...">OggzReadPacket</a>) (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, ogg_packet * op, <span class="keywordtype">long</span> serialno,
+<a name="l00080"></a>00080                                <span class="keywordtype">void</span> * user_data);
+<a name="l00081"></a>00081 
+<a name="l00106"></a>00106 <span class="keywordtype">int</span> <a class="code" href="group__read__api.html#g6d5aae4f7f186fffe19d4fd3cd63148d" title="Set a callback for Oggz to call when a new Ogg packet is found in the stream.">oggz_set_read_callback</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno,
+<a name="l00107"></a>00107                             <a class="code" href="group__read__api.html#gef015044907510cda7a3c06241e959e7" title="This is the signature of a callback which you must provide for Oggz to call whenever...">OggzReadPacket</a> read_packet, <span class="keywordtype">void</span> * user_data);
+<a name="l00108"></a>00108 
+<a name="l00119"></a><a class="code" href="group__read__api.html#g8a1df0166fad1a0a6fe55d24e1a4b2e6">00119</a> <span class="keyword">typedef</span> int (*<a class="code" href="group__read__api.html#g8a1df0166fad1a0a6fe55d24e1a4b2e6" title="This is the signature of a callback which you must provide for Oggz to call whenever...">OggzReadPage</a>) (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keyword">const</span> ogg_page * og,
+<a name="l00120"></a>00120                              <span class="keywordtype">long</span> serialno, <span class="keywordtype">void</span> * user_data);
+<a name="l00121"></a>00121 
+<a name="l00144"></a>00144 <span class="keywordtype">int</span> <a class="code" href="group__read__api.html#gfe738d4fdd4b00b1280f5978be19b2d5" title="Set a callback for Oggz to call when a new Ogg page is found in the stream.">oggz_set_read_page</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno,
+<a name="l00145"></a>00145                         <a class="code" href="group__read__api.html#g8a1df0166fad1a0a6fe55d24e1a4b2e6" title="This is the signature of a callback which you must provide for Oggz to call whenever...">OggzReadPage</a> read_page, <span class="keywordtype">void</span> * user_data);
+<a name="l00146"></a>00146 
+<a name="l00147"></a>00147 
+<a name="l00164"></a>00164 <span class="keywordtype">long</span> <a class="code" href="group__read__api.html#g3ce7a31de5da56375057436c6b5108f2" title="Read n bytes into oggz, calling any read callbacks on the fly.">oggz_read</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> n);
+<a name="l00165"></a>00165 
+<a name="l00181"></a>00181 <span class="keywordtype">long</span> <a class="code" href="group__read__api.html#g77d4158dd119f496f73311ace7f630d6" title="Input data into oggz.">oggz_read_input</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> * buf, <span class="keywordtype">long</span> n);
+<a name="l00182"></a>00182 
+<a name="l00196"></a>00196 <span class="keywordtype">int</span> <a class="code" href="oggz__read_8h.html#df606e6641a7d59eff2030b7b9ce51f8" title="Erase any input buffered in Oggz.">oggz_purge</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz);
+<a name="l00197"></a>00197 
+<a name="l00209"></a>00209 <a class="code" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598" title="Definition of stream content types.">OggzStreamContent</a> <a class="code" href="oggz__read_8h.html#1cd43b28f34bf82dc1830cc517b19e14" title="Determine the content type of the oggz stream referred to by serialno.">oggz_stream_get_content</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno);
+<a name="l00210"></a>00210 
+<a name="l00220"></a>00220 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="oggz__read_8h.html#85665d758dbc159bc48055bf3f572b37" title="Return human-readable string representation of content type of oggz stream referred...">oggz_stream_get_content_type</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> *oggz, <span class="keywordtype">long</span> serialno);
+<a name="l00221"></a>00221 
+<a name="l00234"></a>00234 <span class="keywordtype">int</span> <a class="code" href="oggz__read_8h.html#e3b1aa364b5bf0d7b331aab70646ab10" title="Determine the number of headers of the oggz stream referred to by serialno.">oggz_stream_get_numheaders</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno);
+<a name="l00235"></a>00235 
+<a name="l00236"></a>00236 <span class="preprocessor">#endif </span><span class="comment">/* __OGGZ_READ_H__ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__read_8h.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__read_8h.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__read_8h.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_read.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>oggz_read.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Interfaces for reading Ogg files and streams. 
+<p>
+
+<p>
+
+<p>
+<a href="oggz__read_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__read__api.html#gef015044907510cda7a3c06241e959e7">OggzReadPacket</a> )(<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, ogg_packet *op, long serialno, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a callback which you must provide for Oggz to call whenever it finds a new packet in the Ogg stream associated with <em>oggz</em>.  <a href="group__read__api.html#gef015044907510cda7a3c06241e959e7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__read__api.html#g8a1df0166fad1a0a6fe55d24e1a4b2e6">OggzReadPage</a> )(<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, const ogg_page *og, long serialno, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a callback which you must provide for Oggz to call whenever it finds a new page in the Ogg stream associated with <em>oggz</em>.  <a href="group__read__api.html#g8a1df0166fad1a0a6fe55d24e1a4b2e6"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__read__api.html#g6d5aae4f7f186fffe19d4fd3cd63148d">oggz_set_read_callback</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, <a class="el" href="group__read__api.html#gef015044907510cda7a3c06241e959e7">OggzReadPacket</a> read_packet, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a callback for Oggz to call when a new Ogg packet is found in the stream.  <a href="group__read__api.html#g6d5aae4f7f186fffe19d4fd3cd63148d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__read__api.html#gfe738d4fdd4b00b1280f5978be19b2d5">oggz_set_read_page</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, <a class="el" href="group__read__api.html#g8a1df0166fad1a0a6fe55d24e1a4b2e6">OggzReadPage</a> read_page, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a callback for Oggz to call when a new Ogg page is found in the stream.  <a href="group__read__api.html#gfe738d4fdd4b00b1280f5978be19b2d5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__read__api.html#g3ce7a31de5da56375057436c6b5108f2">oggz_read</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long n)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read n bytes into <em>oggz</em>, calling any read callbacks on the fly.  <a href="group__read__api.html#g3ce7a31de5da56375057436c6b5108f2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__read__api.html#g77d4158dd119f496f73311ace7f630d6">oggz_read_input</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, unsigned char *buf, long n)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Input data into <em>oggz</em>.  <a href="group__read__api.html#g77d4158dd119f496f73311ace7f630d6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__read_8h.html#df606e6641a7d59eff2030b7b9ce51f8">oggz_purge</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Erase any input buffered in Oggz.  <a href="#df606e6641a7d59eff2030b7b9ce51f8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598">OggzStreamContent</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__read_8h.html#1cd43b28f34bf82dc1830cc517b19e14">oggz_stream_get_content</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine the content type of the oggz stream referred to by <em>serialno</em>.  <a href="#1cd43b28f34bf82dc1830cc517b19e14"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__read_8h.html#85665d758dbc159bc48055bf3f572b37">oggz_stream_get_content_type</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return human-readable string representation of content type of oggz stream referred to by <em>serialno</em>.  <a href="#85665d758dbc159bc48055bf3f572b37"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__read_8h.html#e3b1aa364b5bf0d7b331aab70646ab10">oggz_stream_get_numheaders</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine the number of headers of the oggz stream referred to by <em>serialno</em>.  <a href="#e3b1aa364b5bf0d7b331aab70646ab10"></a><br></td></tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="df606e6641a7d59eff2030b7b9ce51f8"></a><!-- doxytag: member="oggz_read.h::oggz_purge" ref="df606e6641a7d59eff2030b7b9ce51f8" args="(OGGZ *oggz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_purge           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Erase any input buffered in Oggz. 
+<p>
+This discards any input read from the underlying IO system but not yet delivered as ogg_packets.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_SYSTEM</em>&nbsp;</td><td>Error seeking on underlying IO. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="1cd43b28f34bf82dc1830cc517b19e14"></a><!-- doxytag: member="oggz_read.h::oggz_stream_get_content" ref="1cd43b28f34bf82dc1830cc517b19e14" args="(OGGZ *oggz, long serialno)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598">OggzStreamContent</a> oggz_stream_get_content           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Determine the content type of the oggz stream referred to by <em>serialno</em>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>An ogg stream serialno </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_CONTENT_THEORA..OGGZ_CONTENT_UNKNOWN</em>&nbsp;</td><td>content successfully identified </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not refer to an existing stream </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="85665d758dbc159bc48055bf3f572b37"></a><!-- doxytag: member="oggz_read.h::oggz_stream_get_content_type" ref="85665d758dbc159bc48055bf3f572b37" args="(OGGZ *oggz, long serialno)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* oggz_stream_get_content_type           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Return human-readable string representation of content type of oggz stream referred to by <em>serialno</em>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>An ogg stream serialno </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>the name of the content type </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td><em>oggz</em> or <em>serialno</em> invalid </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="e3b1aa364b5bf0d7b331aab70646ab10"></a><!-- doxytag: member="oggz_read.h::oggz_stream_get_numheaders" ref="e3b1aa364b5bf0d7b331aab70646ab10" args="(OGGZ *oggz, long serialno)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_stream_get_numheaders           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Determine the number of headers of the oggz stream referred to by <em>serialno</em>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>An ogg stream serialno </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_CONTENT_THEORA..OGGZ_CONTENT_UNKNOWN</em>&nbsp;</td><td>content successfully identified </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not refer to an existing stream </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__seek_8h-source.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__seek_8h-source.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__seek_8h-source.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_seek.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>oggz_seek.h</h1><a href="oggz__seek_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">   Copyright (C) 2003 Commonwealth Scientific and Industrial Research</span>
+<a name="l00003"></a>00003 <span class="comment">   Organisation (CSIRO) Australia</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">   Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">   modification, are permitted provided that the following conditions</span>
+<a name="l00007"></a>00007 <span class="comment">   are met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">   - Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">   notice, this list of conditions and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">   - Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">   notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">   documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">   - Neither the name of CSIRO Australia nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">   contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">   this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span>
+<a name="l00023"></a>00023 <span class="comment">   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR</span>
+<a name="l00024"></a>00024 <span class="comment">   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
+<a name="l00025"></a>00025 <span class="comment">   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
+<a name="l00026"></a>00026 <span class="comment">   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
+<a name="l00027"></a>00027 <span class="comment">   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
+<a name="l00028"></a>00028 <span class="comment">   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
+<a name="l00029"></a>00029 <span class="comment">   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
+<a name="l00030"></a>00030 <span class="comment">   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="preprocessor">#ifndef __OGGZ_SEEK_H__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define __OGGZ_SEEK_H__</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00099"></a>00099 ogg_int64_t <a class="code" href="group__seek__api.html#g2ec088fc5541ce9749ce63ccc162761f" title="Query the current offset in milliseconds, or custom units as specified by a Metric...">oggz_tell_units</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz);
+<a name="l00100"></a>00100 
+<a name="l00109"></a>00109 ogg_int64_t <a class="code" href="group__seek__api.html#g60bac88ef3695629efacec43a21927e5" title="Seek to an offset in milliseconds, or custom units as specified by a Metric function...">oggz_seek_units</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, ogg_int64_t units, <span class="keywordtype">int</span> whence);
+<a name="l00110"></a>00110 
+<a name="l00119"></a>00119 ogg_int64_t
+<a name="l00120"></a>00120 <a class="code" href="group__seek__api.html#g29181fb4e8f4e3629cb84810614acd30" title="Provide the exact stored granulepos (from the page header) if relevant to the current...">oggz_tell_granulepos</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz);
+<a name="l00121"></a>00121 
+<a name="l00134"></a>00134 oggz_off_t <a class="code" href="group__seek__api.html#g553fabfa03553669f79e37b28eb07ec6" title="Query the file offset in bytes corresponding to the data read.">oggz_tell</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz);
+<a name="l00135"></a>00135 
+<a name="l00143"></a>00143 oggz_off_t <a class="code" href="group__seek__api.html#geef4b261d443701207954e5a636d6817" title="Seek to a specific byte offset.">oggz_seek</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, oggz_off_t offset, <span class="keywordtype">int</span> whence);
+<a name="l00144"></a>00144 
+<a name="l00145"></a>00145 <span class="preprocessor">#ifdef _UNIMPLEMENTED</span>
+<a name="l00146"></a>00146 <span class="preprocessor"></span><span class="keywordtype">long</span> oggz_seek_packets (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno, <span class="keywordtype">long</span> packets, <span class="keywordtype">int</span> whence);
+<a name="l00147"></a>00147 <span class="preprocessor">#endif</span>
+<a name="l00148"></a>00148 <span class="preprocessor"></span>
+<a name="l00270"></a>00270 <span class="keywordtype">int</span> <a class="code" href="group__metric.html#gb411ab113d5f0f67bf77506724c25633" title="Retrieve the preroll of a logical bitstream.">oggz_get_preroll</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno);
+<a name="l00271"></a>00271 
+<a name="l00283"></a>00283 <span class="keywordtype">int</span> <a class="code" href="group__metric.html#ga2b4ab5be298a11b5b91147b76996c83" title="Specify the preroll of a logical bitstream.">oggz_set_preroll</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno, <span class="keywordtype">int</span> preroll);
+<a name="l00284"></a>00284 
+<a name="l00294"></a>00294 <span class="keywordtype">int</span> <a class="code" href="group__metric.html#gd9b55e525a6e0b994a133314fd78e2c0" title="Retrieve the granuleshift of a logical bitstream.">oggz_get_granuleshift</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno);
+<a name="l00295"></a>00295 
+<a name="l00308"></a>00308 <span class="keywordtype">int</span> <a class="code" href="group__metric.html#g7ca67e0344580bf1541b9fbde39d481b" title="Specify the granuleshift of a logical bitstream.">oggz_set_granuleshift</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno, <span class="keywordtype">int</span> granuleshift);
+<a name="l00309"></a>00309 
+<a name="l00322"></a>00322 <span class="keywordtype">int</span> <a class="code" href="group__metric.html#g72a9a24e6f8483986859d7697fa611b6" title="Retrieve the granulerate of a logical bitstream.">oggz_get_granulerate</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno,
+<a name="l00323"></a>00323                           ogg_int64_t * granulerate_n,
+<a name="l00324"></a>00324                           ogg_int64_t * granulerate_d);
+<a name="l00325"></a>00325 
+<a name="l00339"></a>00339 <span class="keywordtype">int</span> <a class="code" href="group__metric.html#ga2a86ec590161bc2295a2c8e91cefa49" title="Specify the granulerate of a logical bitstream.">oggz_set_granulerate</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno,
+<a name="l00340"></a>00340                           ogg_int64_t granule_rate_numerator,
+<a name="l00341"></a>00341                           ogg_int64_t granule_rate_denominator);
+<a name="l00342"></a>00342 
+<a name="l00360"></a><a class="code" href="group__metric.html#g8803bb406015a32f5172902e3e4e76e8">00360</a> <span class="keyword">typedef</span> ogg_int64_t (*<a class="code" href="group__metric.html#g8803bb406015a32f5172902e3e4e76e8" title="This is the signature of a function to correlate Ogg streams.">OggzMetric</a>) (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno,
+<a name="l00361"></a>00361                                    ogg_int64_t granulepos, <span class="keywordtype">void</span> * user_data);
+<a name="l00362"></a>00362 
+<a name="l00385"></a>00385 <span class="keywordtype">int</span> <a class="code" href="group__metric.html#g5a630e8dcd04e1dd6601d8f56f0af3f6" title="Set the OggzMetric to use for an OGGZ handle.">oggz_set_metric</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno, <a class="code" href="group__metric.html#g8803bb406015a32f5172902e3e4e76e8" title="This is the signature of a function to correlate Ogg streams.">OggzMetric</a> metric,
+<a name="l00386"></a>00386                      <span class="keywordtype">void</span> * user_data);
+<a name="l00387"></a>00387 
+<a name="l00388"></a>00388 <span class="preprocessor">#ifdef _UNIMPLEMENTED</span>
+<a name="l00389"></a>00389 <span class="preprocessor"></span>
+<a name="l00445"></a>00445 <span class="keyword">typedef</span> int (*OggzOrder) (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, ogg_packet * op, <span class="keywordtype">void</span> * target,
+<a name="l00446"></a>00446                          <span class="keywordtype">void</span> * user_data);
+<a name="l00454"></a>00454 <span class="keywordtype">int</span> oggz_set_order (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno, OggzOrder order,
+<a name="l00455"></a>00455                     <span class="keywordtype">void</span> * user_data);
+<a name="l00456"></a>00456 
+<a name="l00457"></a>00457 <span class="keywordtype">long</span> oggz_seek_byorder (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">void</span> * target);
+<a name="l00458"></a>00458 
+<a name="l00459"></a>00459 <span class="preprocessor">#endif </span><span class="comment">/* _UNIMPLEMENTED */</span>
+<a name="l00460"></a>00460 
+<a name="l00474"></a>00474 <span class="keywordtype">int</span> <a class="code" href="group__metric.html#gaec9a54e9b231797d245042ce23b619a" title="Tell Oggz to remember the given offset as the start of data.">oggz_set_data_start</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, oggz_off_t offset);
+<a name="l00478"></a>00478 <span class="preprocessor">#endif </span><span class="comment">/* __OGGZ_SEEK_H__ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__seek_8h.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__seek_8h.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__seek_8h.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_seek.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>oggz_seek.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Seeking within files. 
+<p>
+
+<p>
+
+<p>
+<a href="oggz__seek_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef ogg_int64_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#g8803bb406015a32f5172902e3e4e76e8">OggzMetric</a> )(<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, ogg_int64_t granulepos, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function to correlate Ogg streams.  <a href="group__metric.html#g8803bb406015a32f5172902e3e4e76e8"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ogg_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#g2ec088fc5541ce9749ce63ccc162761f">oggz_tell_units</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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#g2ec088fc5541ce9749ce63ccc162761f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ogg_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#g60bac88ef3695629efacec43a21927e5">oggz_seek_units</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, ogg_int64_t units, int whence)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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#g60bac88ef3695629efacec43a21927e5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ogg_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#g29181fb4e8f4e3629cb84810614acd30">oggz_tell_granulepos</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</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#g29181fb4e8f4e3629cb84810614acd30"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">oggz_off_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#g553fabfa03553669f79e37b28eb07ec6">oggz_tell</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query the file offset in bytes corresponding to the data read.  <a href="group__seek__api.html#g553fabfa03553669f79e37b28eb07ec6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">oggz_off_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__seek__api.html#geef4b261d443701207954e5a636d6817">oggz_seek</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, oggz_off_t offset, int whence)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Seek to a specific byte offset.  <a href="group__seek__api.html#geef4b261d443701207954e5a636d6817"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#gb411ab113d5f0f67bf77506724c25633">oggz_get_preroll</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the preroll of a logical bitstream.  <a href="group__metric.html#gb411ab113d5f0f67bf77506724c25633"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#ga2b4ab5be298a11b5b91147b76996c83">oggz_set_preroll</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, int preroll)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify the preroll of a logical bitstream.  <a href="group__metric.html#ga2b4ab5be298a11b5b91147b76996c83"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#gd9b55e525a6e0b994a133314fd78e2c0">oggz_get_granuleshift</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the granuleshift of a logical bitstream.  <a href="group__metric.html#gd9b55e525a6e0b994a133314fd78e2c0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#g7ca67e0344580bf1541b9fbde39d481b">oggz_set_granuleshift</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, int granuleshift)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify the granuleshift of a logical bitstream.  <a href="group__metric.html#g7ca67e0344580bf1541b9fbde39d481b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#g72a9a24e6f8483986859d7697fa611b6">oggz_get_granulerate</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, ogg_int64_t *granulerate_n, ogg_int64_t *granulerate_d)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the granulerate of a logical bitstream.  <a href="group__metric.html#g72a9a24e6f8483986859d7697fa611b6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#ga2a86ec590161bc2295a2c8e91cefa49">oggz_set_granulerate</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, ogg_int64_t granule_rate_numerator, ogg_int64_t granule_rate_denominator)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify the granulerate of a logical bitstream.  <a href="group__metric.html#ga2a86ec590161bc2295a2c8e91cefa49"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#g5a630e8dcd04e1dd6601d8f56f0af3f6">oggz_set_metric</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno, <a class="el" href="group__metric.html#g8803bb406015a32f5172902e3e4e76e8">OggzMetric</a> metric, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the OggzMetric to use for an OGGZ handle.  <a href="group__metric.html#g5a630e8dcd04e1dd6601d8f56f0af3f6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric.html#gaec9a54e9b231797d245042ce23b619a">oggz_set_data_start</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, oggz_off_t offset)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tell Oggz to remember the given offset as the start of data.  <a href="group__metric.html#gaec9a54e9b231797d245042ce23b619a"></a><br></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__stream_8h-source.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__stream_8h-source.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__stream_8h-source.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_stream.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>oggz_stream.h</h1><a href="oggz__stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">   Copyright (C) 2007 Annodex Association</span>
+<a name="l00003"></a>00003 <span class="comment"></span>
+<a name="l00004"></a>00004 <span class="comment">   Redistribution and use in source and binary forms, with or without</span>
+<a name="l00005"></a>00005 <span class="comment">   modification, are permitted provided that the following conditions</span>
+<a name="l00006"></a>00006 <span class="comment">   are met:</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">   - Redistributions of source code must retain the above copyright</span>
+<a name="l00009"></a>00009 <span class="comment">   notice, this list of conditions and the following disclaimer.</span>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment">   - Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00012"></a>00012 <span class="comment">   notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00013"></a>00013 <span class="comment">   documentation and/or other materials provided with the distribution.</span>
+<a name="l00014"></a>00014 <span class="comment"></span>
+<a name="l00015"></a>00015 <span class="comment">   - Neither the name of the Annodex Association nor the names of its</span>
+<a name="l00016"></a>00016 <span class="comment">   contributors may be used to endorse or promote products derived from</span>
+<a name="l00017"></a>00017 <span class="comment">   this software without specific prior written permission.</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00020"></a>00020 <span class="comment">   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00021"></a>00021 <span class="comment">   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span>
+<a name="l00022"></a>00022 <span class="comment">   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ASSOCIATION OR</span>
+<a name="l00023"></a>00023 <span class="comment">   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
+<a name="l00024"></a>00024 <span class="comment">   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
+<a name="l00025"></a>00025 <span class="comment">   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
+<a name="l00026"></a>00026 <span class="comment">   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
+<a name="l00027"></a>00027 <span class="comment">   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
+<a name="l00028"></a>00028 <span class="comment">   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
+<a name="l00029"></a>00029 <span class="comment">   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00030"></a>00030 <span class="comment">*/</span>
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 <span class="preprocessor">#ifndef __OGGZ_STREAM_H__</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define __OGGZ_STREAM_H__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <a class="code" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598" title="Definition of stream content types.">OggzStreamContent</a> <a class="code" href="oggz__read_8h.html#1cd43b28f34bf82dc1830cc517b19e14" title="Determine the content type of the oggz stream referred to by serialno.">oggz_stream_get_content</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno);
+<a name="l00051"></a>00051 
+<a name="l00061"></a>00061 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="oggz__read_8h.html#85665d758dbc159bc48055bf3f572b37" title="Return human-readable string representation of content type of oggz stream referred...">oggz_stream_get_content_type</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> *oggz, <span class="keywordtype">long</span> serialno);
+<a name="l00062"></a>00062 
+<a name="l00075"></a>00075 <span class="keywordtype">int</span> <a class="code" href="oggz__read_8h.html#e3b1aa364b5bf0d7b331aab70646ab10" title="Determine the number of headers of the oggz stream referred to by serialno.">oggz_stream_get_numheaders</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> serialno);
+<a name="l00076"></a>00076 
+<a name="l00077"></a>00077 <span class="preprocessor">#endif </span><span class="comment">/* __OGGZ_STREAM_H__ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__stream_8h.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__stream_8h.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__stream_8h.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_stream.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>oggz_stream.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Interfaces for querying Ogg streams. 
+<p>
+
+<p>
+
+<p>
+<a href="oggz__stream_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598">OggzStreamContent</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__stream_8h.html#1cd43b28f34bf82dc1830cc517b19e14">oggz_stream_get_content</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine the content type of the oggz stream referred to by <em>serialno</em>.  <a href="#1cd43b28f34bf82dc1830cc517b19e14"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__stream_8h.html#85665d758dbc159bc48055bf3f572b37">oggz_stream_get_content_type</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return human-readable string representation of content type of oggz stream referred to by <em>serialno</em>.  <a href="#85665d758dbc159bc48055bf3f572b37"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__stream_8h.html#e3b1aa364b5bf0d7b331aab70646ab10">oggz_stream_get_numheaders</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long serialno)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine the number of headers of the oggz stream referred to by <em>serialno</em>.  <a href="#e3b1aa364b5bf0d7b331aab70646ab10"></a><br></td></tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="1cd43b28f34bf82dc1830cc517b19e14"></a><!-- doxytag: member="oggz_stream.h::oggz_stream_get_content" ref="1cd43b28f34bf82dc1830cc517b19e14" args="(OGGZ *oggz, long serialno)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="oggz__constants_8h.html#b20058e3d54fc5540aa719a99e1e9598">OggzStreamContent</a> oggz_stream_get_content           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Determine the content type of the oggz stream referred to by <em>serialno</em>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>An ogg stream serialno </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_CONTENT_THEORA..OGGZ_CONTENT_UNKNOWN</em>&nbsp;</td><td>content successfully identified </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not refer to an existing stream </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="85665d758dbc159bc48055bf3f572b37"></a><!-- doxytag: member="oggz_stream.h::oggz_stream_get_content_type" ref="85665d758dbc159bc48055bf3f572b37" args="(OGGZ *oggz, long serialno)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* oggz_stream_get_content_type           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Return human-readable string representation of content type of oggz stream referred to by <em>serialno</em>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>An ogg stream serialno </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>the name of the content type </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td><em>oggz</em> or <em>serialno</em> invalid </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="e3b1aa364b5bf0d7b331aab70646ab10"></a><!-- doxytag: member="oggz_stream.h::oggz_stream_get_numheaders" ref="e3b1aa364b5bf0d7b331aab70646ab10" args="(OGGZ *oggz, long serialno)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_stream_get_numheaders           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *&nbsp;</td>
+          <td class="paramname"> <em>oggz</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>serialno</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Determine the number of headers of the oggz stream referred to by <em>serialno</em>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>serialno</em>&nbsp;</td><td>An ogg stream serialno </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_CONTENT_THEORA..OGGZ_CONTENT_UNKNOWN</em>&nbsp;</td><td>content successfully identified </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_SERIALNO</em>&nbsp;</td><td><em>serialno</em> does not refer to an existing stream </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__table_8h-source.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__table_8h-source.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__table_8h-source.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_table.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>oggz_table.h</h1><a href="oggz__table_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">   Copyright (C) 2003 Commonwealth Scientific and Industrial Research</span>
+<a name="l00003"></a>00003 <span class="comment">   Organisation (CSIRO) Australia</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">   Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">   modification, are permitted provided that the following conditions</span>
+<a name="l00007"></a>00007 <span class="comment">   are met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">   - Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">   notice, this list of conditions and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">   - Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">   notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">   documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">   - Neither the name of CSIRO Australia nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">   contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">   this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span>
+<a name="l00023"></a>00023 <span class="comment">   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR</span>
+<a name="l00024"></a>00024 <span class="comment">   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
+<a name="l00025"></a>00025 <span class="comment">   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
+<a name="l00026"></a>00026 <span class="comment">   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
+<a name="l00027"></a>00027 <span class="comment">   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
+<a name="l00028"></a>00028 <span class="comment">   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
+<a name="l00029"></a>00029 <span class="comment">   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
+<a name="l00030"></a>00030 <span class="comment">   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="preprocessor">#ifndef __OGGZ_TABLE_H__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define __OGGZ_TABLE_H__</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00046"></a><a class="code" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">00046</a> <span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023" title="A table of key-value pairs.">OggzTable</a>;
+<a name="l00047"></a>00047 
+<a name="l00053"></a>00053 <a class="code" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023" title="A table of key-value pairs.">OggzTable</a> *
+<a name="l00054"></a>00054 <a class="code" href="oggz__table_8h.html#40772505443484de93526882c48f0dd8" title="Instantiate a new OggzTable.">oggz_table_new</a> (<span class="keywordtype">void</span>);
+<a name="l00055"></a>00055 
+<a name="l00060"></a>00060 <span class="keywordtype">void</span>
+<a name="l00061"></a>00061 <a class="code" href="oggz__table_8h.html#989e307feecf2adc2ebe905c067051c4" title="Delete an OggzTable.">oggz_table_delete</a> (<a class="code" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023" title="A table of key-value pairs.">OggzTable</a> * table);
+<a name="l00062"></a>00062 
+<a name="l00072"></a>00072 <span class="keywordtype">void</span> *
+<a name="l00073"></a>00073 <a class="code" href="oggz__table_8h.html#dbcdb0cdf6e8392c78956e911cbf6634" title="Insert an element into a table.">oggz_table_insert</a> (<a class="code" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023" title="A table of key-value pairs.">OggzTable</a> * table, <span class="keywordtype">long</span> key, <span class="keywordtype">void</span> * data);
+<a name="l00074"></a>00074 
+<a name="l00082"></a>00082 <span class="keywordtype">int</span>
+<a name="l00083"></a>00083 <a class="code" href="oggz__table_8h.html#c137e535f1da63ee52266b47f114020f" title="Remove the element of an OggzTable indexed by a given key.">oggz_table_remove</a> (<a class="code" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023" title="A table of key-value pairs.">OggzTable</a> * table, <span class="keywordtype">long</span> key);
+<a name="l00084"></a>00084 
+<a name="l00092"></a>00092 <span class="keywordtype">void</span> *
+<a name="l00093"></a>00093 <a class="code" href="oggz__table_8h.html#92ea55bffd5657be29cf1972f33364e3" title="Retrieve the element of an OggzTable indexed by a given key.">oggz_table_lookup</a> (<a class="code" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023" title="A table of key-value pairs.">OggzTable</a> * table, <span class="keywordtype">long</span> key);
+<a name="l00094"></a>00094 
+<a name="l00100"></a>00100 <span class="keywordtype">int</span>
+<a name="l00101"></a>00101 <a class="code" href="oggz__table_8h.html#62db2037df45db88a75b89b8a8ac7766" title="Query the number of elements in an OggzTable.">oggz_table_size</a> (<a class="code" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023" title="A table of key-value pairs.">OggzTable</a> * table);
+<a name="l00102"></a>00102 
+<a name="l00112"></a>00112 <span class="keywordtype">void</span> *
+<a name="l00113"></a>00113 <a class="code" href="oggz__table_8h.html#285c3cbdb46e9b8c2a831728182856f1" title="Retrieve the nth element of an OggzTable, and optionally its key.">oggz_table_nth</a> (<a class="code" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023" title="A table of key-value pairs.">OggzTable</a> * table, <span class="keywordtype">int</span> n, <span class="keywordtype">long</span> * key);
+<a name="l00114"></a>00114 
+<a name="l00115"></a>00115 <span class="preprocessor">#endif </span><span class="comment">/* __OGGZ_TABLE_H__ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__table_8h.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__table_8h.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__table_8h.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_table.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>oggz_table.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+A lookup table. 
+<p>
+OggzTable is provided for convenience to allow the storage of serialno-specific data. 
+<p>
+
+<p>
+<a href="oggz__table_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="72c5d21d2254089d192176e1c310b023"></a><!-- doxytag: member="oggz_table.h::OggzTable" ref="72c5d21d2254089d192176e1c310b023" args="" -->
+typedef void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A table of key-value pairs. <br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__table_8h.html#40772505443484de93526882c48f0dd8">oggz_table_new</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Instantiate a new OggzTable.  <a href="#40772505443484de93526882c48f0dd8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__table_8h.html#989e307feecf2adc2ebe905c067051c4">oggz_table_delete</a> (<a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *table)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete an OggzTable.  <a href="#989e307feecf2adc2ebe905c067051c4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__table_8h.html#dbcdb0cdf6e8392c78956e911cbf6634">oggz_table_insert</a> (<a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *table, long key, void *data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Insert an element into a table.  <a href="#dbcdb0cdf6e8392c78956e911cbf6634"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__table_8h.html#c137e535f1da63ee52266b47f114020f">oggz_table_remove</a> (<a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *table, long key)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove the element of an OggzTable indexed by a given key.  <a href="#c137e535f1da63ee52266b47f114020f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__table_8h.html#92ea55bffd5657be29cf1972f33364e3">oggz_table_lookup</a> (<a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *table, long key)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the element of an OggzTable indexed by a given key.  <a href="#92ea55bffd5657be29cf1972f33364e3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__table_8h.html#62db2037df45db88a75b89b8a8ac7766">oggz_table_size</a> (<a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *table)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query the number of elements in an OggzTable.  <a href="#62db2037df45db88a75b89b8a8ac7766"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__table_8h.html#285c3cbdb46e9b8c2a831728182856f1">oggz_table_nth</a> (<a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *table, int n, long *key)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the nth element of an OggzTable, and optionally its key.  <a href="#285c3cbdb46e9b8c2a831728182856f1"></a><br></td></tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="989e307feecf2adc2ebe905c067051c4"></a><!-- doxytag: member="oggz_table.h::oggz_table_delete" ref="989e307feecf2adc2ebe905c067051c4" args="(OggzTable *table)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void oggz_table_delete           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *&nbsp;</td>
+          <td class="paramname"> <em>table</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Delete an OggzTable. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>table</em>&nbsp;</td><td>An OggzTable </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="dbcdb0cdf6e8392c78956e911cbf6634"></a><!-- doxytag: member="oggz_table.h::oggz_table_insert" ref="dbcdb0cdf6e8392c78956e911cbf6634" args="(OggzTable *table, long key, void *data)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* oggz_table_insert           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *&nbsp;</td>
+          <td class="paramname"> <em>table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Insert an element into a table. 
+<p>
+If a previous value existed for this key, it is overwritten with the new data element. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>table</em>&nbsp;</td><td>An OggzTable </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key to access this data element </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>The new element to add </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>If the element was successfully added </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>If adding the element failed due to a realloc() error </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="92ea55bffd5657be29cf1972f33364e3"></a><!-- doxytag: member="oggz_table.h::oggz_table_lookup" ref="92ea55bffd5657be29cf1972f33364e3" args="(OggzTable *table, long key)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* oggz_table_lookup           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *&nbsp;</td>
+          <td class="paramname"> <em>table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the element of an OggzTable indexed by a given key. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>table</em>&nbsp;</td><td>An OggzTable </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>a key </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The element indexed by <em>key</em> </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td><em>table</em> is undefined, or no element is indexed by <em>key</em> </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="40772505443484de93526882c48f0dd8"></a><!-- doxytag: member="oggz_table.h::oggz_table_new" ref="40772505443484de93526882c48f0dd8" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a>* oggz_table_new           </td>
+          <td>(</td>
+          <td class="paramtype">void&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Instantiate a new OggzTable. 
+<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A new OggzTable </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>Could not allocate memory for table </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="285c3cbdb46e9b8c2a831728182856f1"></a><!-- doxytag: member="oggz_table.h::oggz_table_nth" ref="285c3cbdb46e9b8c2a831728182856f1" args="(OggzTable *table, int n, long *key)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* oggz_table_nth           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *&nbsp;</td>
+          <td class="paramname"> <em>table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>n</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long *&nbsp;</td>
+          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve the nth element of an OggzTable, and optionally its key. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>table</em>&nbsp;</td><td>An OggzTable </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>An index into the <em>table</em> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Return pointer for key corresponding to nth data element of <em>table</em>. Ignored if NULL. </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The nth data element of <em>table</em> </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td><em>table</em> is undefined, or <em>n</em> is out of range </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="c137e535f1da63ee52266b47f114020f"></a><!-- doxytag: member="oggz_table.h::oggz_table_remove" ref="c137e535f1da63ee52266b47f114020f" args="(OggzTable *table, long key)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_table_remove           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *&nbsp;</td>
+          <td class="paramname"> <em>table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Remove the element of an OggzTable indexed by a given key. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>table</em>&nbsp;</td><td>An OggzTable </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>a key </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>-1</em>&nbsp;</td><td>Not found </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="62db2037df45db88a75b89b8a8ac7766"></a><!-- doxytag: member="oggz_table.h::oggz_table_size" ref="62db2037df45db88a75b89b8a8ac7766" args="(OggzTable *table)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int oggz_table_size           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="oggz__table_8h.html#72c5d21d2254089d192176e1c310b023">OggzTable</a> *&nbsp;</td>
+          <td class="paramname"> <em>table</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Query the number of elements in an OggzTable. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>table</em>&nbsp;</td><td>An OggzTable </td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>the number of elements in <em>table</em> </dd></dl>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__write_8h-source.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__write_8h-source.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__write_8h-source.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_write.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>oggz_write.h</h1><a href="oggz__write_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
+<a name="l00002"></a>00002 <span class="comment">   Copyright (C) 2003 Commonwealth Scientific and Industrial Research</span>
+<a name="l00003"></a>00003 <span class="comment">   Organisation (CSIRO) Australia</span>
+<a name="l00004"></a>00004 <span class="comment"></span>
+<a name="l00005"></a>00005 <span class="comment">   Redistribution and use in source and binary forms, with or without</span>
+<a name="l00006"></a>00006 <span class="comment">   modification, are permitted provided that the following conditions</span>
+<a name="l00007"></a>00007 <span class="comment">   are met:</span>
+<a name="l00008"></a>00008 <span class="comment"></span>
+<a name="l00009"></a>00009 <span class="comment">   - Redistributions of source code must retain the above copyright</span>
+<a name="l00010"></a>00010 <span class="comment">   notice, this list of conditions and the following disclaimer.</span>
+<a name="l00011"></a>00011 <span class="comment"></span>
+<a name="l00012"></a>00012 <span class="comment">   - Redistributions in binary form must reproduce the above copyright</span>
+<a name="l00013"></a>00013 <span class="comment">   notice, this list of conditions and the following disclaimer in the</span>
+<a name="l00014"></a>00014 <span class="comment">   documentation and/or other materials provided with the distribution.</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment">   - Neither the name of CSIRO Australia nor the names of its</span>
+<a name="l00017"></a>00017 <span class="comment">   contributors may be used to endorse or promote products derived from</span>
+<a name="l00018"></a>00018 <span class="comment">   this software without specific prior written permission.</span>
+<a name="l00019"></a>00019 <span class="comment"></span>
+<a name="l00020"></a>00020 <span class="comment">   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
+<a name="l00021"></a>00021 <span class="comment">   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
+<a name="l00022"></a>00022 <span class="comment">   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span>
+<a name="l00023"></a>00023 <span class="comment">   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR</span>
+<a name="l00024"></a>00024 <span class="comment">   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
+<a name="l00025"></a>00025 <span class="comment">   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
+<a name="l00026"></a>00026 <span class="comment">   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
+<a name="l00027"></a>00027 <span class="comment">   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
+<a name="l00028"></a>00028 <span class="comment">   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
+<a name="l00029"></a>00029 <span class="comment">   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
+<a name="l00030"></a>00030 <span class="comment">   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
+<a name="l00031"></a>00031 <span class="comment">*/</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="preprocessor">#ifndef __OGGZ_WRITE_H__</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define __OGGZ_WRITE_H__</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00123"></a><a class="code" href="group__write__api.html#g27ef9f56078d3c015431b1a67b2c1812">00123</a> <span class="keyword">typedef</span> int (*<a class="code" href="group__write__api.html#g27ef9f56078d3c015431b1a67b2c1812" title="This is the signature of a callback which Oggz will call when oggz is hungry .">OggzWriteHungry</a>) (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">int</span> empty, <span class="keywordtype">void</span> * user_data);
+<a name="l00124"></a>00124 
+<a name="l00142"></a>00142 <span class="keywordtype">int</span> <a class="code" href="group__write__api.html#gf362c030bc7a7f57cb23f2b863a59389" title="Set a callback for Oggz to call when oggz is hungry .">oggz_write_set_hungry_callback</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz,
+<a name="l00143"></a>00143                                     <a class="code" href="group__write__api.html#g27ef9f56078d3c015431b1a67b2c1812" title="This is the signature of a callback which Oggz will call when oggz is hungry .">OggzWriteHungry</a> hungry,
+<a name="l00144"></a>00144                                     <span class="keywordtype">int</span> only_when_empty,
+<a name="l00145"></a>00145                                     <span class="keywordtype">void</span> * user_data);
+<a name="l00186"></a>00186 <span class="keywordtype">int</span> <a class="code" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889" title="Add a packet to oggz&amp;#39;s packet queue.">oggz_write_feed</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, ogg_packet * op, <span class="keywordtype">long</span> serialno, <span class="keywordtype">int</span> flush,
+<a name="l00187"></a>00187                      <span class="keywordtype">int</span> * guard);
+<a name="l00188"></a>00188 
+<a name="l00207"></a>00207 <span class="keywordtype">long</span> <a class="code" href="group__write__api.html#g5606dff01964caec4582eb172fde0c1c" title="Output data from an OGGZ handle.">oggz_write_output</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> * buf, <span class="keywordtype">long</span> n);
+<a name="l00208"></a>00208 
+<a name="l00226"></a>00226 <span class="keywordtype">long</span> <a class="code" href="group__write__api.html#g3c97d94ea425d64546adf9c368b71904" title="Write n bytes from an OGGZ handle.">oggz_write</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz, <span class="keywordtype">long</span> n);
+<a name="l00227"></a>00227 
+<a name="l00236"></a>00236 <span class="keywordtype">long</span> <a class="code" href="group__write__api.html#gb25da7d2cbf39585357f2a426d3dba2f" title="Query the number of bytes in the next page to be written.">oggz_write_get_next_page_size</a> (<a class="code" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee" title="An opaque handle to an Ogg file.">OGGZ</a> * oggz);
+<a name="l00237"></a>00237 
+<a name="l00241"></a>00241 <span class="preprocessor">#endif </span><span class="comment">/* __OGGZ_WRITE_H__ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/oggz__write_8h.html
===================================================================
--- websites/xiph.org/oggz/doc/oggz__write_8h.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/oggz__write_8h.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: oggz_write.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>oggz_write.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Interfaces for writing Ogg files and streams. 
+<p>
+
+<p>
+
+<p>
+<a href="oggz__write_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__write__api.html#g27ef9f56078d3c015431b1a67b2c1812">OggzWriteHungry</a> )(<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, int empty, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a callback which Oggz will call when <em>oggz</em> is <a class="el" href="group__hungry.html">hungry </a>.  <a href="group__write__api.html#g27ef9f56078d3c015431b1a67b2c1812"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__write__api.html#gf362c030bc7a7f57cb23f2b863a59389">oggz_write_set_hungry_callback</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, <a class="el" href="group__write__api.html#g27ef9f56078d3c015431b1a67b2c1812">OggzWriteHungry</a> hungry, int only_when_empty, void *user_data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a callback for Oggz to call when <em>oggz</em> is <a class="el" href="group__hungry.html">hungry </a>.  <a href="group__write__api.html#gf362c030bc7a7f57cb23f2b863a59389"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889">oggz_write_feed</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, ogg_packet *op, long serialno, int flush, int *guard)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a packet to <em>oggz's</em> packet queue.  <a href="group__write__api.html#g6ccaceb107db1fd2eae047dbdbaa5889"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__write__api.html#g5606dff01964caec4582eb172fde0c1c">oggz_write_output</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, unsigned char *buf, long n)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output data from an OGGZ handle.  <a href="group__write__api.html#g5606dff01964caec4582eb172fde0c1c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__write__api.html#g3c97d94ea425d64546adf9c368b71904">oggz_write</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz, long n)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write n bytes from an OGGZ handle.  <a href="group__write__api.html#g3c97d94ea425d64546adf9c368b71904"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__write__api.html#gb25da7d2cbf39585357f2a426d3dba2f">oggz_write_get_next_page_size</a> (<a class="el" href="oggz_8h.html#672d218df13da45a4b41d5366211bfee">OGGZ</a> *oggz)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query the number of bytes in the next page to be written.  <a href="group__write__api.html#gb25da7d2cbf39585357f2a426d3dba2f"></a><br></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/structOggzComment.html
===================================================================
--- websites/xiph.org/oggz/doc/structOggzComment.html	                        (rev 0)
+++ websites/xiph.org/oggz/doc/structOggzComment.html	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>liboggz: OggzComment Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>OggzComment Struct Reference</h1><!-- doxytag: class="OggzComment" --><code>#include &lt;<a class="el" href="oggz__comments_8h-source.html">oggz_comments.h</a>&gt;</code>
+<p>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+A comment. <table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structOggzComment.html#f1b4e3c3e42e17054b6164bbdee5a37f">name</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The name of the comment, eg.  <a href="#f1b4e3c3e42e17054b6164bbdee5a37f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e300da8b29b69ea083b47035e944f9bb"></a><!-- doxytag: member="OggzComment::value" ref="e300da8b29b69ea083b47035e944f9bb" args="" -->
+char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structOggzComment.html#e300da8b29b69ea083b47035e944f9bb">value</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The value of the comment, as UTF-8. <br></td></tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="f1b4e3c3e42e17054b6164bbdee5a37f"></a><!-- doxytag: member="OggzComment::name" ref="f1b4e3c3e42e17054b6164bbdee5a37f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* <a class="el" href="structOggzComment.html#f1b4e3c3e42e17054b6164bbdee5a37f">OggzComment::name</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+The name of the comment, eg. 
+<p>
+"AUTHOR" 
+</div>
+</div><p>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="oggz__comments_8h-source.html">oggz_comments.h</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 10 10:32:34 2009 for liboggz by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>

Added: websites/xiph.org/oggz/doc/tab_b.gif
===================================================================
--- websites/xiph.org/oggz/doc/tab_b.gif	                        (rev 0)
+++ websites/xiph.org/oggz/doc/tab_b.gif	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1 @@
+GIF89a  €  „°Ç   ,       D ;
\ No newline at end of file

Added: websites/xiph.org/oggz/doc/tab_l.gif
===================================================================
--- websites/xiph.org/oggz/doc/tab_l.gif	                        (rev 0)
+++ websites/xiph.org/oggz/doc/tab_l.gif	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,4 @@
+GIF89a	 ,Õ  ö÷ùñô÷öøúüýþúûüùúûøùúêïóïóöÆÕßÒÞæØâéÞçíÝæìåìñèîòô÷ùóöø³ÈÕÁÒÝËÙâÏÜäÖá薴ŝ¹É¯ÂÍ»ÎÙÃÔÞÂÓÝÈ×àÌÚâÕáèÙäê×âèåìðëðó„°ÇÑÞåÜæëãëïëñôîóõ÷úûûüüÿÿÿþþþ                                                      ,    	 , ÿ@–P±É`H$!%Cq Ve2X­ŠÌJ(“Ä +€˜3
+2$ÀÆ ¼kvŠä-Ëçõu*…"}ã|}|~q("$f„'Žl(Œ&&$r‘™›&! )¢¤›{¨£¥r­ª°©¯„±¯¬´¦·»º³®«§¾¶ÃÂÀ¿²¹ÇÄËƲÌÉεҽͼ„ÔÈÓ×иÙÝÕÏÙÊâÜßãçæê¾äÛÅëÇíáîÖìéïøñ÷õüÑðåùü¤Pß?‚ƒœÇÛBm
+åAœÎáÀ†%V܈î!Çk÷Ø/áĐ;^¤¨²$Æ–#Mf)f͇(WÎL‰“æKçÒ„° ’I)L:eD¡Cµ´x*4U¨h 
+%A«£^ÁNKb¬Ùe§X±‚ ´k»x!ÁÖí—2tÝÖ	 !¯š5tÛæé—À]$¬´%ƒXíâ.i[¬]Y­•ÊfžEëõkg`µ††:zëçÒž;£}ºµj×aa‹–Mš¶é׸cçž½»vïÛºƒóî›8ðáÈ‹'?®¼9ó積G_>Ýyuè¬_ßž]zwêß­‡Ç¾º¼mî浏G~½ûôÞთ/ž>ùööÙ«Ïÿ¿ÿýÿÅà|ÖWà} v ;
\ No newline at end of file

Added: websites/xiph.org/oggz/doc/tab_r.gif
===================================================================
--- websites/xiph.org/oggz/doc/tab_r.gif	                        (rev 0)
+++ websites/xiph.org/oggz/doc/tab_r.gif	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,11 @@
+GIF89a,Õ  ö÷ùñô÷öøúüýþúûüùúûøùúêïóïóöÆÕßÒÞæØâéÞçíÝæìåìñèîòô÷ùóöø³ÈÕÁÒÝËÙâÏÜäÖá薴ŝ¹É¯ÂÍ»ÎÙÃÔÞÂÓÝÈ×àÌÚâÕáèÙäê×âèåìðëðó„°ÇÑÞåÜæëãëïëñôîóõ÷úûûüüÿÿÿþþþ                                                      ,    , ÿ@’pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬v•h<¬pkL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~ÏwVa+‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ “*)^,*ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂö)'ÆÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæÚ¥("ðñòóôõö÷øùúûüýþÿ 
+H° ÁƒòK"ƒRHœH±¢Å‹3jÜȱ£Ç CŠI²¤É“(Sª\éŁu&@€ Á²¦Í›8sêÜɳ§Oÿ–(±€DУH“*]Ê´©Ó§P£JJµªÕ«X³jÝʵ«×¯S84± ‰hÓª]˶­Û·pãʝK·®Ý»xóêÝË·¯ß¿€Ó} âDÌf(^̸±ãǐ#KžL¹²å˘3kÞ̹³çÏ C‹m¹ðCÄHœXͺµë×°cËžM»¶íÛ¸sëÞÍ»·ïßÀƒN÷ÃJ” Á®¹óçУKŸN½ºõëسkßν»÷ïàËO¾<v1‘+_.³½û÷ðãËŸO¿¾ýûøóëßÏ¿¿ÿÿ (à€˜_YÉ•@Árˆ5èàƒF(á„Vhá…f¨á†vèÿᇠ†(âˆ$–¨a‚¤H‚‰,¶èâ‹0Æ(ãŒ4Öhâ	*¨"Ž<öèã@)äDiä‘H&©ä’L6éä“PF)å”T&©\Š;V©å–\véå—`†)æ˜Z^‰%	d¦©æšl¶éæ›pþhf–qÖiçxæ©ç—sR€æž€*è „ÂÙ矅&ªè¢Œ6:ä¡ŽF*餔Æ	i¥˜fªé¦O^Ê駠†Ê©§¢–jê©„’Šêª¬¶Ê¦ª®Æ*ë¬SÂJë­¸æ*¤­ºöê물þ*ì°¥Kì±ÈVjl²Ì6›è²ÎF+-žÐNkíµkV‹í¶Üv©m·à†Û©ŽtŠkî¹Q~‹ÿîºìò¨n»ðšûn¼ôr;o½øN{o¾ü2»o¿ ûoÀë:pÁK®Ÿ	7íÁGl*ÄWü)ÅgŒ)Æw)LJ¬(È"—,(É&§œ'Ê*·l鈺,3¥,Ïl3™5߬3Ÿ0ïìó³=ÿ,t 9m´“E­´•A/ít›I?-5QOm5ŽU_=uÖZ?Íu×K
+öÑb=tÙfÿŒvÚ;¯ÍöÍn¿=sÜr»LwÝ*ߍ·Ézï-rß~{xàN¸Å†.qâŠ;Ìxã	?yÁ’Opå–÷‹yæùnÎy½žo袷Kzé랎ú¹ª¯.n뮃{ìö6Mÿ»Ö³ß~mîºëk{ïRó¼³ÂïïïÆ+]|òÇ.ϼÀÈ?/´óÒûJ}õG½Î×ok÷Þ+Œ%Ãá«­}ùvŸ~Þê¯Ïwûîÿ
+ü‚ÏOáöߏxþú/ÎÿŽû #'ÀR®€¼¨¹2°s| è"(ÁÑQ°‚¦» S§Á
+²®ƒ|C(»’°vã‹Ù		˜ÂF|.dc82ÒPZ3¼aªl¨Ãfå°‡Dã!‘õÃ!ꩈF¤–“(,$2±NN|¢¡–(Åìµ°ŠL!¶ÈÅ.zñ‹`£ÇHÆ.zaH£×ÈÆ6ºñpŒ£çHÇ:ÚÿñŽxÌ£÷ÈÇ>úñ€dÇ@€ ‚‚L¤"ÉÈF:ò‘Œ¤$9†  (8…&ÉÉNzò“ ¥(G©FB^²!˨ )WÉÊVºò•°l¤)1™wÄò–¸Ì¥.wÊYºäƒà¥0‡IÌbó¾|ÉHpÌf:ó™ÐìepJ±ˆ€}Ȧ6·ÉÍnzó›à§8û0 Â%"¸æ8×ÉÎvºóðŒ§<ÉPÎQ`ò%×$€>÷ÉÏ~úóŸ 
+¨@JЂô M¨BÊІ:ô¡¨D'ZPKF Ö¼&16ÊÑŽzô£ 
+©HGJRb ÷Lç5ÏÁÒ–ºô¥ÿ0©LgJÓšš#(e>¯‰Óžúô§@
+ªP‡JÔ¢õ¨HMªR—ÊÔ¦:õ©PªT§JÕª&5;%U·ÊÕ®zõ«`
+«XÇJV«ÂC§‹ÑjY×ÊÖ¶ºõ­p«\ŠU´À¦xÍ«^÷Ê×¾úõ¯ÐÀi)$‚”ô°ˆM¬bËØÆ:vˆ,ಘͬf7ËÙÎzö³ 
+­hGKÚÒšö´¨M­jWËÚÖºöµ°­*$ÛSPô¶¸Í­nwËÛÞúö·ÀÅm + „â¸ÈM®r—ËÜæ:÷¹ÐE®?±9ÏêZ÷ºØÍ®v¿9€î"‚ºÛ
+¯xÇKÞòb—™ÑLÿ¯z×Ë^A¢·½ð¯|ç†÷Ò÷¾øͯ0í«ßþú÷¿¡ä/€Là»×ÀN°‚ï(à;øÁ	n0„'LaýJ¸ÂÎ0{/¬á{ؘþ°ˆG|Ë“øÄ(¥‰SÌâCrÅ.Ž±Œ	ãÛøÆv¬1ŽwÌc6ê¸Ç@ÞñƒLd¹ÈHNñ‘“Ìd/¹ÉPÎð“£LeO¹ÊXŽp–·|â+sùËýõ2˜ÇL_1“ùÌí53š×M5³ùÍÇt3œç¼_:ÛÙÂwÎs™õÌgøʹπp ýÌ?úÐ/F´¢ë¼èFãÒÐŽŽt!-éJã‘Ò–Îô1­éN»‘ÓžuÿA-êP“ºÔ>5ª3­êUWºÕ®Ž4¬cÝèYÓZѶ¾õ¡s­ëAóº×€þ5°ù,ìaç¹Øƶ3²“=çe3ûÍÎ~öš£-í3S»Úc¾6¶¿¬ímo¹ÛÞÆ2¸ÃMåq“Êæ>7“Ó­n$³»ÝD~7¼,ïyó¸ÞöÆ1¾ómã}óÛÈÿvµ¿Þâ\É/µÁNâ…3ÜÉ÷´Ã#Þá‰S\ÊguÆ-mñO¸ã0ÈC¾à‘“\Ë'_´ÉS^à•³|À.ùc.ó0לÐ4¿9~s®ó=÷¼Ï<ÿy|ƒ.ô4]ÏD?ºz“®ô67]ÙO§3Ó£ÞÌ©SÄW‡vÖÙl>õ­3Úëdî:Øu)ö±?ÚìÙF;˜Ë®öW²½í­|;ÜW)÷¹²îvtÞ˽w¾÷Ý|à×=xÂÞÝA  ;
\ No newline at end of file

Added: websites/xiph.org/oggz/doc/tabs.css
===================================================================
--- websites/xiph.org/oggz/doc/tabs.css	                        (rev 0)
+++ websites/xiph.org/oggz/doc/tabs.css	2009-04-10 02:10:55 UTC (rev 15933)
@@ -0,0 +1,102 @@
+/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
+
+DIV.tabs
+{
+   float            : left;
+   width            : 100%;
+   background       : url("tab_b.gif") repeat-x bottom;
+   margin-bottom    : 4px;
+}
+
+DIV.tabs UL
+{
+   margin           : 0px;
+   padding-left     : 10px;
+   list-style       : none;
+}
+
+DIV.tabs LI, DIV.tabs FORM
+{
+   display          : inline;
+   margin           : 0px;
+   padding          : 0px;
+}
+
+DIV.tabs FORM
+{
+   float            : right;
+}
+
+DIV.tabs A
+{
+   float            : left;
+   background       : url("tab_r.gif") no-repeat right top;
+   border-bottom    : 1px solid #84B0C7;
+   font-size        : x-small;
+   font-weight      : bold;
+   text-decoration  : none;
+}
+
+DIV.tabs A:hover
+{
+   background-position: 100% -150px;
+}
+
+DIV.tabs A:link, DIV.tabs A:visited,
+DIV.tabs A:active, DIV.tabs A:hover
+{
+       color: #1A419D;
+}
+
+DIV.tabs SPAN
+{
+   float            : left;
+   display          : block;
+   background       : url("tab_l.gif") no-repeat left top;
+   padding          : 5px 9px;
+   white-space      : nowrap;
+}
+
+DIV.tabs INPUT
+{
+   float            : right;
+   display          : inline;
+   font-size        : 1em;
+}
+
+DIV.tabs TD
+{
+   font-size        : x-small;
+   font-weight      : bold;
+   text-decoration  : none;
+}
+
+
+
+/* Commented Backslash Hack hides rule from IE5-Mac \*/
+DIV.tabs SPAN {float : none;}
+/* End IE5-Mac hack */
+
+DIV.tabs A:hover SPAN
+{
+   background-position: 0% -150px;
+}
+
+DIV.tabs LI.current A
+{
+   background-position: 100% -150px;
+   border-width     : 0px;
+}
+
+DIV.tabs LI.current SPAN
+{
+   background-position: 0% -150px;
+   padding-bottom   : 6px;
+}
+
+DIV.navpath
+{
+   background       : none;
+   border           : none;
+   border-bottom    : 1px solid #84B0C7;
+}



More information about the commits mailing list