[xiph-commits] r16564 - in websites/theora.org/doc: . libtheora-1.1

giles at svn.xiph.org giles at svn.xiph.org
Thu Sep 24 13:18:06 PDT 2009


Author: giles
Date: 2009-09-24 13:17:13 -0700 (Thu, 24 Sep 2009)
New Revision: 16564

Added:
   websites/theora.org/doc/libtheora-1.1/
   websites/theora.org/doc/libtheora-1.1/annotated.html
   websites/theora.org/doc/libtheora-1.1/classes.html
   websites/theora.org/doc/libtheora-1.1/codec_8h.html
   websites/theora.org/doc/libtheora-1.1/codec_8h_source.html
   websites/theora.org/doc/libtheora-1.1/doxygen.css
   websites/theora.org/doc/libtheora-1.1/doxygen.png
   websites/theora.org/doc/libtheora-1.1/files.html
   websites/theora.org/doc/libtheora-1.1/functions.html
   websites/theora.org/doc/libtheora-1.1/functions_vars.html
   websites/theora.org/doc/libtheora-1.1/globals.html
   websites/theora.org/doc/libtheora-1.1/globals_defs.html
   websites/theora.org/doc/libtheora-1.1/globals_enum.html
   websites/theora.org/doc/libtheora-1.1/globals_eval.html
   websites/theora.org/doc/libtheora-1.1/globals_func.html
   websites/theora.org/doc/libtheora-1.1/globals_type.html
   websites/theora.org/doc/libtheora-1.1/globals_vars.html
   websites/theora.org/doc/libtheora-1.1/group__basefuncs.html
   websites/theora.org/doc/libtheora-1.1/group__decfuncs.html
   websites/theora.org/doc/libtheora-1.1/group__encfuncs.html
   websites/theora.org/doc/libtheora-1.1/group__oldfuncs.html
   websites/theora.org/doc/libtheora-1.1/index.html
   websites/theora.org/doc/libtheora-1.1/modules.html
   websites/theora.org/doc/libtheora-1.1/structth__comment.html
   websites/theora.org/doc/libtheora-1.1/structth__huff__code.html
   websites/theora.org/doc/libtheora-1.1/structth__img__plane.html
   websites/theora.org/doc/libtheora-1.1/structth__info.html
   websites/theora.org/doc/libtheora-1.1/structth__quant__info.html
   websites/theora.org/doc/libtheora-1.1/structth__quant__ranges.html
   websites/theora.org/doc/libtheora-1.1/structth__stripe__callback.html
   websites/theora.org/doc/libtheora-1.1/structtheora__comment.html
   websites/theora.org/doc/libtheora-1.1/structtheora__info.html
   websites/theora.org/doc/libtheora-1.1/structtheora__state.html
   websites/theora.org/doc/libtheora-1.1/structyuv__buffer.html
   websites/theora.org/doc/libtheora-1.1/tab_b.gif
   websites/theora.org/doc/libtheora-1.1/tab_l.gif
   websites/theora.org/doc/libtheora-1.1/tab_r.gif
   websites/theora.org/doc/libtheora-1.1/tabs.css
   websites/theora.org/doc/libtheora-1.1/theora_8h.html
   websites/theora.org/doc/libtheora-1.1/theora_8h_source.html
   websites/theora.org/doc/libtheora-1.1/theoradec_8h.html
   websites/theora.org/doc/libtheora-1.1/theoradec_8h_source.html
   websites/theora.org/doc/libtheora-1.1/theoraenc_8h.html
   websites/theora.org/doc/libtheora-1.1/theoraenc_8h_source.html
Modified:
   websites/theora.org/doc/index.shtml.en
Log:
Add the 1.1.0 API documentation to the website.


Modified: websites/theora.org/doc/index.shtml.en
===================================================================
--- websites/theora.org/doc/index.shtml.en	2009-09-24 20:07:28 UTC (rev 16563)
+++ websites/theora.org/doc/index.shtml.en	2009-09-24 20:17:13 UTC (rev 16564)
@@ -14,7 +14,7 @@
 <ul>
   <li><a href="/faq/">Frequently Asked Questions</a></li>
   <li><a href="/doc/Theora.pdf">Theora Format Specification</a></li>
-  <li><a href="/doc/libtheora-1.1beta1/">libtheora 1.1 API references</a></li>
+  <li><a href="/doc/libtheora-1.1/">libtheora 1.1 API references</a></li>
   <li><a href="/doc/libtheora-1.0/">libtheora 1.0 API references</a></li>
 </ul>
 

Added: websites/theora.org/doc/libtheora-1.1/annotated.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/annotated.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/annotated.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Data Structures</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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="structth__comment.html">th_comment</a></td><td class="indexvalue">The comment information </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structth__huff__code.html">th_huff_code</a></td><td class="indexvalue">A Huffman code for a Theora DCT token </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structth__img__plane.html">th_img_plane</a></td><td class="indexvalue">A buffer for a single color plane in an uncompressed image </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structth__info.html">th_info</a></td><td class="indexvalue">Theora bitstream information </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structth__quant__info.html">th_quant_info</a></td><td class="indexvalue">A complete set of quantization parameters </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structth__quant__ranges.html">th_quant_ranges</a></td><td class="indexvalue">A set of <em>qi</em> ranges </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structth__stripe__callback.html">th_stripe_callback</a></td><td class="indexvalue">The striped decode callback data to pass to <a class="el" href="theoradec_8h.html#ac95cc9e109474b0fa4bb920ab2cfdf1e" title="Sets the striped decode callback function.">TH_DECCTL_SET_STRIPE_CB</a> </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structtheora__comment.html">theora_comment</a></td><td class="indexvalue">Comment header metadata </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structtheora__info.html">theora_info</a></td><td class="indexvalue">Theora bitstream info </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structtheora__state.html">theora_state</a></td><td class="indexvalue">Codec internal state and context </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structyuv__buffer.html">yuv_buffer</a></td><td class="indexvalue">A YUV buffer for passing uncompressed frames to and from the codec </td></tr>
+</table>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/classes.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/classes.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/classes.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Alphabetical List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>Data Structure Index</h1><div class="qindex"><a class="qindex" href="#letter_T">T</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Y">Y</a></div>
+<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;T&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structth__img__plane.html">th_img_plane</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structth__quant__ranges.html">th_quant_ranges</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structtheora__info.html">theora_info</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_Y"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;Y&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="structth__comment.html">th_comment</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structth__info.html">th_info</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structth__stripe__callback.html">th_stripe_callback</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structtheora__state.html">theora_state</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structyuv__buffer.html">yuv_buffer</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structth__huff__code.html">th_huff_code</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structth__quant__info.html">th_quant_info</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structtheora__comment.html">theora_comment</a>&nbsp;&nbsp;&nbsp;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_T">T</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Y">Y</a></div>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/codec_8h.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/codec_8h.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/codec_8h.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,411 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: codec.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>codec.h File Reference</h1>
+<p>The shared <code>libtheoradec</code> and <code>libtheoraenc</code> C API.  
+<a href="#_details">More...</a></p>
+<code>#include &lt;ogg/ogg.h&gt;</code><br/>
+
+<p><a href="codec_8h_source.html">Go to the source code of this file.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__img__plane.html">th_img_plane</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A buffer for a single color plane in an uncompressed image.  <a href="structth__img__plane.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html">th_info</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Theora bitstream information.  <a href="structth__info.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__comment.html">th_comment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The comment information.  <a href="structth__comment.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__quant__ranges.html">th_quant_ranges</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A set of <em>qi</em> ranges.  <a href="structth__quant__ranges.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__quant__info.html">th_quant_info</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A complete set of quantization parameters.  <a href="structth__quant__info.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__huff__code.html">th_huff_code</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A Huffman code for a Theora DCT token.  <a href="structth__huff__code.html#_details">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#a15352a6a862d25ab00a8f06ea65ee75b">_O_THEORA_CODEC_H_</a>&nbsp;&nbsp;&nbsp;(1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#a49bf449eae33c5320f0c308f32c6ae42">TH_NHUFFMAN_TABLES</a>&nbsp;&nbsp;&nbsp;(80)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The number of Huffman tables used by Theora.  <a href="#a49bf449eae33c5320f0c308f32c6ae42"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#a2a44f48084e76a58cae48fb5d47cd422">TH_NDCT_TOKENS</a>&nbsp;&nbsp;&nbsp;(32)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The number of DCT token values in each table.  <a href="#a2a44f48084e76a58cae48fb5d47cd422"></a><br/></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Return codes</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp800007e5fae550658ee577ca16693452"></a> </p>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#a4d8d8e34fc5ec39ffa05d61a310a0407">TH_EFAULT</a>&nbsp;&nbsp;&nbsp;(-1)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An invalid pointer was provided.  <a href="#a4d8d8e34fc5ec39ffa05d61a310a0407"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#afbbd9f19fbf292aeb62a37792cecb870">TH_EINVAL</a>&nbsp;&nbsp;&nbsp;(-10)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An invalid argument was provided.  <a href="#afbbd9f19fbf292aeb62a37792cecb870"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#af00f7ecc5242d12a717202537324a510">TH_EBADHEADER</a>&nbsp;&nbsp;&nbsp;(-20)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The contents of the header were incomplete, invalid, or unexpected.  <a href="#af00f7ecc5242d12a717202537324a510"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#a3dc08a00a9aba231be398f3e31726d9c">TH_ENOTFORMAT</a>&nbsp;&nbsp;&nbsp;(-21)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The header does not belong to a Theora stream.  <a href="#a3dc08a00a9aba231be398f3e31726d9c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#ac3a45ef2b24f75259258edc481e3a122">TH_EVERSION</a>&nbsp;&nbsp;&nbsp;(-22)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The bitstream version is too high.  <a href="#ac3a45ef2b24f75259258edc481e3a122"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#a921c47accc17841f220af5a6afb79efe">TH_EIMPL</a>&nbsp;&nbsp;&nbsp;(-23)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The specified function is not implemented.  <a href="#a921c47accc17841f220af5a6afb79efe"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#a6efb84e9c2213a8840003eee2847b27f">TH_EBADPACKET</a>&nbsp;&nbsp;&nbsp;(-24)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">There were errors in the video data packet.  <a href="#a6efb84e9c2213a8840003eee2847b27f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#ab10e7b64f17a02707fc9348ea9832d09">TH_DUPFRAME</a>&nbsp;&nbsp;&nbsp;(1)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The decoded packet represented a dropped frame.  <a href="#ab10e7b64f17a02707fc9348ea9832d09"></a><br/></td></tr>
+<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structth__img__plane.html">th_img_plane</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">th_ycbcr_buffer</a> [3]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A complete image buffer for an uncompressed frame.  <a href="#a343f7cfabad179cc4fe527cf06873f45"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#a6a1426d16beef8a311d7f0e9d2e96326">th_quant_base</a> [64]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A single base matrix.  <a href="#a6a1426d16beef8a311d7f0e9d2e96326"></a><br/></td></tr>
+<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0">th_colorspace</a> { <a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0adb9a17a3283c8d490652e507db2427cf">TH_CS_UNSPECIFIED</a>, 
+<a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a1a19346bbfb8192baa4c185df73d3397">TH_CS_ITU_REC_470M</a>, 
+<a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a009021d50836ddb0ec6004a2803775fe">TH_CS_ITU_REC_470BG</a>, 
+<a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a0fa8ea07f583ee57943520ddb2f6e62e">TH_CS_NSPACES</a>
+ }</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>The currently defined color space tags. </p>
+ <a href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bc">th_pixel_fmt</a> { <br/>
+&nbsp;&nbsp;<a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bcafed7ad7ee4345930255827bff6055162">TH_PF_420</a>, 
+<a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca9e60af0159d42b20806d7eb4a8b833e6">TH_PF_RSVD</a>, 
+<a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca0271d01babf2f51512479f4a6245b9fa">TH_PF_422</a>, 
+<a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca2ac50ac048ea75501a5e0f99a63c8c86">TH_PF_444</a>, 
+<br/>
+&nbsp;&nbsp;<a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca2d6d78b9df1df086bb60f32f963a31eb">TH_PF_NFORMATS</a>
+<br/>
+ }</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>The currently defined pixel format tags. </p>
+ <a href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bc">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Basic shared functions</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpb625c22fa07613c734f71c378fe32d7a"></a> </p>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga04846066738d9f2024fc9961162b2dbc">th_version_string</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves a human-readable string to identify the library vendor and version.  <a href="group__basefuncs.html#ga04846066738d9f2024fc9961162b2dbc"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#gab723a75c0f95b3eb817f7f769846016b">th_version_number</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves the library version number.  <a href="group__basefuncs.html#gab723a75c0f95b3eb817f7f769846016b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga95b10e76fc4c05d0240ea2dfd9fd62bd">th_granule_frame</a> (void *_encdec, ogg_int64_t _granpos)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts a granule position to an absolute frame index, starting at <code>0</code>.  <a href="group__basefuncs.html#ga95b10e76fc4c05d0240ea2dfd9fd62bd"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga707e1e281de788af0df39ef00f3fb432">th_granule_time</a> (void *_encdec, ogg_int64_t _granpos)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts a granule position to an absolute time in seconds.  <a href="group__basefuncs.html#ga707e1e281de788af0df39ef00f3fb432"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga02f3f38261a9b39452d8a5e6f8737cc1">th_packet_isheader</a> (ogg_packet *_op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determines whether a Theora packet is a header or not.  <a href="group__basefuncs.html#ga02f3f38261a9b39452d8a5e6f8737cc1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#gafe95cfd06f0fef413266c9168a66248a">th_packet_iskeyframe</a> (ogg_packet *_op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determines whether a theora packet is a key frame or not.  <a href="group__basefuncs.html#gafe95cfd06f0fef413266c9168a66248a"></a><br/></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Functions for manipulating header data</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp14ef5f819e97c870c128539ed1f334e3"></a> </p>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga430d9c605816a6ca0bdce3a0b965b926">th_info_init</a> (<a class="el" href="structth__info.html">th_info</a> *_info)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes a <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> structure.  <a href="group__basefuncs.html#ga430d9c605816a6ca0bdce3a0b965b926"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#gab3d6441ab4a4969859ef5fd78a9e3c1c">th_info_clear</a> (<a class="el" href="structth__info.html">th_info</a> *_info)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears a <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> structure.  <a href="group__basefuncs.html#gab3d6441ab4a4969859ef5fd78a9e3c1c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga6c8ab25988e7ea9d7b1e31a54cf58f09">th_comment_init</a> (<a class="el" href="structth__comment.html">th_comment</a> *_tc)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure.  <a href="group__basefuncs.html#ga6c8ab25988e7ea9d7b1e31a54cf58f09"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga19a1f7b8032db957df151a34e5ac9272">th_comment_add</a> (<a class="el" href="structth__comment.html">th_comment</a> *_tc, char *_comment)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a comment to an initialized <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure.  <a href="group__basefuncs.html#ga19a1f7b8032db957df151a34e5ac9272"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga6c5edc201ca220a30787ca6c1ddcaeaf">th_comment_add_tag</a> (<a class="el" href="structth__comment.html">th_comment</a> *_tc, char *_tag, char *_val)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a comment to an initialized <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure.  <a href="group__basefuncs.html#ga6c5edc201ca220a30787ca6c1ddcaeaf"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga33c8b4f57a03217636d704c2ebb211fa">th_comment_query</a> (<a class="el" href="structth__comment.html">th_comment</a> *_tc, char *_tag, int _count)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Look up a comment value by its tag.  <a href="group__basefuncs.html#ga33c8b4f57a03217636d704c2ebb211fa"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga81d518dc4426f63ceaedcbe2668679fc">th_comment_query_count</a> (<a class="el" href="structth__comment.html">th_comment</a> *_tc, char *_tag)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Look up the number of instances of a tag.  <a href="group__basefuncs.html#ga81d518dc4426f63ceaedcbe2668679fc"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#gae736c1afa514947a3feb223143af95e3">th_comment_clear</a> (<a class="el" href="structth__comment.html">th_comment</a> *_tc)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears a <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure.  <a href="group__basefuncs.html#gae736c1afa514947a3feb223143af95e3"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The shared <code>libtheoradec</code> and <code>libtheoraenc</code> C API. </p>
+<p>You don't need to include this directly. </p>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a15352a6a862d25ab00a8f06ea65ee75b"></a><!-- doxytag: member="codec.h::_O_THEORA_CODEC_H_" ref="a15352a6a862d25ab00a8f06ea65ee75b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define _O_THEORA_CODEC_H_&nbsp;&nbsp;&nbsp;(1)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab10e7b64f17a02707fc9348ea9832d09"></a><!-- doxytag: member="codec.h::TH_DUPFRAME" ref="ab10e7b64f17a02707fc9348ea9832d09" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_DUPFRAME&nbsp;&nbsp;&nbsp;(1)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The decoded packet represented a dropped frame. </p>
+<p>The player can continue to display the current frame, as the contents of the decoded frame buffer have not changed. </p>
+
+</div>
+</div>
+<a class="anchor" id="af00f7ecc5242d12a717202537324a510"></a><!-- doxytag: member="codec.h::TH_EBADHEADER" ref="af00f7ecc5242d12a717202537324a510" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_EBADHEADER&nbsp;&nbsp;&nbsp;(-20)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The contents of the header were incomplete, invalid, or unexpected. </p>
+
+</div>
+</div>
+<a class="anchor" id="a6efb84e9c2213a8840003eee2847b27f"></a><!-- doxytag: member="codec.h::TH_EBADPACKET" ref="a6efb84e9c2213a8840003eee2847b27f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_EBADPACKET&nbsp;&nbsp;&nbsp;(-24)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>There were errors in the video data packet. </p>
+
+</div>
+</div>
+<a class="anchor" id="a4d8d8e34fc5ec39ffa05d61a310a0407"></a><!-- doxytag: member="codec.h::TH_EFAULT" ref="a4d8d8e34fc5ec39ffa05d61a310a0407" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_EFAULT&nbsp;&nbsp;&nbsp;(-1)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>An invalid pointer was provided. </p>
+
+</div>
+</div>
+<a class="anchor" id="a921c47accc17841f220af5a6afb79efe"></a><!-- doxytag: member="codec.h::TH_EIMPL" ref="a921c47accc17841f220af5a6afb79efe" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_EIMPL&nbsp;&nbsp;&nbsp;(-23)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The specified function is not implemented. </p>
+
+</div>
+</div>
+<a class="anchor" id="afbbd9f19fbf292aeb62a37792cecb870"></a><!-- doxytag: member="codec.h::TH_EINVAL" ref="afbbd9f19fbf292aeb62a37792cecb870" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_EINVAL&nbsp;&nbsp;&nbsp;(-10)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>An invalid argument was provided. </p>
+
+</div>
+</div>
+<a class="anchor" id="a3dc08a00a9aba231be398f3e31726d9c"></a><!-- doxytag: member="codec.h::TH_ENOTFORMAT" ref="a3dc08a00a9aba231be398f3e31726d9c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENOTFORMAT&nbsp;&nbsp;&nbsp;(-21)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The header does not belong to a Theora stream. </p>
+
+</div>
+</div>
+<a class="anchor" id="ac3a45ef2b24f75259258edc481e3a122"></a><!-- doxytag: member="codec.h::TH_EVERSION" ref="ac3a45ef2b24f75259258edc481e3a122" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_EVERSION&nbsp;&nbsp;&nbsp;(-22)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The bitstream version is too high. </p>
+
+</div>
+</div>
+<a class="anchor" id="a2a44f48084e76a58cae48fb5d47cd422"></a><!-- doxytag: member="codec.h::TH_NDCT_TOKENS" ref="a2a44f48084e76a58cae48fb5d47cd422" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_NDCT_TOKENS&nbsp;&nbsp;&nbsp;(32)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The number of DCT token values in each table. </p>
+
+</div>
+</div>
+<a class="anchor" id="a49bf449eae33c5320f0c308f32c6ae42"></a><!-- doxytag: member="codec.h::TH_NHUFFMAN_TABLES" ref="a49bf449eae33c5320f0c308f32c6ae42" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_NHUFFMAN_TABLES&nbsp;&nbsp;&nbsp;(80)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The number of Huffman tables used by Theora. </p>
+
+</div>
+</div>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="a6a1426d16beef8a311d7f0e9d2e96326"></a><!-- doxytag: member="codec.h::th_quant_base" ref="a6a1426d16beef8a311d7f0e9d2e96326" args="[64]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef unsigned char <a class="el" href="codec_8h.html#a6a1426d16beef8a311d7f0e9d2e96326">th_quant_base</a>[64]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>A single base matrix. </p>
+
+</div>
+</div>
+<a class="anchor" id="a343f7cfabad179cc4fe527cf06873f45"></a><!-- doxytag: member="codec.h::th_ycbcr_buffer" ref="a343f7cfabad179cc4fe527cf06873f45" args="[3]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structth__img__plane.html">th_img_plane</a> <a class="el" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">th_ycbcr_buffer</a>[3]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>A complete image buffer for an uncompressed frame. </p>
+<p>The chroma planes may be decimated by a factor of two in either direction, as indicated by <a class="el" href="structth__info.html#a2301388ef3755c41ab12fd144c1fc54e" title="The pixel format.">th_info::pixel_fmt</a>. The width and height of the Y' plane must be multiples of 16. They may need to be cropped for display, using the rectangle specified by <a class="el" href="structth__info.html#a5b3f834bcf141564e7bb14f49101870f" title="The X offset of the displayed picture.">th_info::pic_x</a>, <a class="el" href="structth__info.html#a8aacc575cab2dfe3735001c2ad32aa14" title="The Y offset of the displayed picture.">th_info::pic_y</a>, <a class="el" href="structth__info.html#a5048edf77b141dd3e9a92ca85e317345" title="The displayed picture width.">th_info::pic_width</a>, and <a class="el" href="structth__info.html#a775178474283c5990ba73f9ba7f6b88b" title="The displayed picture height.">th_info::pic_height</a>. All samples are 8 bits. </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>The term YUV often used to describe a colorspace is ambiguous. The exact parameters of the RGB to YUV conversion process aside, in many contexts the U and V channels actually have opposite meanings. To avoid this confusion, we are explicit: the name of the color channels are Y'CbCr, and they appear in that order, always. The prime symbol denotes that the Y channel is non-linear. Cb and Cr stand for "Chroma blue" and "Chroma red", respectively. </dd></dl>
+
+</div>
+</div>
+<hr/><h2>Enumeration Type Documentation</h2>
+<a class="anchor" id="a4ce7a695ce353b1582d29b6c1ddf31a0"></a><!-- doxytag: member="codec.h::th_colorspace" ref="a4ce7a695ce353b1582d29b6c1ddf31a0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0">th_colorspace</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The currently defined color space tags. </p>
+<p>See <a href="http://www.theora.org/doc/Theora.pdf">the Theora specification</a>, Chapter 4, for exact details on the meaning of each of these color spaces. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a4ce7a695ce353b1582d29b6c1ddf31a0adb9a17a3283c8d490652e507db2427cf"></a><!-- doxytag: member="TH_CS_UNSPECIFIED" ref="a4ce7a695ce353b1582d29b6c1ddf31a0adb9a17a3283c8d490652e507db2427cf" args="" -->TH_CS_UNSPECIFIED</em>&nbsp;</td><td>
+<p>The color space was not specified at the encoder. </p>
+<p>It may be conveyed by an external means. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a4ce7a695ce353b1582d29b6c1ddf31a0a1a19346bbfb8192baa4c185df73d3397"></a><!-- doxytag: member="TH_CS_ITU_REC_470M" ref="a4ce7a695ce353b1582d29b6c1ddf31a0a1a19346bbfb8192baa4c185df73d3397" args="" -->TH_CS_ITU_REC_470M</em>&nbsp;</td><td>
+<p>A color space designed for NTSC content. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a4ce7a695ce353b1582d29b6c1ddf31a0a009021d50836ddb0ec6004a2803775fe"></a><!-- doxytag: member="TH_CS_ITU_REC_470BG" ref="a4ce7a695ce353b1582d29b6c1ddf31a0a009021d50836ddb0ec6004a2803775fe" args="" -->TH_CS_ITU_REC_470BG</em>&nbsp;</td><td>
+<p>A color space designed for PAL/SECAM content. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a4ce7a695ce353b1582d29b6c1ddf31a0a0fa8ea07f583ee57943520ddb2f6e62e"></a><!-- doxytag: member="TH_CS_NSPACES" ref="a4ce7a695ce353b1582d29b6c1ddf31a0a0fa8ea07f583ee57943520ddb2f6e62e" args="" -->TH_CS_NSPACES</em>&nbsp;</td><td>
+<p>The total number of currently defined color spaces. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a5c9e7f2f0c7ed209c9ca3ed0abd328bc"></a><!-- doxytag: member="codec.h::th_pixel_fmt" ref="a5c9e7f2f0c7ed209c9ca3ed0abd328bc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bc">th_pixel_fmt</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The currently defined pixel format tags. </p>
+<p>See <a href="http://www.theora.org/doc/Theora.pdf">the Theora specification</a>, Section 4.4, for details on the precise sample locations. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a5c9e7f2f0c7ed209c9ca3ed0abd328bcafed7ad7ee4345930255827bff6055162"></a><!-- doxytag: member="TH_PF_420" ref="a5c9e7f2f0c7ed209c9ca3ed0abd328bcafed7ad7ee4345930255827bff6055162" args="" -->TH_PF_420</em>&nbsp;</td><td>
+<p>Chroma decimation by 2 in both the X and Y directions (4:2:0). </p>
+<p>The Cb and Cr chroma planes are half the width and half the height of the luma plane. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a5c9e7f2f0c7ed209c9ca3ed0abd328bca9e60af0159d42b20806d7eb4a8b833e6"></a><!-- doxytag: member="TH_PF_RSVD" ref="a5c9e7f2f0c7ed209c9ca3ed0abd328bca9e60af0159d42b20806d7eb4a8b833e6" args="" -->TH_PF_RSVD</em>&nbsp;</td><td>
+<p>Currently reserved. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a5c9e7f2f0c7ed209c9ca3ed0abd328bca0271d01babf2f51512479f4a6245b9fa"></a><!-- doxytag: member="TH_PF_422" ref="a5c9e7f2f0c7ed209c9ca3ed0abd328bca0271d01babf2f51512479f4a6245b9fa" args="" -->TH_PF_422</em>&nbsp;</td><td>
+<p>Chroma decimation by 2 in the X direction (4:2:2). </p>
+<p>The Cb and Cr chroma planes are half the width of the luma plane, but full height. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a5c9e7f2f0c7ed209c9ca3ed0abd328bca2ac50ac048ea75501a5e0f99a63c8c86"></a><!-- doxytag: member="TH_PF_444" ref="a5c9e7f2f0c7ed209c9ca3ed0abd328bca2ac50ac048ea75501a5e0f99a63c8c86" args="" -->TH_PF_444</em>&nbsp;</td><td>
+<p>No chroma decimation (4:4:4). </p>
+<p>The Cb and Cr chroma planes are full width and full height. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a5c9e7f2f0c7ed209c9ca3ed0abd328bca2d6d78b9df1df086bb60f32f963a31eb"></a><!-- doxytag: member="TH_PF_NFORMATS" ref="a5c9e7f2f0c7ed209c9ca3ed0abd328bca2d6d78b9df1df086bb60f32f963a31eb" args="" -->TH_PF_NFORMATS</em>&nbsp;</td><td>
+<p>The total number of currently defined pixel formats. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/codec_8h_source.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/codec_8h_source.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/codec_8h_source.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,195 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: codec.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<h1>codec.h</h1><a href="codec_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"> *                                                                  *</span>
+<a name="l00003"></a>00003 <span class="comment"> * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE.   *</span>
+<a name="l00004"></a>00004 <span class="comment"> * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *</span>
+<a name="l00005"></a>00005 <span class="comment"> * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *</span>
+<a name="l00006"></a>00006 <span class="comment"> * IN &apos;COPYING&apos;. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *</span>
+<a name="l00007"></a>00007 <span class="comment"> *                                                                  *</span>
+<a name="l00008"></a>00008 <span class="comment"> * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009                *</span>
+<a name="l00009"></a>00009 <span class="comment"> * by the Xiph.Org Foundation http://www.xiph.org/                  *</span>
+<a name="l00010"></a>00010 <span class="comment"> *                                                                  *</span>
+<a name="l00011"></a>00011 <span class="comment"> ********************************************************************</span>
+<a name="l00012"></a>00012 <span class="comment"></span>
+<a name="l00013"></a>00013 <span class="comment">  function:</span>
+<a name="l00014"></a>00014 <span class="comment">  last mod: $Id: theora.h,v 1.8 2004/03/15 22:17:32 derf Exp $</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment"> ********************************************************************/</span>
+<a name="l00017"></a>00017 
+<a name="l00062"></a>00062 <span class="preprocessor">#if !defined(_O_THEORA_CODEC_H_)</span>
+<a name="l00063"></a><a class="code" href="codec_8h.html#a15352a6a862d25ab00a8f06ea65ee75b">00063</a> <span class="preprocessor"></span><span class="preprocessor"># define _O_THEORA_CODEC_H_ (1)</span>
+<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor"># include &lt;ogg/ogg.h&gt;</span>
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066 <span class="preprocessor">#if defined(__cplusplus)</span>
+<a name="l00067"></a>00067 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
+<a name="l00068"></a>00068 <span class="preprocessor">#endif</span>
+<a name="l00069"></a>00069 <span class="preprocessor"></span>
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071 
+<a name="l00075"></a><a class="code" href="codec_8h.html#a4d8d8e34fc5ec39ffa05d61a310a0407">00075</a> <span class="preprocessor">#define TH_EFAULT     (-1)</span>
+<a name="l00076"></a>00076 <span class="preprocessor"></span>
+<a name="l00077"></a><a class="code" href="codec_8h.html#afbbd9f19fbf292aeb62a37792cecb870">00077</a> <span class="preprocessor">#define TH_EINVAL     (-10)</span>
+<a name="l00078"></a>00078 <span class="preprocessor"></span>
+<a name="l00079"></a><a class="code" href="codec_8h.html#af00f7ecc5242d12a717202537324a510">00079</a> <span class="preprocessor">#define TH_EBADHEADER (-20)</span>
+<a name="l00080"></a>00080 <span class="preprocessor"></span>
+<a name="l00081"></a><a class="code" href="codec_8h.html#a3dc08a00a9aba231be398f3e31726d9c">00081</a> <span class="preprocessor">#define TH_ENOTFORMAT (-21)</span>
+<a name="l00082"></a>00082 <span class="preprocessor"></span>
+<a name="l00083"></a><a class="code" href="codec_8h.html#ac3a45ef2b24f75259258edc481e3a122">00083</a> <span class="preprocessor">#define TH_EVERSION   (-22)</span>
+<a name="l00084"></a>00084 <span class="preprocessor"></span>
+<a name="l00085"></a><a class="code" href="codec_8h.html#a921c47accc17841f220af5a6afb79efe">00085</a> <span class="preprocessor">#define TH_EIMPL      (-23)</span>
+<a name="l00086"></a>00086 <span class="preprocessor"></span>
+<a name="l00087"></a><a class="code" href="codec_8h.html#a6efb84e9c2213a8840003eee2847b27f">00087</a> <span class="preprocessor">#define TH_EBADPACKET (-24)</span>
+<a name="l00088"></a>00088 <span class="preprocessor"></span>
+<a name="l00091"></a><a class="code" href="codec_8h.html#ab10e7b64f17a02707fc9348ea9832d09">00091</a> <span class="preprocessor">#define TH_DUPFRAME   (1)</span>
+<a name="l00092"></a>00092 <span class="preprocessor"></span>
+<a name="l00098"></a><a class="code" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0">00098</a> <span class="keyword">typedef</span> <span class="keyword">enum</span>{
+<a name="l00101"></a><a class="code" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0adb9a17a3283c8d490652e507db2427cf">00101</a>   <a class="code" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0adb9a17a3283c8d490652e507db2427cf" title="The color space was not specified at the encoder.">TH_CS_UNSPECIFIED</a>,
+<a name="l00103"></a><a class="code" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a1a19346bbfb8192baa4c185df73d3397">00103</a>   <a class="code" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a1a19346bbfb8192baa4c185df73d3397" title="A color space designed for NTSC content.">TH_CS_ITU_REC_470M</a>,
+<a name="l00105"></a><a class="code" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a009021d50836ddb0ec6004a2803775fe">00105</a>   <a class="code" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a009021d50836ddb0ec6004a2803775fe" title="A color space designed for PAL/SECAM content.">TH_CS_ITU_REC_470BG</a>,
+<a name="l00107"></a><a class="code" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a0fa8ea07f583ee57943520ddb2f6e62e">00107</a>   <a class="code" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a0fa8ea07f583ee57943520ddb2f6e62e" title="The total number of currently defined color spaces.">TH_CS_NSPACES</a>
+<a name="l00108"></a>00108 }<a class="code" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0" title="The currently defined color space tags.">th_colorspace</a>;
+<a name="l00109"></a>00109 
+<a name="l00114"></a><a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bc">00114</a> <span class="keyword">typedef</span> <span class="keyword">enum</span>{
+<a name="l00118"></a><a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bcafed7ad7ee4345930255827bff6055162">00118</a>   <a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bcafed7ad7ee4345930255827bff6055162" title="Chroma decimation by 2 in both the X and Y directions (4:2:0).">TH_PF_420</a>,
+<a name="l00120"></a><a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca9e60af0159d42b20806d7eb4a8b833e6">00120</a>   <a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca9e60af0159d42b20806d7eb4a8b833e6" title="Currently reserved.">TH_PF_RSVD</a>,
+<a name="l00124"></a><a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca0271d01babf2f51512479f4a6245b9fa">00124</a>   <a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca0271d01babf2f51512479f4a6245b9fa" title="Chroma decimation by 2 in the X direction (4:2:2).">TH_PF_422</a>,
+<a name="l00127"></a><a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca2ac50ac048ea75501a5e0f99a63c8c86">00127</a>   <a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca2ac50ac048ea75501a5e0f99a63c8c86" title="No chroma decimation (4:4:4).">TH_PF_444</a>,
+<a name="l00129"></a><a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca2d6d78b9df1df086bb60f32f963a31eb">00129</a>   <a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca2d6d78b9df1df086bb60f32f963a31eb" title="The total number of currently defined pixel formats.">TH_PF_NFORMATS</a>
+<a name="l00130"></a>00130 }<a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bc" title="The currently defined pixel format tags.">th_pixel_fmt</a>;
+<a name="l00131"></a>00131 
+<a name="l00132"></a>00132 
+<a name="l00133"></a>00133 
+<a name="l00142"></a><a class="code" href="structth__img__plane.html">00142</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>{
+<a name="l00144"></a><a class="code" href="structth__img__plane.html#a58cc297a99cd4594c3d30e56f2ed6b74">00144</a>   <span class="keywordtype">int</span>            width;
+<a name="l00146"></a><a class="code" href="structth__img__plane.html#a21aea1367894468de489d529d7eaf44d">00146</a>   <span class="keywordtype">int</span>            height;
+<a name="l00148"></a><a class="code" href="structth__img__plane.html#ab1100f071ffee3b37e07e3222f819bad">00148</a>   <span class="keywordtype">int</span>            stride;
+<a name="l00150"></a><a class="code" href="structth__img__plane.html#af8133681516ce88b5a201c1b4b7e6ba2">00150</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data;
+<a name="l00151"></a>00151 }<a class="code" href="structth__img__plane.html" title="A buffer for a single color plane in an uncompressed image.">th_img_plane</a>;
+<a name="l00152"></a>00152 
+<a name="l00168"></a><a class="code" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">00168</a> <span class="keyword">typedef</span> <a class="code" href="structth__img__plane.html" title="A buffer for a single color plane in an uncompressed image.">th_img_plane</a> <a class="code" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45" title="A complete image buffer for an uncompressed frame.">th_ycbcr_buffer</a>[3];
+<a name="l00169"></a>00169 
+<a name="l00204"></a><a class="code" href="structth__info.html">00204</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>{
+<a name="l00208"></a><a class="code" href="structth__info.html#a60b3e2cac006fee0e105a918d6a5a9f9">00208</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> version_major;
+<a name="l00209"></a><a class="code" href="structth__info.html#abb1d4887a8079c6c5aaa6d7229f243d7">00209</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> version_minor;
+<a name="l00210"></a><a class="code" href="structth__info.html#abfacc79b7cabae12b6ac2484f76602d3">00210</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> version_subminor;
+<a name="l00214"></a><a class="code" href="structth__info.html#a6b8087a4d831da53011a43b8d74087a0">00214</a>   ogg_uint32_t  frame_width;
+<a name="l00217"></a><a class="code" href="structth__info.html#a6b1adc3a16a8336a72692b0a5937214c">00217</a>   ogg_uint32_t  frame_height;
+<a name="l00220"></a><a class="code" href="structth__info.html#a5048edf77b141dd3e9a92ca85e317345">00220</a>   ogg_uint32_t  pic_width;
+<a name="l00223"></a><a class="code" href="structth__info.html#a775178474283c5990ba73f9ba7f6b88b">00223</a>   ogg_uint32_t  pic_height;
+<a name="l00227"></a><a class="code" href="structth__info.html#a5b3f834bcf141564e7bb14f49101870f">00227</a>   ogg_uint32_t  pic_x;
+<a name="l00235"></a><a class="code" href="structth__info.html#a8aacc575cab2dfe3735001c2ad32aa14">00235</a>   ogg_uint32_t  pic_y;
+<a name="l00240"></a><a class="code" href="structth__info.html#a20606e61676f585a7e59cfc96de190a5">00240</a>   ogg_uint32_t  fps_numerator;
+<a name="l00241"></a><a class="code" href="structth__info.html#aa619408f70c03935529f1d3eda7a3ec2">00241</a>   ogg_uint32_t  fps_denominator;
+<a name="l00252"></a><a class="code" href="structth__info.html#a5be65dac9f75e37864cf73dd543570cd">00252</a>   ogg_uint32_t  aspect_numerator;
+<a name="l00253"></a><a class="code" href="structth__info.html#a04c0bd477222d747a76085d8720322e2">00253</a>   ogg_uint32_t  aspect_denominator;
+<a name="l00256"></a><a class="code" href="structth__info.html#a8c7828cd0e023e9d21108160d53659a6">00256</a>   <a class="code" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0" title="The currently defined color space tags.">th_colorspace</a> colorspace;
+<a name="l00258"></a><a class="code" href="structth__info.html#a2301388ef3755c41ab12fd144c1fc54e">00258</a>   <a class="code" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bc" title="The currently defined pixel format tags.">th_pixel_fmt</a>  pixel_fmt;
+<a name="l00262"></a><a class="code" href="structth__info.html#a1d9c8d768a4ae623269f5bd8f6f7a015">00262</a>   <span class="keywordtype">int</span>           target_bitrate;
+<a name="l00268"></a>00268   <span class="comment">/*Currently this is set so that a qi of 0 corresponds to distortions of 24</span>
+<a name="l00269"></a>00269 <span class="comment">     times the JND, and each increase by 16 halves that value.</span>
+<a name="l00270"></a>00270 <span class="comment">    This gives us fine discrimination at low qualities, yet effective rate</span>
+<a name="l00271"></a>00271 <span class="comment">     control at high qualities.</span>
+<a name="l00272"></a>00272 <span class="comment">    The qi value 63 is special, however.</span>
+<a name="l00273"></a>00273 <span class="comment">    For this, the highest quality, we use one half of a JND for our threshold.</span>
+<a name="l00274"></a>00274 <span class="comment">    Due to the lower bounds placed on allowable quantizers in Theora, we will</span>
+<a name="l00275"></a>00275 <span class="comment">     not actually be able to achieve quality this good, but this should</span>
+<a name="l00276"></a>00276 <span class="comment">     provide as close to visually lossless quality as Theora is capable of.</span>
+<a name="l00277"></a>00277 <span class="comment">    We could lift the quantizer restrictions without breaking VP3.1</span>
+<a name="l00278"></a>00278 <span class="comment">     compatibility, but this would result in quantized coefficients that are</span>
+<a name="l00279"></a>00279 <span class="comment">     too large for the current bitstream to be able to store.</span>
+<a name="l00280"></a>00280 <span class="comment">    We&apos;d have to redesign the token syntax to store these large coefficients,</span>
+<a name="l00281"></a>00281 <span class="comment">     which would make transcoding complex.*/</span>
+<a name="l00282"></a><a class="code" href="structth__info.html#aa4cdcf96cb46b256821993e9a830ee02">00282</a>   <span class="keywordtype">int</span>           quality;
+<a name="l00296"></a><a class="code" href="structth__info.html#a693ca4ab11fbc0c3f32594b4bb8766ed">00296</a>   <span class="keywordtype">int</span>           keyframe_granule_shift;
+<a name="l00297"></a>00297 }<a class="code" href="structth__info.html" title="Theora bitstream information.">th_info</a>;
+<a name="l00298"></a>00298 
+<a name="l00323"></a><a class="code" href="structth__comment.html">00323</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structth__comment.html" title="The comment information.">th_comment</a>{
+<a name="l00325"></a><a class="code" href="structth__comment.html#ad72830e183e707bb0df423eb73b00de4">00325</a>   <span class="keywordtype">char</span> **<a class="code" href="structth__comment.html#ad72830e183e707bb0df423eb73b00de4" title="The array of comment string vectors.">user_comments</a>;
+<a name="l00327"></a><a class="code" href="structth__comment.html#a723dc6fdf75757e70e28eea864b10898">00327</a>   <span class="keywordtype">int</span>   *<a class="code" href="structth__comment.html#a723dc6fdf75757e70e28eea864b10898" title="An array of the corresponding length of each vector, in bytes.">comment_lengths</a>;
+<a name="l00329"></a><a class="code" href="structth__comment.html#a5990c34932376f070ad0fc314daaeb78">00329</a>   <span class="keywordtype">int</span>    <a class="code" href="structth__comment.html#a5990c34932376f070ad0fc314daaeb78" title="The total number of comment strings.">comments</a>;
+<a name="l00332"></a><a class="code" href="structth__comment.html#a93fbe894d23603f56843be15b0cbdba0">00332</a>   <span class="keywordtype">char</span>  *<a class="code" href="structth__comment.html#a93fbe894d23603f56843be15b0cbdba0" title="The null-terminated vendor string.">vendor</a>;
+<a name="l00333"></a>00333 }<a class="code" href="structth__comment.html" title="The comment information.">th_comment</a>;
+<a name="l00334"></a>00334 
+<a name="l00335"></a>00335 
+<a name="l00336"></a>00336 
+<a name="l00338"></a><a class="code" href="codec_8h.html#a6a1426d16beef8a311d7f0e9d2e96326">00338</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="codec_8h.html#a6a1426d16beef8a311d7f0e9d2e96326" title="A single base matrix.">th_quant_base</a>[64];
+<a name="l00339"></a>00339 
+<a name="l00341"></a><a class="code" href="structth__quant__ranges.html">00341</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>{
+<a name="l00343"></a><a class="code" href="structth__quant__ranges.html#a53e5a3d7f7a112100b4b670929b3ebab">00343</a>   <span class="keywordtype">int</span>                  nranges;
+<a name="l00346"></a><a class="code" href="structth__quant__ranges.html#af3188a373bc0b8ffaa330d0ab4c1a194">00346</a>   <span class="keyword">const</span> <span class="keywordtype">int</span>           *sizes;
+<a name="l00349"></a><a class="code" href="structth__quant__ranges.html#a52cb432f034737087492ea448de20bdb">00349</a>   <span class="keyword">const</span> th_quant_base *base_matrices;
+<a name="l00350"></a>00350 }<a class="code" href="structth__quant__ranges.html" title="A set of qi ranges.">th_quant_ranges</a>;
+<a name="l00351"></a>00351 
+<a name="l00409"></a><a class="code" href="structth__quant__info.html">00409</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>{
+<a name="l00411"></a><a class="code" href="structth__quant__info.html#ad5c1c0d1aa4127fcf864ae747d732ed9">00411</a>   ogg_uint16_t    dc_scale[64];
+<a name="l00413"></a><a class="code" href="structth__quant__info.html#a102f079c8f4a135dc0895c10768aeb06">00413</a>   ogg_uint16_t    ac_scale[64];
+<a name="l00415"></a><a class="code" href="structth__quant__info.html#a4ac56bf0a45b5743b36daf85d5cd9e33">00415</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>   loop_filter_limits[64];
+<a name="l00417"></a><a class="code" href="structth__quant__info.html#a6feacf4b365e305a7df7b93d87ee7bb8">00417</a>   <a class="code" href="structth__quant__ranges.html" title="A set of qi ranges.">th_quant_ranges</a> qi_ranges[2][3];
+<a name="l00418"></a>00418 }<a class="code" href="structth__quant__info.html" title="A complete set of quantization parameters.">th_quant_info</a>;
+<a name="l00419"></a>00419 
+<a name="l00420"></a>00420 
+<a name="l00421"></a>00421 
+<a name="l00423"></a><a class="code" href="codec_8h.html#a49bf449eae33c5320f0c308f32c6ae42">00423</a> <span class="preprocessor">#define TH_NHUFFMAN_TABLES (80)</span>
+<a name="l00424"></a>00424 <span class="preprocessor"></span>
+<a name="l00425"></a><a class="code" href="codec_8h.html#a2a44f48084e76a58cae48fb5d47cd422">00425</a> <span class="preprocessor">#define TH_NDCT_TOKENS     (32)</span>
+<a name="l00426"></a>00426 <span class="preprocessor"></span>
+<a name="l00438"></a><a class="code" href="structth__huff__code.html">00438</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>{
+<a name="l00441"></a><a class="code" href="structth__huff__code.html#a6dd29e3aa5a0c5a2dd5ce1f45b1162b4">00441</a>   ogg_uint32_t pattern;
+<a name="l00444"></a><a class="code" href="structth__huff__code.html#aaf97b8f2f90042f7bc136a7b2bc35e35">00444</a>   <span class="keywordtype">int</span>          nbits;
+<a name="l00445"></a>00445 }<a class="code" href="structth__huff__code.html" title="A Huffman code for a Theora DCT token.">th_huff_code</a>;
+<a name="l00446"></a>00446 
+<a name="l00447"></a>00447 
+<a name="l00448"></a>00448 
+<a name="l00456"></a>00456 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__basefuncs.html#ga04846066738d9f2024fc9961162b2dbc" title="Retrieves a human-readable string to identify the library vendor and version.">th_version_string</a>(<span class="keywordtype">void</span>);
+<a name="l00466"></a>00466 <span class="keyword">extern</span> ogg_uint32_t <a class="code" href="group__basefuncs.html#gab723a75c0f95b3eb817f7f769846016b" title="Retrieves the library version number.">th_version_number</a>(<span class="keywordtype">void</span>);
+<a name="l00476"></a>00476 <span class="keyword">extern</span> ogg_int64_t <a class="code" href="group__basefuncs.html#ga95b10e76fc4c05d0240ea2dfd9fd62bd" title="Converts a granule position to an absolute frame index, starting at 0.">th_granule_frame</a>(<span class="keywordtype">void</span> *_encdec,ogg_int64_t _granpos);
+<a name="l00488"></a>00488 <span class="keyword">extern</span> <span class="keywordtype">double</span> <a class="code" href="group__basefuncs.html#ga707e1e281de788af0df39ef00f3fb432" title="Converts a granule position to an absolute time in seconds.">th_granule_time</a>(<span class="keywordtype">void</span> *_encdec,ogg_int64_t _granpos);
+<a name="l00498"></a>00498 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__basefuncs.html#ga02f3f38261a9b39452d8a5e6f8737cc1" title="Determines whether a Theora packet is a header or not.">th_packet_isheader</a>(ogg_packet *_op);
+<a name="l00509"></a>00509 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__basefuncs.html#gafe95cfd06f0fef413266c9168a66248a" title="Determines whether a theora packet is a key frame or not.">th_packet_iskeyframe</a>(ogg_packet *_op);
+<a name="l00519"></a>00519 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__basefuncs.html#ga430d9c605816a6ca0bdce3a0b965b926" title="Initializes a th_info structure.">th_info_init</a>(<a class="code" href="structth__info.html" title="Theora bitstream information.">th_info</a> *_info);
+<a name="l00524"></a>00524 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__basefuncs.html#gab3d6441ab4a4969859ef5fd78a9e3c1c" title="Clears a th_info structure.">th_info_clear</a>(<a class="code" href="structth__info.html" title="Theora bitstream information.">th_info</a> *_info);
+<a name="l00525"></a>00525 
+<a name="l00530"></a>00530 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__basefuncs.html#ga6c8ab25988e7ea9d7b1e31a54cf58f09" title="Initialize a th_comment structure.">th_comment_init</a>(<a class="code" href="structth__comment.html" title="The comment information.">th_comment</a> *_tc);
+<a name="l00540"></a>00540 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__basefuncs.html#ga19a1f7b8032db957df151a34e5ac9272" title="Add a comment to an initialized th_comment structure.">th_comment_add</a>(<a class="code" href="structth__comment.html" title="The comment information.">th_comment</a> *_tc, <span class="keywordtype">char</span> *_comment);
+<a name="l00551"></a>00551 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__basefuncs.html#ga6c5edc201ca220a30787ca6c1ddcaeaf" title="Add a comment to an initialized th_comment structure.">th_comment_add_tag</a>(<a class="code" href="structth__comment.html" title="The comment information.">th_comment</a> *_tc,<span class="keywordtype">char</span> *_tag,<span class="keywordtype">char</span> *_val);
+<a name="l00567"></a>00567 <span class="keyword">extern</span> <span class="keywordtype">char</span> *<a class="code" href="group__basefuncs.html#ga33c8b4f57a03217636d704c2ebb211fa" title="Look up a comment value by its tag.">th_comment_query</a>(<a class="code" href="structth__comment.html" title="The comment information.">th_comment</a> *_tc,<span class="keywordtype">char</span> *_tag,<span class="keywordtype">int</span> _count);
+<a name="l00575"></a>00575 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__basefuncs.html#ga81d518dc4426f63ceaedcbe2668679fc" title="Look up the number of instances of a tag.">th_comment_query_count</a>(<a class="code" href="structth__comment.html" title="The comment information.">th_comment</a> *_tc,<span class="keywordtype">char</span> *_tag);
+<a name="l00581"></a>00581 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__basefuncs.html#gae736c1afa514947a3feb223143af95e3" title="Clears a th_comment structure.">th_comment_clear</a>(<a class="code" href="structth__comment.html" title="The comment information.">th_comment</a> *_tc);
+<a name="l00584"></a>00584 
+<a name="l00585"></a>00585 
+<a name="l00586"></a>00586 
+<a name="l00587"></a>00587 <span class="preprocessor">#if defined(__cplusplus)</span>
+<a name="l00588"></a>00588 <span class="preprocessor"></span>}
+<a name="l00589"></a>00589 <span class="preprocessor">#endif</span>
+<a name="l00590"></a>00590 <span class="preprocessor"></span>
+<a name="l00591"></a>00591 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/doxygen.css
===================================================================
--- websites/theora.org/doc/libtheora-1.1/doxygen.css	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/doxygen.css	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,498 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+	font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+	font-size: 12px;
+}
+
+/* @group Heading Levels */
+
+h1 {
+	text-align: center;
+	font-size: 150%;
+}
+
+h2 {
+	font-size: 120%;
+}
+
+h3 {
+	font-size: 100%;
+}
+
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #153788;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #1b77c5;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #6666cc;
+	color: #ffffff;
+	border: 1px double #9295C2;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code {
+}
+
+a.codeRef {
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+.fragment {
+	font-family: monospace, fixed;
+	font-size: 105%;
+}
+
+pre.fragment {
+	border: 1px solid #CCCCCC;
+	background-color: #f5f5f5;
+	padding: 4px 6px;
+	margin: 4px 8px 4px 2px;
+}
+
+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;
+}
+
+body {
+	background: white;
+	color: black;
+	margin-right: 20px;
+	margin-left: 20px;
+}
+
+td.indexkey {
+	background-color: #e8eef2;
+	font-weight: bold;
+	border: 1px solid #CCCCCC;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+}
+
+td.indexvalue {
+	background-color: #e8eef2;
+	border: 1px solid #CCCCCC;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #f0f0f0;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+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 
+}
+
+/* @end */
+
+.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%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #84b0c7;
+}
+
+th.dirtab {
+	background: #e8eef2;
+	font-weight: bold;
+}
+
+hr {
+	height: 0;
+	border: none;
+	border-top: 1px solid #666;
+}
+
+/* @group Member Descriptions */
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #FAFAFA;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+	border-top: 1px solid #ccc;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memTemplParams {
+	color: #606060;
+        white-space: nowrap;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles 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: 0;
+	margin-bottom: 10px;
+}
+
+.memname {
+	white-space: nowrap;
+	font-weight: bold;
+}
+
+.memproto, .memdoc {
+	border: 1px solid #84b0c7;	
+}
+
+.memproto {
+	padding: 0;
+	background-color: #d5e1e8;
+	font-weight: bold;
+	-webkit-border-top-left-radius: 8px;
+	-webkit-border-top-right-radius: 8px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+	-moz-border-radius-topleft: 8px;
+	-moz-border-radius-topright: 8px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+
+}
+
+.memdoc {
+	padding: 2px 5px;
+	background-color: #eef3f5;
+	border-top-width: 0;
+	-webkit-border-bottom-left-radius: 8px;
+	-webkit-border-bottom-right-radius: 8px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+	-moz-border-radius-bottomleft: 8px;
+	-moz-border-radius-bottomright: 8px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+
+/* @end */
+
+/* @group Directory (tree) */
+
+/* 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%;
+}
+
+/* @end */
+
+address {
+	font-style: normal;
+	color: #333;
+}

Added: websites/theora.org/doc/libtheora-1.1/doxygen.png
===================================================================
(Binary files differ)


Property changes on: websites/theora.org/doc/libtheora-1.1/doxygen.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: websites/theora.org/doc/libtheora-1.1/files.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/files.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/files.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: File Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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 files with brief descriptions:<table>
+  <tr><td class="indexkey"><a class="el" href="codec_8h.html">codec.h</a> <a href="codec_8h_source.html">[code]</a></td><td class="indexvalue">The shared <code>libtheoradec</code> and <code>libtheoraenc</code> C API </td></tr>
+  <tr><td class="indexkey"><a class="el" href="theora_8h.html">theora.h</a> <a href="theora_8h_source.html">[code]</a></td><td class="indexvalue">The libtheora pre-1.0 legacy C API </td></tr>
+  <tr><td class="indexkey"><a class="el" href="theoradec_8h.html">theoradec.h</a> <a href="theoradec_8h_source.html">[code]</a></td><td class="indexvalue">The <code>libtheoradec</code> C decoding API </td></tr>
+  <tr><td class="indexkey"><a class="el" href="theoraenc_8h.html">theoraenc.h</a> <a href="theoraenc_8h_source.html">[code]</a></td><td class="indexvalue">The <code>libtheoraenc</code> C encoding API </td></tr>
+</table>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/functions.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/functions.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/functions.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,353 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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 class="tabs">
+    <ul>
+      <li><a href="#index_a"><span>a</span></a></li>
+      <li><a href="#index_b"><span>b</span></a></li>
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_d"><span>d</span></a></li>
+      <li><a href="#index_f"><span>f</span></a></li>
+      <li><a href="#index_g"><span>g</span></a></li>
+      <li><a href="#index_h"><span>h</span></a></li>
+      <li><a href="#index_i"><span>i</span></a></li>
+      <li><a href="#index_k"><span>k</span></a></li>
+      <li><a href="#index_l"><span>l</span></a></li>
+      <li><a href="#index_n"><span>n</span></a></li>
+      <li><a href="#index_o"><span>o</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_q"><span>q</span></a></li>
+      <li><a href="#index_s"><span>s</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+      <li><a href="#index_u"><span>u</span></a></li>
+      <li><a href="#index_v"><span>v</span></a></li>
+      <li><a href="#index_w"><span>w</span></a></li>
+      <li><a href="#index_y"><span>y</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all struct and union fields with links to the structures/unions they belong to:
+
+<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
+<li>ac_scale
+: <a class="el" href="structth__quant__info.html#a102f079c8f4a135dc0895c10768aeb06">th_quant_info</a>
+</li>
+<li>aspect_denominator
+: <a class="el" href="structth__info.html#a04c0bd477222d747a76085d8720322e2">th_info</a>
+, <a class="el" href="structtheora__info.html#afebc4d0cbfb34b68c833a8c79e83ae12">theora_info</a>
+</li>
+<li>aspect_numerator
+: <a class="el" href="structth__info.html#a5be65dac9f75e37864cf73dd543570cd">th_info</a>
+, <a class="el" href="structtheora__info.html#a5a3ed8c79815fba1aa06c3f7d8e48b35">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b">- b -</a></h3><ul>
+<li>base_matrices
+: <a class="el" href="structth__quant__ranges.html#a52cb432f034737087492ea448de20bdb">th_quant_ranges</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
+<li>codec_setup
+: <a class="el" href="structtheora__info.html#a719a1d77a4a3bfeab79aa5747dbbb04c">theora_info</a>
+</li>
+<li>colorspace
+: <a class="el" href="structth__info.html#a8c7828cd0e023e9d21108160d53659a6">th_info</a>
+, <a class="el" href="structtheora__info.html#a5eaba99c96706d47b426ab7b7602dc5d">theora_info</a>
+</li>
+<li>comment_lengths
+: <a class="el" href="structth__comment.html#a723dc6fdf75757e70e28eea864b10898">th_comment</a>
+, <a class="el" href="structtheora__comment.html#a5ab4a376d3c217282a684577c9c9f49a">theora_comment</a>
+</li>
+<li>comments
+: <a class="el" href="structth__comment.html#a5990c34932376f070ad0fc314daaeb78">th_comment</a>
+, <a class="el" href="structtheora__comment.html#a122393035c8352ff9be42d69e73aee00">theora_comment</a>
+</li>
+<li>ctx
+: <a class="el" href="structth__stripe__callback.html#ab895162ce29a411fa98e0ba9661f47d4">th_stripe_callback</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
+<li>data
+: <a class="el" href="structth__img__plane.html#af8133681516ce88b5a201c1b4b7e6ba2">th_img_plane</a>
+</li>
+<li>dc_scale
+: <a class="el" href="structth__quant__info.html#ad5c1c0d1aa4127fcf864ae747d732ed9">th_quant_info</a>
+</li>
+<li>dropframes_p
+: <a class="el" href="structtheora__info.html#af294db65a8363a0bcf43f4727763b291">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
+<li>fps_denominator
+: <a class="el" href="structth__info.html#aa619408f70c03935529f1d3eda7a3ec2">th_info</a>
+, <a class="el" href="structtheora__info.html#a9aa7e826e0323a4ae8cd8646a6cfbfea">theora_info</a>
+</li>
+<li>fps_numerator
+: <a class="el" href="structtheora__info.html#a3478199aa5ab213816c1819f70085ad7">theora_info</a>
+, <a class="el" href="structth__info.html#a20606e61676f585a7e59cfc96de190a5">th_info</a>
+</li>
+<li>frame_height
+: <a class="el" href="structth__info.html#a6b1adc3a16a8336a72692b0a5937214c">th_info</a>
+, <a class="el" href="structtheora__info.html#a287e4c194f1d2e6deb39d59f1748ea48">theora_info</a>
+</li>
+<li>frame_width
+: <a class="el" href="structtheora__info.html#a8f28f4018a25634d40e4ae861fbbccfa">theora_info</a>
+, <a class="el" href="structth__info.html#a6b8087a4d831da53011a43b8d74087a0">th_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
+<li>granulepos
+: <a class="el" href="structtheora__state.html#a5dd344a3f79ea7501b18c756772fab7b">theora_state</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
+<li>height
+: <a class="el" href="structth__img__plane.html#a21aea1367894468de489d529d7eaf44d">th_img_plane</a>
+, <a class="el" href="structtheora__info.html#ae6f0274fc4a7f285c422d91abb35f9c6">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
+<li>i
+: <a class="el" href="structtheora__state.html#a0efc7ac581ef260b0ca17f518ace0731">theora_state</a>
+</li>
+<li>internal_decode
+: <a class="el" href="structtheora__state.html#ad20c4eebbc5ed9764cf03ba8b90e796e">theora_state</a>
+</li>
+<li>internal_encode
+: <a class="el" href="structtheora__state.html#a1fbfd82fb7210cbcc4233cb680ec2af6">theora_state</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_k">- k -</a></h3><ul>
+<li>keyframe_auto_p
+: <a class="el" href="structtheora__info.html#a23648173369174f687085c0ce85ef30e">theora_info</a>
+</li>
+<li>keyframe_auto_threshold
+: <a class="el" href="structtheora__info.html#a95cb8958e29ad3d24047ee8f9e7fd99b">theora_info</a>
+</li>
+<li>keyframe_data_target_bitrate
+: <a class="el" href="structtheora__info.html#a588942d1ee90a26a7effdf6a0e98b9ce">theora_info</a>
+</li>
+<li>keyframe_frequency
+: <a class="el" href="structtheora__info.html#a03e1b3e337af5f9dabaaaeb9050f145a">theora_info</a>
+</li>
+<li>keyframe_frequency_force
+: <a class="el" href="structtheora__info.html#ad9d2e22c44a53473010e6d1042dfe0d8">theora_info</a>
+</li>
+<li>keyframe_granule_shift
+: <a class="el" href="structth__info.html#a693ca4ab11fbc0c3f32594b4bb8766ed">th_info</a>
+</li>
+<li>keyframe_mindistance
+: <a class="el" href="structtheora__info.html#aa79ca8c0e77a884d4487fd627fae32e9">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
+<li>loop_filter_limits
+: <a class="el" href="structth__quant__info.html#a4ac56bf0a45b5743b36daf85d5cd9e33">th_quant_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
+<li>nbits
+: <a class="el" href="structth__huff__code.html#aaf97b8f2f90042f7bc136a7b2bc35e35">th_huff_code</a>
+</li>
+<li>noise_sensitivity
+: <a class="el" href="structtheora__info.html#ac4789034f547b57d1075e035050eeed9">theora_info</a>
+</li>
+<li>nranges
+: <a class="el" href="structth__quant__ranges.html#a53e5a3d7f7a112100b4b670929b3ebab">th_quant_ranges</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>offset_x
+: <a class="el" href="structtheora__info.html#af5949a02bef29512f2705e6f6c944e3b">theora_info</a>
+</li>
+<li>offset_y
+: <a class="el" href="structtheora__info.html#a91c3922097ba32a85acd584a01dc2c93">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
+<li>pattern
+: <a class="el" href="structth__huff__code.html#a6dd29e3aa5a0c5a2dd5ce1f45b1162b4">th_huff_code</a>
+</li>
+<li>pic_height
+: <a class="el" href="structth__info.html#a775178474283c5990ba73f9ba7f6b88b">th_info</a>
+</li>
+<li>pic_width
+: <a class="el" href="structth__info.html#a5048edf77b141dd3e9a92ca85e317345">th_info</a>
+</li>
+<li>pic_x
+: <a class="el" href="structth__info.html#a5b3f834bcf141564e7bb14f49101870f">th_info</a>
+</li>
+<li>pic_y
+: <a class="el" href="structth__info.html#a8aacc575cab2dfe3735001c2ad32aa14">th_info</a>
+</li>
+<li>pixel_fmt
+: <a class="el" href="structth__info.html#a2301388ef3755c41ab12fd144c1fc54e">th_info</a>
+</li>
+<li>pixelformat
+: <a class="el" href="structtheora__info.html#a65ab4376ab5242ee82e06c78fb7008ab">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_q">- q -</a></h3><ul>
+<li>qi_ranges
+: <a class="el" href="structth__quant__info.html#a6feacf4b365e305a7df7b93d87ee7bb8">th_quant_info</a>
+</li>
+<li>quality
+: <a class="el" href="structth__info.html#aa4cdcf96cb46b256821993e9a830ee02">th_info</a>
+, <a class="el" href="structtheora__info.html#a71a4748a5f31bd58d0e403b7806c980d">theora_info</a>
+</li>
+<li>quick_p
+: <a class="el" href="structtheora__info.html#a2dfae4fd175dbd19254eaf0697778ff5">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
+<li>sharpness
+: <a class="el" href="structtheora__info.html#a3fb695de2b2f56dd0203b9e2eb0df1cc">theora_info</a>
+</li>
+<li>sizes
+: <a class="el" href="structth__quant__ranges.html#af3188a373bc0b8ffaa330d0ab4c1a194">th_quant_ranges</a>
+</li>
+<li>stride
+: <a class="el" href="structth__img__plane.html#ab1100f071ffee3b37e07e3222f819bad">th_img_plane</a>
+</li>
+<li>stripe_decoded
+: <a class="el" href="structth__stripe__callback.html#a977c725680a37e3446e459f063b1f4a5">th_stripe_callback</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
+<li>target_bitrate
+: <a class="el" href="structth__info.html#a1d9c8d768a4ae623269f5bd8f6f7a015">th_info</a>
+, <a class="el" href="structtheora__info.html#a0cfba041767ae2416dd190a406afe713">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
+<li>u
+: <a class="el" href="structyuv__buffer.html#a8b1857afe3ffac28f259499a57a559e1">yuv_buffer</a>
+</li>
+<li>user_comments
+: <a class="el" href="structth__comment.html#ad72830e183e707bb0df423eb73b00de4">th_comment</a>
+, <a class="el" href="structtheora__comment.html#a1e236fd180dfce19be89081399444cf5">theora_comment</a>
+</li>
+<li>uv_height
+: <a class="el" href="structyuv__buffer.html#a640f1a0b456d3807f9f0538b22f10097">yuv_buffer</a>
+</li>
+<li>uv_stride
+: <a class="el" href="structyuv__buffer.html#ab265cc24ffb5650bf52daf223b0debb9">yuv_buffer</a>
+</li>
+<li>uv_width
+: <a class="el" href="structyuv__buffer.html#a8c59a57c35af0be519ee47f15e49fe2b">yuv_buffer</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_v">- v -</a></h3><ul>
+<li>v
+: <a class="el" href="structyuv__buffer.html#aa429491dd112adb0254672c59ef55075">yuv_buffer</a>
+</li>
+<li>vendor
+: <a class="el" href="structth__comment.html#a93fbe894d23603f56843be15b0cbdba0">th_comment</a>
+, <a class="el" href="structtheora__comment.html#adb371baf8f0daed42af8b875cf8430ef">theora_comment</a>
+</li>
+<li>version_major
+: <a class="el" href="structth__info.html#a60b3e2cac006fee0e105a918d6a5a9f9">th_info</a>
+, <a class="el" href="structtheora__info.html#a7c5ebb9e6700aaef87f29f7c6074e474">theora_info</a>
+</li>
+<li>version_minor
+: <a class="el" href="structtheora__info.html#a75eda4f30270d833c7b9dba43932a06a">theora_info</a>
+, <a class="el" href="structth__info.html#abb1d4887a8079c6c5aaa6d7229f243d7">th_info</a>
+</li>
+<li>version_subminor
+: <a class="el" href="structtheora__info.html#aa07967ecd6e20bd2928ead42b6397b3d">theora_info</a>
+, <a class="el" href="structth__info.html#abfacc79b7cabae12b6ac2484f76602d3">th_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w">- w -</a></h3><ul>
+<li>width
+: <a class="el" href="structth__img__plane.html#a58cc297a99cd4594c3d30e56f2ed6b74">th_img_plane</a>
+, <a class="el" href="structtheora__info.html#a17c2fc651bb3329f1ea6b13ff1d3957b">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_y">- y -</a></h3><ul>
+<li>y
+: <a class="el" href="structyuv__buffer.html#a725727c70eeced6b8c90866973399ac1">yuv_buffer</a>
+</li>
+<li>y_height
+: <a class="el" href="structyuv__buffer.html#a5a8b60e012247e2caffcbbaca99414e0">yuv_buffer</a>
+</li>
+<li>y_stride
+: <a class="el" href="structyuv__buffer.html#a9cdf61834c11b2351640a4a243ad0549">yuv_buffer</a>
+</li>
+<li>y_width
+: <a class="el" href="structyuv__buffer.html#aaa6c06c071da933231647238418d5fc0">yuv_buffer</a>
+</li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/functions_vars.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/functions_vars.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/functions_vars.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,353 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Data Fields - Variables</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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 class="tabs">
+    <ul>
+      <li><a href="#index_a"><span>a</span></a></li>
+      <li><a href="#index_b"><span>b</span></a></li>
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_d"><span>d</span></a></li>
+      <li><a href="#index_f"><span>f</span></a></li>
+      <li><a href="#index_g"><span>g</span></a></li>
+      <li><a href="#index_h"><span>h</span></a></li>
+      <li><a href="#index_i"><span>i</span></a></li>
+      <li><a href="#index_k"><span>k</span></a></li>
+      <li><a href="#index_l"><span>l</span></a></li>
+      <li><a href="#index_n"><span>n</span></a></li>
+      <li><a href="#index_o"><span>o</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_q"><span>q</span></a></li>
+      <li><a href="#index_s"><span>s</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+      <li><a href="#index_u"><span>u</span></a></li>
+      <li><a href="#index_v"><span>v</span></a></li>
+      <li><a href="#index_w"><span>w</span></a></li>
+      <li><a href="#index_y"><span>y</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
+<li>ac_scale
+: <a class="el" href="structth__quant__info.html#a102f079c8f4a135dc0895c10768aeb06">th_quant_info</a>
+</li>
+<li>aspect_denominator
+: <a class="el" href="structth__info.html#a04c0bd477222d747a76085d8720322e2">th_info</a>
+, <a class="el" href="structtheora__info.html#afebc4d0cbfb34b68c833a8c79e83ae12">theora_info</a>
+</li>
+<li>aspect_numerator
+: <a class="el" href="structth__info.html#a5be65dac9f75e37864cf73dd543570cd">th_info</a>
+, <a class="el" href="structtheora__info.html#a5a3ed8c79815fba1aa06c3f7d8e48b35">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b">- b -</a></h3><ul>
+<li>base_matrices
+: <a class="el" href="structth__quant__ranges.html#a52cb432f034737087492ea448de20bdb">th_quant_ranges</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
+<li>codec_setup
+: <a class="el" href="structtheora__info.html#a719a1d77a4a3bfeab79aa5747dbbb04c">theora_info</a>
+</li>
+<li>colorspace
+: <a class="el" href="structth__info.html#a8c7828cd0e023e9d21108160d53659a6">th_info</a>
+, <a class="el" href="structtheora__info.html#a5eaba99c96706d47b426ab7b7602dc5d">theora_info</a>
+</li>
+<li>comment_lengths
+: <a class="el" href="structth__comment.html#a723dc6fdf75757e70e28eea864b10898">th_comment</a>
+, <a class="el" href="structtheora__comment.html#a5ab4a376d3c217282a684577c9c9f49a">theora_comment</a>
+</li>
+<li>comments
+: <a class="el" href="structth__comment.html#a5990c34932376f070ad0fc314daaeb78">th_comment</a>
+, <a class="el" href="structtheora__comment.html#a122393035c8352ff9be42d69e73aee00">theora_comment</a>
+</li>
+<li>ctx
+: <a class="el" href="structth__stripe__callback.html#ab895162ce29a411fa98e0ba9661f47d4">th_stripe_callback</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
+<li>data
+: <a class="el" href="structth__img__plane.html#af8133681516ce88b5a201c1b4b7e6ba2">th_img_plane</a>
+</li>
+<li>dc_scale
+: <a class="el" href="structth__quant__info.html#ad5c1c0d1aa4127fcf864ae747d732ed9">th_quant_info</a>
+</li>
+<li>dropframes_p
+: <a class="el" href="structtheora__info.html#af294db65a8363a0bcf43f4727763b291">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
+<li>fps_denominator
+: <a class="el" href="structth__info.html#aa619408f70c03935529f1d3eda7a3ec2">th_info</a>
+, <a class="el" href="structtheora__info.html#a9aa7e826e0323a4ae8cd8646a6cfbfea">theora_info</a>
+</li>
+<li>fps_numerator
+: <a class="el" href="structtheora__info.html#a3478199aa5ab213816c1819f70085ad7">theora_info</a>
+, <a class="el" href="structth__info.html#a20606e61676f585a7e59cfc96de190a5">th_info</a>
+</li>
+<li>frame_height
+: <a class="el" href="structth__info.html#a6b1adc3a16a8336a72692b0a5937214c">th_info</a>
+, <a class="el" href="structtheora__info.html#a287e4c194f1d2e6deb39d59f1748ea48">theora_info</a>
+</li>
+<li>frame_width
+: <a class="el" href="structtheora__info.html#a8f28f4018a25634d40e4ae861fbbccfa">theora_info</a>
+, <a class="el" href="structth__info.html#a6b8087a4d831da53011a43b8d74087a0">th_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
+<li>granulepos
+: <a class="el" href="structtheora__state.html#a5dd344a3f79ea7501b18c756772fab7b">theora_state</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
+<li>height
+: <a class="el" href="structth__img__plane.html#a21aea1367894468de489d529d7eaf44d">th_img_plane</a>
+, <a class="el" href="structtheora__info.html#ae6f0274fc4a7f285c422d91abb35f9c6">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
+<li>i
+: <a class="el" href="structtheora__state.html#a0efc7ac581ef260b0ca17f518ace0731">theora_state</a>
+</li>
+<li>internal_decode
+: <a class="el" href="structtheora__state.html#ad20c4eebbc5ed9764cf03ba8b90e796e">theora_state</a>
+</li>
+<li>internal_encode
+: <a class="el" href="structtheora__state.html#a1fbfd82fb7210cbcc4233cb680ec2af6">theora_state</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_k">- k -</a></h3><ul>
+<li>keyframe_auto_p
+: <a class="el" href="structtheora__info.html#a23648173369174f687085c0ce85ef30e">theora_info</a>
+</li>
+<li>keyframe_auto_threshold
+: <a class="el" href="structtheora__info.html#a95cb8958e29ad3d24047ee8f9e7fd99b">theora_info</a>
+</li>
+<li>keyframe_data_target_bitrate
+: <a class="el" href="structtheora__info.html#a588942d1ee90a26a7effdf6a0e98b9ce">theora_info</a>
+</li>
+<li>keyframe_frequency
+: <a class="el" href="structtheora__info.html#a03e1b3e337af5f9dabaaaeb9050f145a">theora_info</a>
+</li>
+<li>keyframe_frequency_force
+: <a class="el" href="structtheora__info.html#ad9d2e22c44a53473010e6d1042dfe0d8">theora_info</a>
+</li>
+<li>keyframe_granule_shift
+: <a class="el" href="structth__info.html#a693ca4ab11fbc0c3f32594b4bb8766ed">th_info</a>
+</li>
+<li>keyframe_mindistance
+: <a class="el" href="structtheora__info.html#aa79ca8c0e77a884d4487fd627fae32e9">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
+<li>loop_filter_limits
+: <a class="el" href="structth__quant__info.html#a4ac56bf0a45b5743b36daf85d5cd9e33">th_quant_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
+<li>nbits
+: <a class="el" href="structth__huff__code.html#aaf97b8f2f90042f7bc136a7b2bc35e35">th_huff_code</a>
+</li>
+<li>noise_sensitivity
+: <a class="el" href="structtheora__info.html#ac4789034f547b57d1075e035050eeed9">theora_info</a>
+</li>
+<li>nranges
+: <a class="el" href="structth__quant__ranges.html#a53e5a3d7f7a112100b4b670929b3ebab">th_quant_ranges</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>offset_x
+: <a class="el" href="structtheora__info.html#af5949a02bef29512f2705e6f6c944e3b">theora_info</a>
+</li>
+<li>offset_y
+: <a class="el" href="structtheora__info.html#a91c3922097ba32a85acd584a01dc2c93">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
+<li>pattern
+: <a class="el" href="structth__huff__code.html#a6dd29e3aa5a0c5a2dd5ce1f45b1162b4">th_huff_code</a>
+</li>
+<li>pic_height
+: <a class="el" href="structth__info.html#a775178474283c5990ba73f9ba7f6b88b">th_info</a>
+</li>
+<li>pic_width
+: <a class="el" href="structth__info.html#a5048edf77b141dd3e9a92ca85e317345">th_info</a>
+</li>
+<li>pic_x
+: <a class="el" href="structth__info.html#a5b3f834bcf141564e7bb14f49101870f">th_info</a>
+</li>
+<li>pic_y
+: <a class="el" href="structth__info.html#a8aacc575cab2dfe3735001c2ad32aa14">th_info</a>
+</li>
+<li>pixel_fmt
+: <a class="el" href="structth__info.html#a2301388ef3755c41ab12fd144c1fc54e">th_info</a>
+</li>
+<li>pixelformat
+: <a class="el" href="structtheora__info.html#a65ab4376ab5242ee82e06c78fb7008ab">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_q">- q -</a></h3><ul>
+<li>qi_ranges
+: <a class="el" href="structth__quant__info.html#a6feacf4b365e305a7df7b93d87ee7bb8">th_quant_info</a>
+</li>
+<li>quality
+: <a class="el" href="structth__info.html#aa4cdcf96cb46b256821993e9a830ee02">th_info</a>
+, <a class="el" href="structtheora__info.html#a71a4748a5f31bd58d0e403b7806c980d">theora_info</a>
+</li>
+<li>quick_p
+: <a class="el" href="structtheora__info.html#a2dfae4fd175dbd19254eaf0697778ff5">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
+<li>sharpness
+: <a class="el" href="structtheora__info.html#a3fb695de2b2f56dd0203b9e2eb0df1cc">theora_info</a>
+</li>
+<li>sizes
+: <a class="el" href="structth__quant__ranges.html#af3188a373bc0b8ffaa330d0ab4c1a194">th_quant_ranges</a>
+</li>
+<li>stride
+: <a class="el" href="structth__img__plane.html#ab1100f071ffee3b37e07e3222f819bad">th_img_plane</a>
+</li>
+<li>stripe_decoded
+: <a class="el" href="structth__stripe__callback.html#a977c725680a37e3446e459f063b1f4a5">th_stripe_callback</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
+<li>target_bitrate
+: <a class="el" href="structth__info.html#a1d9c8d768a4ae623269f5bd8f6f7a015">th_info</a>
+, <a class="el" href="structtheora__info.html#a0cfba041767ae2416dd190a406afe713">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
+<li>u
+: <a class="el" href="structyuv__buffer.html#a8b1857afe3ffac28f259499a57a559e1">yuv_buffer</a>
+</li>
+<li>user_comments
+: <a class="el" href="structth__comment.html#ad72830e183e707bb0df423eb73b00de4">th_comment</a>
+, <a class="el" href="structtheora__comment.html#a1e236fd180dfce19be89081399444cf5">theora_comment</a>
+</li>
+<li>uv_height
+: <a class="el" href="structyuv__buffer.html#a640f1a0b456d3807f9f0538b22f10097">yuv_buffer</a>
+</li>
+<li>uv_stride
+: <a class="el" href="structyuv__buffer.html#ab265cc24ffb5650bf52daf223b0debb9">yuv_buffer</a>
+</li>
+<li>uv_width
+: <a class="el" href="structyuv__buffer.html#a8c59a57c35af0be519ee47f15e49fe2b">yuv_buffer</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_v">- v -</a></h3><ul>
+<li>v
+: <a class="el" href="structyuv__buffer.html#aa429491dd112adb0254672c59ef55075">yuv_buffer</a>
+</li>
+<li>vendor
+: <a class="el" href="structth__comment.html#a93fbe894d23603f56843be15b0cbdba0">th_comment</a>
+, <a class="el" href="structtheora__comment.html#adb371baf8f0daed42af8b875cf8430ef">theora_comment</a>
+</li>
+<li>version_major
+: <a class="el" href="structth__info.html#a60b3e2cac006fee0e105a918d6a5a9f9">th_info</a>
+, <a class="el" href="structtheora__info.html#a7c5ebb9e6700aaef87f29f7c6074e474">theora_info</a>
+</li>
+<li>version_minor
+: <a class="el" href="structtheora__info.html#a75eda4f30270d833c7b9dba43932a06a">theora_info</a>
+, <a class="el" href="structth__info.html#abb1d4887a8079c6c5aaa6d7229f243d7">th_info</a>
+</li>
+<li>version_subminor
+: <a class="el" href="structtheora__info.html#aa07967ecd6e20bd2928ead42b6397b3d">theora_info</a>
+, <a class="el" href="structth__info.html#abfacc79b7cabae12b6ac2484f76602d3">th_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w">- w -</a></h3><ul>
+<li>width
+: <a class="el" href="structth__img__plane.html#a58cc297a99cd4594c3d30e56f2ed6b74">th_img_plane</a>
+, <a class="el" href="structtheora__info.html#a17c2fc651bb3329f1ea6b13ff1d3957b">theora_info</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_y">- y -</a></h3><ul>
+<li>y
+: <a class="el" href="structyuv__buffer.html#a725727c70eeced6b8c90866973399ac1">yuv_buffer</a>
+</li>
+<li>y_height
+: <a class="el" href="structyuv__buffer.html#a5a8b60e012247e2caffcbbaca99414e0">yuv_buffer</a>
+</li>
+<li>y_stride
+: <a class="el" href="structyuv__buffer.html#a9cdf61834c11b2351640a4a243ad0549">yuv_buffer</a>
+</li>
+<li>y_width
+: <a class="el" href="structyuv__buffer.html#aaa6c06c071da933231647238418d5fc0">yuv_buffer</a>
+</li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/globals.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/globals.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/globals.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,464 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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_vars.html"><span>Variables</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__"><span>_</span></a></li>
+      <li><a href="#index_o"><span>o</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+
+<h3><a class="anchor" id="index__">- _ -</a></h3><ul>
+<li>_O_THEORA_CODEC_H_
+: <a class="el" href="codec_8h.html#a15352a6a862d25ab00a8f06ea65ee75b">codec.h</a>
+</li>
+<li>_O_THEORA_THEORADEC_H_
+: <a class="el" href="theoradec_8h.html#a0d78767a326c34dbf84d5b845cba7b4a">theoradec.h</a>
+</li>
+<li>_O_THEORA_THEORAENC_H_
+: <a class="el" href="theoraenc_8h.html#ab915dd90f069a2431454fd62365e9381">theoraenc.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>OC_BADHEADER
+: <a class="el" href="group__oldfuncs.html#ga809cbad2eb36be17a235a3cadfb737ba">theora.h</a>
+</li>
+<li>OC_BADPACKET
+: <a class="el" href="group__oldfuncs.html#ga117774c062a63dfad2a5b4d092fa2bb1">theora.h</a>
+</li>
+<li>OC_CS_ITU_REC_470BG
+: <a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9a04f8fa2da26f9ec513f514163705666a">theora.h</a>
+</li>
+<li>OC_CS_ITU_REC_470M
+: <a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9ab20c9851a21ab148fef0bf2c00c0a294">theora.h</a>
+</li>
+<li>OC_CS_NSPACES
+: <a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9a640b572f11fa7102d434e1c605aaa186">theora.h</a>
+</li>
+<li>OC_CS_UNSPECIFIED
+: <a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9abf217cf83d7d7cbf73295e6689f5cf5f">theora.h</a>
+</li>
+<li>OC_DISABLED
+: <a class="el" href="group__oldfuncs.html#ga38b9fa0af856d5930c534db26e2ac2d1">theora.h</a>
+</li>
+<li>OC_DUPFRAME
+: <a class="el" href="group__oldfuncs.html#ga84a8d2f5080ad62b415a4e7551941cbb">theora.h</a>
+</li>
+<li>OC_EINVAL
+: <a class="el" href="group__oldfuncs.html#ga43d15091b1a03a734a124e9a04d3be55">theora.h</a>
+</li>
+<li>OC_FAULT
+: <a class="el" href="group__oldfuncs.html#gaa4370e13ed3aea6441ccf69dcab2506e">theora.h</a>
+</li>
+<li>OC_IMPL
+: <a class="el" href="group__oldfuncs.html#ga895dc2597b3bf9c97bf7701c6eff5b0c">theora.h</a>
+</li>
+<li>OC_NEWPACKET
+: <a class="el" href="group__oldfuncs.html#ga60be4dc92c933eac3542bce3ce076496">theora.h</a>
+</li>
+<li>OC_NOTFORMAT
+: <a class="el" href="group__oldfuncs.html#ga9558d6d9eacd2273c8da27f945d725ad">theora.h</a>
+</li>
+<li>OC_PF_420
+: <a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a4e451af01be2645511b0e431f5225d2b">theora.h</a>
+</li>
+<li>OC_PF_422
+: <a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a36a88c55b7ddd5aedeac2d61d57fee5b">theora.h</a>
+</li>
+<li>OC_PF_444
+: <a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a1d5c6d1b0365e06b4a87880b7825f044">theora.h</a>
+</li>
+<li>OC_PF_RSVD
+: <a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a7d21c63341ad299766839c83ed1216eb">theora.h</a>
+</li>
+<li>OC_VERSION
+: <a class="el" href="group__oldfuncs.html#ga4611cfd61160405721d1e2ab0ec2564b">theora.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
+<li>th_colorspace
+: <a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0">codec.h</a>
+</li>
+<li>th_comment_add()
+: <a class="el" href="group__basefuncs.html#ga19a1f7b8032db957df151a34e5ac9272">codec.h</a>
+</li>
+<li>th_comment_add_tag()
+: <a class="el" href="group__basefuncs.html#ga6c5edc201ca220a30787ca6c1ddcaeaf">codec.h</a>
+</li>
+<li>th_comment_clear()
+: <a class="el" href="group__basefuncs.html#gae736c1afa514947a3feb223143af95e3">codec.h</a>
+</li>
+<li>th_comment_init()
+: <a class="el" href="group__basefuncs.html#ga6c8ab25988e7ea9d7b1e31a54cf58f09">codec.h</a>
+</li>
+<li>th_comment_query()
+: <a class="el" href="group__basefuncs.html#ga33c8b4f57a03217636d704c2ebb211fa">codec.h</a>
+</li>
+<li>th_comment_query_count()
+: <a class="el" href="group__basefuncs.html#ga81d518dc4426f63ceaedcbe2668679fc">codec.h</a>
+</li>
+<li>TH_CS_ITU_REC_470BG
+: <a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a009021d50836ddb0ec6004a2803775fe">codec.h</a>
+</li>
+<li>TH_CS_ITU_REC_470M
+: <a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a1a19346bbfb8192baa4c185df73d3397">codec.h</a>
+</li>
+<li>TH_CS_NSPACES
+: <a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a0fa8ea07f583ee57943520ddb2f6e62e">codec.h</a>
+</li>
+<li>TH_CS_UNSPECIFIED
+: <a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0adb9a17a3283c8d490652e507db2427cf">codec.h</a>
+</li>
+<li>th_dec_ctx
+: <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">theoradec.h</a>
+</li>
+<li>TH_DECCTL_GET_PPLEVEL_MAX
+: <a class="el" href="group__oldfuncs.html#gab31f251c9319f2140d247585d30b3d07">theora.h</a>
+, <a class="el" href="theoradec_8h.html#ab31f251c9319f2140d247585d30b3d07">theoradec.h</a>
+</li>
+<li>TH_DECCTL_SET_GRANPOS
+: <a class="el" href="theoradec_8h.html#a1e870c654d35394f0d490045df04e0f5">theoradec.h</a>
+, <a class="el" href="group__oldfuncs.html#ga1e870c654d35394f0d490045df04e0f5">theora.h</a>
+</li>
+<li>TH_DECCTL_SET_PPLEVEL
+: <a class="el" href="group__oldfuncs.html#ga87774c35e1a755a84e2d705b38ebef0d">theora.h</a>
+, <a class="el" href="theoradec_8h.html#a87774c35e1a755a84e2d705b38ebef0d">theoradec.h</a>
+</li>
+<li>TH_DECCTL_SET_STRIPE_CB
+: <a class="el" href="theoradec_8h.html#ac95cc9e109474b0fa4bb920ab2cfdf1e">theoradec.h</a>
+</li>
+<li>TH_DECCTL_SET_TELEMETRY_BITS
+: <a class="el" href="theoradec_8h.html#a7f43fec07486f8a5f00e92aab7d44a25">theoradec.h</a>
+</li>
+<li>TH_DECCTL_SET_TELEMETRY_MBMODE
+: <a class="el" href="theoradec_8h.html#a8d5e0b9b4c8898f93f241acbeb7e7ffb">theoradec.h</a>
+</li>
+<li>TH_DECCTL_SET_TELEMETRY_MV
+: <a class="el" href="theoradec_8h.html#a829285a03d24832c583f33c6357df8aa">theoradec.h</a>
+</li>
+<li>TH_DECCTL_SET_TELEMETRY_QI
+: <a class="el" href="theoradec_8h.html#ae3e2f7674ad92fe67b63915d48c9df5b">theoradec.h</a>
+</li>
+<li>th_decode_alloc()
+: <a class="el" href="group__decfuncs.html#ga0ef07a9a97849054aa606c595a2d807e">theoradec.h</a>
+</li>
+<li>th_decode_ctl()
+: <a class="el" href="group__decfuncs.html#ga1a8051958d75b1012573b6e3c8f670e1">theoradec.h</a>
+</li>
+<li>th_decode_free()
+: <a class="el" href="group__decfuncs.html#gafb6684ad8ba507b71112bc9de148e7d0">theoradec.h</a>
+</li>
+<li>th_decode_headerin()
+: <a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50">theoradec.h</a>
+</li>
+<li>th_decode_packetin()
+: <a class="el" href="group__decfuncs.html#ga31c814bf09b2232aff69c57ae20f04eb">theoradec.h</a>
+</li>
+<li>th_decode_ycbcr_out()
+: <a class="el" href="group__decfuncs.html#gaa9cc8af63fa8540e0fc95572f259cdcb">theoradec.h</a>
+</li>
+<li>TH_DUPFRAME
+: <a class="el" href="codec_8h.html#ab10e7b64f17a02707fc9348ea9832d09">codec.h</a>
+</li>
+<li>TH_EBADHEADER
+: <a class="el" href="codec_8h.html#af00f7ecc5242d12a717202537324a510">codec.h</a>
+</li>
+<li>TH_EBADPACKET
+: <a class="el" href="codec_8h.html#a6efb84e9c2213a8840003eee2847b27f">codec.h</a>
+</li>
+<li>TH_EFAULT
+: <a class="el" href="codec_8h.html#a4d8d8e34fc5ec39ffa05d61a310a0407">codec.h</a>
+</li>
+<li>TH_EIMPL
+: <a class="el" href="codec_8h.html#a921c47accc17841f220af5a6afb79efe">codec.h</a>
+</li>
+<li>TH_EINVAL
+: <a class="el" href="codec_8h.html#afbbd9f19fbf292aeb62a37792cecb870">codec.h</a>
+</li>
+<li>th_enc_ctx
+: <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_2PASS_IN
+: <a class="el" href="theoraenc_8h.html#a4a84f982cdd9a3e3c803a29bbde9df0b">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_2PASS_OUT
+: <a class="el" href="theoraenc_8h.html#ac3751b9c3838888ec2e3f0b0d2823282">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_GET_SPLEVEL
+: <a class="el" href="theoraenc_8h.html#a114b7c552f50b7b8d881a39489af1f61">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_GET_SPLEVEL_MAX
+: <a class="el" href="group__oldfuncs.html#ga9baf5bdd206e80c78a8fd44687e89783">theora.h</a>
+, <a class="el" href="theoraenc_8h.html#a9baf5bdd206e80c78a8fd44687e89783">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_BITRATE
+: <a class="el" href="theoraenc_8h.html#a9b969df55ecad1acd1ae207fad42592e">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_DUP_COUNT
+: <a class="el" href="theoraenc_8h.html#a8bb9b05471c42a09f8684a2583b8a1df">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_HUFFMAN_CODES
+: <a class="el" href="theoraenc_8h.html#a0165348788e560a19b7c61ae8f0c2283">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE
+: <a class="el" href="group__oldfuncs.html#ga27e755e15b4b5604c54974b304037a49">theora.h</a>
+, <a class="el" href="theoraenc_8h.html#a27e755e15b4b5604c54974b304037a49">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_QUALITY
+: <a class="el" href="theoraenc_8h.html#aac087983fa951b9148c9db6bc2e81ef4">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_QUANT_PARAMS
+: <a class="el" href="group__oldfuncs.html#ga3befcdd66678f8d27034f9c4b16d1b9c">theora.h</a>
+, <a class="el" href="theoraenc_8h.html#a3befcdd66678f8d27034f9c4b16d1b9c">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_RATE_BUFFER
+: <a class="el" href="theoraenc_8h.html#aaefb515876b2a180ad5c3120fc584a52">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_RATE_FLAGS
+: <a class="el" href="theoraenc_8h.html#a026502e08fbe1af0a1063f39bd18129c">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_SPLEVEL
+: <a class="el" href="group__oldfuncs.html#gabd9fbcb6a25a77d991d3620164fe59d6">theora.h</a>
+, <a class="el" href="theoraenc_8h.html#abd9fbcb6a25a77d991d3620164fe59d6">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_VP3_COMPATIBLE
+: <a class="el" href="group__oldfuncs.html#ga382d685a39a34d8e6ba76b00d804efd8">theora.h</a>
+, <a class="el" href="theoraenc_8h.html#a382d685a39a34d8e6ba76b00d804efd8">theoraenc.h</a>
+</li>
+<li>th_encode_alloc()
+: <a class="el" href="group__encfuncs.html#gaa91e47bc9dd5f6ee52045bd7b815e5a7">theoraenc.h</a>
+</li>
+<li>th_encode_ctl()
+: <a class="el" href="group__encfuncs.html#ga3a427f6514dfdc01ea72172c469d51d9">theoraenc.h</a>
+</li>
+<li>th_encode_flushheader()
+: <a class="el" href="group__encfuncs.html#ga9439d61b566039d194ff782681fbc408">theoraenc.h</a>
+</li>
+<li>th_encode_free()
+: <a class="el" href="group__encfuncs.html#ga36b23d216532231925c4107894204680">theoraenc.h</a>
+</li>
+<li>th_encode_packetout()
+: <a class="el" href="group__encfuncs.html#ga96d8ac1dda53187455352f99bbb5b04b">theoraenc.h</a>
+</li>
+<li>th_encode_ycbcr_in()
+: <a class="el" href="group__encfuncs.html#gadbe7dd66b411c2d61ab8153c15308750">theoraenc.h</a>
+</li>
+<li>TH_ENOTFORMAT
+: <a class="el" href="codec_8h.html#a3dc08a00a9aba231be398f3e31726d9c">codec.h</a>
+</li>
+<li>TH_EVERSION
+: <a class="el" href="codec_8h.html#ac3a45ef2b24f75259258edc481e3a122">codec.h</a>
+</li>
+<li>th_granule_frame()
+: <a class="el" href="group__basefuncs.html#ga95b10e76fc4c05d0240ea2dfd9fd62bd">codec.h</a>
+</li>
+<li>th_granule_time()
+: <a class="el" href="group__basefuncs.html#ga707e1e281de788af0df39ef00f3fb432">codec.h</a>
+</li>
+<li>th_info_clear()
+: <a class="el" href="group__basefuncs.html#gab3d6441ab4a4969859ef5fd78a9e3c1c">codec.h</a>
+</li>
+<li>th_info_init()
+: <a class="el" href="group__basefuncs.html#ga430d9c605816a6ca0bdce3a0b965b926">codec.h</a>
+</li>
+<li>TH_NDCT_TOKENS
+: <a class="el" href="codec_8h.html#a2a44f48084e76a58cae48fb5d47cd422">codec.h</a>
+</li>
+<li>TH_NHUFFMAN_TABLES
+: <a class="el" href="codec_8h.html#a49bf449eae33c5320f0c308f32c6ae42">codec.h</a>
+</li>
+<li>th_packet_isheader()
+: <a class="el" href="group__basefuncs.html#ga02f3f38261a9b39452d8a5e6f8737cc1">codec.h</a>
+</li>
+<li>th_packet_iskeyframe()
+: <a class="el" href="group__basefuncs.html#gafe95cfd06f0fef413266c9168a66248a">codec.h</a>
+</li>
+<li>TH_PF_420
+: <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bcafed7ad7ee4345930255827bff6055162">codec.h</a>
+</li>
+<li>TH_PF_422
+: <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca0271d01babf2f51512479f4a6245b9fa">codec.h</a>
+</li>
+<li>TH_PF_444
+: <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca2ac50ac048ea75501a5e0f99a63c8c86">codec.h</a>
+</li>
+<li>TH_PF_NFORMATS
+: <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca2d6d78b9df1df086bb60f32f963a31eb">codec.h</a>
+</li>
+<li>TH_PF_RSVD
+: <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca9e60af0159d42b20806d7eb4a8b833e6">codec.h</a>
+</li>
+<li>th_pixel_fmt
+: <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bc">codec.h</a>
+</li>
+<li>th_quant_base
+: <a class="el" href="codec_8h.html#a6a1426d16beef8a311d7f0e9d2e96326">codec.h</a>
+</li>
+<li>TH_RATECTL_CAP_OVERFLOW
+: <a class="el" href="theoraenc_8h.html#a32f9983b344a431334493cefb0b9337c">theoraenc.h</a>
+</li>
+<li>TH_RATECTL_CAP_UNDERFLOW
+: <a class="el" href="theoraenc_8h.html#ad0d62d9dce542caf5296b03b97e020a6">theoraenc.h</a>
+</li>
+<li>TH_RATECTL_DROP_FRAMES
+: <a class="el" href="theoraenc_8h.html#a3e7fab53b902b54135522ba286f45e33">theoraenc.h</a>
+</li>
+<li>th_setup_free()
+: <a class="el" href="group__decfuncs.html#gadef55431b68aaa59d0d7b32b2f118f27">theoradec.h</a>
+</li>
+<li>th_setup_info
+: <a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">theoradec.h</a>
+</li>
+<li>th_stripe_decoded_func
+: <a class="el" href="theoradec_8h.html#a25dfc8713157545abd81eda476ca4b54">theoradec.h</a>
+</li>
+<li>th_version_number()
+: <a class="el" href="group__basefuncs.html#gab723a75c0f95b3eb817f7f769846016b">codec.h</a>
+</li>
+<li>th_version_string()
+: <a class="el" href="group__basefuncs.html#ga04846066738d9f2024fc9961162b2dbc">codec.h</a>
+</li>
+<li>TH_VP31_HUFF_CODES
+: <a class="el" href="theoraenc_8h.html#aee1f7cb1fa0d3b7cc1d4ca0f17e6ae5e">theoraenc.h</a>
+</li>
+<li>TH_VP31_QUANT_INFO
+: <a class="el" href="theoraenc_8h.html#a3b1b462989f4e7a5a98e6e697f1a7f7d">theoraenc.h</a>
+</li>
+<li>th_ycbcr_buffer
+: <a class="el" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">codec.h</a>
+</li>
+<li>theora_clear()
+: <a class="el" href="group__oldfuncs.html#gab252d5d81b925136dda72e8f1c09c5eb">theora.h</a>
+</li>
+<li>theora_colorspace
+: <a class="el" href="group__oldfuncs.html#gaa567da4ce591f7373149ce3ef3acdac9">theora.h</a>
+</li>
+<li>theora_comment_add()
+: <a class="el" href="group__oldfuncs.html#ga650642ed23894e41109bbc42ec393ed4">theora.h</a>
+</li>
+<li>theora_comment_add_tag()
+: <a class="el" href="group__oldfuncs.html#ga339bd80b5bf4bb168b7052d8ec0b5a92">theora.h</a>
+</li>
+<li>theora_comment_clear()
+: <a class="el" href="group__oldfuncs.html#ga04c07c2eefba3a433e43f9fbde14719f">theora.h</a>
+</li>
+<li>theora_comment_init()
+: <a class="el" href="group__oldfuncs.html#ga811b92785df3bdbbebb3de612d9d6ce0">theora.h</a>
+</li>
+<li>theora_comment_query()
+: <a class="el" href="group__oldfuncs.html#ga4361f6001abb5c83c36a2ddfb648a8dc">theora.h</a>
+</li>
+<li>theora_comment_query_count()
+: <a class="el" href="group__oldfuncs.html#ga10f66a3c752442a3e0c0098e0f88df8b">theora.h</a>
+</li>
+<li>theora_control()
+: <a class="el" href="group__oldfuncs.html#ga186773db3bc8cd550047e7df1b2ba2c9">theora.h</a>
+</li>
+<li>theora_decode_header()
+: <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82">theora.h</a>
+</li>
+<li>theora_decode_init()
+: <a class="el" href="group__oldfuncs.html#ga264907c66003799ff77ecbd09eb33d2c">theora.h</a>
+</li>
+<li>theora_decode_packetin()
+: <a class="el" href="group__oldfuncs.html#gaa65a9e53b46fd54ab344bd599fa96975">theora.h</a>
+</li>
+<li>theora_decode_YUVout()
+: <a class="el" href="group__oldfuncs.html#ga09d47c80e1e94bff0a46a496816b8daa">theora.h</a>
+</li>
+<li>theora_encode_comment()
+: <a class="el" href="group__oldfuncs.html#ga45e8db0713eaaca0f1144f3724cb834a">theora.h</a>
+</li>
+<li>theora_encode_header()
+: <a class="el" href="group__oldfuncs.html#ga451feb58d6bde726edbae193689887be">theora.h</a>
+</li>
+<li>theora_encode_init()
+: <a class="el" href="group__oldfuncs.html#ga0f7ad4d4b2343278cb4ba8fb2bd5109a">theora.h</a>
+</li>
+<li>theora_encode_packetout()
+: <a class="el" href="group__oldfuncs.html#ga5f4929677a735bc2198c2309d235f1b3">theora.h</a>
+</li>
+<li>theora_encode_tables()
+: <a class="el" href="group__oldfuncs.html#ga5085baf20855b283fa01fc948505d9d2">theora.h</a>
+</li>
+<li>theora_encode_YUVin()
+: <a class="el" href="group__oldfuncs.html#gac0d33d896ca70cedfc94c5986d947078">theora.h</a>
+</li>
+<li>theora_granule_frame()
+: <a class="el" href="group__oldfuncs.html#ga7bfa3ceb2fb4b41a282456c56e1dd269">theora.h</a>
+</li>
+<li>theora_granule_shift()
+: <a class="el" href="group__oldfuncs.html#gacd9360e6a47139c761002410af457a02">theora.h</a>
+</li>
+<li>theora_granule_time()
+: <a class="el" href="group__oldfuncs.html#ga4376358b12b9fa23ce6fe21cb5c65ac6">theora.h</a>
+</li>
+<li>theora_info_clear()
+: <a class="el" href="group__oldfuncs.html#gaba7022d58edbc4825cacad03f68b3e0d">theora.h</a>
+</li>
+<li>theora_info_init()
+: <a class="el" href="group__oldfuncs.html#ga3091c87d48f1faba018c5956379a6d90">theora.h</a>
+</li>
+<li>theora_packet_isheader()
+: <a class="el" href="group__oldfuncs.html#gab969f9d0407683f0e5abe73d0839a25b">theora.h</a>
+</li>
+<li>theora_packet_iskeyframe()
+: <a class="el" href="group__oldfuncs.html#ga39ccc8f847a748d7074c926b4fdd12b2">theora.h</a>
+</li>
+<li>theora_pixelformat
+: <a class="el" href="group__oldfuncs.html#gae169da05bfaaf4e964a6866552d45079">theora.h</a>
+</li>
+<li>theora_version_number()
+: <a class="el" href="group__oldfuncs.html#gad181f4b19d455dcc2bef2533530b84c8">theora.h</a>
+</li>
+<li>theora_version_string()
+: <a class="el" href="group__oldfuncs.html#ga5a3da8fd262a60f055f96536eec06df2">theora.h</a>
+</li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/globals_defs.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/globals_defs.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/globals_defs.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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_vars.html"><span>Variables</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 class="tabs">
+    <ul>
+      <li><a href="#index__"><span>_</span></a></li>
+      <li><a href="#index_o"><span>o</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index__">- _ -</a></h3><ul>
+<li>_O_THEORA_CODEC_H_
+: <a class="el" href="codec_8h.html#a15352a6a862d25ab00a8f06ea65ee75b">codec.h</a>
+</li>
+<li>_O_THEORA_THEORADEC_H_
+: <a class="el" href="theoradec_8h.html#a0d78767a326c34dbf84d5b845cba7b4a">theoradec.h</a>
+</li>
+<li>_O_THEORA_THEORAENC_H_
+: <a class="el" href="theoraenc_8h.html#ab915dd90f069a2431454fd62365e9381">theoraenc.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>OC_BADHEADER
+: <a class="el" href="group__oldfuncs.html#ga809cbad2eb36be17a235a3cadfb737ba">theora.h</a>
+</li>
+<li>OC_BADPACKET
+: <a class="el" href="group__oldfuncs.html#ga117774c062a63dfad2a5b4d092fa2bb1">theora.h</a>
+</li>
+<li>OC_DISABLED
+: <a class="el" href="group__oldfuncs.html#ga38b9fa0af856d5930c534db26e2ac2d1">theora.h</a>
+</li>
+<li>OC_DUPFRAME
+: <a class="el" href="group__oldfuncs.html#ga84a8d2f5080ad62b415a4e7551941cbb">theora.h</a>
+</li>
+<li>OC_EINVAL
+: <a class="el" href="group__oldfuncs.html#ga43d15091b1a03a734a124e9a04d3be55">theora.h</a>
+</li>
+<li>OC_FAULT
+: <a class="el" href="group__oldfuncs.html#gaa4370e13ed3aea6441ccf69dcab2506e">theora.h</a>
+</li>
+<li>OC_IMPL
+: <a class="el" href="group__oldfuncs.html#ga895dc2597b3bf9c97bf7701c6eff5b0c">theora.h</a>
+</li>
+<li>OC_NEWPACKET
+: <a class="el" href="group__oldfuncs.html#ga60be4dc92c933eac3542bce3ce076496">theora.h</a>
+</li>
+<li>OC_NOTFORMAT
+: <a class="el" href="group__oldfuncs.html#ga9558d6d9eacd2273c8da27f945d725ad">theora.h</a>
+</li>
+<li>OC_VERSION
+: <a class="el" href="group__oldfuncs.html#ga4611cfd61160405721d1e2ab0ec2564b">theora.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
+<li>TH_DECCTL_GET_PPLEVEL_MAX
+: <a class="el" href="group__oldfuncs.html#gab31f251c9319f2140d247585d30b3d07">theora.h</a>
+, <a class="el" href="theoradec_8h.html#ab31f251c9319f2140d247585d30b3d07">theoradec.h</a>
+</li>
+<li>TH_DECCTL_SET_GRANPOS
+: <a class="el" href="theoradec_8h.html#a1e870c654d35394f0d490045df04e0f5">theoradec.h</a>
+, <a class="el" href="group__oldfuncs.html#ga1e870c654d35394f0d490045df04e0f5">theora.h</a>
+</li>
+<li>TH_DECCTL_SET_PPLEVEL
+: <a class="el" href="group__oldfuncs.html#ga87774c35e1a755a84e2d705b38ebef0d">theora.h</a>
+, <a class="el" href="theoradec_8h.html#a87774c35e1a755a84e2d705b38ebef0d">theoradec.h</a>
+</li>
+<li>TH_DECCTL_SET_STRIPE_CB
+: <a class="el" href="theoradec_8h.html#ac95cc9e109474b0fa4bb920ab2cfdf1e">theoradec.h</a>
+</li>
+<li>TH_DECCTL_SET_TELEMETRY_BITS
+: <a class="el" href="theoradec_8h.html#a7f43fec07486f8a5f00e92aab7d44a25">theoradec.h</a>
+</li>
+<li>TH_DECCTL_SET_TELEMETRY_MBMODE
+: <a class="el" href="theoradec_8h.html#a8d5e0b9b4c8898f93f241acbeb7e7ffb">theoradec.h</a>
+</li>
+<li>TH_DECCTL_SET_TELEMETRY_MV
+: <a class="el" href="theoradec_8h.html#a829285a03d24832c583f33c6357df8aa">theoradec.h</a>
+</li>
+<li>TH_DECCTL_SET_TELEMETRY_QI
+: <a class="el" href="theoradec_8h.html#ae3e2f7674ad92fe67b63915d48c9df5b">theoradec.h</a>
+</li>
+<li>TH_DUPFRAME
+: <a class="el" href="codec_8h.html#ab10e7b64f17a02707fc9348ea9832d09">codec.h</a>
+</li>
+<li>TH_EBADHEADER
+: <a class="el" href="codec_8h.html#af00f7ecc5242d12a717202537324a510">codec.h</a>
+</li>
+<li>TH_EBADPACKET
+: <a class="el" href="codec_8h.html#a6efb84e9c2213a8840003eee2847b27f">codec.h</a>
+</li>
+<li>TH_EFAULT
+: <a class="el" href="codec_8h.html#a4d8d8e34fc5ec39ffa05d61a310a0407">codec.h</a>
+</li>
+<li>TH_EIMPL
+: <a class="el" href="codec_8h.html#a921c47accc17841f220af5a6afb79efe">codec.h</a>
+</li>
+<li>TH_EINVAL
+: <a class="el" href="codec_8h.html#afbbd9f19fbf292aeb62a37792cecb870">codec.h</a>
+</li>
+<li>TH_ENCCTL_2PASS_IN
+: <a class="el" href="theoraenc_8h.html#a4a84f982cdd9a3e3c803a29bbde9df0b">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_2PASS_OUT
+: <a class="el" href="theoraenc_8h.html#ac3751b9c3838888ec2e3f0b0d2823282">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_GET_SPLEVEL
+: <a class="el" href="theoraenc_8h.html#a114b7c552f50b7b8d881a39489af1f61">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_GET_SPLEVEL_MAX
+: <a class="el" href="group__oldfuncs.html#ga9baf5bdd206e80c78a8fd44687e89783">theora.h</a>
+, <a class="el" href="theoraenc_8h.html#a9baf5bdd206e80c78a8fd44687e89783">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_BITRATE
+: <a class="el" href="theoraenc_8h.html#a9b969df55ecad1acd1ae207fad42592e">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_DUP_COUNT
+: <a class="el" href="theoraenc_8h.html#a8bb9b05471c42a09f8684a2583b8a1df">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_HUFFMAN_CODES
+: <a class="el" href="theoraenc_8h.html#a0165348788e560a19b7c61ae8f0c2283">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE
+: <a class="el" href="theoraenc_8h.html#a27e755e15b4b5604c54974b304037a49">theoraenc.h</a>
+, <a class="el" href="group__oldfuncs.html#ga27e755e15b4b5604c54974b304037a49">theora.h</a>
+</li>
+<li>TH_ENCCTL_SET_QUALITY
+: <a class="el" href="theoraenc_8h.html#aac087983fa951b9148c9db6bc2e81ef4">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_QUANT_PARAMS
+: <a class="el" href="group__oldfuncs.html#ga3befcdd66678f8d27034f9c4b16d1b9c">theora.h</a>
+, <a class="el" href="theoraenc_8h.html#a3befcdd66678f8d27034f9c4b16d1b9c">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_RATE_BUFFER
+: <a class="el" href="theoraenc_8h.html#aaefb515876b2a180ad5c3120fc584a52">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_RATE_FLAGS
+: <a class="el" href="theoraenc_8h.html#a026502e08fbe1af0a1063f39bd18129c">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_SPLEVEL
+: <a class="el" href="group__oldfuncs.html#gabd9fbcb6a25a77d991d3620164fe59d6">theora.h</a>
+, <a class="el" href="theoraenc_8h.html#abd9fbcb6a25a77d991d3620164fe59d6">theoraenc.h</a>
+</li>
+<li>TH_ENCCTL_SET_VP3_COMPATIBLE
+: <a class="el" href="theoraenc_8h.html#a382d685a39a34d8e6ba76b00d804efd8">theoraenc.h</a>
+, <a class="el" href="group__oldfuncs.html#ga382d685a39a34d8e6ba76b00d804efd8">theora.h</a>
+</li>
+<li>TH_ENOTFORMAT
+: <a class="el" href="codec_8h.html#a3dc08a00a9aba231be398f3e31726d9c">codec.h</a>
+</li>
+<li>TH_EVERSION
+: <a class="el" href="codec_8h.html#ac3a45ef2b24f75259258edc481e3a122">codec.h</a>
+</li>
+<li>TH_NDCT_TOKENS
+: <a class="el" href="codec_8h.html#a2a44f48084e76a58cae48fb5d47cd422">codec.h</a>
+</li>
+<li>TH_NHUFFMAN_TABLES
+: <a class="el" href="codec_8h.html#a49bf449eae33c5320f0c308f32c6ae42">codec.h</a>
+</li>
+<li>TH_RATECTL_CAP_OVERFLOW
+: <a class="el" href="theoraenc_8h.html#a32f9983b344a431334493cefb0b9337c">theoraenc.h</a>
+</li>
+<li>TH_RATECTL_CAP_UNDERFLOW
+: <a class="el" href="theoraenc_8h.html#ad0d62d9dce542caf5296b03b97e020a6">theoraenc.h</a>
+</li>
+<li>TH_RATECTL_DROP_FRAMES
+: <a class="el" href="theoraenc_8h.html#a3e7fab53b902b54135522ba286f45e33">theoraenc.h</a>
+</li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/globals_enum.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/globals_enum.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/globals_enum.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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_vars.html"><span>Variables</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;<ul>
+<li>th_colorspace
+: <a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0">codec.h</a>
+</li>
+<li>th_pixel_fmt
+: <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bc">codec.h</a>
+</li>
+<li>theora_colorspace
+: <a class="el" href="group__oldfuncs.html#gaa567da4ce591f7373149ce3ef3acdac9">theora.h</a>
+</li>
+<li>theora_pixelformat
+: <a class="el" href="group__oldfuncs.html#gae169da05bfaaf4e964a6866552d45079">theora.h</a>
+</li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/globals_eval.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/globals_eval.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/globals_eval.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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_vars.html"><span>Variables</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>
+<div class="contents">
+&nbsp;<ul>
+<li>OC_CS_ITU_REC_470BG
+: <a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9a04f8fa2da26f9ec513f514163705666a">theora.h</a>
+</li>
+<li>OC_CS_ITU_REC_470M
+: <a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9ab20c9851a21ab148fef0bf2c00c0a294">theora.h</a>
+</li>
+<li>OC_CS_NSPACES
+: <a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9a640b572f11fa7102d434e1c605aaa186">theora.h</a>
+</li>
+<li>OC_CS_UNSPECIFIED
+: <a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9abf217cf83d7d7cbf73295e6689f5cf5f">theora.h</a>
+</li>
+<li>OC_PF_420
+: <a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a4e451af01be2645511b0e431f5225d2b">theora.h</a>
+</li>
+<li>OC_PF_422
+: <a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a36a88c55b7ddd5aedeac2d61d57fee5b">theora.h</a>
+</li>
+<li>OC_PF_444
+: <a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a1d5c6d1b0365e06b4a87880b7825f044">theora.h</a>
+</li>
+<li>OC_PF_RSVD
+: <a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a7d21c63341ad299766839c83ed1216eb">theora.h</a>
+</li>
+<li>TH_CS_ITU_REC_470BG
+: <a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a009021d50836ddb0ec6004a2803775fe">codec.h</a>
+</li>
+<li>TH_CS_ITU_REC_470M
+: <a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a1a19346bbfb8192baa4c185df73d3397">codec.h</a>
+</li>
+<li>TH_CS_NSPACES
+: <a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0a0fa8ea07f583ee57943520ddb2f6e62e">codec.h</a>
+</li>
+<li>TH_CS_UNSPECIFIED
+: <a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0adb9a17a3283c8d490652e507db2427cf">codec.h</a>
+</li>
+<li>TH_PF_420
+: <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bcafed7ad7ee4345930255827bff6055162">codec.h</a>
+</li>
+<li>TH_PF_422
+: <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca0271d01babf2f51512479f4a6245b9fa">codec.h</a>
+</li>
+<li>TH_PF_444
+: <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca2ac50ac048ea75501a5e0f99a63c8c86">codec.h</a>
+</li>
+<li>TH_PF_NFORMATS
+: <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca2d6d78b9df1df086bb60f32f963a31eb">codec.h</a>
+</li>
+<li>TH_PF_RSVD
+: <a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bca9e60af0159d42b20806d7eb4a8b833e6">codec.h</a>
+</li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/globals_func.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/globals_func.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/globals_func.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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_vars.html"><span>Variables</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_t"><span>t</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
+<li>th_comment_add()
+: <a class="el" href="group__basefuncs.html#ga19a1f7b8032db957df151a34e5ac9272">codec.h</a>
+</li>
+<li>th_comment_add_tag()
+: <a class="el" href="group__basefuncs.html#ga6c5edc201ca220a30787ca6c1ddcaeaf">codec.h</a>
+</li>
+<li>th_comment_clear()
+: <a class="el" href="group__basefuncs.html#gae736c1afa514947a3feb223143af95e3">codec.h</a>
+</li>
+<li>th_comment_init()
+: <a class="el" href="group__basefuncs.html#ga6c8ab25988e7ea9d7b1e31a54cf58f09">codec.h</a>
+</li>
+<li>th_comment_query()
+: <a class="el" href="group__basefuncs.html#ga33c8b4f57a03217636d704c2ebb211fa">codec.h</a>
+</li>
+<li>th_comment_query_count()
+: <a class="el" href="group__basefuncs.html#ga81d518dc4426f63ceaedcbe2668679fc">codec.h</a>
+</li>
+<li>th_decode_alloc()
+: <a class="el" href="group__decfuncs.html#ga0ef07a9a97849054aa606c595a2d807e">theoradec.h</a>
+</li>
+<li>th_decode_ctl()
+: <a class="el" href="group__decfuncs.html#ga1a8051958d75b1012573b6e3c8f670e1">theoradec.h</a>
+</li>
+<li>th_decode_free()
+: <a class="el" href="group__decfuncs.html#gafb6684ad8ba507b71112bc9de148e7d0">theoradec.h</a>
+</li>
+<li>th_decode_headerin()
+: <a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50">theoradec.h</a>
+</li>
+<li>th_decode_packetin()
+: <a class="el" href="group__decfuncs.html#ga31c814bf09b2232aff69c57ae20f04eb">theoradec.h</a>
+</li>
+<li>th_decode_ycbcr_out()
+: <a class="el" href="group__decfuncs.html#gaa9cc8af63fa8540e0fc95572f259cdcb">theoradec.h</a>
+</li>
+<li>th_encode_alloc()
+: <a class="el" href="group__encfuncs.html#gaa91e47bc9dd5f6ee52045bd7b815e5a7">theoraenc.h</a>
+</li>
+<li>th_encode_ctl()
+: <a class="el" href="group__encfuncs.html#ga3a427f6514dfdc01ea72172c469d51d9">theoraenc.h</a>
+</li>
+<li>th_encode_flushheader()
+: <a class="el" href="group__encfuncs.html#ga9439d61b566039d194ff782681fbc408">theoraenc.h</a>
+</li>
+<li>th_encode_free()
+: <a class="el" href="group__encfuncs.html#ga36b23d216532231925c4107894204680">theoraenc.h</a>
+</li>
+<li>th_encode_packetout()
+: <a class="el" href="group__encfuncs.html#ga96d8ac1dda53187455352f99bbb5b04b">theoraenc.h</a>
+</li>
+<li>th_encode_ycbcr_in()
+: <a class="el" href="group__encfuncs.html#gadbe7dd66b411c2d61ab8153c15308750">theoraenc.h</a>
+</li>
+<li>th_granule_frame()
+: <a class="el" href="group__basefuncs.html#ga95b10e76fc4c05d0240ea2dfd9fd62bd">codec.h</a>
+</li>
+<li>th_granule_time()
+: <a class="el" href="group__basefuncs.html#ga707e1e281de788af0df39ef00f3fb432">codec.h</a>
+</li>
+<li>th_info_clear()
+: <a class="el" href="group__basefuncs.html#gab3d6441ab4a4969859ef5fd78a9e3c1c">codec.h</a>
+</li>
+<li>th_info_init()
+: <a class="el" href="group__basefuncs.html#ga430d9c605816a6ca0bdce3a0b965b926">codec.h</a>
+</li>
+<li>th_packet_isheader()
+: <a class="el" href="group__basefuncs.html#ga02f3f38261a9b39452d8a5e6f8737cc1">codec.h</a>
+</li>
+<li>th_packet_iskeyframe()
+: <a class="el" href="group__basefuncs.html#gafe95cfd06f0fef413266c9168a66248a">codec.h</a>
+</li>
+<li>th_setup_free()
+: <a class="el" href="group__decfuncs.html#gadef55431b68aaa59d0d7b32b2f118f27">theoradec.h</a>
+</li>
+<li>th_version_number()
+: <a class="el" href="group__basefuncs.html#gab723a75c0f95b3eb817f7f769846016b">codec.h</a>
+</li>
+<li>th_version_string()
+: <a class="el" href="group__basefuncs.html#ga04846066738d9f2024fc9961162b2dbc">codec.h</a>
+</li>
+<li>theora_clear()
+: <a class="el" href="group__oldfuncs.html#gab252d5d81b925136dda72e8f1c09c5eb">theora.h</a>
+</li>
+<li>theora_comment_add()
+: <a class="el" href="group__oldfuncs.html#ga650642ed23894e41109bbc42ec393ed4">theora.h</a>
+</li>
+<li>theora_comment_add_tag()
+: <a class="el" href="group__oldfuncs.html#ga339bd80b5bf4bb168b7052d8ec0b5a92">theora.h</a>
+</li>
+<li>theora_comment_clear()
+: <a class="el" href="group__oldfuncs.html#ga04c07c2eefba3a433e43f9fbde14719f">theora.h</a>
+</li>
+<li>theora_comment_init()
+: <a class="el" href="group__oldfuncs.html#ga811b92785df3bdbbebb3de612d9d6ce0">theora.h</a>
+</li>
+<li>theora_comment_query()
+: <a class="el" href="group__oldfuncs.html#ga4361f6001abb5c83c36a2ddfb648a8dc">theora.h</a>
+</li>
+<li>theora_comment_query_count()
+: <a class="el" href="group__oldfuncs.html#ga10f66a3c752442a3e0c0098e0f88df8b">theora.h</a>
+</li>
+<li>theora_control()
+: <a class="el" href="group__oldfuncs.html#ga186773db3bc8cd550047e7df1b2ba2c9">theora.h</a>
+</li>
+<li>theora_decode_header()
+: <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82">theora.h</a>
+</li>
+<li>theora_decode_init()
+: <a class="el" href="group__oldfuncs.html#ga264907c66003799ff77ecbd09eb33d2c">theora.h</a>
+</li>
+<li>theora_decode_packetin()
+: <a class="el" href="group__oldfuncs.html#gaa65a9e53b46fd54ab344bd599fa96975">theora.h</a>
+</li>
+<li>theora_decode_YUVout()
+: <a class="el" href="group__oldfuncs.html#ga09d47c80e1e94bff0a46a496816b8daa">theora.h</a>
+</li>
+<li>theora_encode_comment()
+: <a class="el" href="group__oldfuncs.html#ga45e8db0713eaaca0f1144f3724cb834a">theora.h</a>
+</li>
+<li>theora_encode_header()
+: <a class="el" href="group__oldfuncs.html#ga451feb58d6bde726edbae193689887be">theora.h</a>
+</li>
+<li>theora_encode_init()
+: <a class="el" href="group__oldfuncs.html#ga0f7ad4d4b2343278cb4ba8fb2bd5109a">theora.h</a>
+</li>
+<li>theora_encode_packetout()
+: <a class="el" href="group__oldfuncs.html#ga5f4929677a735bc2198c2309d235f1b3">theora.h</a>
+</li>
+<li>theora_encode_tables()
+: <a class="el" href="group__oldfuncs.html#ga5085baf20855b283fa01fc948505d9d2">theora.h</a>
+</li>
+<li>theora_encode_YUVin()
+: <a class="el" href="group__oldfuncs.html#gac0d33d896ca70cedfc94c5986d947078">theora.h</a>
+</li>
+<li>theora_granule_frame()
+: <a class="el" href="group__oldfuncs.html#ga7bfa3ceb2fb4b41a282456c56e1dd269">theora.h</a>
+</li>
+<li>theora_granule_shift()
+: <a class="el" href="group__oldfuncs.html#gacd9360e6a47139c761002410af457a02">theora.h</a>
+</li>
+<li>theora_granule_time()
+: <a class="el" href="group__oldfuncs.html#ga4376358b12b9fa23ce6fe21cb5c65ac6">theora.h</a>
+</li>
+<li>theora_info_clear()
+: <a class="el" href="group__oldfuncs.html#gaba7022d58edbc4825cacad03f68b3e0d">theora.h</a>
+</li>
+<li>theora_info_init()
+: <a class="el" href="group__oldfuncs.html#ga3091c87d48f1faba018c5956379a6d90">theora.h</a>
+</li>
+<li>theora_packet_isheader()
+: <a class="el" href="group__oldfuncs.html#gab969f9d0407683f0e5abe73d0839a25b">theora.h</a>
+</li>
+<li>theora_packet_iskeyframe()
+: <a class="el" href="group__oldfuncs.html#ga39ccc8f847a748d7074c926b4fdd12b2">theora.h</a>
+</li>
+<li>theora_version_number()
+: <a class="el" href="group__oldfuncs.html#gad181f4b19d455dcc2bef2533530b84c8">theora.h</a>
+</li>
+<li>theora_version_string()
+: <a class="el" href="group__oldfuncs.html#ga5a3da8fd262a60f055f96536eec06df2">theora.h</a>
+</li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/globals_type.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/globals_type.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/globals_type.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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_vars.html"><span>Variables</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;<ul>
+<li>th_dec_ctx
+: <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">theoradec.h</a>
+</li>
+<li>th_enc_ctx
+: <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">theoraenc.h</a>
+</li>
+<li>th_quant_base
+: <a class="el" href="codec_8h.html#a6a1426d16beef8a311d7f0e9d2e96326">codec.h</a>
+</li>
+<li>th_setup_info
+: <a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">theoradec.h</a>
+</li>
+<li>th_stripe_decoded_func
+: <a class="el" href="theoradec_8h.html#a25dfc8713157545abd81eda476ca4b54">theoradec.h</a>
+</li>
+<li>th_ycbcr_buffer
+: <a class="el" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">codec.h</a>
+</li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/globals_vars.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/globals_vars.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/globals_vars.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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_vars.html"><span>Variables</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>
+<div class="contents">
+&nbsp;<ul>
+<li>TH_VP31_HUFF_CODES
+: <a class="el" href="theoraenc_8h.html#aee1f7cb1fa0d3b7cc1d4ca0f17e6ae5e">theoraenc.h</a>
+</li>
+<li>TH_VP31_QUANT_INFO
+: <a class="el" href="theoraenc_8h.html#a3b1b462989f4e7a5a98e6e697f1a7f7d">theoraenc.h</a>
+</li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/group__basefuncs.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/group__basefuncs.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/group__basefuncs.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,542 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Functions Shared by Encode and Decode</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>Functions Shared by Encode and Decode</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Basic shared functions</h2></td></tr>
+<tr><td colspan="2"><p><a class="anchor" id="amgrpb625c22fa07613c734f71c378fe32d7a"></a> </p>
+<br/><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga04846066738d9f2024fc9961162b2dbc">th_version_string</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves a human-readable string to identify the library vendor and version.  <a href="#ga04846066738d9f2024fc9961162b2dbc"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#gab723a75c0f95b3eb817f7f769846016b">th_version_number</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves the library version number.  <a href="#gab723a75c0f95b3eb817f7f769846016b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga95b10e76fc4c05d0240ea2dfd9fd62bd">th_granule_frame</a> (void *_encdec, ogg_int64_t _granpos)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts a granule position to an absolute frame index, starting at <code>0</code>.  <a href="#ga95b10e76fc4c05d0240ea2dfd9fd62bd"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga707e1e281de788af0df39ef00f3fb432">th_granule_time</a> (void *_encdec, ogg_int64_t _granpos)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts a granule position to an absolute time in seconds.  <a href="#ga707e1e281de788af0df39ef00f3fb432"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga02f3f38261a9b39452d8a5e6f8737cc1">th_packet_isheader</a> (ogg_packet *_op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determines whether a Theora packet is a header or not.  <a href="#ga02f3f38261a9b39452d8a5e6f8737cc1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#gafe95cfd06f0fef413266c9168a66248a">th_packet_iskeyframe</a> (ogg_packet *_op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determines whether a theora packet is a key frame or not.  <a href="#gafe95cfd06f0fef413266c9168a66248a"></a><br/></td></tr>
+<tr><td colspan="2"><h2>Functions for manipulating header data</h2></td></tr>
+<tr><td colspan="2"><p><a class="anchor" id="amgrp14ef5f819e97c870c128539ed1f334e3"></a> </p>
+<br/><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga430d9c605816a6ca0bdce3a0b965b926">th_info_init</a> (<a class="el" href="structth__info.html">th_info</a> *_info)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes a <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> structure.  <a href="#ga430d9c605816a6ca0bdce3a0b965b926"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#gab3d6441ab4a4969859ef5fd78a9e3c1c">th_info_clear</a> (<a class="el" href="structth__info.html">th_info</a> *_info)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears a <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> structure.  <a href="#gab3d6441ab4a4969859ef5fd78a9e3c1c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga6c8ab25988e7ea9d7b1e31a54cf58f09">th_comment_init</a> (<a class="el" href="structth__comment.html">th_comment</a> *_tc)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure.  <a href="#ga6c8ab25988e7ea9d7b1e31a54cf58f09"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga19a1f7b8032db957df151a34e5ac9272">th_comment_add</a> (<a class="el" href="structth__comment.html">th_comment</a> *_tc, char *_comment)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a comment to an initialized <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure.  <a href="#ga19a1f7b8032db957df151a34e5ac9272"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga6c5edc201ca220a30787ca6c1ddcaeaf">th_comment_add_tag</a> (<a class="el" href="structth__comment.html">th_comment</a> *_tc, char *_tag, char *_val)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a comment to an initialized <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure.  <a href="#ga6c5edc201ca220a30787ca6c1ddcaeaf"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga33c8b4f57a03217636d704c2ebb211fa">th_comment_query</a> (<a class="el" href="structth__comment.html">th_comment</a> *_tc, char *_tag, int _count)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Look up a comment value by its tag.  <a href="#ga33c8b4f57a03217636d704c2ebb211fa"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#ga81d518dc4426f63ceaedcbe2668679fc">th_comment_query_count</a> (<a class="el" href="structth__comment.html">th_comment</a> *_tc, char *_tag)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Look up the number of instances of a tag.  <a href="#ga81d518dc4426f63ceaedcbe2668679fc"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__basefuncs.html#gae736c1afa514947a3feb223143af95e3">th_comment_clear</a> (<a class="el" href="structth__comment.html">th_comment</a> *_tc)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears a <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure.  <a href="#gae736c1afa514947a3feb223143af95e3"></a><br/></td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ga19a1f7b8032db957df151a34e5ac9272"></a><!-- doxytag: member="codec.h::th_comment_add" ref="ga19a1f7b8032db957df151a34e5ac9272" args="(th_comment *_tc, char *_comment)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void th_comment_add </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structth__comment.html">th_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>_tc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&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 to an initialized <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure. </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>Neither <a class="el" href="group__basefuncs.html#ga19a1f7b8032db957df151a34e5ac9272" title="Add a comment to an initialized th_comment structure.">th_comment_add()</a> nor <a class="el" href="group__basefuncs.html#ga6c5edc201ca220a30787ca6c1ddcaeaf" title="Add a comment to an initialized th_comment structure.">th_comment_add_tag()</a> support comments containing null values, although the bitstream format does support them. To add such comments you will need to manipulate the <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure directly. </dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_tc</em>&nbsp;</td><td>The <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> struct to add the comment to. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_comment</em>&nbsp;</td><td>Must be a null-terminated UTF-8 string containing the comment in "TAG=the value" form. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6c5edc201ca220a30787ca6c1ddcaeaf"></a><!-- doxytag: member="codec.h::th_comment_add_tag" ref="ga6c5edc201ca220a30787ca6c1ddcaeaf" args="(th_comment *_tc, char *_tag, char *_val)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void th_comment_add_tag </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structth__comment.html">th_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>_tc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>_tag</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>_val</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 to an initialized <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure. </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>Neither <a class="el" href="group__basefuncs.html#ga19a1f7b8032db957df151a34e5ac9272" title="Add a comment to an initialized th_comment structure.">th_comment_add()</a> nor <a class="el" href="group__basefuncs.html#ga6c5edc201ca220a30787ca6c1ddcaeaf" title="Add a comment to an initialized th_comment structure.">th_comment_add_tag()</a> support comments containing null values, although the bitstream format does support them. To add such comments you will need to manipulate the <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure directly. </dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_tc</em>&nbsp;</td><td>The <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> struct to add the comment to. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_tag</em>&nbsp;</td><td>A null-terminated string containing the tag associated with the comment. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_val</em>&nbsp;</td><td>The corresponding value as a null-terminated string. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gae736c1afa514947a3feb223143af95e3"></a><!-- doxytag: member="codec.h::th_comment_clear" ref="gae736c1afa514947a3feb223143af95e3" args="(th_comment *_tc)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void th_comment_clear </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structth__comment.html">th_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>_tc</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Clears a <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure. </p>
+<p>This should be called on a <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure after it is no longer needed. It will free all memory used by the structure members. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_tc</em>&nbsp;</td><td>The <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> struct to clear. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6c8ab25988e7ea9d7b1e31a54cf58f09"></a><!-- doxytag: member="codec.h::th_comment_init" ref="ga6c8ab25988e7ea9d7b1e31a54cf58f09" args="(th_comment *_tc)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void th_comment_init </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structth__comment.html">th_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>_tc</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Initialize a <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure. </p>
+<p>This should be called on a freshly allocated <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure before attempting to use it. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_tc</em>&nbsp;</td><td>The <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> struct to initialize. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga33c8b4f57a03217636d704c2ebb211fa"></a><!-- doxytag: member="codec.h::th_comment_query" ref="ga33c8b4f57a03217636d704c2ebb211fa" args="(th_comment *_tc, char *_tag, int _count)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* th_comment_query </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structth__comment.html">th_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>_tc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>_tag</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>_count</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Look up a comment value by its tag. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_tc</em>&nbsp;</td><td>An initialized <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_tag</em>&nbsp;</td><td>The tag to look up. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_count</em>&nbsp;</td><td>The instance of the tag. The same tag can appear multiple times, each with a distinct value, so an index is required to retrieve them all. The order in which these values appear is significant and should be preserved. Use <a class="el" href="group__basefuncs.html#ga81d518dc4426f63ceaedcbe2668679fc" title="Look up the number of instances of a tag.">th_comment_query_count()</a> to get the legal range for the <em>_count</em> parameter. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the queried tag's value. This points directly to data in the <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure. It should not be modified or freed by the application, and modifications to the structure may invalidate the pointer. </dd></dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>If no matching tag is found. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga81d518dc4426f63ceaedcbe2668679fc"></a><!-- doxytag: member="codec.h::th_comment_query_count" ref="ga81d518dc4426f63ceaedcbe2668679fc" args="(th_comment *_tc, char *_tag)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int th_comment_query_count </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structth__comment.html">th_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>_tc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>_tag</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Look up the number of instances of a tag. </p>
+<p>Call this first when querying for a specific tag and then iterate over the number of instances with separate calls to <a class="el" href="group__basefuncs.html#ga33c8b4f57a03217636d704c2ebb211fa" title="Look up a comment value by its tag.">th_comment_query()</a> to retrieve all the values for that tag in order. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_tc</em>&nbsp;</td><td>An initialized <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_tag</em>&nbsp;</td><td>The tag to look up. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The number on instances of this particular tag. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga95b10e76fc4c05d0240ea2dfd9fd62bd"></a><!-- doxytag: member="codec.h::th_granule_frame" ref="ga95b10e76fc4c05d0240ea2dfd9fd62bd" args="(void *_encdec, ogg_int64_t _granpos)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_int64_t th_granule_frame </td>
+          <td>(</td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>_encdec</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_int64_t&nbsp;</td>
+          <td class="paramname"> <em>_granpos</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Converts a granule position to an absolute frame index, starting at <code>0</code>. </p>
+<p>The granule position is interpreted in the context of a given <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> or <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> handle (either will suffice). </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_encdec</em>&nbsp;</td><td>A previously allocated <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> or <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> handle. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_granpos</em>&nbsp;</td><td>The granule position to convert. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The absolute frame index corresponding to <em>_granpos</em>. </dd></dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>-1</em>&nbsp;</td><td>The given granule position was invalid (i.e. negative). </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga707e1e281de788af0df39ef00f3fb432"></a><!-- doxytag: member="codec.h::th_granule_time" ref="ga707e1e281de788af0df39ef00f3fb432" args="(void *_encdec, ogg_int64_t _granpos)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double th_granule_time </td>
+          <td>(</td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>_encdec</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_int64_t&nbsp;</td>
+          <td class="paramname"> <em>_granpos</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Converts a granule position to an absolute time in seconds. </p>
+<p>The granule position is interpreted in the context of a given <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> or <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> handle (either will suffice). </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_encdec</em>&nbsp;</td><td>A previously allocated <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> or <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> handle. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_granpos</em>&nbsp;</td><td>The granule position to convert. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The absolute time in seconds corresponding to <em>_granpos</em>. This is the "end time" for the frame, or the latest time it should be displayed. It is not the presentation time. </dd></dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>-1</em>&nbsp;</td><td>The given granule position was invalid (i.e. negative). </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gab3d6441ab4a4969859ef5fd78a9e3c1c"></a><!-- doxytag: member="codec.h::th_info_clear" ref="gab3d6441ab4a4969859ef5fd78a9e3c1c" args="(th_info *_info)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void th_info_clear </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structth__info.html">th_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>_info</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Clears a <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> structure. </p>
+<p>This should be called on a <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> structure after it is no longer needed. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_info</em>&nbsp;</td><td>The <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> struct to clear. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga430d9c605816a6ca0bdce3a0b965b926"></a><!-- doxytag: member="codec.h::th_info_init" ref="ga430d9c605816a6ca0bdce3a0b965b926" args="(th_info *_info)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void th_info_init </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structth__info.html">th_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>_info</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Initializes a <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> structure. </p>
+<p>This should be called on a freshly allocated <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> structure before attempting to use it. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_info</em>&nbsp;</td><td>The <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> struct to initialize. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga02f3f38261a9b39452d8a5e6f8737cc1"></a><!-- doxytag: member="codec.h::th_packet_isheader" ref="ga02f3f38261a9b39452d8a5e6f8737cc1" args="(ogg_packet *_op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int th_packet_isheader </td>
+          <td>(</td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>_op</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Determines whether a Theora packet is a header or not. </p>
+<p>This function does no verification beyond checking the packet type bit, so it should not be used for bitstream identification; use <a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50" title="Decodes the header packets of a Theora stream.">th_decode_headerin()</a> for that. As per the Theora specification, an empty (0-byte) packet is treated as a data packet (a delta frame with no coded blocks). </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_op</em>&nbsp;</td><td>An <code>ogg_packet</code> containing encoded Theora data. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>1</em>&nbsp;</td><td>The packet is a header packet </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>The packet is a video data packet. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gafe95cfd06f0fef413266c9168a66248a"></a><!-- doxytag: member="codec.h::th_packet_iskeyframe" ref="gafe95cfd06f0fef413266c9168a66248a" args="(ogg_packet *_op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int th_packet_iskeyframe </td>
+          <td>(</td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>_op</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Determines whether a theora packet is a key frame or not. </p>
+<p>This function does no verification beyond checking the packet type and key frame bits, so it should not be used for bitstream identification; use <a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50" title="Decodes the header packets of a Theora stream.">th_decode_headerin()</a> for that. As per the Theora specification, an empty (0-byte) packet is treated as a delta frame (with no coded blocks). </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_op</em>&nbsp;</td><td>An <code>ogg_packet</code> containing encoded Theora data. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>1</em>&nbsp;</td><td>The packet contains a key frame. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>The packet contains a delta frame. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>-1</em>&nbsp;</td><td>The packet is not a video data packet. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gab723a75c0f95b3eb817f7f769846016b"></a><!-- doxytag: member="codec.h::th_version_number" ref="gab723a75c0f95b3eb817f7f769846016b" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t th_version_number </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>Retrieves the library version number. </p>
+<p>This is the highest bitstream version that the encoder library will produce, or that the decoder library can decode. This number is composed of a 16-bit major version, 8-bit minor version and 8 bit sub-version, composed as follows: </p>
+<div class="fragment"><pre class="fragment"> (VERSION_MAJOR&lt;&lt;16)+(VERSION_MINOR&lt;&lt;8)+(VERSION_SUBMINOR)
+</pre></div> <dl class="return"><dt><b>Returns:</b></dt><dd>the version number. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga04846066738d9f2024fc9961162b2dbc"></a><!-- doxytag: member="codec.h::th_version_string" ref="ga04846066738d9f2024fc9961162b2dbc" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* th_version_string </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>Retrieves a human-readable string to identify the library vendor and version. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>the version string. </dd></dl>
+
+</div>
+</div>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/group__decfuncs.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/group__decfuncs.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/group__decfuncs.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,367 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Functions for Decoding</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>Functions for Decoding</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Functions for decoding</h2></td></tr>
+<tr><td colspan="2"><p><a class="anchor" id="amgrp9d29c94aa62f20426aa5ff062c7daedd"></a>You must link to <code>libtheoradec</code> if you use any of the functions in this section.</p>
+<p>The functions are listed in the order they are used in a typical decode. The basic steps are:</p>
+<ul>
+<li>Parse the header packets by repeatedly calling <a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50" title="Decodes the header packets of a Theora stream.">th_decode_headerin()</a>.</li>
+<li>Allocate a <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> handle with <a class="el" href="group__decfuncs.html#ga0ef07a9a97849054aa606c595a2d807e" title="Allocates a decoder instance.">th_decode_alloc()</a>.</li>
+<li>Call <a class="el" href="group__decfuncs.html#gadef55431b68aaa59d0d7b32b2f118f27" title="Releases all storage used for the decoder setup information.">th_setup_free()</a> to free any memory used for codec setup information.</li>
+<li>Perform any additional decoder configuration with <a class="el" href="group__decfuncs.html#ga1a8051958d75b1012573b6e3c8f670e1" title="Decoder control function.">th_decode_ctl()</a>.</li>
+<li>For each video data packet:<ul>
+<li>Submit the packet to the decoder via <a class="el" href="group__decfuncs.html#ga31c814bf09b2232aff69c57ae20f04eb" title="Submits a packet containing encoded video data to the decoder.">th_decode_packetin()</a>.</li>
+<li>Retrieve the uncompressed video data via <a class="el" href="group__decfuncs.html#gaa9cc8af63fa8540e0fc95572f259cdcb" title="Outputs the next available frame of decoded Y&#39;CbCr data.">th_decode_ycbcr_out()</a>.</li>
+</ul>
+</li>
+<li>Call <a class="el" href="group__decfuncs.html#gafb6684ad8ba507b71112bc9de148e7d0" title="Frees an allocated decoder instance.">th_decode_free()</a> to release all decoder memory. </li>
+</ul>
+<br/><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50">th_decode_headerin</a> (<a class="el" href="structth__info.html">th_info</a> *_info, <a class="el" href="structth__comment.html">th_comment</a> *_tc, <a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a> **_setup, ogg_packet *_op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decodes the header packets of a Theora stream.  <a href="#ga006d01d36fbe64768c571e6a12b7fc50"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#ga0ef07a9a97849054aa606c595a2d807e">th_decode_alloc</a> (const <a class="el" href="structth__info.html">th_info</a> *_info, const <a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a> *_setup)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocates a decoder instance.  <a href="#ga0ef07a9a97849054aa606c595a2d807e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#gadef55431b68aaa59d0d7b32b2f118f27">th_setup_free</a> (<a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a> *_setup)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Releases all storage used for the decoder setup information.  <a href="#gadef55431b68aaa59d0d7b32b2f118f27"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#ga1a8051958d75b1012573b6e3c8f670e1">th_decode_ctl</a> (<a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *_dec, int _req, void *_buf, size_t _buf_sz)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decoder control function.  <a href="#ga1a8051958d75b1012573b6e3c8f670e1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#ga31c814bf09b2232aff69c57ae20f04eb">th_decode_packetin</a> (<a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *_dec, const ogg_packet *_op, ogg_int64_t *_granpos)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Submits a packet containing encoded video data to the decoder.  <a href="#ga31c814bf09b2232aff69c57ae20f04eb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#gaa9cc8af63fa8540e0fc95572f259cdcb">th_decode_ycbcr_out</a> (<a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *_dec, <a class="el" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">th_ycbcr_buffer</a> _ycbcr)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Outputs the next available frame of decoded Y'CbCr data.  <a href="#gaa9cc8af63fa8540e0fc95572f259cdcb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#gafb6684ad8ba507b71112bc9de148e7d0">th_decode_free</a> (<a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *_dec)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees an allocated decoder instance.  <a href="#gafb6684ad8ba507b71112bc9de148e7d0"></a><br/></td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ga0ef07a9a97849054aa606c595a2d807e"></a><!-- doxytag: member="theoradec.h::th_decode_alloc" ref="ga0ef07a9a97849054aa606c595a2d807e" args="(const th_info *_info, const th_setup_info *_setup)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a>* th_decode_alloc </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structth__info.html">th_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>_info</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>_setup</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Allocates a decoder instance. </p>
+<p><b>Security Warning:</b> The Theora format supports very large frame sizes, potentially even larger than the address space of a 32-bit machine, and creating a decoder context allocates the space for several frames of data. If the allocation fails here, your program will crash, possibly at some future point because the OS kernel returned a valid memory range and will only fail when it tries to map the pages in it the first time they are used. Even if it succeeds, you may experience a denial of service if the frame size is large enough to cause excessive paging. If you are integrating libtheora in a larger application where such things are undesirable, it is highly recommended that you check the frame size in <em>_info</em> before calling this function and refuse to decode streams where it is larger than some reasonable maximum. libtheora will not check this for you, because there may be machines that can handle such streams and applications that wish to. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_info</em>&nbsp;</td><td>A <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> struct filled via <a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50" title="Decodes the header packets of a Theora stream.">th_decode_headerin()</a>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_setup</em>&nbsp;</td><td>A <a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28" title="Setup information.">th_setup_info</a> handle returned via <a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50" title="Decodes the header packets of a Theora stream.">th_decode_headerin()</a>. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The initialized <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> handle. </dd></dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>If the decoding parameters were invalid. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1a8051958d75b1012573b6e3c8f670e1"></a><!-- doxytag: member="theoradec.h::th_decode_ctl" ref="ga1a8051958d75b1012573b6e3c8f670e1" args="(th_dec_ctx *_dec, int _req, void *_buf, size_t _buf_sz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int th_decode_ctl </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *&nbsp;</td>
+          <td class="paramname"> <em>_dec</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>_req</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>_buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>_buf_sz</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Decoder control function. </p>
+<p>This is used to provide advanced control of the decoding process. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_dec</em>&nbsp;</td><td>A <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> handle. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_req</em>&nbsp;</td><td>The control code to process. See <a class="el" href="theoradec_8h.html#decctlcodes">the list of available control codes</a> for details. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_buf</em>&nbsp;</td><td>The parameters for this control code. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_buf_sz</em>&nbsp;</td><td>The size of the parameter buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gafb6684ad8ba507b71112bc9de148e7d0"></a><!-- doxytag: member="theoradec.h::th_decode_free" ref="gafb6684ad8ba507b71112bc9de148e7d0" args="(th_dec_ctx *_dec)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void th_decode_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *&nbsp;</td>
+          <td class="paramname"> <em>_dec</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Frees an allocated decoder instance. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_dec</em>&nbsp;</td><td>A <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> handle. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga006d01d36fbe64768c571e6a12b7fc50"></a><!-- doxytag: member="theoradec.h::th_decode_headerin" ref="ga006d01d36fbe64768c571e6a12b7fc50" args="(th_info *_info, th_comment *_tc, th_setup_info **_setup, ogg_packet *_op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int th_decode_headerin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structth__info.html">th_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>_info</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structth__comment.html">th_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>_tc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a> **&nbsp;</td>
+          <td class="paramname"> <em>_setup</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>_op</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Decodes the header packets of a Theora stream. </p>
+<p>This should be called on the initial packets of the stream, in succession, until it returns <code>0</code>, indicating that all headers have been processed, or an error is encountered. At least three header packets are required, and additional optional header packets may follow. This can be used on the first packet of any logical stream to determine if that stream is a Theora stream. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_info</em>&nbsp;</td><td>A <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> structure to fill in. This must have been previously initialized with <a class="el" href="group__basefuncs.html#ga430d9c605816a6ca0bdce3a0b965b926" title="Initializes a th_info structure.">th_info_init()</a>. The application may immediately begin using the contents of this structure after the first header is decoded, though it must continue to be passed in on all subsequent calls. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_tc</em>&nbsp;</td><td>A <a class="el" href="structth__comment.html" title="The comment information.">th_comment</a> structure to fill in. The application may immediately begin using the contents of this structure after the second header is decoded, though it must continue to be passed in on all subsequent calls. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_setup</em>&nbsp;</td><td>Returns a pointer to additional, private setup information needed by the decoder. The contents of this pointer must be initialized to <code>NULL</code> on the first call, and the returned value must continue to be passed in on all subsequent calls. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_op</em>&nbsp;</td><td>An <code>ogg_packet</code> structure which contains one of the initial packets of an Ogg logical stream. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A positive value indicates that a Theora header was successfully processed. </dd></dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>The first video data packet was encountered after all required header packets were parsed. The packet just passed in on this call should be saved and fed to <a class="el" href="group__decfuncs.html#ga31c814bf09b2232aff69c57ae20f04eb" title="Submits a packet containing encoded video data to the decoder.">th_decode_packetin()</a> to begin decoding video data. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td>One of <em>_info</em>, <em>_tc</em>, or <em>_setup</em> was <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EBADHEADER</em>&nbsp;</td><td><em>_op</em> was <code>NULL</code>, the packet was not the next header packet in the expected sequence, or the format of the header data was invalid. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EVERSION</em>&nbsp;</td><td>The packet data was a Theora info header, but for a bitstream version not decodable with this version of <code>libtheoradec</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_ENOTFORMAT</em>&nbsp;</td><td>The packet was not a Theora header. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga31c814bf09b2232aff69c57ae20f04eb"></a><!-- doxytag: member="theoradec.h::th_decode_packetin" ref="ga31c814bf09b2232aff69c57ae20f04eb" args="(th_dec_ctx *_dec, const ogg_packet *_op, ogg_int64_t *_granpos)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int th_decode_packetin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *&nbsp;</td>
+          <td class="paramname"> <em>_dec</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>_op</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_int64_t *&nbsp;</td>
+          <td class="paramname"> <em>_granpos</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Submits a packet containing encoded video data to the decoder. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_dec</em>&nbsp;</td><td>A <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> handle. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_op</em>&nbsp;</td><td>An <code>ogg_packet</code> containing encoded video data. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_granpos</em>&nbsp;</td><td>Returns the granule position of the decoded packet. If non-<code>NULL</code>, the granule position for this specific packet is stored in this location. This is computed incrementally from previously decoded packets. After a seek, the correct granule position must be set via <a class="el" href="theoradec_8h.html#a1e870c654d35394f0d490045df04e0f5" title="Sets the granule position.">TH_DECCTL_SET_GRANPOS</a> for this to work properly. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success. A new decoded frame can be retrieved by calling <a class="el" href="group__decfuncs.html#gaa9cc8af63fa8540e0fc95572f259cdcb" title="Outputs the next available frame of decoded Y&#39;CbCr data.">th_decode_ycbcr_out()</a>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_DUPFRAME</em>&nbsp;</td><td>The packet represented a dropped (0-byte) frame. The player can skip the call to <a class="el" href="group__decfuncs.html#gaa9cc8af63fa8540e0fc95572f259cdcb" title="Outputs the next available frame of decoded Y&#39;CbCr data.">th_decode_ycbcr_out()</a>, as the contents of the decoded frame buffer have not changed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_dec</em> or <em>_op</em> was <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EBADPACKET</em>&nbsp;</td><td><em>_op</em> does not contain encoded video data. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>The video data uses bitstream features which this library does not support. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa9cc8af63fa8540e0fc95572f259cdcb"></a><!-- doxytag: member="theoradec.h::th_decode_ycbcr_out" ref="gaa9cc8af63fa8540e0fc95572f259cdcb" args="(th_dec_ctx *_dec, th_ycbcr_buffer _ycbcr)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int th_decode_ycbcr_out </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *&nbsp;</td>
+          <td class="paramname"> <em>_dec</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">th_ycbcr_buffer</a>&nbsp;</td>
+          <td class="paramname"> <em>_ycbcr</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Outputs the next available frame of decoded Y'CbCr data. </p>
+<p>If a striped decode callback has been set with <a class="el" href="theoradec_8h.html#ac95cc9e109474b0fa4bb920ab2cfdf1e" title="Sets the striped decode callback function.">TH_DECCTL_SET_STRIPE_CB</a>, then the application does not need to call this function. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_dec</em>&nbsp;</td><td>A <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> handle. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_ycbcr</em>&nbsp;</td><td>A video buffer structure to fill in. <code>libtheoradec</code> will fill in all the members of this structure, including the pointers to the uncompressed video data. The memory for this video data is owned by <code>libtheoradec</code>. It may be freed or overwritten without notification when subsequent frames are decoded. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_dec</em> or <em>_ycbcr</em> was <code>NULL</code>. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gadef55431b68aaa59d0d7b32b2f118f27"></a><!-- doxytag: member="theoradec.h::th_setup_free" ref="gadef55431b68aaa59d0d7b32b2f118f27" args="(th_setup_info *_setup)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void th_setup_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>_setup</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Releases all storage used for the decoder setup information. </p>
+<p>This should be called after you no longer want to create any decoders for a stream whose headers you have parsed with <a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50" title="Decodes the header packets of a Theora stream.">th_decode_headerin()</a>. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_setup</em>&nbsp;</td><td>The setup information to free. This can safely be <code>NULL</code>. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/group__encfuncs.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/group__encfuncs.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/group__encfuncs.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,317 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Functions for Encoding</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>Functions for Encoding</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Functions for encoding</h2></td></tr>
+<tr><td colspan="2"><p><a class="anchor" id="amgrpc58fb8743a7ca83eb895d57e29e032c8"></a>You must link to <code>libtheoraenc</code> and <code>libtheoradec</code> if you use any of the functions in this section.</p>
+<p>The functions are listed in the order they are used in a typical encode. The basic steps are:</p>
+<ul>
+<li>Fill in a <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> structure with details on the format of the video you wish to encode.</li>
+<li>Allocate a <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> handle with <a class="el" href="group__encfuncs.html#gaa91e47bc9dd5f6ee52045bd7b815e5a7" title="Allocates an encoder instance.">th_encode_alloc()</a>.</li>
+<li>Perform any additional encoder configuration required with <a class="el" href="group__encfuncs.html#ga3a427f6514dfdc01ea72172c469d51d9" title="Encoder control function.">th_encode_ctl()</a>.</li>
+<li>Repeatedly call <a class="el" href="group__encfuncs.html#ga9439d61b566039d194ff782681fbc408" title="Outputs the next header packet.">th_encode_flushheader()</a> to retrieve all the header packets.</li>
+<li>For each uncompressed frame:<ul>
+<li>Submit the uncompressed frame via <a class="el" href="group__encfuncs.html#gadbe7dd66b411c2d61ab8153c15308750" title="Submits an uncompressed frame to the encoder.">th_encode_ycbcr_in()</a></li>
+<li>Repeatedly call <a class="el" href="group__encfuncs.html#ga96d8ac1dda53187455352f99bbb5b04b" title="Retrieves encoded video data packets.">th_encode_packetout()</a> to retrieve any video data packets that are ready.</li>
+</ul>
+</li>
+<li>Call <a class="el" href="group__encfuncs.html#ga36b23d216532231925c4107894204680" title="Frees an allocated encoder instance.">th_encode_free()</a> to release all encoder memory. </li>
+</ul>
+<br/><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__encfuncs.html#gaa91e47bc9dd5f6ee52045bd7b815e5a7">th_encode_alloc</a> (const <a class="el" href="structth__info.html">th_info</a> *_info)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocates an encoder instance.  <a href="#gaa91e47bc9dd5f6ee52045bd7b815e5a7"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__encfuncs.html#ga3a427f6514dfdc01ea72172c469d51d9">th_encode_ctl</a> (<a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *_enc, int _req, void *_buf, size_t _buf_sz)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encoder control function.  <a href="#ga3a427f6514dfdc01ea72172c469d51d9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__encfuncs.html#ga9439d61b566039d194ff782681fbc408">th_encode_flushheader</a> (<a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *_enc, <a class="el" href="structth__comment.html">th_comment</a> *_comments, ogg_packet *_op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Outputs the next header packet.  <a href="#ga9439d61b566039d194ff782681fbc408"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__encfuncs.html#gadbe7dd66b411c2d61ab8153c15308750">th_encode_ycbcr_in</a> (<a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *_enc, <a class="el" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">th_ycbcr_buffer</a> _ycbcr)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Submits an uncompressed frame to the encoder.  <a href="#gadbe7dd66b411c2d61ab8153c15308750"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__encfuncs.html#ga96d8ac1dda53187455352f99bbb5b04b">th_encode_packetout</a> (<a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *_enc, int _last, ogg_packet *_op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves encoded video data packets.  <a href="#ga96d8ac1dda53187455352f99bbb5b04b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__encfuncs.html#ga36b23d216532231925c4107894204680">th_encode_free</a> (<a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *_enc)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees an allocated encoder instance.  <a href="#ga36b23d216532231925c4107894204680"></a><br/></td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="gaa91e47bc9dd5f6ee52045bd7b815e5a7"></a><!-- doxytag: member="theoraenc.h::th_encode_alloc" ref="gaa91e47bc9dd5f6ee52045bd7b815e5a7" args="(const th_info *_info)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a>* th_encode_alloc </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structth__info.html">th_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>_info</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Allocates an encoder instance. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_info</em>&nbsp;</td><td>A <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> struct filled with the desired encoding parameters. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The initialized <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> handle. </dd></dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>If the encoding parameters were invalid. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3a427f6514dfdc01ea72172c469d51d9"></a><!-- doxytag: member="theoraenc.h::th_encode_ctl" ref="ga3a427f6514dfdc01ea72172c469d51d9" args="(th_enc_ctx *_enc, int _req, void *_buf, size_t _buf_sz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int th_encode_ctl </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *&nbsp;</td>
+          <td class="paramname"> <em>_enc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>_req</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>_buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>_buf_sz</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Encoder control function. </p>
+<p>This is used to provide advanced control the encoding process. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_enc</em>&nbsp;</td><td>A <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> handle. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_req</em>&nbsp;</td><td>The control code to process. See <a class="el" href="theoraenc_8h.html#encctlcodes">the list of available control codes</a> for details. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_buf</em>&nbsp;</td><td>The parameters for this control code. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_buf_sz</em>&nbsp;</td><td>The size of the parameter buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9439d61b566039d194ff782681fbc408"></a><!-- doxytag: member="theoraenc.h::th_encode_flushheader" ref="ga9439d61b566039d194ff782681fbc408" args="(th_enc_ctx *_enc, th_comment *_comments, ogg_packet *_op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int th_encode_flushheader </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *&nbsp;</td>
+          <td class="paramname"> <em>_enc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structth__comment.html">th_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>_comments</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>_op</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Outputs the next header packet. </p>
+<p>This should be called repeatedly after encoder initialization until it returns 0 in order to get all of the header packets, in order, before encoding actual video data. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_enc</em>&nbsp;</td><td>A <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> handle. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_comments</em>&nbsp;</td><td>The metadata to place in the comment header, when it is encoded. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_op</em>&nbsp;</td><td>An <code>ogg_packet</code> structure to fill. All of the elements of this structure will be set, including a pointer to the header data. The memory for the header data is owned by <code>libtheoraenc</code>, and may be invalidated when the next encoder function is called. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A positive value indicates that a header packet was successfully produced. </dd></dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>No packet was produced, and no more header packets remain. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc</em>, <em>_comments</em>, or <em>_op</em> was <code>NULL</code>. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga36b23d216532231925c4107894204680"></a><!-- doxytag: member="theoraenc.h::th_encode_free" ref="ga36b23d216532231925c4107894204680" args="(th_enc_ctx *_enc)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void th_encode_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *&nbsp;</td>
+          <td class="paramname"> <em>_enc</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Frees an allocated encoder instance. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_enc</em>&nbsp;</td><td>A <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> handle. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga96d8ac1dda53187455352f99bbb5b04b"></a><!-- doxytag: member="theoraenc.h::th_encode_packetout" ref="ga96d8ac1dda53187455352f99bbb5b04b" args="(th_enc_ctx *_enc, int _last, ogg_packet *_op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int th_encode_packetout </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *&nbsp;</td>
+          <td class="paramname"> <em>_enc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>_last</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>_op</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Retrieves encoded video data packets. </p>
+<p>This should be called repeatedly after each frame is submitted to flush any encoded packets, until it returns 0. The encoder will not buffer these packets as subsequent frames are compressed, so a failure to do so will result in lost video data. </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>Currently the encoder operates in a one-frame-in, one-packet-out manner. However, this may be changed in the future. </dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_enc</em>&nbsp;</td><td>A <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> handle. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_last</em>&nbsp;</td><td>Set this flag to a non-zero value if no more uncompressed frames will be submitted. This ensures that a proper EOS flag is set on the last packet. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_op</em>&nbsp;</td><td>An <code>ogg_packet</code> structure to fill. All of the elements of this structure will be set, including a pointer to the video data. The memory for the video data is owned by <code>libtheoraenc</code>, and may be invalidated when the next encoder function is called. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A positive value indicates that a video data packet was successfully produced. </dd></dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>No packet was produced, and no more encoded video data remains. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc</em> or <em>_op</em> was <code>NULL</code>. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gadbe7dd66b411c2d61ab8153c15308750"></a><!-- doxytag: member="theoraenc.h::th_encode_ycbcr_in" ref="gadbe7dd66b411c2d61ab8153c15308750" args="(th_enc_ctx *_enc, th_ycbcr_buffer _ycbcr)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int th_encode_ycbcr_in </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *&nbsp;</td>
+          <td class="paramname"> <em>_enc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">th_ycbcr_buffer</a>&nbsp;</td>
+          <td class="paramname"> <em>_ycbcr</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Submits an uncompressed frame to the encoder. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_enc</em>&nbsp;</td><td>A <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> handle. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_ycbcr</em>&nbsp;</td><td>A buffer of Y'CbCr data to encode. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc</em> or <em>_ycbcr</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td>The buffer size does not match the frame size the encoder was initialized with, or encoding has already completed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/group__oldfuncs.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/group__oldfuncs.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/group__oldfuncs.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,1606 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Legacy pre-1.0 C API</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>Legacy pre-1.0 C API</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html">yuv_buffer</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A YUV buffer for passing uncompressed frames to and from the codec.  <a href="structyuv__buffer.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html">theora_info</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Theora bitstream info.  <a href="structtheora__info.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__state.html">theora_state</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Codec internal state and context.  <a href="structtheora__state.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__comment.html">theora_comment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Comment header metadata.  <a href="structtheora__comment.html#_details">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Files</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html">theora.h</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>The libtheora pre-1.0 legacy C API. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gaa4370e13ed3aea6441ccf69dcab2506e">OC_FAULT</a>&nbsp;&nbsp;&nbsp;-1</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">General failure.  <a href="#gaa4370e13ed3aea6441ccf69dcab2506e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga43d15091b1a03a734a124e9a04d3be55">OC_EINVAL</a>&nbsp;&nbsp;&nbsp;-10</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Library encountered invalid internal data.  <a href="#ga43d15091b1a03a734a124e9a04d3be55"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga38b9fa0af856d5930c534db26e2ac2d1">OC_DISABLED</a>&nbsp;&nbsp;&nbsp;-11</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Requested action is disabled.  <a href="#ga38b9fa0af856d5930c534db26e2ac2d1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga809cbad2eb36be17a235a3cadfb737ba">OC_BADHEADER</a>&nbsp;&nbsp;&nbsp;-20</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Header packet was corrupt/invalid.  <a href="#ga809cbad2eb36be17a235a3cadfb737ba"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga9558d6d9eacd2273c8da27f945d725ad">OC_NOTFORMAT</a>&nbsp;&nbsp;&nbsp;-21</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packet is not a theora packet.  <a href="#ga9558d6d9eacd2273c8da27f945d725ad"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga4611cfd61160405721d1e2ab0ec2564b">OC_VERSION</a>&nbsp;&nbsp;&nbsp;-22</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bitstream version is not handled.  <a href="#ga4611cfd61160405721d1e2ab0ec2564b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga895dc2597b3bf9c97bf7701c6eff5b0c">OC_IMPL</a>&nbsp;&nbsp;&nbsp;-23</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Feature or action not implemented.  <a href="#ga895dc2597b3bf9c97bf7701c6eff5b0c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga117774c062a63dfad2a5b4d092fa2bb1">OC_BADPACKET</a>&nbsp;&nbsp;&nbsp;-24</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packet is corrupt.  <a href="#ga117774c062a63dfad2a5b4d092fa2bb1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga60be4dc92c933eac3542bce3ce076496">OC_NEWPACKET</a>&nbsp;&nbsp;&nbsp;-25</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packet is an (ignorable) unhandled extension.  <a href="#ga60be4dc92c933eac3542bce3ce076496"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga84a8d2f5080ad62b415a4e7551941cbb">OC_DUPFRAME</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packet is a dropped frame.  <a href="#ga84a8d2f5080ad62b415a4e7551941cbb"></a><br/></td></tr>
+<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gaa567da4ce591f7373149ce3ef3acdac9">theora_colorspace</a> { <a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9abf217cf83d7d7cbf73295e6689f5cf5f">OC_CS_UNSPECIFIED</a>, 
+<a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9ab20c9851a21ab148fef0bf2c00c0a294">OC_CS_ITU_REC_470M</a>, 
+<a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9a04f8fa2da26f9ec513f514163705666a">OC_CS_ITU_REC_470BG</a>, 
+<a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9a640b572f11fa7102d434e1c605aaa186">OC_CS_NSPACES</a>
+ }</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>A Colorspace. </p>
+ <a href="group__oldfuncs.html#gaa567da4ce591f7373149ce3ef3acdac9">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gae169da05bfaaf4e964a6866552d45079">theora_pixelformat</a> { <a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a4e451af01be2645511b0e431f5225d2b">OC_PF_420</a>, 
+<a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a7d21c63341ad299766839c83ed1216eb">OC_PF_RSVD</a>, 
+<a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a36a88c55b7ddd5aedeac2d61d57fee5b">OC_PF_422</a>, 
+<a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a1d5c6d1b0365e06b4a87880b7825f044">OC_PF_444</a>
+ }</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>A Chroma subsampling. </p>
+ <a href="group__oldfuncs.html#gae169da05bfaaf4e964a6866552d45079">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga5a3da8fd262a60f055f96536eec06df2">theora_version_string</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve a human-readable string to identify the encoder vendor and version.  <a href="#ga5a3da8fd262a60f055f96536eec06df2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gad181f4b19d455dcc2bef2533530b84c8">theora_version_number</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve a 32-bit version number.  <a href="#gad181f4b19d455dcc2bef2533530b84c8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga0f7ad4d4b2343278cb4ba8fb2bd5109a">theora_encode_init</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, <a class="el" href="structtheora__info.html">theora_info</a> *ti)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the theora encoder.  <a href="#ga0f7ad4d4b2343278cb4ba8fb2bd5109a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gac0d33d896ca70cedfc94c5986d947078">theora_encode_YUVin</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t, <a class="el" href="structyuv__buffer.html">yuv_buffer</a> *yuv)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Submit a YUV buffer to the theora encoder.  <a href="#gac0d33d896ca70cedfc94c5986d947078"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga5f4929677a735bc2198c2309d235f1b3">theora_encode_packetout</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t, int last_p, ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request the next packet of encoded video.  <a href="#ga5f4929677a735bc2198c2309d235f1b3"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga451feb58d6bde726edbae193689887be">theora_encode_header</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t, ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request a packet containing the initial header.  <a href="#ga451feb58d6bde726edbae193689887be"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga45e8db0713eaaca0f1144f3724cb834a">theora_encode_comment</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request a comment header packet from provided metadata.  <a href="#ga45e8db0713eaaca0f1144f3724cb834a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga5085baf20855b283fa01fc948505d9d2">theora_encode_tables</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t, ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request a packet containing the codebook tables for the stream.  <a href="#ga5085baf20855b283fa01fc948505d9d2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82">theora_decode_header</a> (<a class="el" href="structtheora__info.html">theora_info</a> *ci, <a class="el" href="structtheora__comment.html">theora_comment</a> *cc, ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decode an Ogg packet, with the expectation that the packet contains an initial header, comment data or codebook tables.  <a href="#ga02915e63c1bd733ee291f577a8b75a82"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga264907c66003799ff77ecbd09eb33d2c">theora_decode_init</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, <a class="el" href="structtheora__info.html">theora_info</a> *c)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle for decoding.  <a href="#ga264907c66003799ff77ecbd09eb33d2c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gaa65a9e53b46fd54ab344bd599fa96975">theora_decode_packetin</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Input a packet containing encoded data into the theora decoder.  <a href="#gaa65a9e53b46fd54ab344bd599fa96975"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga09d47c80e1e94bff0a46a496816b8daa">theora_decode_YUVout</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, <a class="el" href="structyuv__buffer.html">yuv_buffer</a> *yuv)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output the next available frame of decoded YUV data.  <a href="#ga09d47c80e1e94bff0a46a496816b8daa"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gab969f9d0407683f0e5abe73d0839a25b">theora_packet_isheader</a> (ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Report whether a theora packet is a header or not This function does no verification beyond checking the header flag bit so it should not be used for bitstream identification; use <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header()</a> for that.  <a href="#gab969f9d0407683f0e5abe73d0839a25b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga39ccc8f847a748d7074c926b4fdd12b2">theora_packet_iskeyframe</a> (ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Report whether a theora packet is a keyframe or not.  <a href="#ga39ccc8f847a748d7074c926b4fdd12b2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gacd9360e6a47139c761002410af457a02">theora_granule_shift</a> (<a class="el" href="structtheora__info.html">theora_info</a> *ti)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Report the granulepos shift radix.  <a href="#gacd9360e6a47139c761002410af457a02"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga7bfa3ceb2fb4b41a282456c56e1dd269">theora_granule_frame</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, ogg_int64_t granulepos)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a granulepos to an absolute frame index, starting at 0.  <a href="#ga7bfa3ceb2fb4b41a282456c56e1dd269"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga4376358b12b9fa23ce6fe21cb5c65ac6">theora_granule_time</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, ogg_int64_t granulepos)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a granulepos to absolute time in seconds.  <a href="#ga4376358b12b9fa23ce6fe21cb5c65ac6"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga3091c87d48f1faba018c5956379a6d90">theora_info_init</a> (<a class="el" href="structtheora__info.html">theora_info</a> *c)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> structure.  <a href="#ga3091c87d48f1faba018c5956379a6d90"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gaba7022d58edbc4825cacad03f68b3e0d">theora_info_clear</a> (<a class="el" href="structtheora__info.html">theora_info</a> *c)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear a <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> structure.  <a href="#gaba7022d58edbc4825cacad03f68b3e0d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gab252d5d81b925136dda72e8f1c09c5eb">theora_clear</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free all internal data associated with a <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle.  <a href="#gab252d5d81b925136dda72e8f1c09c5eb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga811b92785df3bdbbebb3de612d9d6ce0">theora_comment_init</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize an allocated <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure.  <a href="#ga811b92785df3bdbbebb3de612d9d6ce0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga650642ed23894e41109bbc42ec393ed4">theora_comment_add</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, char *comment)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a comment to an initialized <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure.  <a href="#ga650642ed23894e41109bbc42ec393ed4"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga339bd80b5bf4bb168b7052d8ec0b5a92">theora_comment_add_tag</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, char *tag, char *value)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a comment to an initialized <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure.  <a href="#ga339bd80b5bf4bb168b7052d8ec0b5a92"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga4361f6001abb5c83c36a2ddfb648a8dc">theora_comment_query</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, char *tag, int count)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Look up a comment value by tag.  <a href="#ga4361f6001abb5c83c36a2ddfb648a8dc"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga10f66a3c752442a3e0c0098e0f88df8b">theora_comment_query_count</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, char *tag)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Look up the number of instances of a tag.  <a href="#ga10f66a3c752442a3e0c0098e0f88df8b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga04c07c2eefba3a433e43f9fbde14719f">theora_comment_clear</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear an allocated <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> struct so that it can be freed.  <a href="#ga04c07c2eefba3a433e43f9fbde14719f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga186773db3bc8cd550047e7df1b2ba2c9">theora_control</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, int req, void *buf, size_t buf_sz)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encoder control function.  <a href="#ga186773db3bc8cd550047e7df1b2ba2c9"></a><br/></td></tr>
+<tr><td colspan="2"><h2>theora_control() codes</h2></td></tr>
+<tr><td colspan="2"><p><a class="anchor" id="amgrp13fd61986cff4566fe89a40e30b74ad9"></a> </p>
+<br/><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gab31f251c9319f2140d247585d30b3d07">TH_DECCTL_GET_PPLEVEL_MAX</a>&nbsp;&nbsp;&nbsp;(1)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum post-processing level.  <a href="#gab31f251c9319f2140d247585d30b3d07"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga87774c35e1a755a84e2d705b38ebef0d">TH_DECCTL_SET_PPLEVEL</a>&nbsp;&nbsp;&nbsp;(3)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the post-processing level.  <a href="#ga87774c35e1a755a84e2d705b38ebef0d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga27e755e15b4b5604c54974b304037a49">TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE</a>&nbsp;&nbsp;&nbsp;(4)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the maximum distance between key frames.  <a href="#ga27e755e15b4b5604c54974b304037a49"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga1e870c654d35394f0d490045df04e0f5">TH_DECCTL_SET_GRANPOS</a>&nbsp;&nbsp;&nbsp;(5)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the granule position.  <a href="#ga1e870c654d35394f0d490045df04e0f5"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga3befcdd66678f8d27034f9c4b16d1b9c">TH_ENCCTL_SET_QUANT_PARAMS</a>&nbsp;&nbsp;&nbsp;(2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the quantization parameters to use.  <a href="#ga3befcdd66678f8d27034f9c4b16d1b9c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga382d685a39a34d8e6ba76b00d804efd8">TH_ENCCTL_SET_VP3_COMPATIBLE</a>&nbsp;&nbsp;&nbsp;(10)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disables any encoder features that would prevent lossless transcoding back to VP3.  <a href="#ga382d685a39a34d8e6ba76b00d804efd8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga9baf5bdd206e80c78a8fd44687e89783">TH_ENCCTL_GET_SPLEVEL_MAX</a>&nbsp;&nbsp;&nbsp;(12)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the maximum speed level.  <a href="#ga9baf5bdd206e80c78a8fd44687e89783"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gabd9fbcb6a25a77d991d3620164fe59d6">TH_ENCCTL_SET_SPLEVEL</a>&nbsp;&nbsp;&nbsp;(14)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the speed level.  <a href="#gabd9fbcb6a25a77d991d3620164fe59d6"></a><br/></td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ga809cbad2eb36be17a235a3cadfb737ba"></a><!-- doxytag: member="theora.h::OC_BADHEADER" ref="ga809cbad2eb36be17a235a3cadfb737ba" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OC_BADHEADER&nbsp;&nbsp;&nbsp;-20</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Header packet was corrupt/invalid. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga117774c062a63dfad2a5b4d092fa2bb1"></a><!-- doxytag: member="theora.h::OC_BADPACKET" ref="ga117774c062a63dfad2a5b4d092fa2bb1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OC_BADPACKET&nbsp;&nbsp;&nbsp;-24</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Packet is corrupt. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga38b9fa0af856d5930c534db26e2ac2d1"></a><!-- doxytag: member="theora.h::OC_DISABLED" ref="ga38b9fa0af856d5930c534db26e2ac2d1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OC_DISABLED&nbsp;&nbsp;&nbsp;-11</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Requested action is disabled. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga84a8d2f5080ad62b415a4e7551941cbb"></a><!-- doxytag: member="theora.h::OC_DUPFRAME" ref="ga84a8d2f5080ad62b415a4e7551941cbb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OC_DUPFRAME&nbsp;&nbsp;&nbsp;1</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Packet is a dropped frame. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga43d15091b1a03a734a124e9a04d3be55"></a><!-- doxytag: member="theora.h::OC_EINVAL" ref="ga43d15091b1a03a734a124e9a04d3be55" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OC_EINVAL&nbsp;&nbsp;&nbsp;-10</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Library encountered invalid internal data. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa4370e13ed3aea6441ccf69dcab2506e"></a><!-- doxytag: member="theora.h::OC_FAULT" ref="gaa4370e13ed3aea6441ccf69dcab2506e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OC_FAULT&nbsp;&nbsp;&nbsp;-1</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>General failure. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga895dc2597b3bf9c97bf7701c6eff5b0c"></a><!-- doxytag: member="theora.h::OC_IMPL" ref="ga895dc2597b3bf9c97bf7701c6eff5b0c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OC_IMPL&nbsp;&nbsp;&nbsp;-23</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Feature or action not implemented. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga60be4dc92c933eac3542bce3ce076496"></a><!-- doxytag: member="theora.h::OC_NEWPACKET" ref="ga60be4dc92c933eac3542bce3ce076496" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OC_NEWPACKET&nbsp;&nbsp;&nbsp;-25</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Packet is an (ignorable) unhandled extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9558d6d9eacd2273c8da27f945d725ad"></a><!-- doxytag: member="theora.h::OC_NOTFORMAT" ref="ga9558d6d9eacd2273c8da27f945d725ad" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OC_NOTFORMAT&nbsp;&nbsp;&nbsp;-21</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Packet is not a theora packet. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4611cfd61160405721d1e2ab0ec2564b"></a><!-- doxytag: member="theora.h::OC_VERSION" ref="ga4611cfd61160405721d1e2ab0ec2564b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OC_VERSION&nbsp;&nbsp;&nbsp;-22</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Bitstream version is not handled. </p>
+
+</div>
+</div>
+<a class="anchor" id="gab31f251c9319f2140d247585d30b3d07"></a><!-- doxytag: member="theora.h::TH_DECCTL_GET_PPLEVEL_MAX" ref="gab31f251c9319f2140d247585d30b3d07" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_DECCTL_GET_PPLEVEL_MAX&nbsp;&nbsp;&nbsp;(1)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Get the maximum post-processing level. </p>
+<p>The decoder supports a post-processing filter that can improve the appearance of the decoded images. This returns the highest level setting for this post-processor, corresponding to maximum improvement and computational expense. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1e870c654d35394f0d490045df04e0f5"></a><!-- doxytag: member="theora.h::TH_DECCTL_SET_GRANPOS" ref="ga1e870c654d35394f0d490045df04e0f5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_DECCTL_SET_GRANPOS&nbsp;&nbsp;&nbsp;(5)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Set the granule position. </p>
+<p>Call this after a seek, to update the internal granulepos in the decoder, to insure that subsequent frames are marked properly. If you track timestamps yourself and do not use the granule postion returned by the decoder, then you do not need to use this control. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga87774c35e1a755a84e2d705b38ebef0d"></a><!-- doxytag: member="theora.h::TH_DECCTL_SET_PPLEVEL" ref="ga87774c35e1a755a84e2d705b38ebef0d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_DECCTL_SET_PPLEVEL&nbsp;&nbsp;&nbsp;(3)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Set the post-processing level. </p>
+<p>Sets the level of post-processing to use when decoding the compressed stream. This must be a value between zero (off) and the maximum returned by TH_DECCTL_GET_PPLEVEL_MAX. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9baf5bdd206e80c78a8fd44687e89783"></a><!-- doxytag: member="theora.h::TH_ENCCTL_GET_SPLEVEL_MAX" ref="ga9baf5bdd206e80c78a8fd44687e89783" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_GET_SPLEVEL_MAX&nbsp;&nbsp;&nbsp;(12)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Gets the maximum speed level. </p>
+<p>Higher speed levels favor quicker encoding over better quality per bit. Depending on the encoding mode, and the internal algorithms used, quality may actually improve, but in this case bitrate will also likely increase. In any case, overall rate/distortion performance will probably decrease. The maximum value, and the meaning of each value, may change depending on the current encoding mode (VBR vs. CQI, etc.).</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>buf</em>&nbsp;</td><td>int: The maximum encoding speed level. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OC_FAULT</em>&nbsp;</td><td><em><a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a></em> or <em>buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_EINVAL</em>&nbsp;</td><td><em>buf_sz</em> is not <code>sizeof(int)</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_IMPL</em>&nbsp;</td><td>Not supported by this implementation in the current encoding mode. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga27e755e15b4b5604c54974b304037a49"></a><!-- doxytag: member="theora.h::TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE" ref="ga27e755e15b4b5604c54974b304037a49" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE&nbsp;&nbsp;&nbsp;(4)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the maximum distance between key frames. </p>
+<p>This can be changed during an encode, but will be bounded by <code>1&lt;&lt;<a class="el" href="structth__info.html#a693ca4ab11fbc0c3f32594b4bb8766ed" title="The amount to shift to extract the last keyframe number from the granule position...">th_info::keyframe_granule_shift</a></code>. If it is set before encoding begins, <a class="el" href="structth__info.html#a693ca4ab11fbc0c3f32594b4bb8766ed" title="The amount to shift to extract the last keyframe number from the granule position...">th_info::keyframe_granule_shift</a> will be enlarged appropriately.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>buf</em>&nbsp;</td><td><code>ogg_uint32_t</code>: The maximum distance between key frames. </td></tr>
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>buf</em>&nbsp;</td><td><code>ogg_uint32_t</code>: The actual maximum distance set. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OC_FAULT</em>&nbsp;</td><td><em><a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a></em> or <em>buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_EINVAL</em>&nbsp;</td><td><em>buf_sz</em> is not <code>sizeof(ogg_uint32_t)</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_IMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3befcdd66678f8d27034f9c4b16d1b9c"></a><!-- doxytag: member="theora.h::TH_ENCCTL_SET_QUANT_PARAMS" ref="ga3befcdd66678f8d27034f9c4b16d1b9c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_QUANT_PARAMS&nbsp;&nbsp;&nbsp;(2)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the quantization parameters to use. </p>
+<p><a class="anchor" id="encctlcodes_old"></a> The parameters are copied, not stored by reference, so they can be freed after this call. <code>NULL</code> may be specified to revert to the default parameters.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>buf</em>&nbsp;</td><td><a class="el" href="structth__quant__info.html" title="A complete set of quantization parameters.">th_quant_info</a> </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OC_FAULT</em>&nbsp;</td><td><em><a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a></em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_EINVAL</em>&nbsp;</td><td>Encoding has already begun, the quantization parameters are not acceptable to this version of the encoder, <em>buf</em> is <code>NULL</code> and <em>buf_sz</em> is not zero, or <em>buf</em> is non-<code>NULL</code> and <em>buf_sz</em> is not <code>sizeof(<a class="el" href="structth__quant__info.html" title="A complete set of quantization parameters.">th_quant_info</a>)</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_IMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gabd9fbcb6a25a77d991d3620164fe59d6"></a><!-- doxytag: member="theora.h::TH_ENCCTL_SET_SPLEVEL" ref="gabd9fbcb6a25a77d991d3620164fe59d6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_SPLEVEL&nbsp;&nbsp;&nbsp;(14)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the speed level. </p>
+<p>By default a speed value of 1 is used.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>buf</em>&nbsp;</td><td>int: The new encoding speed level. 0 is slowest, larger values use less CPU. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OC_FAULT</em>&nbsp;</td><td><em><a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a></em> or <em>buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_EINVAL</em>&nbsp;</td><td><em>buf_sz</em> is not <code>sizeof(int)</code>, or the encoding speed level is out of bounds. The maximum encoding speed level may be implementation- and encoding mode-specific, and can be obtained via <a class="el" href="theoraenc_8h.html#a9baf5bdd206e80c78a8fd44687e89783" title="Gets the maximum speed level.">TH_ENCCTL_GET_SPLEVEL_MAX</a>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_IMPL</em>&nbsp;</td><td>Not supported by this implementation in the current encoding mode. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga382d685a39a34d8e6ba76b00d804efd8"></a><!-- doxytag: member="theora.h::TH_ENCCTL_SET_VP3_COMPATIBLE" ref="ga382d685a39a34d8e6ba76b00d804efd8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_VP3_COMPATIBLE&nbsp;&nbsp;&nbsp;(10)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Disables any encoder features that would prevent lossless transcoding back to VP3. </p>
+<p>This primarily means disabling block-level QI values and not using 4MV mode when any of the luma blocks in a macro block are not coded. It also includes using the VP3 quantization tables and Huffman codes; if you set them explicitly after calling this function, the resulting stream will not be VP3-compatible. If you enable VP3-compatibility when encoding 4:2:2 or 4:4:4 source material, or when using a picture region smaller than the full frame (e.g. a non-multiple-of-16 width or height), then non-VP3 bitstream features will still be disabled, but the stream will still not be VP3-compatible, as VP3 was not capable of encoding such formats. If you call this after encoding has already begun, then the quantization tables and codebooks cannot be changed, but the frame-level features will be enabled or disabled as requested.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>buf</em>&nbsp;</td><td><code>int</code>: a non-zero value to enable VP3 compatibility, or 0 to disable it (the default). </td></tr>
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>buf</em>&nbsp;</td><td><code>int</code>: 1 if all bitstream features required for VP3-compatibility could be set, and 0 otherwise. The latter will be returned if the pixel format is not 4:2:0, the picture region is smaller than the full frame, or if encoding has begun, preventing the quantization tables and codebooks from being set. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OC_FAULT</em>&nbsp;</td><td><em><a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a></em> or <em>buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_EINVAL</em>&nbsp;</td><td><em>buf_sz</em> is not <code>sizeof(int)</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_IMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Enumeration Type Documentation</h2>
+<a class="anchor" id="gaa567da4ce591f7373149ce3ef3acdac9"></a><!-- doxytag: member="theora.h::theora_colorspace" ref="gaa567da4ce591f7373149ce3ef3acdac9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__oldfuncs.html#gaa567da4ce591f7373149ce3ef3acdac9">theora_colorspace</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>A Colorspace. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggaa567da4ce591f7373149ce3ef3acdac9abf217cf83d7d7cbf73295e6689f5cf5f"></a><!-- doxytag: member="OC_CS_UNSPECIFIED" ref="ggaa567da4ce591f7373149ce3ef3acdac9abf217cf83d7d7cbf73295e6689f5cf5f" args="" -->OC_CS_UNSPECIFIED</em>&nbsp;</td><td>
+<p>The colorspace is unknown or unspecified. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaa567da4ce591f7373149ce3ef3acdac9ab20c9851a21ab148fef0bf2c00c0a294"></a><!-- doxytag: member="OC_CS_ITU_REC_470M" ref="ggaa567da4ce591f7373149ce3ef3acdac9ab20c9851a21ab148fef0bf2c00c0a294" args="" -->OC_CS_ITU_REC_470M</em>&nbsp;</td><td>
+<p>This is the best option for 'NTSC' content. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaa567da4ce591f7373149ce3ef3acdac9a04f8fa2da26f9ec513f514163705666a"></a><!-- doxytag: member="OC_CS_ITU_REC_470BG" ref="ggaa567da4ce591f7373149ce3ef3acdac9a04f8fa2da26f9ec513f514163705666a" args="" -->OC_CS_ITU_REC_470BG</em>&nbsp;</td><td>
+<p>This is the best option for 'PAL' content. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaa567da4ce591f7373149ce3ef3acdac9a640b572f11fa7102d434e1c605aaa186"></a><!-- doxytag: member="OC_CS_NSPACES" ref="ggaa567da4ce591f7373149ce3ef3acdac9a640b572f11fa7102d434e1c605aaa186" args="" -->OC_CS_NSPACES</em>&nbsp;</td><td>
+<p>This marks the end of the defined colorspaces. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gae169da05bfaaf4e964a6866552d45079"></a><!-- doxytag: member="theora.h::theora_pixelformat" ref="gae169da05bfaaf4e964a6866552d45079" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__oldfuncs.html#gae169da05bfaaf4e964a6866552d45079">theora_pixelformat</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>A Chroma subsampling. </p>
+<p>These enumerate the available chroma subsampling options supported by the theora format. See Section 4.4 of the specification for exact definitions. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggae169da05bfaaf4e964a6866552d45079a4e451af01be2645511b0e431f5225d2b"></a><!-- doxytag: member="OC_PF_420" ref="ggae169da05bfaaf4e964a6866552d45079a4e451af01be2645511b0e431f5225d2b" args="" -->OC_PF_420</em>&nbsp;</td><td>
+<p>Chroma subsampling by 2 in each direction (4:2:0). </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggae169da05bfaaf4e964a6866552d45079a7d21c63341ad299766839c83ed1216eb"></a><!-- doxytag: member="OC_PF_RSVD" ref="ggae169da05bfaaf4e964a6866552d45079a7d21c63341ad299766839c83ed1216eb" args="" -->OC_PF_RSVD</em>&nbsp;</td><td>
+<p>Reserved value. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggae169da05bfaaf4e964a6866552d45079a36a88c55b7ddd5aedeac2d61d57fee5b"></a><!-- doxytag: member="OC_PF_422" ref="ggae169da05bfaaf4e964a6866552d45079a36a88c55b7ddd5aedeac2d61d57fee5b" args="" -->OC_PF_422</em>&nbsp;</td><td>
+<p>Horizonatal chroma subsampling by 2 (4:2:2). </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggae169da05bfaaf4e964a6866552d45079a1d5c6d1b0365e06b4a87880b7825f044"></a><!-- doxytag: member="OC_PF_444" ref="ggae169da05bfaaf4e964a6866552d45079a1d5c6d1b0365e06b4a87880b7825f044" args="" -->OC_PF_444</em>&nbsp;</td><td>
+<p>No chroma subsampling at all (4:4:4). </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="gab252d5d81b925136dda72e8f1c09c5eb"></a><!-- doxytag: member="theora.h::theora_clear" ref="gab252d5d81b925136dda72e8f1c09c5eb" args="(theora_state *t)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void theora_clear </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__state.html">theora_state</a> *&nbsp;</td>
+          <td class="paramname"> <em>t</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Free all internal data associated with a <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>A <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga650642ed23894e41109bbc42ec393ed4"></a><!-- doxytag: member="theora.h::theora_comment_add" ref="ga650642ed23894e41109bbc42ec393ed4" args="(theora_comment *tc, char *comment)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void theora_comment_add </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__comment.html">theora_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>tc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&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 to an initialized <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>tc</em>&nbsp;</td><td>A previously initialized theora comment structure </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>comment</em>&nbsp;</td><td>A null-terminated string encoding the comment in the form "TAG=the value"</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>Neither <a class="el" href="group__oldfuncs.html#ga650642ed23894e41109bbc42ec393ed4" title="Add a comment to an initialized theora_comment structure.">theora_comment_add()</a> nor <a class="el" href="group__oldfuncs.html#ga339bd80b5bf4bb168b7052d8ec0b5a92" title="Add a comment to an initialized theora_comment structure.">theora_comment_add_tag()</a> support comments containing null values, although the bitstream format supports this. To add such comments you will need to manipulate the <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure directly. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga339bd80b5bf4bb168b7052d8ec0b5a92"></a><!-- doxytag: member="theora.h::theora_comment_add_tag" ref="ga339bd80b5bf4bb168b7052d8ec0b5a92" args="(theora_comment *tc, char *tag, char *value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void theora_comment_add_tag </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__comment.html">theora_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>tc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>tag</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">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 to an initialized <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>tc</em>&nbsp;</td><td>A previously initialized theora comment structure </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>tag</em>&nbsp;</td><td>A null-terminated string containing the tag associated with the comment. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The corresponding value as a null-terminated string</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>Neither <a class="el" href="group__oldfuncs.html#ga650642ed23894e41109bbc42ec393ed4" title="Add a comment to an initialized theora_comment structure.">theora_comment_add()</a> nor <a class="el" href="group__oldfuncs.html#ga339bd80b5bf4bb168b7052d8ec0b5a92" title="Add a comment to an initialized theora_comment structure.">theora_comment_add_tag()</a> support comments containing null values, although the bitstream format supports this. To add such comments you will need to manipulate the <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure directly. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga04c07c2eefba3a433e43f9fbde14719f"></a><!-- doxytag: member="theora.h::theora_comment_clear" ref="ga04c07c2eefba3a433e43f9fbde14719f" args="(theora_comment *tc)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void theora_comment_clear </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__comment.html">theora_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>tc</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Clear an allocated <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> struct so that it can be freed. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>tc</em>&nbsp;</td><td>An allocated <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga811b92785df3bdbbebb3de612d9d6ce0"></a><!-- doxytag: member="theora.h::theora_comment_init" ref="ga811b92785df3bdbbebb3de612d9d6ce0" args="(theora_comment *tc)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void theora_comment_init </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__comment.html">theora_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>tc</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Initialize an allocated <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>tc</em>&nbsp;</td><td>An allocated <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4361f6001abb5c83c36a2ddfb648a8dc"></a><!-- doxytag: member="theora.h::theora_comment_query" ref="ga4361f6001abb5c83c36a2ddfb648a8dc" args="(theora_comment *tc, char *tag, int count)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* theora_comment_query </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__comment.html">theora_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>tc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>tag</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>count</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Look up a comment value by tag. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>tc</em>&nbsp;</td><td>Tn initialized <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>tag</em>&nbsp;</td><td>The tag to look up </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td>The instance of the tag. The same tag can appear multiple times, each with a distinct and ordered value, so an index is required to retrieve them all. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the queried tag's value </dd></dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>No matching tag is found</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="note"><dt><b>Note:</b></dt><dd>Use <a class="el" href="group__oldfuncs.html#ga10f66a3c752442a3e0c0098e0f88df8b" title="Look up the number of instances of a tag.">theora_comment_query_count()</a> to get the legal range for the count parameter. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga10f66a3c752442a3e0c0098e0f88df8b"></a><!-- doxytag: member="theora.h::theora_comment_query_count" ref="ga10f66a3c752442a3e0c0098e0f88df8b" args="(theora_comment *tc, char *tag)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_comment_query_count </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__comment.html">theora_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>tc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>tag</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Look up the number of instances of a tag. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>tc</em>&nbsp;</td><td>An initialized <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>tag</em>&nbsp;</td><td>The tag to look up </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The number on instances of a particular tag.</dd></dl>
+<p>Call this first when querying for a specific tag and then interate over the number of instances with separate calls to <a class="el" href="group__oldfuncs.html#ga4361f6001abb5c83c36a2ddfb648a8dc" title="Look up a comment value by tag.">theora_comment_query()</a> to retrieve all instances in order. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga186773db3bc8cd550047e7df1b2ba2c9"></a><!-- doxytag: member="theora.h::theora_control" ref="ga186773db3bc8cd550047e7df1b2ba2c9" args="(theora_state *th, int req, void *buf, size_t buf_sz)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_control </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__state.html">theora_state</a> *&nbsp;</td>
+          <td class="paramname"> <em>th</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>req</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&nbsp;</td>
+          <td class="paramname"> <em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>buf_sz</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Encoder control function. </p>
+<p>This is used to provide advanced control the encoding process. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>th</em>&nbsp;</td><td>A <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>req</em>&nbsp;</td><td>The control code to process. See <a class="el" href="group__oldfuncs.html#encctlcodes_old">the list of available </a> control codes for details. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>The parameters for this control code. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>buf_sz</em>&nbsp;</td><td>The size of the parameter buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga02915e63c1bd733ee291f577a8b75a82"></a><!-- doxytag: member="theora.h::theora_decode_header" ref="ga02915e63c1bd733ee291f577a8b75a82" args="(theora_info *ci, theora_comment *cc, ogg_packet *op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_decode_header </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__info.html">theora_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>ci</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structtheora__comment.html">theora_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>cc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>op</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Decode an Ogg packet, with the expectation that the packet contains an initial header, comment data or codebook tables. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ci</em>&nbsp;</td><td>A <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> structure to fill. This must have been previously initialized with <a class="el" href="group__oldfuncs.html#ga3091c87d48f1faba018c5956379a6d90" title="Initialize a theora_info structure.">theora_info_init()</a>. If <em>op</em> contains an initial header, <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header()</a> will fill <em>ci</em> with the parsed header values. If <em>op</em> contains codebook tables, <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header()</a> will parse these and attach an internal representation to <em>ci-&gt;co
 dec_setup</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>cc</em>&nbsp;</td><td>A <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure to fill. If <em>op</em> contains comment data, <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header()</a> will fill <em>cc</em> with the parsed comments. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>An ogg_packet structure which you expect contains an initial header, comment data or codebook tables.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OC_BADHEADER</em>&nbsp;</td><td><em>op</em> is NULL; OR the first byte of <em>op-&gt;packet</em> has the signature of an initial packet, but op is not a b_o_s packet; OR this packet has the signature of an initial header packet, but an initial header packet has already been seen; OR this packet has the signature of a comment packet, but the initial header has not yet been seen; OR this packet has the signature of a comment packet, but contains invalid data; OR this packet has the signature of codebook tables, but the initial header or comments have not yet been seen; OR this packet has the signature of codebook tables, but contains invalid data; OR the stream being decoded has a compatible version but this packet does not have the signature of a theora initial header, comments, or codebook packet </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_VERSION</em>&nbsp;</td><td>The packet data of <em>op</em> is an initial header with a version which is incompatible with this version of libtheora. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_NEWPACKET</em>&nbsp;</td><td>the stream being decoded has an incompatible (future) version and contains an unknown signature. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="note"><dt><b>Note:</b></dt><dd>The normal usage is that <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header()</a> be called on the first three packets of a theora logical bitstream in succession. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga264907c66003799ff77ecbd09eb33d2c"></a><!-- doxytag: member="theora.h::theora_decode_init" ref="ga264907c66003799ff77ecbd09eb33d2c" args="(theora_state *th, theora_info *c)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_decode_init </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__state.html">theora_state</a> *&nbsp;</td>
+          <td class="paramname"> <em>th</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structtheora__info.html">theora_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>c</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Initialize a <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle for decoding. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>th</em>&nbsp;</td><td>The <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle to initialize. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>A <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> struct filled with the desired decoding parameters. This is of course usually obtained from a previous call to <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header()</a>. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa65a9e53b46fd54ab344bd599fa96975"></a><!-- doxytag: member="theora.h::theora_decode_packetin" ref="gaa65a9e53b46fd54ab344bd599fa96975" args="(theora_state *th, ogg_packet *op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_decode_packetin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__state.html">theora_state</a> *&nbsp;</td>
+          <td class="paramname"> <em>th</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>op</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 a packet containing encoded data into the theora decoder. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>th</em>&nbsp;</td><td>A <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle previously initialized for decoding. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>An ogg_packet containing encoded theora data. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>OC_BADPACKET</em>&nbsp;</td><td><em>op</em> does not contain encoded video data </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga09d47c80e1e94bff0a46a496816b8daa"></a><!-- doxytag: member="theora.h::theora_decode_YUVout" ref="ga09d47c80e1e94bff0a46a496816b8daa" args="(theora_state *th, yuv_buffer *yuv)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_decode_YUVout </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__state.html">theora_state</a> *&nbsp;</td>
+          <td class="paramname"> <em>th</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structyuv__buffer.html">yuv_buffer</a> *&nbsp;</td>
+          <td class="paramname"> <em>yuv</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 the next available frame of decoded YUV data. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>th</em>&nbsp;</td><td>A <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle previously initialized for decoding. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>yuv</em>&nbsp;</td><td>A <a class="el" href="structyuv__buffer.html" title="A YUV buffer for passing uncompressed frames to and from the codec.">yuv_buffer</a> in which libtheora should place the decoded data. Note that the buffer struct itself is allocated by the user, but that the luma and chroma pointers will be filled in by the library. Also note that these luma and chroma regions should be considered read-only by the user. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga45e8db0713eaaca0f1144f3724cb834a"></a><!-- doxytag: member="theora.h::theora_encode_comment" ref="ga45e8db0713eaaca0f1144f3724cb834a" args="(theora_comment *tc, ogg_packet *op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_encode_comment </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__comment.html">theora_comment</a> *&nbsp;</td>
+          <td class="paramname"> <em>tc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>op</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Request a comment header packet from provided metadata. </p>
+<p>A pointer to the comment data is placed in a user-provided ogg_packet structure. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>tc</em>&nbsp;</td><td>A <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure filled with the desired metadata </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>An ogg_packet structure to fill. libtheora will set all elements of this structure, including a pointer to the encoded comment data. The memory for the comment data is owned by libtheora. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga451feb58d6bde726edbae193689887be"></a><!-- doxytag: member="theora.h::theora_encode_header" ref="ga451feb58d6bde726edbae193689887be" args="(theora_state *t, ogg_packet *op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_encode_header </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__state.html">theora_state</a> *&nbsp;</td>
+          <td class="paramname"> <em>t</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>op</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Request a packet containing the initial header. </p>
+<p>A pointer to the header data is placed in a user-provided ogg_packet structure. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>A <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle previously initialized for encoding. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>An ogg_packet structure to fill. libtheora will set all elements of this structure, including a pointer to the header data. The memory for the header data is owned by libtheora. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0f7ad4d4b2343278cb4ba8fb2bd5109a"></a><!-- doxytag: member="theora.h::theora_encode_init" ref="ga0f7ad4d4b2343278cb4ba8fb2bd5109a" args="(theora_state *th, theora_info *ti)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_encode_init </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__state.html">theora_state</a> *&nbsp;</td>
+          <td class="paramname"> <em>th</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structtheora__info.html">theora_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>ti</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Initialize the theora encoder. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>th</em>&nbsp;</td><td>The <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle to initialize for encoding. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>ti</em>&nbsp;</td><td>A <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> struct filled with the desired encoding parameters. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5f4929677a735bc2198c2309d235f1b3"></a><!-- doxytag: member="theora.h::theora_encode_packetout" ref="ga5f4929677a735bc2198c2309d235f1b3" args="(theora_state *t, int last_p, ogg_packet *op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_encode_packetout </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__state.html">theora_state</a> *&nbsp;</td>
+          <td class="paramname"> <em>t</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>last_p</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>op</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Request the next packet of encoded video. </p>
+<p>The encoded data is placed in a user-provided ogg_packet structure. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>A <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle previously initialized for encoding. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>last_p</em>&nbsp;</td><td>whether this is the last packet the encoder should produce. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>An ogg_packet structure to fill. libtheora will set all elements of this structure, including a pointer to encoded data. The memory for the encoded data is owned by libtheora. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>No internal storage exists OR no packet is ready </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>-1</em>&nbsp;</td><td>The encoding process has completed </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>1</em>&nbsp;</td><td>Success </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5085baf20855b283fa01fc948505d9d2"></a><!-- doxytag: member="theora.h::theora_encode_tables" ref="ga5085baf20855b283fa01fc948505d9d2" args="(theora_state *t, ogg_packet *op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_encode_tables </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__state.html">theora_state</a> *&nbsp;</td>
+          <td class="paramname"> <em>t</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>op</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Request a packet containing the codebook tables for the stream. </p>
+<p>A pointer to the codebook data is placed in a user-provided ogg_packet structure. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>A <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle previously initialized for encoding. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>An ogg_packet structure to fill. libtheora will set all elements of this structure, including a pointer to the codebook data. The memory for the header data is owned by libtheora. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gac0d33d896ca70cedfc94c5986d947078"></a><!-- doxytag: member="theora.h::theora_encode_YUVin" ref="gac0d33d896ca70cedfc94c5986d947078" args="(theora_state *t, yuv_buffer *yuv)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_encode_YUVin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__state.html">theora_state</a> *&nbsp;</td>
+          <td class="paramname"> <em>t</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structyuv__buffer.html">yuv_buffer</a> *&nbsp;</td>
+          <td class="paramname"> <em>yuv</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Submit a YUV buffer to the theora encoder. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>A <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle previously initialized for encoding. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>yuv</em>&nbsp;</td><td>A buffer of YUV data to encode. Note that both the <a class="el" href="structyuv__buffer.html" title="A YUV buffer for passing uncompressed frames to and from the codec.">yuv_buffer</a> struct and the luma/chroma buffers within should be allocated by the user. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OC_EINVAL</em>&nbsp;</td><td>Encoder is not ready, or is finished. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>-1</em>&nbsp;</td><td>The size of the given frame differs from those previously input </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7bfa3ceb2fb4b41a282456c56e1dd269"></a><!-- doxytag: member="theora.h::theora_granule_frame" ref="ga7bfa3ceb2fb4b41a282456c56e1dd269" args="(theora_state *th, ogg_int64_t granulepos)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_int64_t theora_granule_frame </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__state.html">theora_state</a> *&nbsp;</td>
+          <td class="paramname"> <em>th</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_int64_t&nbsp;</td>
+          <td class="paramname"> <em>granulepos</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Convert a granulepos to an absolute frame index, starting at 0. </p>
+<p>The granulepos is interpreted in the context of a given <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle.</p>
+<p>Note that while the granulepos encodes the frame count (i.e. starting from 1) this call returns the frame index, starting from zero. Thus One can calculate the presentation time by multiplying the index by the rate.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>th</em>&nbsp;</td><td>A previously initialized <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle (encode or decode) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>granulepos</em>&nbsp;</td><td>The granulepos to convert. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The frame index corresponding to <em>granulepos</em>. </dd></dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>-1</em>&nbsp;</td><td>The given granulepos is undefined (i.e. negative)</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>Thus function was added in the 1.0alpha4 release. </p>
+
+</div>
+</div>
+<a class="anchor" id="gacd9360e6a47139c761002410af457a02"></a><!-- doxytag: member="theora.h::theora_granule_shift" ref="gacd9360e6a47139c761002410af457a02" args="(theora_info *ti)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_granule_shift </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__info.html">theora_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>ti</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Report the granulepos shift radix. </p>
+<p>When embedded in Ogg, Theora uses a two-part granulepos, splitting the 64-bit field into two pieces. The more-significant section represents the frame count at the last keyframe, and the less-significant section represents the count of frames since the last keyframe. In this way the overall field is still non-decreasing with time, but usefully encodes a pointer to the last keyframe, which is necessary for correctly restarting decode after a seek.</p>
+<p>This function reports the number of bits used to represent the distance to the last keyframe, and thus how the granulepos field must be shifted or masked to obtain the two parts.</p>
+<p>Since libtheora returns compressed data in an ogg_packet structure, this may be generally useful even if the Theora packets are not being used in an Ogg container.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ti</em>&nbsp;</td><td>A previously initialized <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> struct </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The bit shift dividing the two granulepos fields</dd></dl>
+<p>This function was added in the 1.0alpha5 release. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4376358b12b9fa23ce6fe21cb5c65ac6"></a><!-- doxytag: member="theora.h::theora_granule_time" ref="ga4376358b12b9fa23ce6fe21cb5c65ac6" args="(theora_state *th, ogg_int64_t granulepos)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double theora_granule_time </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__state.html">theora_state</a> *&nbsp;</td>
+          <td class="paramname"> <em>th</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ogg_int64_t&nbsp;</td>
+          <td class="paramname"> <em>granulepos</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Convert a granulepos to absolute time in seconds. </p>
+<p>The granulepos is interpreted in the context of a given <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle, and gives the end time of a frame's presentation as used in Ogg mux ordering.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>th</em>&nbsp;</td><td>A previously initialized <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle (encode or decode) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>granulepos</em>&nbsp;</td><td>The granulepos to convert. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The absolute time in seconds corresponding to <em>granulepos</em>. This is the "end time" for the frame, or the latest time it should be displayed. It is not the presentation time. </dd></dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>-1.</em>&nbsp;</td><td>The given granulepos is undefined (i.e. negative), or </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>-1.</em>&nbsp;</td><td>The function has been disabled because floating point support is not available. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gaba7022d58edbc4825cacad03f68b3e0d"></a><!-- doxytag: member="theora.h::theora_info_clear" ref="gaba7022d58edbc4825cacad03f68b3e0d" args="(theora_info *c)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void theora_info_clear </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__info.html">theora_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>c</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Clear a <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> structure. </p>
+<p>All values within the given <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> structure are cleared, and associated internal codec setup data is freed. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>A <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> struct to initialize. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3091c87d48f1faba018c5956379a6d90"></a><!-- doxytag: member="theora.h::theora_info_init" ref="ga3091c87d48f1faba018c5956379a6d90" args="(theora_info *c)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void theora_info_init </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structtheora__info.html">theora_info</a> *&nbsp;</td>
+          <td class="paramname"> <em>c</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Initialize a <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> structure. </p>
+<p>All values within the given <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> structure are initialized, and space is allocated within libtheora for internal codec setup data. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>A <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> struct to initialize. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gab969f9d0407683f0e5abe73d0839a25b"></a><!-- doxytag: member="theora.h::theora_packet_isheader" ref="gab969f9d0407683f0e5abe73d0839a25b" args="(ogg_packet *op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_packet_isheader </td>
+          <td>(</td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>op</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Report whether a theora packet is a header or not This function does no verification beyond checking the header flag bit so it should not be used for bitstream identification; use <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header()</a> for that. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>An ogg_packet containing encoded theora data. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>1</em>&nbsp;</td><td>The packet is a header packet </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>The packet is not a header packet (and so contains frame data)</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>Thus function was added in the 1.0alpha4 release. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga39ccc8f847a748d7074c926b4fdd12b2"></a><!-- doxytag: member="theora.h::theora_packet_iskeyframe" ref="ga39ccc8f847a748d7074c926b4fdd12b2" args="(ogg_packet *op)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int theora_packet_iskeyframe </td>
+          <td>(</td>
+          <td class="paramtype">ogg_packet *&nbsp;</td>
+          <td class="paramname"> <em>op</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Report whether a theora packet is a keyframe or not. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>An ogg_packet containing encoded theora data. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>1</em>&nbsp;</td><td>The packet contains a keyframe image </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>The packet is contains an interframe delta </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>-1</em>&nbsp;</td><td>The packet is not an image data packet at all</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>Thus function was added in the 1.0alpha4 release. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad181f4b19d455dcc2bef2533530b84c8"></a><!-- doxytag: member="theora.h::theora_version_number" ref="gad181f4b19d455dcc2bef2533530b84c8" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t theora_version_number </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>Retrieve a 32-bit version number. </p>
+<p>This number is composed of a 16-bit major version, 8-bit minor version and 8 bit sub-version, composed as follows: </p>
+<pre>
+   (VERSION_MAJOR&lt;&lt;16) + (VERSION_MINOR&lt;&lt;8) + (VERSION_SUB)
+</pre> <dl class="return"><dt><b>Returns:</b></dt><dd>The version number. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5a3da8fd262a60f055f96536eec06df2"></a><!-- doxytag: member="theora.h::theora_version_string" ref="ga5a3da8fd262a60f055f96536eec06df2" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* theora_version_string </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>Retrieve a human-readable string to identify the encoder vendor and version. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A version string. </dd></dl>
+
+</div>
+</div>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/index.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/index.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/index.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Main Page</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>libtheora Documentation</h1><h3>1.1.0 </h3><h2><a class="anchor" id="intro">
+Introduction</a></h2>
+<p>This is the documentation for <code>libtheora</code> C API. The current reference implementation for <a href="http://www.theora.org/">Theora</a>, a free, patent-unencumbered video codec. Theora is derived from On2's VP3 codec with additional features and integration with Ogg multimedia formats by <a href="http://www.xiph.org/">the Xiph.Org Foundation</a>. Complete documentation of the format itself is available in <a href="http://www.theora.org/doc/Theora.pdf">the Theora specification</a>.</p>
+<h3><a class="anchor" id="Organization">
+Organization</a></h3>
+<p>The functions documented here are actually subdivided into three separate libraries:</p>
+<ul>
+<li><code>libtheoraenc</code> contains the encoder interface, described in <a class="el" href="group__encfuncs.html">Functions for Encoding</a>.</li>
+<li><code>libtheoradec</code> contains the decoder interface and routines shared with the encoder. You must also link to this if you link to <code>libtheoraenc</code>. The routines in this library are described in <a class="el" href="group__decfuncs.html">Functions for Decoding</a> and <a class="el" href="group__basefuncs.html">Functions Shared by Encode and Decode</a>.</li>
+<li><code>libtheora</code> contains the <a class="el" href="group__oldfuncs.html">Legacy pre-1.0 C API</a>.</li>
+</ul>
+<p>New code should link to <code>libtheoradec</code> and, if using encoder features, <code>libtheoraenc</code>. Together these two export both the standard and the legacy API, so this is all that is needed by any code. The older <code>libtheora</code> library is provided just for compatibility with older build configurations.</p>
+<p>In general the recommended 1.x API symbols can be distinguished by their <code>th_</code> or <code>TH_</code> namespace prefix. The older, legacy API uses <code>theora_</code> or <code>OC_</code> prefixes instead. </p>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/modules.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/modules.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/modules.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: Module Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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__basefuncs.html">Functions Shared by Encode and Decode</a></li>
+<li><a class="el" href="group__oldfuncs.html">Legacy pre-1.0 C API</a></li>
+<li><a class="el" href="group__decfuncs.html">Functions for Decoding</a></li>
+<li><a class="el" href="group__encfuncs.html">Functions for Encoding</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/structth__comment.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/structth__comment.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/structth__comment.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: th_comment Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>th_comment Struct Reference</h1><!-- doxytag: class="th_comment" -->
+<p>The comment information.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="codec_8h_source.html">codec.h</a>&gt;</code></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">char **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__comment.html#ad72830e183e707bb0df423eb73b00de4">user_comments</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The array of comment string vectors.  <a href="#ad72830e183e707bb0df423eb73b00de4"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__comment.html#a723dc6fdf75757e70e28eea864b10898">comment_lengths</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An array of the corresponding length of each vector, in bytes.  <a href="#a723dc6fdf75757e70e28eea864b10898"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__comment.html#a5990c34932376f070ad0fc314daaeb78">comments</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The total number of comment strings.  <a href="#a5990c34932376f070ad0fc314daaeb78"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__comment.html#a93fbe894d23603f56843be15b0cbdba0">vendor</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The null-terminated vendor string.  <a href="#a93fbe894d23603f56843be15b0cbdba0"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The comment information. </p>
+<p>This structure holds the in-stream metadata corresponding to the 'comment' header packet. The comment header is meant to be used much like someone jotting a quick note on the label of a video. It should be a short, to the point text note that can be more than a couple words, but not more than a short paragraph.</p>
+<p>The metadata is stored as a series of (tag, value) pairs, in length-encoded string vectors. The first occurrence of the '=' character delimits the tag and value. A particular tag may occur more than once, and order is significant. The character set encoding for the strings is always UTF-8, but the tag names are limited to ASCII, and treated as case-insensitive. See <a href="http://www.theora.org/doc/Theora.pdf">the Theora specification</a>, Section 6.3.3 for details.</p>
+<p>In filling in this structure, <a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50" title="Decodes the header packets of a Theora stream.">th_decode_headerin()</a> will null-terminate the user_comment strings for safety. However, the bitstream format itself treats them as 8-bit clean vectors, possibly containing null characters, and so the length array should be treated as their authoritative length. </p>
+<hr/><h2>Field Documentation</h2>
+<a class="anchor" id="a723dc6fdf75757e70e28eea864b10898"></a><!-- doxytag: member="th_comment::comment_lengths" ref="a723dc6fdf75757e70e28eea864b10898" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int* <a class="el" href="structth__comment.html#a723dc6fdf75757e70e28eea864b10898">th_comment::comment_lengths</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>An array of the corresponding length of each vector, in bytes. </p>
+
+</div>
+</div>
+<a class="anchor" id="a5990c34932376f070ad0fc314daaeb78"></a><!-- doxytag: member="th_comment::comments" ref="a5990c34932376f070ad0fc314daaeb78" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structth__comment.html#a5990c34932376f070ad0fc314daaeb78">th_comment::comments</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The total number of comment strings. </p>
+
+</div>
+</div>
+<a class="anchor" id="ad72830e183e707bb0df423eb73b00de4"></a><!-- doxytag: member="th_comment::user_comments" ref="ad72830e183e707bb0df423eb73b00de4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char** <a class="el" href="structth__comment.html#ad72830e183e707bb0df423eb73b00de4">th_comment::user_comments</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The array of comment string vectors. </p>
+
+</div>
+</div>
+<a class="anchor" id="a93fbe894d23603f56843be15b0cbdba0"></a><!-- doxytag: member="th_comment::vendor" ref="a93fbe894d23603f56843be15b0cbdba0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* <a class="el" href="structth__comment.html#a93fbe894d23603f56843be15b0cbdba0">th_comment::vendor</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The null-terminated vendor string. </p>
+<p>This identifies the software used to encode the stream. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="codec_8h_source.html">codec.h</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/structth__huff__code.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/structth__huff__code.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/structth__huff__code.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: th_huff_code Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>th_huff_code Struct Reference</h1><!-- doxytag: class="th_huff_code" -->
+<p>A Huffman code for a Theora DCT token.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="codec_8h_source.html">codec.h</a>&gt;</code></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__huff__code.html#a6dd29e3aa5a0c5a2dd5ce1f45b1162b4">pattern</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The bit pattern for the code, with the LSbit of the pattern aligned in the LSbit of the word.  <a href="#a6dd29e3aa5a0c5a2dd5ce1f45b1162b4"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__huff__code.html#aaf97b8f2f90042f7bc136a7b2bc35e35">nbits</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The number of bits in the code.  <a href="#aaf97b8f2f90042f7bc136a7b2bc35e35"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>A Huffman code for a Theora DCT token. </p>
+<p>Each set of Huffman codes in a given table must form a complete, prefix-free code. There is no requirement that all the tokens in a table have a valid code, but the current encoder is not optimized to take advantage of this. If each of the five grouops of 16 tables does not contain at least one table with a code for every token, then the encoder may fail to encode certain frames. The complete table in the first group of 16 does not have to be in the same place as the complete table in the other groups, but the complete tables in the remaining four groups must all be in the same place. </p>
+<hr/><h2>Field Documentation</h2>
+<a class="anchor" id="aaf97b8f2f90042f7bc136a7b2bc35e35"></a><!-- doxytag: member="th_huff_code::nbits" ref="aaf97b8f2f90042f7bc136a7b2bc35e35" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structth__huff__code.html#aaf97b8f2f90042f7bc136a7b2bc35e35">th_huff_code::nbits</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The number of bits in the code. </p>
+<p>This must be between 0 and 32, inclusive. </p>
+
+</div>
+</div>
+<a class="anchor" id="a6dd29e3aa5a0c5a2dd5ce1f45b1162b4"></a><!-- doxytag: member="th_huff_code::pattern" ref="a6dd29e3aa5a0c5a2dd5ce1f45b1162b4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structth__huff__code.html#a6dd29e3aa5a0c5a2dd5ce1f45b1162b4">th_huff_code::pattern</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The bit pattern for the code, with the LSbit of the pattern aligned in the LSbit of the word. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="codec_8h_source.html">codec.h</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/structth__img__plane.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/structth__img__plane.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/structth__img__plane.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: th_img_plane Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>th_img_plane Struct Reference</h1><!-- doxytag: class="th_img_plane" -->
+<p>A buffer for a single color plane in an uncompressed image.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="codec_8h_source.html">codec.h</a>&gt;</code></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__img__plane.html#a58cc297a99cd4594c3d30e56f2ed6b74">width</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The width of this plane.  <a href="#a58cc297a99cd4594c3d30e56f2ed6b74"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__img__plane.html#a21aea1367894468de489d529d7eaf44d">height</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The height of this plane.  <a href="#a21aea1367894468de489d529d7eaf44d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__img__plane.html#ab1100f071ffee3b37e07e3222f819bad">stride</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The offset in bytes between successive rows.  <a href="#ab1100f071ffee3b37e07e3222f819bad"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__img__plane.html#af8133681516ce88b5a201c1b4b7e6ba2">data</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A pointer to the beginning of the first row.  <a href="#af8133681516ce88b5a201c1b4b7e6ba2"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>A buffer for a single color plane in an uncompressed image. </p>
+<p>This contains the image data in a left-to-right, top-down format. Each row of pixels is stored contiguously in memory, but successive rows need not be. Use <em>stride</em> to compute the offset of the next row. The encoder accepts both positive <em>stride</em> values (top-down in memory) and negative (bottom-up in memory). The decoder currently always generates images with positive strides. </p>
+<hr/><h2>Field Documentation</h2>
+<a class="anchor" id="af8133681516ce88b5a201c1b4b7e6ba2"></a><!-- doxytag: member="th_img_plane::data" ref="af8133681516ce88b5a201c1b4b7e6ba2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned char* <a class="el" href="structth__img__plane.html#af8133681516ce88b5a201c1b4b7e6ba2">th_img_plane::data</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>A pointer to the beginning of the first row. </p>
+
+</div>
+</div>
+<a class="anchor" id="a21aea1367894468de489d529d7eaf44d"></a><!-- doxytag: member="th_img_plane::height" ref="a21aea1367894468de489d529d7eaf44d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structth__img__plane.html#a21aea1367894468de489d529d7eaf44d">th_img_plane::height</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The height of this plane. </p>
+
+</div>
+</div>
+<a class="anchor" id="ab1100f071ffee3b37e07e3222f819bad"></a><!-- doxytag: member="th_img_plane::stride" ref="ab1100f071ffee3b37e07e3222f819bad" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structth__img__plane.html#ab1100f071ffee3b37e07e3222f819bad">th_img_plane::stride</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The offset in bytes between successive rows. </p>
+
+</div>
+</div>
+<a class="anchor" id="a58cc297a99cd4594c3d30e56f2ed6b74"></a><!-- doxytag: member="th_img_plane::width" ref="a58cc297a99cd4594c3d30e56f2ed6b74" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structth__img__plane.html#a58cc297a99cd4594c3d30e56f2ed6b74">th_img_plane::width</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The width of this plane. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="codec_8h_source.html">codec.h</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/structth__info.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/structth__info.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/structth__info.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,358 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: th_info Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>th_info Struct Reference</h1><!-- doxytag: class="th_info" -->
+<p>Theora bitstream information.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="codec_8h_source.html">codec.h</a>&gt;</code></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a6b8087a4d831da53011a43b8d74087a0">frame_width</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The encoded frame width.  <a href="#a6b8087a4d831da53011a43b8d74087a0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a6b1adc3a16a8336a72692b0a5937214c">frame_height</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The encoded frame height.  <a href="#a6b1adc3a16a8336a72692b0a5937214c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a5048edf77b141dd3e9a92ca85e317345">pic_width</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The displayed picture width.  <a href="#a5048edf77b141dd3e9a92ca85e317345"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a775178474283c5990ba73f9ba7f6b88b">pic_height</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The displayed picture height.  <a href="#a775178474283c5990ba73f9ba7f6b88b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a5b3f834bcf141564e7bb14f49101870f">pic_x</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The X offset of the displayed picture.  <a href="#a5b3f834bcf141564e7bb14f49101870f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a8aacc575cab2dfe3735001c2ad32aa14">pic_y</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The Y offset of the displayed picture.  <a href="#a8aacc575cab2dfe3735001c2ad32aa14"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0">th_colorspace</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a8c7828cd0e023e9d21108160d53659a6">colorspace</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The color space.  <a href="#a8c7828cd0e023e9d21108160d53659a6"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bc">th_pixel_fmt</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a2301388ef3755c41ab12fd144c1fc54e">pixel_fmt</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The pixel format.  <a href="#a2301388ef3755c41ab12fd144c1fc54e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a1d9c8d768a4ae623269f5bd8f6f7a015">target_bitrate</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The target bit-rate in bits per second.  <a href="#a1d9c8d768a4ae623269f5bd8f6f7a015"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#aa4cdcf96cb46b256821993e9a830ee02">quality</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The target quality level.  <a href="#aa4cdcf96cb46b256821993e9a830ee02"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a693ca4ab11fbc0c3f32594b4bb8766ed">keyframe_granule_shift</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The amount to shift to extract the last keyframe number from the granule position.  <a href="#a693ca4ab11fbc0c3f32594b4bb8766ed"></a><br/></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Theora version</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpf735645ddddaaf44dc0647da0e883f6c"></a>Bitstream version information.</p>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a60b3e2cac006fee0e105a918d6a5a9f9">version_major</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#abb1d4887a8079c6c5aaa6d7229f243d7">version_minor</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#abfacc79b7cabae12b6ac2484f76602d3">version_subminor</a></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Frame rate</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp801309c4a0e25a4db3fe5739b322b0a7"></a>The frame rate, as a fraction.</p>
+<p>If either is 0, the frame rate is undefined. </p>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a20606e61676f585a7e59cfc96de190a5">fps_numerator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#aa619408f70c03935529f1d3eda7a3ec2">fps_denominator</a></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Aspect ratio</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpdeca19914b5126815a2220f15d067c9b"></a>The aspect ratio of the pixels.</p>
+<p>If either value is zero, the aspect ratio is undefined. If not specified by any external means, 1:1 should be assumed. The aspect ratio of the full picture can be computed as </p>
+<div class="fragment"><pre class="fragment">  <a class="code" href="structth__info.html#a5be65dac9f75e37864cf73dd543570cd">aspect_numerator</a>*<a class="code" href="structth__info.html#a5048edf77b141dd3e9a92ca85e317345" title="The displayed picture width.">pic_width</a>/(<a class="code" href="structth__info.html#a04c0bd477222d747a76085d8720322e2">aspect_denominator</a>*<a class="code" href="structth__info.html#a775178474283c5990ba73f9ba7f6b88b" title="The displayed picture height.">pic_height</a>).
+</pre></div> <br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a5be65dac9f75e37864cf73dd543570cd">aspect_numerator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__info.html#a04c0bd477222d747a76085d8720322e2">aspect_denominator</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Theora bitstream information. </p>
+<p>This contains the basic playback parameters for a stream, and corresponds to the initial 'info' header packet. To initialize an encoder, the application fills in this structure and passes it to <a class="el" href="group__encfuncs.html#gaa91e47bc9dd5f6ee52045bd7b815e5a7" title="Allocates an encoder instance.">th_encode_alloc()</a>. A default encoding mode is chosen based on the values of the <a class="el" href="structth__info.html#aa4cdcf96cb46b256821993e9a830ee02" title="The target quality level.">quality</a> and <a class="el" href="structth__info.html#a1d9c8d768a4ae623269f5bd8f6f7a015" title="The target bit-rate in bits per second.">target_bitrate</a> fields. On decode, it is filled in by <a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50" title="Decodes the header packets of a Theora stream.">th_decode_headerin()</a>, and then passed to <a class="el" href="group__decfuncs.html#ga0ef07a9a97849054aa606c595a2d807e" title="Allocates a decoder instan
 ce.">th_decode_alloc()</a>.</p>
+<p>Encoded Theora frames must be a multiple of 16 in size; this is what the <a class="el" href="structth__info.html#a6b8087a4d831da53011a43b8d74087a0" title="The encoded frame width.">frame_width</a> and <a class="el" href="structth__info.html#a6b1adc3a16a8336a72692b0a5937214c" title="The encoded frame height.">frame_height</a> members represent. To handle arbitrary picture sizes, a crop rectangle is specified in the <a class="el" href="structth__info.html#a5b3f834bcf141564e7bb14f49101870f" title="The X offset of the displayed picture.">pic_x</a>, <a class="el" href="structth__info.html#a8aacc575cab2dfe3735001c2ad32aa14" title="The Y offset of the displayed picture.">pic_y</a>, <a class="el" href="structth__info.html#a5048edf77b141dd3e9a92ca85e317345" title="The displayed picture width.">pic_width</a> and <a class="el" href="structth__info.html#a775178474283c5990ba73f9ba7f6b88b" title="The displayed picture height.">pic_height</a> members.</p>
+<p>All frame buffers contain pointers to the full, padded frame. However, the current encoder <em>will not</em> reference pixels outside of the cropped picture region, and the application does not need to fill them in. The decoder <em>will</em> allocate storage for a full frame, but the application <em>should not</em> rely on the padding containing sensible data.</p>
+<p>It is also generally recommended that the offsets and sizes should still be multiples of 2 to avoid chroma sampling shifts when chroma is sub-sampled. See <a href="http://www.theora.org/doc/Theora.pdf">the Theora specification</a>, Section 4.4, for more details.</p>
+<p>Frame rate, in frames per second, is stored as a rational fraction, as is the pixel aspect ratio. Note that this refers to the aspect ratio of the individual pixels, not of the overall frame itself. The frame aspect ratio can be computed from pixel aspect ratio using the image dimensions. </p>
+<hr/><h2>Field Documentation</h2>
+<a class="anchor" id="a04c0bd477222d747a76085d8720322e2"></a><!-- doxytag: member="th_info::aspect_denominator" ref="a04c0bd477222d747a76085d8720322e2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structth__info.html#a04c0bd477222d747a76085d8720322e2">th_info::aspect_denominator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5be65dac9f75e37864cf73dd543570cd"></a><!-- doxytag: member="th_info::aspect_numerator" ref="a5be65dac9f75e37864cf73dd543570cd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structth__info.html#a5be65dac9f75e37864cf73dd543570cd">th_info::aspect_numerator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8c7828cd0e023e9d21108160d53659a6"></a><!-- doxytag: member="th_info::colorspace" ref="a8c7828cd0e023e9d21108160d53659a6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="codec_8h.html#a4ce7a695ce353b1582d29b6c1ddf31a0">th_colorspace</a> <a class="el" href="structth__info.html#a8c7828cd0e023e9d21108160d53659a6">th_info::colorspace</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The color space. </p>
+
+</div>
+</div>
+<a class="anchor" id="aa619408f70c03935529f1d3eda7a3ec2"></a><!-- doxytag: member="th_info::fps_denominator" ref="aa619408f70c03935529f1d3eda7a3ec2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structth__info.html#aa619408f70c03935529f1d3eda7a3ec2">th_info::fps_denominator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a20606e61676f585a7e59cfc96de190a5"></a><!-- doxytag: member="th_info::fps_numerator" ref="a20606e61676f585a7e59cfc96de190a5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structth__info.html#a20606e61676f585a7e59cfc96de190a5">th_info::fps_numerator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6b1adc3a16a8336a72692b0a5937214c"></a><!-- doxytag: member="th_info::frame_height" ref="a6b1adc3a16a8336a72692b0a5937214c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structth__info.html#a6b1adc3a16a8336a72692b0a5937214c">th_info::frame_height</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The encoded frame height. </p>
+<p>This must be a multiple of 16, and less than 1048576. </p>
+
+</div>
+</div>
+<a class="anchor" id="a6b8087a4d831da53011a43b8d74087a0"></a><!-- doxytag: member="th_info::frame_width" ref="a6b8087a4d831da53011a43b8d74087a0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structth__info.html#a6b8087a4d831da53011a43b8d74087a0">th_info::frame_width</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The encoded frame width. </p>
+<p>This must be a multiple of 16, and less than 1048576. </p>
+
+</div>
+</div>
+<a class="anchor" id="a693ca4ab11fbc0c3f32594b4bb8766ed"></a><!-- doxytag: member="th_info::keyframe_granule_shift" ref="a693ca4ab11fbc0c3f32594b4bb8766ed" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structth__info.html#a693ca4ab11fbc0c3f32594b4bb8766ed">th_info::keyframe_granule_shift</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The amount to shift to extract the last keyframe number from the granule position. </p>
+<p>This can be at most 31. <a class="el" href="group__basefuncs.html#ga430d9c605816a6ca0bdce3a0b965b926" title="Initializes a th_info structure.">th_info_init()</a> will set this to a default value (currently <code>6</code>, which is good for streaming applications), but you can set it to 0 to make every frame a keyframe. The maximum distance between key frames is <code>1&lt;&lt;<a class="el" href="structth__info.html#a693ca4ab11fbc0c3f32594b4bb8766ed" title="The amount to shift to extract the last keyframe number from the granule position...">keyframe_granule_shift</a></code>. The keyframe frequency can be more finely controlled with <a class="el" href="theoraenc_8h.html#a27e755e15b4b5604c54974b304037a49" title="Sets the maximum distance between key frames.">TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE</a>, which can also be adjusted during encoding (for example, to force the next frame to be a keyframe), but it cannot be set larger than the amount permitted by this field after t
 he headers have been output. </p>
+
+</div>
+</div>
+<a class="anchor" id="a775178474283c5990ba73f9ba7f6b88b"></a><!-- doxytag: member="th_info::pic_height" ref="a775178474283c5990ba73f9ba7f6b88b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structth__info.html#a775178474283c5990ba73f9ba7f6b88b">th_info::pic_height</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The displayed picture height. </p>
+<p>This must be no larger than height. </p>
+
+</div>
+</div>
+<a class="anchor" id="a5048edf77b141dd3e9a92ca85e317345"></a><!-- doxytag: member="th_info::pic_width" ref="a5048edf77b141dd3e9a92ca85e317345" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structth__info.html#a5048edf77b141dd3e9a92ca85e317345">th_info::pic_width</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The displayed picture width. </p>
+<p>This must be no larger than width. </p>
+
+</div>
+</div>
+<a class="anchor" id="a5b3f834bcf141564e7bb14f49101870f"></a><!-- doxytag: member="th_info::pic_x" ref="a5b3f834bcf141564e7bb14f49101870f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structth__info.html#a5b3f834bcf141564e7bb14f49101870f">th_info::pic_x</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The X offset of the displayed picture. </p>
+<p>This must be no larger than <a class="el" href="structth__info.html#a6b8087a4d831da53011a43b8d74087a0" title="The encoded frame width.">frame_width</a>-<a class="el" href="structth__info.html#a5048edf77b141dd3e9a92ca85e317345" title="The displayed picture width.">pic_width</a> or 255, whichever is smaller. </p>
+
+</div>
+</div>
+<a class="anchor" id="a8aacc575cab2dfe3735001c2ad32aa14"></a><!-- doxytag: member="th_info::pic_y" ref="a8aacc575cab2dfe3735001c2ad32aa14" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structth__info.html#a8aacc575cab2dfe3735001c2ad32aa14">th_info::pic_y</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The Y offset of the displayed picture. </p>
+<p>This must be no larger than <a class="el" href="structth__info.html#a6b1adc3a16a8336a72692b0a5937214c" title="The encoded frame height.">frame_height</a>-<a class="el" href="structth__info.html#a775178474283c5990ba73f9ba7f6b88b" title="The displayed picture height.">pic_height</a>, and <a class="el" href="structth__info.html#a6b1adc3a16a8336a72692b0a5937214c" title="The encoded frame height.">frame_height</a>-<a class="el" href="structth__info.html#a775178474283c5990ba73f9ba7f6b88b" title="The displayed picture height.">pic_height</a>-<a class="el" href="structth__info.html#a8aacc575cab2dfe3735001c2ad32aa14" title="The Y offset of the displayed picture.">pic_y</a> must be no larger than 255. This slightly funny restriction is due to the fact that the offset is specified from the top of the image for consistency with the standard graphics left-handed coordinate system used throughout this API, while it is stored in the encoded stream as an offset from the bottom. </p>
+
+</div>
+</div>
+<a class="anchor" id="a2301388ef3755c41ab12fd144c1fc54e"></a><!-- doxytag: member="th_info::pixel_fmt" ref="a2301388ef3755c41ab12fd144c1fc54e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="codec_8h.html#a5c9e7f2f0c7ed209c9ca3ed0abd328bc">th_pixel_fmt</a> <a class="el" href="structth__info.html#a2301388ef3755c41ab12fd144c1fc54e">th_info::pixel_fmt</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The pixel format. </p>
+
+</div>
+</div>
+<a class="anchor" id="aa4cdcf96cb46b256821993e9a830ee02"></a><!-- doxytag: member="th_info::quality" ref="aa4cdcf96cb46b256821993e9a830ee02" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structth__info.html#aa4cdcf96cb46b256821993e9a830ee02">th_info::quality</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The target quality level. </p>
+<p>Valid values range from 0 to 63, inclusive, with higher values giving higher quality. If initializing an encoder with this struct, and <a class="el" href="structth__info.html#a1d9c8d768a4ae623269f5bd8f6f7a015" title="The target bit-rate in bits per second.">target_bitrate</a> is set to zero, VBR encoding at this quality will be activated by default. </p>
+
+</div>
+</div>
+<a class="anchor" id="a1d9c8d768a4ae623269f5bd8f6f7a015"></a><!-- doxytag: member="th_info::target_bitrate" ref="a1d9c8d768a4ae623269f5bd8f6f7a015" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structth__info.html#a1d9c8d768a4ae623269f5bd8f6f7a015">th_info::target_bitrate</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The target bit-rate in bits per second. </p>
+<p>If initializing an encoder with this struct, set this field to a non-zero value to activate CBR encoding by default. </p>
+
+</div>
+</div>
+<a class="anchor" id="a60b3e2cac006fee0e105a918d6a5a9f9"></a><!-- doxytag: member="th_info::version_major" ref="a60b3e2cac006fee0e105a918d6a5a9f9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned char <a class="el" href="structth__info.html#a60b3e2cac006fee0e105a918d6a5a9f9">th_info::version_major</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abb1d4887a8079c6c5aaa6d7229f243d7"></a><!-- doxytag: member="th_info::version_minor" ref="abb1d4887a8079c6c5aaa6d7229f243d7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned char <a class="el" href="structth__info.html#abb1d4887a8079c6c5aaa6d7229f243d7">th_info::version_minor</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abfacc79b7cabae12b6ac2484f76602d3"></a><!-- doxytag: member="th_info::version_subminor" ref="abfacc79b7cabae12b6ac2484f76602d3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned char <a class="el" href="structth__info.html#abfacc79b7cabae12b6ac2484f76602d3">th_info::version_subminor</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="codec_8h_source.html">codec.h</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/structth__quant__info.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/structth__quant__info.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/structth__quant__info.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: th_quant_info Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>th_quant_info Struct Reference</h1><!-- doxytag: class="th_quant_info" -->
+<p>A complete set of quantization parameters.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="codec_8h_source.html">codec.h</a>&gt;</code></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__quant__info.html#ad5c1c0d1aa4127fcf864ae747d732ed9">dc_scale</a> [64]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The DC scaling factors.  <a href="#ad5c1c0d1aa4127fcf864ae747d732ed9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__quant__info.html#a102f079c8f4a135dc0895c10768aeb06">ac_scale</a> [64]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The AC scaling factors.  <a href="#a102f079c8f4a135dc0895c10768aeb06"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__quant__info.html#a4ac56bf0a45b5743b36daf85d5cd9e33">loop_filter_limits</a> [64]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The loop filter limit values.  <a href="#a4ac56bf0a45b5743b36daf85d5cd9e33"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structth__quant__ranges.html">th_quant_ranges</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__quant__info.html#a6feacf4b365e305a7df7b93d87ee7bb8">qi_ranges</a> [2][3]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <em>qi</em> ranges for each <em>ci</em> and <em>pli</em>.  <a href="#a6feacf4b365e305a7df7b93d87ee7bb8"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>A complete set of quantization parameters. </p>
+<p>The quantizer for each coefficient is calculated as: </p>
+<div class="fragment"><pre class="fragment">    Q=MAX(MIN(qmin[qti][ci!=0],scale[ci!=0][qi]*base[qti][pli][qi][ci]/100),
+     1024).
+</pre></div><p><em>qti</em> is the quantization type index: 0 for intra, 1 for inter. <code>ci!=0</code> is 0 for the DC coefficient and 1 for AC coefficients. <em>qi</em> is the quality index, ranging between 0 (low quality) and 63 (high quality). <em>pli</em> is the color plane index: 0 for Y', 1 for Cb, 2 for Cr. <em>ci</em> is the DCT coefficient index. Coefficient indices correspond to the normal 2D DCT block ordering--row-major with low frequencies first--<em>not</em> zig-zag order.</p>
+<p>Minimum quantizers are constant, and are given by: </p>
+<div class="fragment"><pre class="fragment">   qmin[2][2]={{4,2},{8,4}}.
+</pre></div><p>Parameters that can be stored in the bitstream are as follows:</p>
+<ul>
+<li>The two scale matrices ac_scale and dc_scale. <div class="fragment"><pre class="fragment">      scale[2][64]={<a class="code" href="structth__quant__info.html#ad5c1c0d1aa4127fcf864ae747d732ed9" title="The DC scaling factors.">dc_scale</a>,<a class="code" href="structth__quant__info.html#a102f079c8f4a135dc0895c10768aeb06" title="The AC scaling factors.">ac_scale</a>}.
+</pre></div></li>
+<li>The base matrices for each <em>qi</em>, <em>qti</em> and <em>pli</em> (up to 384 in all). In order to avoid storing a full 384 base matrices, only a sparse set of matrices are stored, and the rest are linearly interpolated. This is done as follows. For each <em>qti</em> and <em>pli</em>, a series of <em>n</em> <em>qi</em> ranges is defined. The size of each <em>qi</em> range can vary arbitrarily, but they must sum to 63. Then, <code>n+1</code> matrices are specified, one for each endpoint of the ranges. For interpolation purposes, each range's endpoints are the first <em>qi</em> value it contains and one past the last <em>qi</em> value it contains. Fractional values are rounded to the nearest integer, with ties rounded away from zero.</li>
+</ul>
+<p>Base matrices are stored by reference, so if the same matrices are used multiple times, they will only appear once in the bitstream. The bitstream is also capable of omitting an entire set of ranges and its associated matrices if they are the same as either the previous set (indexed in row-major order) or if the inter set is the same as the intra set.</p>
+<ul>
+<li>Loop filter limit values. The same limits are used for the loop filter in all color planes, despite potentially differing levels of quantization in each.</li>
+</ul>
+<p>For the current encoder, <code>scale[ci!=0][qi]</code> must be no greater than <code>scale[ci!=0][qi-1]</code> and <code>base[qti][pli][qi][ci]</code> must be no greater than <code>base[qti][pli][qi-1][ci]</code>. These two conditions ensure that the actual quantizer for a given <em>qti</em>, <em>pli</em>, and <em>ci</em> does not increase as <em>qi</em> increases. This is not required by the decoder. </p>
+<hr/><h2>Field Documentation</h2>
+<a class="anchor" id="a102f079c8f4a135dc0895c10768aeb06"></a><!-- doxytag: member="th_quant_info::ac_scale" ref="a102f079c8f4a135dc0895c10768aeb06" args="[64]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint16_t <a class="el" href="structth__quant__info.html#a102f079c8f4a135dc0895c10768aeb06">th_quant_info::ac_scale</a>[64]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The AC scaling factors. </p>
+
+</div>
+</div>
+<a class="anchor" id="ad5c1c0d1aa4127fcf864ae747d732ed9"></a><!-- doxytag: member="th_quant_info::dc_scale" ref="ad5c1c0d1aa4127fcf864ae747d732ed9" args="[64]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint16_t <a class="el" href="structth__quant__info.html#ad5c1c0d1aa4127fcf864ae747d732ed9">th_quant_info::dc_scale</a>[64]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The DC scaling factors. </p>
+
+</div>
+</div>
+<a class="anchor" id="a4ac56bf0a45b5743b36daf85d5cd9e33"></a><!-- doxytag: member="th_quant_info::loop_filter_limits" ref="a4ac56bf0a45b5743b36daf85d5cd9e33" args="[64]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned char <a class="el" href="structth__quant__info.html#a4ac56bf0a45b5743b36daf85d5cd9e33">th_quant_info::loop_filter_limits</a>[64]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The loop filter limit values. </p>
+
+</div>
+</div>
+<a class="anchor" id="a6feacf4b365e305a7df7b93d87ee7bb8"></a><!-- doxytag: member="th_quant_info::qi_ranges" ref="a6feacf4b365e305a7df7b93d87ee7bb8" args="[2][3]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structth__quant__ranges.html">th_quant_ranges</a> <a class="el" href="structth__quant__info.html#a6feacf4b365e305a7df7b93d87ee7bb8">th_quant_info::qi_ranges</a>[2][3]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The <em>qi</em> ranges for each <em>ci</em> and <em>pli</em>. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="codec_8h_source.html">codec.h</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/structth__quant__ranges.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/structth__quant__ranges.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/structth__quant__ranges.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: th_quant_ranges Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>th_quant_ranges Struct Reference</h1><!-- doxytag: class="th_quant_ranges" -->
+<p>A set of <em>qi</em> ranges.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="codec_8h_source.html">codec.h</a>&gt;</code></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__quant__ranges.html#a53e5a3d7f7a112100b4b670929b3ebab">nranges</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The number of ranges in the set.  <a href="#a53e5a3d7f7a112100b4b670929b3ebab"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const int *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__quant__ranges.html#af3188a373bc0b8ffaa330d0ab4c1a194">sizes</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The size of each of the <a class="el" href="structth__quant__ranges.html#a53e5a3d7f7a112100b4b670929b3ebab" title="The number of ranges in the set.">nranges</a> ranges.  <a href="#af3188a373bc0b8ffaa330d0ab4c1a194"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="codec_8h.html#a6a1426d16beef8a311d7f0e9d2e96326">th_quant_base</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__quant__ranges.html#a52cb432f034737087492ea448de20bdb">base_matrices</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="structth__quant__ranges.html#a53e5a3d7f7a112100b4b670929b3ebab" title="The number of ranges in the set.">nranges</a> <code>+1</code> base matrices.  <a href="#a52cb432f034737087492ea448de20bdb"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>A set of <em>qi</em> ranges. </p>
+<hr/><h2>Field Documentation</h2>
+<a class="anchor" id="a52cb432f034737087492ea448de20bdb"></a><!-- doxytag: member="th_quant_ranges::base_matrices" ref="a52cb432f034737087492ea448de20bdb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="codec_8h.html#a6a1426d16beef8a311d7f0e9d2e96326">th_quant_base</a>* <a class="el" href="structth__quant__ranges.html#a52cb432f034737087492ea448de20bdb">th_quant_ranges::base_matrices</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p><a class="el" href="structth__quant__ranges.html#a53e5a3d7f7a112100b4b670929b3ebab" title="The number of ranges in the set.">nranges</a> <code>+1</code> base matrices. </p>
+<p>Matrices <em>i</em> and <code>i+1</code> form the endpoints of range <em>i</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="a53e5a3d7f7a112100b4b670929b3ebab"></a><!-- doxytag: member="th_quant_ranges::nranges" ref="a53e5a3d7f7a112100b4b670929b3ebab" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structth__quant__ranges.html#a53e5a3d7f7a112100b4b670929b3ebab">th_quant_ranges::nranges</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The number of ranges in the set. </p>
+
+</div>
+</div>
+<a class="anchor" id="af3188a373bc0b8ffaa330d0ab4c1a194"></a><!-- doxytag: member="th_quant_ranges::sizes" ref="af3188a373bc0b8ffaa330d0ab4c1a194" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const int* <a class="el" href="structth__quant__ranges.html#af3188a373bc0b8ffaa330d0ab4c1a194">th_quant_ranges::sizes</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The size of each of the <a class="el" href="structth__quant__ranges.html#a53e5a3d7f7a112100b4b670929b3ebab" title="The number of ranges in the set.">nranges</a> ranges. </p>
+<p>These must sum to 63. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="codec_8h_source.html">codec.h</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/structth__stripe__callback.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/structth__stripe__callback.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/structth__stripe__callback.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: th_stripe_callback Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>th_stripe_callback Struct Reference</h1><!-- doxytag: class="th_stripe_callback" -->
+<p>The striped decode callback data to pass to <a class="el" href="theoradec_8h.html#ac95cc9e109474b0fa4bb920ab2cfdf1e" title="Sets the striped decode callback function.">TH_DECCTL_SET_STRIPE_CB</a>.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="theoradec_8h_source.html">theoradec.h</a>&gt;</code></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__stripe__callback.html#ab895162ce29a411fa98e0ba9661f47d4">ctx</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An application-provided context pointer.  <a href="#ab895162ce29a411fa98e0ba9661f47d4"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="theoradec_8h.html#a25dfc8713157545abd81eda476ca4b54">th_stripe_decoded_func</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__stripe__callback.html#a977c725680a37e3446e459f063b1f4a5">stripe_decoded</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The callback function pointer.  <a href="#a977c725680a37e3446e459f063b1f4a5"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The striped decode callback data to pass to <a class="el" href="theoradec_8h.html#ac95cc9e109474b0fa4bb920ab2cfdf1e" title="Sets the striped decode callback function.">TH_DECCTL_SET_STRIPE_CB</a>. </p>
+<hr/><h2>Field Documentation</h2>
+<a class="anchor" id="ab895162ce29a411fa98e0ba9661f47d4"></a><!-- doxytag: member="th_stripe_callback::ctx" ref="ab895162ce29a411fa98e0ba9661f47d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* <a class="el" href="structth__stripe__callback.html#ab895162ce29a411fa98e0ba9661f47d4">th_stripe_callback::ctx</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>An application-provided context pointer. </p>
+<p>This will be passed back verbatim to the application. </p>
+
+</div>
+</div>
+<a class="anchor" id="a977c725680a37e3446e459f063b1f4a5"></a><!-- doxytag: member="th_stripe_callback::stripe_decoded" ref="a977c725680a37e3446e459f063b1f4a5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="theoradec_8h.html#a25dfc8713157545abd81eda476ca4b54">th_stripe_decoded_func</a> <a class="el" href="structth__stripe__callback.html#a977c725680a37e3446e459f063b1f4a5">th_stripe_callback::stripe_decoded</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The callback function pointer. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="theoradec_8h_source.html">theoradec.h</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/structtheora__comment.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/structtheora__comment.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/structtheora__comment.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: theora_comment Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>theora_comment Struct Reference<br/>
+<small>
+[<a class="el" href="group__oldfuncs.html">Legacy pre-1.0 C API</a>]</small>
+</h1><!-- doxytag: class="theora_comment" -->
+<p>Comment header metadata.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="theora_8h_source.html">theora.h</a>&gt;</code></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">char **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__comment.html#a1e236fd180dfce19be89081399444cf5">user_comments</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An array of comment string vectors.  <a href="#a1e236fd180dfce19be89081399444cf5"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__comment.html#a5ab4a376d3c217282a684577c9c9f49a">comment_lengths</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An array of corresponding string vector lengths in bytes.  <a href="#a5ab4a376d3c217282a684577c9c9f49a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__comment.html#a122393035c8352ff9be42d69e73aee00">comments</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The total number of comment string vectors.  <a href="#a122393035c8352ff9be42d69e73aee00"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__comment.html#adb371baf8f0daed42af8b875cf8430ef">vendor</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The vendor string identifying the encoder, null terminated.  <a href="#adb371baf8f0daed42af8b875cf8430ef"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Comment header metadata. </p>
+<p>This structure holds the in-stream metadata corresponding to the 'comment' header packet.</p>
+<p>Meta data is stored as a series of (tag, value) pairs, in length-encoded string vectors. The first occurence of the '=' character delimits the tag and value. A particular tag may occur more than once. The character set encoding for the strings is always UTF-8, but the tag names are limited to case-insensitive ASCII. See the spec for details.</p>
+<p>In filling in this structure, <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header()</a> will null-terminate the user_comment strings for safety. However, the bitstream format itself treats them as 8-bit clean, and so the length array should be treated as authoritative for their length. </p>
+<hr/><h2>Field Documentation</h2>
+<a class="anchor" id="a5ab4a376d3c217282a684577c9c9f49a"></a><!-- doxytag: member="theora_comment::comment_lengths" ref="a5ab4a376d3c217282a684577c9c9f49a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int* <a class="el" href="structtheora__comment.html#a5ab4a376d3c217282a684577c9c9f49a">theora_comment::comment_lengths</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>An array of corresponding string vector lengths in bytes. </p>
+
+</div>
+</div>
+<a class="anchor" id="a122393035c8352ff9be42d69e73aee00"></a><!-- doxytag: member="theora_comment::comments" ref="a122393035c8352ff9be42d69e73aee00" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structtheora__comment.html#a122393035c8352ff9be42d69e73aee00">theora_comment::comments</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The total number of comment string vectors. </p>
+
+</div>
+</div>
+<a class="anchor" id="a1e236fd180dfce19be89081399444cf5"></a><!-- doxytag: member="theora_comment::user_comments" ref="a1e236fd180dfce19be89081399444cf5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char** <a class="el" href="structtheora__comment.html#a1e236fd180dfce19be89081399444cf5">theora_comment::user_comments</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>An array of comment string vectors. </p>
+
+</div>
+</div>
+<a class="anchor" id="adb371baf8f0daed42af8b875cf8430ef"></a><!-- doxytag: member="theora_comment::vendor" ref="adb371baf8f0daed42af8b875cf8430ef" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* <a class="el" href="structtheora__comment.html#adb371baf8f0daed42af8b875cf8430ef">theora_comment::vendor</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The vendor string identifying the encoder, null terminated. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="theora_8h_source.html">theora.h</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/structtheora__info.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/structtheora__info.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/structtheora__info.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,491 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: theora_info Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>theora_info Struct Reference<br/>
+<small>
+[<a class="el" href="group__oldfuncs.html">Legacy pre-1.0 C API</a>]</small>
+</h1><!-- doxytag: class="theora_info" -->
+<p>Theora bitstream info.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="theora_8h_source.html">theora.h</a>&gt;</code></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a17c2fc651bb3329f1ea6b13ff1d3957b">width</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">encoded frame width  <a href="#a17c2fc651bb3329f1ea6b13ff1d3957b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#ae6f0274fc4a7f285c422d91abb35f9c6">height</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">encoded frame height  <a href="#ae6f0274fc4a7f285c422d91abb35f9c6"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a8f28f4018a25634d40e4ae861fbbccfa">frame_width</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">display frame width  <a href="#a8f28f4018a25634d40e4ae861fbbccfa"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a287e4c194f1d2e6deb39d59f1748ea48">frame_height</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">display frame height  <a href="#a287e4c194f1d2e6deb39d59f1748ea48"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#af5949a02bef29512f2705e6f6c944e3b">offset_x</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">horizontal offset of the displayed frame  <a href="#af5949a02bef29512f2705e6f6c944e3b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a91c3922097ba32a85acd584a01dc2c93">offset_y</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">vertical offset of the displayed frame  <a href="#a91c3922097ba32a85acd584a01dc2c93"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a3478199aa5ab213816c1819f70085ad7">fps_numerator</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">frame rate numerator  <a href="#a3478199aa5ab213816c1819f70085ad7"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a9aa7e826e0323a4ae8cd8646a6cfbfea">fps_denominator</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">frame rate denominator  <a href="#a9aa7e826e0323a4ae8cd8646a6cfbfea"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a5a3ed8c79815fba1aa06c3f7d8e48b35">aspect_numerator</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">pixel aspect ratio numerator  <a href="#a5a3ed8c79815fba1aa06c3f7d8e48b35"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#afebc4d0cbfb34b68c833a8c79e83ae12">aspect_denominator</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">pixel aspect ratio denominator  <a href="#afebc4d0cbfb34b68c833a8c79e83ae12"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__oldfuncs.html#gaa567da4ce591f7373149ce3ef3acdac9">theora_colorspace</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a5eaba99c96706d47b426ab7b7602dc5d">colorspace</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">colorspace  <a href="#a5eaba99c96706d47b426ab7b7602dc5d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a0cfba041767ae2416dd190a406afe713">target_bitrate</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">nominal bitrate in bits per second  <a href="#a0cfba041767ae2416dd190a406afe713"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a71a4748a5f31bd58d0e403b7806c980d">quality</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nominal quality setting, 0-63.  <a href="#a71a4748a5f31bd58d0e403b7806c980d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a2dfae4fd175dbd19254eaf0697778ff5">quick_p</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Quick encode/decode.  <a href="#a2dfae4fd175dbd19254eaf0697778ff5"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a7c5ebb9e6700aaef87f29f7c6074e474">version_major</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a75eda4f30270d833c7b9dba43932a06a">version_minor</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#aa07967ecd6e20bd2928ead42b6397b3d">version_subminor</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a719a1d77a4a3bfeab79aa5747dbbb04c">codec_setup</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#af294db65a8363a0bcf43f4727763b291">dropframes_p</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a23648173369174f687085c0ce85ef30e">keyframe_auto_p</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a03e1b3e337af5f9dabaaaeb9050f145a">keyframe_frequency</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#ad9d2e22c44a53473010e6d1042dfe0d8">keyframe_frequency_force</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a588942d1ee90a26a7effdf6a0e98b9ce">keyframe_data_target_bitrate</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a95cb8958e29ad3d24047ee8f9e7fd99b">keyframe_auto_threshold</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#aa79ca8c0e77a884d4487fd627fae32e9">keyframe_mindistance</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#ac4789034f547b57d1075e035050eeed9">noise_sensitivity</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a3fb695de2b2f56dd0203b9e2eb0df1cc">sharpness</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__oldfuncs.html#gae169da05bfaaf4e964a6866552d45079">theora_pixelformat</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a65ab4376ab5242ee82e06c78fb7008ab">pixelformat</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">chroma subsampling mode to expect  <a href="#a65ab4376ab5242ee82e06c78fb7008ab"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Theora bitstream info. </p>
+<p>Contains the basic playback parameters for a stream, corresponding to the initial 'info' header packet.</p>
+<p>Encoded theora frames must be a multiple of 16 in width and height. To handle other frame sizes, a crop rectangle is specified in frame_height and frame_width, offset_x and * offset_y. The offset and size should still be a multiple of 2 to avoid chroma sampling shifts. Offset values in this structure are measured from the upper left of the image.</p>
+<p>Frame rate, in frames per second, is stored as a rational fraction. Aspect ratio is also stored as a rational fraction, and refers to the aspect ratio of the frame pixels, not of the overall frame itself.</p>
+<p>See <a href="http://svn.xiph.org/trunk/theora/examples/encoder_example.c">examples/encoder_example.c</a> for usage examples of the other paramters and good default settings for the encoder parameters. </p>
+<hr/><h2>Field Documentation</h2>
+<a class="anchor" id="afebc4d0cbfb34b68c833a8c79e83ae12"></a><!-- doxytag: member="theora_info::aspect_denominator" ref="afebc4d0cbfb34b68c833a8c79e83ae12" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#afebc4d0cbfb34b68c833a8c79e83ae12">theora_info::aspect_denominator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>pixel aspect ratio denominator </p>
+
+</div>
+</div>
+<a class="anchor" id="a5a3ed8c79815fba1aa06c3f7d8e48b35"></a><!-- doxytag: member="theora_info::aspect_numerator" ref="a5a3ed8c79815fba1aa06c3f7d8e48b35" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#a5a3ed8c79815fba1aa06c3f7d8e48b35">theora_info::aspect_numerator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>pixel aspect ratio numerator </p>
+
+</div>
+</div>
+<a class="anchor" id="a719a1d77a4a3bfeab79aa5747dbbb04c"></a><!-- doxytag: member="theora_info::codec_setup" ref="a719a1d77a4a3bfeab79aa5747dbbb04c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* <a class="el" href="structtheora__info.html#a719a1d77a4a3bfeab79aa5747dbbb04c">theora_info::codec_setup</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5eaba99c96706d47b426ab7b7602dc5d"></a><!-- doxytag: member="theora_info::colorspace" ref="a5eaba99c96706d47b426ab7b7602dc5d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group__oldfuncs.html#gaa567da4ce591f7373149ce3ef3acdac9">theora_colorspace</a> <a class="el" href="structtheora__info.html#a5eaba99c96706d47b426ab7b7602dc5d">theora_info::colorspace</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>colorspace </p>
+
+</div>
+</div>
+<a class="anchor" id="af294db65a8363a0bcf43f4727763b291"></a><!-- doxytag: member="theora_info::dropframes_p" ref="af294db65a8363a0bcf43f4727763b291" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structtheora__info.html#af294db65a8363a0bcf43f4727763b291">theora_info::dropframes_p</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9aa7e826e0323a4ae8cd8646a6cfbfea"></a><!-- doxytag: member="theora_info::fps_denominator" ref="a9aa7e826e0323a4ae8cd8646a6cfbfea" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#a9aa7e826e0323a4ae8cd8646a6cfbfea">theora_info::fps_denominator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>frame rate denominator </p>
+
+</div>
+</div>
+<a class="anchor" id="a3478199aa5ab213816c1819f70085ad7"></a><!-- doxytag: member="theora_info::fps_numerator" ref="a3478199aa5ab213816c1819f70085ad7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#a3478199aa5ab213816c1819f70085ad7">theora_info::fps_numerator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>frame rate numerator </p>
+
+</div>
+</div>
+<a class="anchor" id="a287e4c194f1d2e6deb39d59f1748ea48"></a><!-- doxytag: member="theora_info::frame_height" ref="a287e4c194f1d2e6deb39d59f1748ea48" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#a287e4c194f1d2e6deb39d59f1748ea48">theora_info::frame_height</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>display frame height </p>
+
+</div>
+</div>
+<a class="anchor" id="a8f28f4018a25634d40e4ae861fbbccfa"></a><!-- doxytag: member="theora_info::frame_width" ref="a8f28f4018a25634d40e4ae861fbbccfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#a8f28f4018a25634d40e4ae861fbbccfa">theora_info::frame_width</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>display frame width </p>
+
+</div>
+</div>
+<a class="anchor" id="ae6f0274fc4a7f285c422d91abb35f9c6"></a><!-- doxytag: member="theora_info::height" ref="ae6f0274fc4a7f285c422d91abb35f9c6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#ae6f0274fc4a7f285c422d91abb35f9c6">theora_info::height</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>encoded frame height </p>
+
+</div>
+</div>
+<a class="anchor" id="a23648173369174f687085c0ce85ef30e"></a><!-- doxytag: member="theora_info::keyframe_auto_p" ref="a23648173369174f687085c0ce85ef30e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structtheora__info.html#a23648173369174f687085c0ce85ef30e">theora_info::keyframe_auto_p</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a95cb8958e29ad3d24047ee8f9e7fd99b"></a><!-- doxytag: member="theora_info::keyframe_auto_threshold" ref="a95cb8958e29ad3d24047ee8f9e7fd99b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_int32_t <a class="el" href="structtheora__info.html#a95cb8958e29ad3d24047ee8f9e7fd99b">theora_info::keyframe_auto_threshold</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a588942d1ee90a26a7effdf6a0e98b9ce"></a><!-- doxytag: member="theora_info::keyframe_data_target_bitrate" ref="a588942d1ee90a26a7effdf6a0e98b9ce" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#a588942d1ee90a26a7effdf6a0e98b9ce">theora_info::keyframe_data_target_bitrate</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a03e1b3e337af5f9dabaaaeb9050f145a"></a><!-- doxytag: member="theora_info::keyframe_frequency" ref="a03e1b3e337af5f9dabaaaeb9050f145a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#a03e1b3e337af5f9dabaaaeb9050f145a">theora_info::keyframe_frequency</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad9d2e22c44a53473010e6d1042dfe0d8"></a><!-- doxytag: member="theora_info::keyframe_frequency_force" ref="ad9d2e22c44a53473010e6d1042dfe0d8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#ad9d2e22c44a53473010e6d1042dfe0d8">theora_info::keyframe_frequency_force</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa79ca8c0e77a884d4487fd627fae32e9"></a><!-- doxytag: member="theora_info::keyframe_mindistance" ref="aa79ca8c0e77a884d4487fd627fae32e9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#aa79ca8c0e77a884d4487fd627fae32e9">theora_info::keyframe_mindistance</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac4789034f547b57d1075e035050eeed9"></a><!-- doxytag: member="theora_info::noise_sensitivity" ref="ac4789034f547b57d1075e035050eeed9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_int32_t <a class="el" href="structtheora__info.html#ac4789034f547b57d1075e035050eeed9">theora_info::noise_sensitivity</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af5949a02bef29512f2705e6f6c944e3b"></a><!-- doxytag: member="theora_info::offset_x" ref="af5949a02bef29512f2705e6f6c944e3b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#af5949a02bef29512f2705e6f6c944e3b">theora_info::offset_x</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>horizontal offset of the displayed frame </p>
+
+</div>
+</div>
+<a class="anchor" id="a91c3922097ba32a85acd584a01dc2c93"></a><!-- doxytag: member="theora_info::offset_y" ref="a91c3922097ba32a85acd584a01dc2c93" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#a91c3922097ba32a85acd584a01dc2c93">theora_info::offset_y</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>vertical offset of the displayed frame </p>
+
+</div>
+</div>
+<a class="anchor" id="a65ab4376ab5242ee82e06c78fb7008ab"></a><!-- doxytag: member="theora_info::pixelformat" ref="a65ab4376ab5242ee82e06c78fb7008ab" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group__oldfuncs.html#gae169da05bfaaf4e964a6866552d45079">theora_pixelformat</a> <a class="el" href="structtheora__info.html#a65ab4376ab5242ee82e06c78fb7008ab">theora_info::pixelformat</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>chroma subsampling mode to expect </p>
+
+</div>
+</div>
+<a class="anchor" id="a71a4748a5f31bd58d0e403b7806c980d"></a><!-- doxytag: member="theora_info::quality" ref="a71a4748a5f31bd58d0e403b7806c980d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structtheora__info.html#a71a4748a5f31bd58d0e403b7806c980d">theora_info::quality</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Nominal quality setting, 0-63. </p>
+
+</div>
+</div>
+<a class="anchor" id="a2dfae4fd175dbd19254eaf0697778ff5"></a><!-- doxytag: member="theora_info::quick_p" ref="a2dfae4fd175dbd19254eaf0697778ff5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structtheora__info.html#a2dfae4fd175dbd19254eaf0697778ff5">theora_info::quick_p</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Quick encode/decode. </p>
+
+</div>
+</div>
+<a class="anchor" id="a3fb695de2b2f56dd0203b9e2eb0df1cc"></a><!-- doxytag: member="theora_info::sharpness" ref="a3fb695de2b2f56dd0203b9e2eb0df1cc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_int32_t <a class="el" href="structtheora__info.html#a3fb695de2b2f56dd0203b9e2eb0df1cc">theora_info::sharpness</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0cfba041767ae2416dd190a406afe713"></a><!-- doxytag: member="theora_info::target_bitrate" ref="a0cfba041767ae2416dd190a406afe713" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structtheora__info.html#a0cfba041767ae2416dd190a406afe713">theora_info::target_bitrate</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>nominal bitrate in bits per second </p>
+
+</div>
+</div>
+<a class="anchor" id="a7c5ebb9e6700aaef87f29f7c6074e474"></a><!-- doxytag: member="theora_info::version_major" ref="a7c5ebb9e6700aaef87f29f7c6074e474" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned char <a class="el" href="structtheora__info.html#a7c5ebb9e6700aaef87f29f7c6074e474">theora_info::version_major</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a75eda4f30270d833c7b9dba43932a06a"></a><!-- doxytag: member="theora_info::version_minor" ref="a75eda4f30270d833c7b9dba43932a06a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned char <a class="el" href="structtheora__info.html#a75eda4f30270d833c7b9dba43932a06a">theora_info::version_minor</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa07967ecd6e20bd2928ead42b6397b3d"></a><!-- doxytag: member="theora_info::version_subminor" ref="aa07967ecd6e20bd2928ead42b6397b3d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned char <a class="el" href="structtheora__info.html#aa07967ecd6e20bd2928ead42b6397b3d">theora_info::version_subminor</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a17c2fc651bb3329f1ea6b13ff1d3957b"></a><!-- doxytag: member="theora_info::width" ref="a17c2fc651bb3329f1ea6b13ff1d3957b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_uint32_t <a class="el" href="structtheora__info.html#a17c2fc651bb3329f1ea6b13ff1d3957b">theora_info::width</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>encoded frame width </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="theora_8h_source.html">theora.h</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/structtheora__state.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/structtheora__state.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/structtheora__state.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: theora_state Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>theora_state Struct Reference<br/>
+<small>
+[<a class="el" href="group__oldfuncs.html">Legacy pre-1.0 C API</a>]</small>
+</h1><!-- doxytag: class="theora_state" -->
+<p>Codec internal state and context.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="theora_8h_source.html">theora.h</a>&gt;</code></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structtheora__info.html">theora_info</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__state.html#a0efc7ac581ef260b0ca17f518ace0731">i</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__state.html#a5dd344a3f79ea7501b18c756772fab7b">granulepos</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__state.html#a1fbfd82fb7210cbcc4233cb680ec2af6">internal_encode</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__state.html#ad20c4eebbc5ed9764cf03ba8b90e796e">internal_decode</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Codec internal state and context. </p>
+<hr/><h2>Field Documentation</h2>
+<a class="anchor" id="a5dd344a3f79ea7501b18c756772fab7b"></a><!-- doxytag: member="theora_state::granulepos" ref="a5dd344a3f79ea7501b18c756772fab7b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ogg_int64_t <a class="el" href="structtheora__state.html#a5dd344a3f79ea7501b18c756772fab7b">theora_state::granulepos</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0efc7ac581ef260b0ca17f518ace0731"></a><!-- doxytag: member="theora_state::i" ref="a0efc7ac581ef260b0ca17f518ace0731" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structtheora__info.html">theora_info</a>* <a class="el" href="structtheora__state.html#a0efc7ac581ef260b0ca17f518ace0731">theora_state::i</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad20c4eebbc5ed9764cf03ba8b90e796e"></a><!-- doxytag: member="theora_state::internal_decode" ref="ad20c4eebbc5ed9764cf03ba8b90e796e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* <a class="el" href="structtheora__state.html#ad20c4eebbc5ed9764cf03ba8b90e796e">theora_state::internal_decode</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1fbfd82fb7210cbcc4233cb680ec2af6"></a><!-- doxytag: member="theora_state::internal_encode" ref="a1fbfd82fb7210cbcc4233cb680ec2af6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* <a class="el" href="structtheora__state.html#a1fbfd82fb7210cbcc4233cb680ec2af6">theora_state::internal_encode</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="theora_8h_source.html">theora.h</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/structyuv__buffer.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/structyuv__buffer.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/structyuv__buffer.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,207 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: yuv_buffer Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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>yuv_buffer Struct Reference<br/>
+<small>
+[<a class="el" href="group__oldfuncs.html">Legacy pre-1.0 C API</a>]</small>
+</h1><!-- doxytag: class="yuv_buffer" -->
+<p>A YUV buffer for passing uncompressed frames to and from the codec.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="theora_8h_source.html">theora.h</a>&gt;</code></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#aaa6c06c071da933231647238418d5fc0">y_width</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Width of the Y' luminance plane.  <a href="#aaa6c06c071da933231647238418d5fc0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#a5a8b60e012247e2caffcbbaca99414e0">y_height</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Height of the luminance plane.  <a href="#a5a8b60e012247e2caffcbbaca99414e0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#a9cdf61834c11b2351640a4a243ad0549">y_stride</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset in bytes between successive rows.  <a href="#a9cdf61834c11b2351640a4a243ad0549"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#a8c59a57c35af0be519ee47f15e49fe2b">uv_width</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Width of the Cb and Cr chroma planes.  <a href="#a8c59a57c35af0be519ee47f15e49fe2b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#a640f1a0b456d3807f9f0538b22f10097">uv_height</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Height of the chroma planes.  <a href="#a640f1a0b456d3807f9f0538b22f10097"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#ab265cc24ffb5650bf52daf223b0debb9">uv_stride</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset between successive chroma rows.  <a href="#ab265cc24ffb5650bf52daf223b0debb9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#a725727c70eeced6b8c90866973399ac1">y</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pointer to start of luminance data.  <a href="#a725727c70eeced6b8c90866973399ac1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#a8b1857afe3ffac28f259499a57a559e1">u</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pointer to start of Cb data.  <a href="#a8b1857afe3ffac28f259499a57a559e1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#aa429491dd112adb0254672c59ef55075">v</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pointer to start of Cr data.  <a href="#aa429491dd112adb0254672c59ef55075"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>A YUV buffer for passing uncompressed frames to and from the codec. </p>
+<p>This holds a Y'CbCr frame in planar format. The CbCr planes can be subsampled and have their own separate dimensions and row stride offsets. Note that the strides may be negative in some configurations. For theora the width and height of the largest plane must be a multiple of 16. The actual meaningful picture size and offset are stored in the <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> structure; frames returned by the decoder may need to be cropped for display.</p>
+<p>All samples are 8 bits. Within each plane samples are ordered by row from the top of the frame to the bottom. Within each row samples are ordered from left to right.</p>
+<p>During decode, the <a class="el" href="structyuv__buffer.html" title="A YUV buffer for passing uncompressed frames to and from the codec.">yuv_buffer</a> struct is allocated by the user, but all fields (including luma and chroma pointers) are filled by the library. These pointers address library-internal memory and their contents should not be modified.</p>
+<p>Conversely, during encode the user allocates the struct and fills out all fields. The user also manages the data addressed by the luma and chroma pointers. See the encoder_example.c and dump_video.c example files in theora/examples/ for more information. </p>
+<hr/><h2>Field Documentation</h2>
+<a class="anchor" id="a8b1857afe3ffac28f259499a57a559e1"></a><!-- doxytag: member="yuv_buffer::u" ref="a8b1857afe3ffac28f259499a57a559e1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned char* <a class="el" href="structyuv__buffer.html#a8b1857afe3ffac28f259499a57a559e1">yuv_buffer::u</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Pointer to start of Cb data. </p>
+
+</div>
+</div>
+<a class="anchor" id="a640f1a0b456d3807f9f0538b22f10097"></a><!-- doxytag: member="yuv_buffer::uv_height" ref="a640f1a0b456d3807f9f0538b22f10097" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structyuv__buffer.html#a640f1a0b456d3807f9f0538b22f10097">yuv_buffer::uv_height</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Height of the chroma planes. </p>
+
+</div>
+</div>
+<a class="anchor" id="ab265cc24ffb5650bf52daf223b0debb9"></a><!-- doxytag: member="yuv_buffer::uv_stride" ref="ab265cc24ffb5650bf52daf223b0debb9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structyuv__buffer.html#ab265cc24ffb5650bf52daf223b0debb9">yuv_buffer::uv_stride</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Offset between successive chroma rows. </p>
+
+</div>
+</div>
+<a class="anchor" id="a8c59a57c35af0be519ee47f15e49fe2b"></a><!-- doxytag: member="yuv_buffer::uv_width" ref="a8c59a57c35af0be519ee47f15e49fe2b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structyuv__buffer.html#a8c59a57c35af0be519ee47f15e49fe2b">yuv_buffer::uv_width</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Width of the Cb and Cr chroma planes. </p>
+
+</div>
+</div>
+<a class="anchor" id="aa429491dd112adb0254672c59ef55075"></a><!-- doxytag: member="yuv_buffer::v" ref="aa429491dd112adb0254672c59ef55075" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned char* <a class="el" href="structyuv__buffer.html#aa429491dd112adb0254672c59ef55075">yuv_buffer::v</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Pointer to start of Cr data. </p>
+
+</div>
+</div>
+<a class="anchor" id="a725727c70eeced6b8c90866973399ac1"></a><!-- doxytag: member="yuv_buffer::y" ref="a725727c70eeced6b8c90866973399ac1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned char* <a class="el" href="structyuv__buffer.html#a725727c70eeced6b8c90866973399ac1">yuv_buffer::y</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Pointer to start of luminance data. </p>
+
+</div>
+</div>
+<a class="anchor" id="a5a8b60e012247e2caffcbbaca99414e0"></a><!-- doxytag: member="yuv_buffer::y_height" ref="a5a8b60e012247e2caffcbbaca99414e0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structyuv__buffer.html#a5a8b60e012247e2caffcbbaca99414e0">yuv_buffer::y_height</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Height of the luminance plane. </p>
+
+</div>
+</div>
+<a class="anchor" id="a9cdf61834c11b2351640a4a243ad0549"></a><!-- doxytag: member="yuv_buffer::y_stride" ref="a9cdf61834c11b2351640a4a243ad0549" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structyuv__buffer.html#a9cdf61834c11b2351640a4a243ad0549">yuv_buffer::y_stride</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Offset in bytes between successive rows. </p>
+
+</div>
+</div>
+<a class="anchor" id="aaa6c06c071da933231647238418d5fc0"></a><!-- doxytag: member="yuv_buffer::y_width" ref="aaa6c06c071da933231647238418d5fc0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structyuv__buffer.html#aaa6c06c071da933231647238418d5fc0">yuv_buffer::y_width</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Width of the Y' luminance plane. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="theora_8h_source.html">theora.h</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/tab_b.gif
===================================================================
(Binary files differ)


Property changes on: websites/theora.org/doc/libtheora-1.1/tab_b.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: websites/theora.org/doc/libtheora-1.1/tab_l.gif
===================================================================
(Binary files differ)


Property changes on: websites/theora.org/doc/libtheora-1.1/tab_l.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: websites/theora.org/doc/libtheora-1.1/tab_r.gif
===================================================================
(Binary files differ)


Property changes on: websites/theora.org/doc/libtheora-1.1/tab_r.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: websites/theora.org/doc/libtheora-1.1/tabs.css
===================================================================
--- websites/theora.org/doc/libtheora-1.1/tabs.css	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/tabs.css	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,105 @@
+/* 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        : 80%;
+   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 #MSearchBox
+{
+   float            : right;
+   display          : inline;
+   font-size        : 1em;
+}
+
+DIV.tabs TD
+{
+   font-size        : 80%;
+   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;
+   text-align       : center;
+   margin           : 2px;
+   padding          : 2px;
+}

Added: websites/theora.org/doc/libtheora-1.1/theora_8h.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/theora_8h.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/theora_8h.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: theora.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>theora.h File Reference</h1>
+<p>The libtheora pre-1.0 legacy C API.  
+<a href="#_details">More...</a></p>
+<code>#include &lt;stddef.h&gt;</code><br/>
+<code>#include &lt;ogg/ogg.h&gt;</code><br/>
+
+<p><a href="theora_8h_source.html">Go to the source code of this file.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html">yuv_buffer</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A YUV buffer for passing uncompressed frames to and from the codec.  <a href="structyuv__buffer.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html">theora_info</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Theora bitstream info.  <a href="structtheora__info.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__state.html">theora_state</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Codec internal state and context.  <a href="structtheora__state.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__comment.html">theora_comment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Comment header metadata.  <a href="structtheora__comment.html#_details">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gaa4370e13ed3aea6441ccf69dcab2506e">OC_FAULT</a>&nbsp;&nbsp;&nbsp;-1</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">General failure.  <a href="group__oldfuncs.html#gaa4370e13ed3aea6441ccf69dcab2506e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga43d15091b1a03a734a124e9a04d3be55">OC_EINVAL</a>&nbsp;&nbsp;&nbsp;-10</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Library encountered invalid internal data.  <a href="group__oldfuncs.html#ga43d15091b1a03a734a124e9a04d3be55"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga38b9fa0af856d5930c534db26e2ac2d1">OC_DISABLED</a>&nbsp;&nbsp;&nbsp;-11</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Requested action is disabled.  <a href="group__oldfuncs.html#ga38b9fa0af856d5930c534db26e2ac2d1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga809cbad2eb36be17a235a3cadfb737ba">OC_BADHEADER</a>&nbsp;&nbsp;&nbsp;-20</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Header packet was corrupt/invalid.  <a href="group__oldfuncs.html#ga809cbad2eb36be17a235a3cadfb737ba"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga9558d6d9eacd2273c8da27f945d725ad">OC_NOTFORMAT</a>&nbsp;&nbsp;&nbsp;-21</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packet is not a theora packet.  <a href="group__oldfuncs.html#ga9558d6d9eacd2273c8da27f945d725ad"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga4611cfd61160405721d1e2ab0ec2564b">OC_VERSION</a>&nbsp;&nbsp;&nbsp;-22</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bitstream version is not handled.  <a href="group__oldfuncs.html#ga4611cfd61160405721d1e2ab0ec2564b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga895dc2597b3bf9c97bf7701c6eff5b0c">OC_IMPL</a>&nbsp;&nbsp;&nbsp;-23</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Feature or action not implemented.  <a href="group__oldfuncs.html#ga895dc2597b3bf9c97bf7701c6eff5b0c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga117774c062a63dfad2a5b4d092fa2bb1">OC_BADPACKET</a>&nbsp;&nbsp;&nbsp;-24</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packet is corrupt.  <a href="group__oldfuncs.html#ga117774c062a63dfad2a5b4d092fa2bb1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga60be4dc92c933eac3542bce3ce076496">OC_NEWPACKET</a>&nbsp;&nbsp;&nbsp;-25</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packet is an (ignorable) unhandled extension.  <a href="group__oldfuncs.html#ga60be4dc92c933eac3542bce3ce076496"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga84a8d2f5080ad62b415a4e7551941cbb">OC_DUPFRAME</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packet is a dropped frame.  <a href="group__oldfuncs.html#ga84a8d2f5080ad62b415a4e7551941cbb"></a><br/></td></tr>
+<tr><td colspan="2"><div class="groupHeader">theora_control() codes</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp13fd61986cff4566fe89a40e30b74ad9"></a> </p>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gab31f251c9319f2140d247585d30b3d07">TH_DECCTL_GET_PPLEVEL_MAX</a>&nbsp;&nbsp;&nbsp;(1)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum post-processing level.  <a href="group__oldfuncs.html#gab31f251c9319f2140d247585d30b3d07"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga87774c35e1a755a84e2d705b38ebef0d">TH_DECCTL_SET_PPLEVEL</a>&nbsp;&nbsp;&nbsp;(3)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the post-processing level.  <a href="group__oldfuncs.html#ga87774c35e1a755a84e2d705b38ebef0d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga27e755e15b4b5604c54974b304037a49">TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE</a>&nbsp;&nbsp;&nbsp;(4)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the maximum distance between key frames.  <a href="group__oldfuncs.html#ga27e755e15b4b5604c54974b304037a49"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga1e870c654d35394f0d490045df04e0f5">TH_DECCTL_SET_GRANPOS</a>&nbsp;&nbsp;&nbsp;(5)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the granule position.  <a href="group__oldfuncs.html#ga1e870c654d35394f0d490045df04e0f5"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga3befcdd66678f8d27034f9c4b16d1b9c">TH_ENCCTL_SET_QUANT_PARAMS</a>&nbsp;&nbsp;&nbsp;(2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the quantization parameters to use.  <a href="group__oldfuncs.html#ga3befcdd66678f8d27034f9c4b16d1b9c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga382d685a39a34d8e6ba76b00d804efd8">TH_ENCCTL_SET_VP3_COMPATIBLE</a>&nbsp;&nbsp;&nbsp;(10)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disables any encoder features that would prevent lossless transcoding back to VP3.  <a href="group__oldfuncs.html#ga382d685a39a34d8e6ba76b00d804efd8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga9baf5bdd206e80c78a8fd44687e89783">TH_ENCCTL_GET_SPLEVEL_MAX</a>&nbsp;&nbsp;&nbsp;(12)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the maximum speed level.  <a href="group__oldfuncs.html#ga9baf5bdd206e80c78a8fd44687e89783"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gabd9fbcb6a25a77d991d3620164fe59d6">TH_ENCCTL_SET_SPLEVEL</a>&nbsp;&nbsp;&nbsp;(14)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the speed level.  <a href="group__oldfuncs.html#gabd9fbcb6a25a77d991d3620164fe59d6"></a><br/></td></tr>
+<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gaa567da4ce591f7373149ce3ef3acdac9">theora_colorspace</a> { <a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9abf217cf83d7d7cbf73295e6689f5cf5f">OC_CS_UNSPECIFIED</a>, 
+<a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9ab20c9851a21ab148fef0bf2c00c0a294">OC_CS_ITU_REC_470M</a>, 
+<a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9a04f8fa2da26f9ec513f514163705666a">OC_CS_ITU_REC_470BG</a>, 
+<a class="el" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9a640b572f11fa7102d434e1c605aaa186">OC_CS_NSPACES</a>
+ }</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>A Colorspace. </p>
+ <a href="group__oldfuncs.html#gaa567da4ce591f7373149ce3ef3acdac9">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gae169da05bfaaf4e964a6866552d45079">theora_pixelformat</a> { <a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a4e451af01be2645511b0e431f5225d2b">OC_PF_420</a>, 
+<a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a7d21c63341ad299766839c83ed1216eb">OC_PF_RSVD</a>, 
+<a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a36a88c55b7ddd5aedeac2d61d57fee5b">OC_PF_422</a>, 
+<a class="el" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a1d5c6d1b0365e06b4a87880b7825f044">OC_PF_444</a>
+ }</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>A Chroma subsampling. </p>
+ <a href="group__oldfuncs.html#gae169da05bfaaf4e964a6866552d45079">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga5a3da8fd262a60f055f96536eec06df2">theora_version_string</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve a human-readable string to identify the encoder vendor and version.  <a href="group__oldfuncs.html#ga5a3da8fd262a60f055f96536eec06df2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gad181f4b19d455dcc2bef2533530b84c8">theora_version_number</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve a 32-bit version number.  <a href="group__oldfuncs.html#gad181f4b19d455dcc2bef2533530b84c8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga0f7ad4d4b2343278cb4ba8fb2bd5109a">theora_encode_init</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, <a class="el" href="structtheora__info.html">theora_info</a> *ti)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the theora encoder.  <a href="group__oldfuncs.html#ga0f7ad4d4b2343278cb4ba8fb2bd5109a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gac0d33d896ca70cedfc94c5986d947078">theora_encode_YUVin</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t, <a class="el" href="structyuv__buffer.html">yuv_buffer</a> *yuv)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Submit a YUV buffer to the theora encoder.  <a href="group__oldfuncs.html#gac0d33d896ca70cedfc94c5986d947078"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga5f4929677a735bc2198c2309d235f1b3">theora_encode_packetout</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t, int last_p, ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request the next packet of encoded video.  <a href="group__oldfuncs.html#ga5f4929677a735bc2198c2309d235f1b3"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga451feb58d6bde726edbae193689887be">theora_encode_header</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t, ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request a packet containing the initial header.  <a href="group__oldfuncs.html#ga451feb58d6bde726edbae193689887be"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga45e8db0713eaaca0f1144f3724cb834a">theora_encode_comment</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request a comment header packet from provided metadata.  <a href="group__oldfuncs.html#ga45e8db0713eaaca0f1144f3724cb834a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga5085baf20855b283fa01fc948505d9d2">theora_encode_tables</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t, ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request a packet containing the codebook tables for the stream.  <a href="group__oldfuncs.html#ga5085baf20855b283fa01fc948505d9d2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82">theora_decode_header</a> (<a class="el" href="structtheora__info.html">theora_info</a> *ci, <a class="el" href="structtheora__comment.html">theora_comment</a> *cc, ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decode an Ogg packet, with the expectation that the packet contains an initial header, comment data or codebook tables.  <a href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga264907c66003799ff77ecbd09eb33d2c">theora_decode_init</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, <a class="el" href="structtheora__info.html">theora_info</a> *c)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle for decoding.  <a href="group__oldfuncs.html#ga264907c66003799ff77ecbd09eb33d2c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gaa65a9e53b46fd54ab344bd599fa96975">theora_decode_packetin</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Input a packet containing encoded data into the theora decoder.  <a href="group__oldfuncs.html#gaa65a9e53b46fd54ab344bd599fa96975"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga09d47c80e1e94bff0a46a496816b8daa">theora_decode_YUVout</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, <a class="el" href="structyuv__buffer.html">yuv_buffer</a> *yuv)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output the next available frame of decoded YUV data.  <a href="group__oldfuncs.html#ga09d47c80e1e94bff0a46a496816b8daa"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gab969f9d0407683f0e5abe73d0839a25b">theora_packet_isheader</a> (ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Report whether a theora packet is a header or not This function does no verification beyond checking the header flag bit so it should not be used for bitstream identification; use <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header()</a> for that.  <a href="group__oldfuncs.html#gab969f9d0407683f0e5abe73d0839a25b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga39ccc8f847a748d7074c926b4fdd12b2">theora_packet_iskeyframe</a> (ogg_packet *op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Report whether a theora packet is a keyframe or not.  <a href="group__oldfuncs.html#ga39ccc8f847a748d7074c926b4fdd12b2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gacd9360e6a47139c761002410af457a02">theora_granule_shift</a> (<a class="el" href="structtheora__info.html">theora_info</a> *ti)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Report the granulepos shift radix.  <a href="group__oldfuncs.html#gacd9360e6a47139c761002410af457a02"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ogg_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga7bfa3ceb2fb4b41a282456c56e1dd269">theora_granule_frame</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, ogg_int64_t granulepos)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a granulepos to an absolute frame index, starting at 0.  <a href="group__oldfuncs.html#ga7bfa3ceb2fb4b41a282456c56e1dd269"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga4376358b12b9fa23ce6fe21cb5c65ac6">theora_granule_time</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, ogg_int64_t granulepos)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a granulepos to absolute time in seconds.  <a href="group__oldfuncs.html#ga4376358b12b9fa23ce6fe21cb5c65ac6"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga3091c87d48f1faba018c5956379a6d90">theora_info_init</a> (<a class="el" href="structtheora__info.html">theora_info</a> *c)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> structure.  <a href="group__oldfuncs.html#ga3091c87d48f1faba018c5956379a6d90"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gaba7022d58edbc4825cacad03f68b3e0d">theora_info_clear</a> (<a class="el" href="structtheora__info.html">theora_info</a> *c)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear a <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> structure.  <a href="group__oldfuncs.html#gaba7022d58edbc4825cacad03f68b3e0d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#gab252d5d81b925136dda72e8f1c09c5eb">theora_clear</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free all internal data associated with a <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> handle.  <a href="group__oldfuncs.html#gab252d5d81b925136dda72e8f1c09c5eb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga811b92785df3bdbbebb3de612d9d6ce0">theora_comment_init</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize an allocated <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure.  <a href="group__oldfuncs.html#ga811b92785df3bdbbebb3de612d9d6ce0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga650642ed23894e41109bbc42ec393ed4">theora_comment_add</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, char *comment)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a comment to an initialized <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure.  <a href="group__oldfuncs.html#ga650642ed23894e41109bbc42ec393ed4"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga339bd80b5bf4bb168b7052d8ec0b5a92">theora_comment_add_tag</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, char *tag, char *value)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a comment to an initialized <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structure.  <a href="group__oldfuncs.html#ga339bd80b5bf4bb168b7052d8ec0b5a92"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga4361f6001abb5c83c36a2ddfb648a8dc">theora_comment_query</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, char *tag, int count)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Look up a comment value by tag.  <a href="group__oldfuncs.html#ga4361f6001abb5c83c36a2ddfb648a8dc"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga10f66a3c752442a3e0c0098e0f88df8b">theora_comment_query_count</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, char *tag)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Look up the number of instances of a tag.  <a href="group__oldfuncs.html#ga10f66a3c752442a3e0c0098e0f88df8b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga04c07c2eefba3a433e43f9fbde14719f">theora_comment_clear</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear an allocated <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> struct so that it can be freed.  <a href="group__oldfuncs.html#ga04c07c2eefba3a433e43f9fbde14719f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oldfuncs.html#ga186773db3bc8cd550047e7df1b2ba2c9">theora_control</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, int req, void *buf, size_t buf_sz)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encoder control function.  <a href="group__oldfuncs.html#ga186773db3bc8cd550047e7df1b2ba2c9"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The libtheora pre-1.0 legacy C API. </p>
+<h2><a class="anchor" id="intro">
+Introduction</a></h2>
+<p>This is the documentation for the libtheora legacy C API, declared in the <a class="el" href="theora_8h.html" title="The libtheora pre-1.0 legacy C API.">theora.h</a> header, which describes the old interface used before the 1.0 release. This API was widely deployed for several years and remains supported, but for new code we recommend the cleaner API declared in <a class="el" href="theoradec_8h.html" title="The libtheoradec C decoding API.">theoradec.h</a> and <a class="el" href="theoraenc_8h.html" title="The libtheoraenc C encoding API.">theoraenc.h</a>.</p>
+<p>libtheora is the reference implementation for <a href="http://www.theora.org/">Theora</a>, a free video codec. Theora is derived from On2's VP3 codec with improved integration with Ogg multimedia formats by <a href="http://www.xiph.org/">Xiph.Org</a>.</p>
+<h2><a class="anchor" id="overview">
+Overview</a></h2>
+<p>This library will both decode and encode theora packets to/from raw YUV frames. In either case, the packets will most likely either come from or need to be embedded in an Ogg stream. Use <a href="http://xiph.org/ogg/">libogg</a> or <a href="http://www.annodex.net/software/liboggz/index.html">liboggz</a> to extract/package these packets.</p>
+<h2><a class="anchor" id="decoding">
+Decoding Process</a></h2>
+<p>Decoding can be separated into the following steps:</p>
+<ol type="1">
+<li>initialise <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> and <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structures using <a class="el" href="group__oldfuncs.html#ga3091c87d48f1faba018c5956379a6d90" title="Initialize a theora_info structure.">theora_info_init()</a> and <a class="el" href="group__oldfuncs.html#ga811b92785df3bdbbebb3de612d9d6ce0" title="Initialize an allocated theora_comment structure.">theora_comment_init()</a>: <div class="fragment"><pre class="fragment">
+ theora_info     info;
+ theora_comment  comment;
+   
+ theora_info_init(&amp;info);
+ theora_comment_init(&amp;comment);
+ </pre></div></li>
+<li>retrieve header packets from Ogg stream (there should be 3) and decode into <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> and <a class="el" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> structures using <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header()</a>. See <a class="el" href="theora_8h.html#identification">Identifying Theora Packets</a> for more information on identifying which packets are theora packets. <div class="fragment"><pre class="fragment">
+ int i;
+ for (i = 0; i &lt; 3; i++)
+ {
+   (get a theora packet "op" from the Ogg stream)
+   theora_decode_header(&amp;info, &amp;comment, op);
+ }
+ </pre></div></li>
+<li>initialise the decoder based on the information retrieved into the <a class="el" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> struct by <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header()</a>. You will need a <a class="el" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> struct. <div class="fragment"><pre class="fragment">
+ theora_state state;
+ 
+ theora_decode_init(&amp;state, &amp;info);
+ </pre></div></li>
+<li>pass in packets and retrieve decoded frames! See the <a class="el" href="structyuv__buffer.html" title="A YUV buffer for passing uncompressed frames to and from the codec.">yuv_buffer</a> documentation for information on how to retrieve raw YUV data. <div class="fragment"><pre class="fragment">
+ yuf_buffer buffer;
+ while (last packet was not e_o_s) {
+   (get a theora packet "op" from the Ogg stream)
+   theora_decode_packetin(&amp;state, op);
+   theora_decode_YUVout(&amp;state, &amp;buffer);
+ }
+ </pre></div></li>
+</ol>
+<h3><a class="anchor" id="identification">
+Identifying Theora Packets</a></h3>
+<p>All streams inside an Ogg file have a unique serial_no attached to the stream. Typically, you will want to</p>
+<ul>
+<li>retrieve the serial_no for each b_o_s (beginning of stream) page encountered within the Ogg file;</li>
+<li>test the first (only) packet on that page to determine if it is a theora packet;</li>
+<li>once you have found a theora b_o_s page then use the retrieved serial_no to identify future packets belonging to the same theora stream.</li>
+</ul>
+<p>Note that you <em>cannot</em> use <a class="el" href="group__oldfuncs.html#gab969f9d0407683f0e5abe73d0839a25b" title="Report whether a theora packet is a header or not This function does no verification...">theora_packet_isheader()</a> to determine if a packet is a theora packet or not, as this function does not perform any checking beyond whether a header bit is present. Instead, use the <a class="el" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header()</a> function and check the return value; or examine the header bytes at the beginning of the Ogg page. </p>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/theora_8h_source.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/theora_8h_source.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/theora_8h_source.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,245 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: theora.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<h1>theora.h</h1><a href="theora_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"> *                                                                  *</span>
+<a name="l00003"></a>00003 <span class="comment"> * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE.   *</span>
+<a name="l00004"></a>00004 <span class="comment"> * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *</span>
+<a name="l00005"></a>00005 <span class="comment"> * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *</span>
+<a name="l00006"></a>00006 <span class="comment"> * IN &apos;COPYING&apos;. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *</span>
+<a name="l00007"></a>00007 <span class="comment"> *                                                                  *</span>
+<a name="l00008"></a>00008 <span class="comment"> * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009                *</span>
+<a name="l00009"></a>00009 <span class="comment"> * by the Xiph.Org Foundation http://www.xiph.org/                  *</span>
+<a name="l00010"></a>00010 <span class="comment"> *                                                                  *</span>
+<a name="l00011"></a>00011 <span class="comment"> ********************************************************************</span>
+<a name="l00012"></a>00012 <span class="comment"></span>
+<a name="l00013"></a>00013 <span class="comment">  function:</span>
+<a name="l00014"></a>00014 <span class="comment">  last mod: $Id: theora.h,v 1.17 2003/12/06 18:06:19 arc Exp $</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment"> ********************************************************************/</span>
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 <span class="preprocessor">#ifndef _O_THEORA_H_</span>
+<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define _O_THEORA_H_</span>
+<a name="l00020"></a>00020 <span class="preprocessor"></span>
+<a name="l00021"></a>00021 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>
+<a name="l00023"></a>00023 {
+<a name="l00024"></a>00024 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;stddef.h&gt;</span>     <span class="comment">/* for size_t */</span>
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;ogg/ogg.h&gt;</span>
+<a name="l00029"></a>00029 
+<a name="l00121"></a>00121 <span class="comment">/*  @{ */</span>
+<a name="l00122"></a>00122 
+<a name="l00147"></a><a class="code" href="structyuv__buffer.html">00147</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
+<a name="l00148"></a><a class="code" href="structyuv__buffer.html#aaa6c06c071da933231647238418d5fc0">00148</a>     <span class="keywordtype">int</span>   y_width;      
+<a name="l00149"></a><a class="code" href="structyuv__buffer.html#a5a8b60e012247e2caffcbbaca99414e0">00149</a>     <span class="keywordtype">int</span>   y_height;     
+<a name="l00150"></a><a class="code" href="structyuv__buffer.html#a9cdf61834c11b2351640a4a243ad0549">00150</a>     <span class="keywordtype">int</span>   y_stride;     
+<a name="l00152"></a><a class="code" href="structyuv__buffer.html#a8c59a57c35af0be519ee47f15e49fe2b">00152</a>     <span class="keywordtype">int</span>   uv_width;     
+<a name="l00153"></a><a class="code" href="structyuv__buffer.html#a640f1a0b456d3807f9f0538b22f10097">00153</a>     <span class="keywordtype">int</span>   uv_height;    
+<a name="l00154"></a><a class="code" href="structyuv__buffer.html#ab265cc24ffb5650bf52daf223b0debb9">00154</a>     <span class="keywordtype">int</span>   uv_stride;    
+<a name="l00155"></a><a class="code" href="structyuv__buffer.html#a725727c70eeced6b8c90866973399ac1">00155</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *y;   
+<a name="l00156"></a><a class="code" href="structyuv__buffer.html#a8b1857afe3ffac28f259499a57a559e1">00156</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *u;   
+<a name="l00157"></a><a class="code" href="structyuv__buffer.html#aa429491dd112adb0254672c59ef55075">00157</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *v;   
+<a name="l00159"></a>00159 } <a class="code" href="structyuv__buffer.html" title="A YUV buffer for passing uncompressed frames to and from the codec.">yuv_buffer</a>;
+<a name="l00160"></a>00160 
+<a name="l00164"></a><a class="code" href="group__oldfuncs.html#gaa567da4ce591f7373149ce3ef3acdac9">00164</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00165"></a><a class="code" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9abf217cf83d7d7cbf73295e6689f5cf5f">00165</a>   <a class="code" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9abf217cf83d7d7cbf73295e6689f5cf5f" title="The colorspace is unknown or unspecified.">OC_CS_UNSPECIFIED</a>,    
+<a name="l00166"></a><a class="code" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9ab20c9851a21ab148fef0bf2c00c0a294">00166</a>   <a class="code" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9ab20c9851a21ab148fef0bf2c00c0a294" title="This is the best option for &amp;#39;NTSC&amp;#39; content.">OC_CS_ITU_REC_470M</a>,   
+<a name="l00167"></a><a class="code" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9a04f8fa2da26f9ec513f514163705666a">00167</a>   <a class="code" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9a04f8fa2da26f9ec513f514163705666a" title="This is the best option for &amp;#39;PAL&amp;#39; content.">OC_CS_ITU_REC_470BG</a>,  
+<a name="l00168"></a><a class="code" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9a640b572f11fa7102d434e1c605aaa186">00168</a>   <a class="code" href="group__oldfuncs.html#ggaa567da4ce591f7373149ce3ef3acdac9a640b572f11fa7102d434e1c605aaa186" title="This marks the end of the defined colorspaces.">OC_CS_NSPACES</a>         
+<a name="l00169"></a>00169 } <a class="code" href="group__oldfuncs.html#gaa567da4ce591f7373149ce3ef3acdac9" title="A Colorspace.">theora_colorspace</a>;
+<a name="l00170"></a>00170 
+<a name="l00178"></a><a class="code" href="group__oldfuncs.html#gae169da05bfaaf4e964a6866552d45079">00178</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00179"></a><a class="code" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a4e451af01be2645511b0e431f5225d2b">00179</a>   <a class="code" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a4e451af01be2645511b0e431f5225d2b" title="Chroma subsampling by 2 in each direction (4:2:0).">OC_PF_420</a>,    
+<a name="l00180"></a><a class="code" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a7d21c63341ad299766839c83ed1216eb">00180</a>   <a class="code" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a7d21c63341ad299766839c83ed1216eb" title="Reserved value.">OC_PF_RSVD</a>,   
+<a name="l00181"></a><a class="code" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a36a88c55b7ddd5aedeac2d61d57fee5b">00181</a>   <a class="code" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a36a88c55b7ddd5aedeac2d61d57fee5b" title="Horizonatal chroma subsampling by 2 (4:2:2).">OC_PF_422</a>,    
+<a name="l00182"></a><a class="code" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a1d5c6d1b0365e06b4a87880b7825f044">00182</a>   <a class="code" href="group__oldfuncs.html#ggae169da05bfaaf4e964a6866552d45079a1d5c6d1b0365e06b4a87880b7825f044" title="No chroma subsampling at all (4:4:4).">OC_PF_444</a>,    
+<a name="l00183"></a>00183 } <a class="code" href="group__oldfuncs.html#gae169da05bfaaf4e964a6866552d45079" title="A Chroma subsampling.">theora_pixelformat</a>;
+<a name="l00184"></a>00184 
+<a name="l00206"></a><a class="code" href="structtheora__info.html">00206</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
+<a name="l00207"></a><a class="code" href="structtheora__info.html#a17c2fc651bb3329f1ea6b13ff1d3957b">00207</a>   ogg_uint32_t  width;          
+<a name="l00208"></a><a class="code" href="structtheora__info.html#ae6f0274fc4a7f285c422d91abb35f9c6">00208</a>   ogg_uint32_t  height;         
+<a name="l00209"></a><a class="code" href="structtheora__info.html#a8f28f4018a25634d40e4ae861fbbccfa">00209</a>   ogg_uint32_t  frame_width;    
+<a name="l00210"></a><a class="code" href="structtheora__info.html#a287e4c194f1d2e6deb39d59f1748ea48">00210</a>   ogg_uint32_t  frame_height;   
+<a name="l00211"></a><a class="code" href="structtheora__info.html#af5949a02bef29512f2705e6f6c944e3b">00211</a>   ogg_uint32_t  offset_x;       
+<a name="l00212"></a><a class="code" href="structtheora__info.html#a91c3922097ba32a85acd584a01dc2c93">00212</a>   ogg_uint32_t  offset_y;       
+<a name="l00213"></a><a class="code" href="structtheora__info.html#a3478199aa5ab213816c1819f70085ad7">00213</a>   ogg_uint32_t  fps_numerator;      
+<a name="l00214"></a><a class="code" href="structtheora__info.html#a9aa7e826e0323a4ae8cd8646a6cfbfea">00214</a>   ogg_uint32_t  fps_denominator;    
+<a name="l00215"></a><a class="code" href="structtheora__info.html#a5a3ed8c79815fba1aa06c3f7d8e48b35">00215</a>   ogg_uint32_t  aspect_numerator;   
+<a name="l00216"></a><a class="code" href="structtheora__info.html#afebc4d0cbfb34b68c833a8c79e83ae12">00216</a>   ogg_uint32_t  aspect_denominator; 
+<a name="l00217"></a><a class="code" href="structtheora__info.html#a5eaba99c96706d47b426ab7b7602dc5d">00217</a>   <a class="code" href="group__oldfuncs.html#gaa567da4ce591f7373149ce3ef3acdac9" title="A Colorspace.">theora_colorspace</a> colorspace;     
+<a name="l00218"></a><a class="code" href="structtheora__info.html#a0cfba041767ae2416dd190a406afe713">00218</a>   <span class="keywordtype">int</span>           target_bitrate;     
+<a name="l00219"></a><a class="code" href="structtheora__info.html#a71a4748a5f31bd58d0e403b7806c980d">00219</a>   <span class="keywordtype">int</span>           quality;  
+<a name="l00220"></a><a class="code" href="structtheora__info.html#a2dfae4fd175dbd19254eaf0697778ff5">00220</a>   <span class="keywordtype">int</span>           quick_p;  
+<a name="l00222"></a>00222   <span class="comment">/* decode only */</span>
+<a name="l00223"></a><a class="code" href="structtheora__info.html#a7c5ebb9e6700aaef87f29f7c6074e474">00223</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> version_major;
+<a name="l00224"></a><a class="code" href="structtheora__info.html#a75eda4f30270d833c7b9dba43932a06a">00224</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> version_minor;
+<a name="l00225"></a><a class="code" href="structtheora__info.html#aa07967ecd6e20bd2928ead42b6397b3d">00225</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> version_subminor;
+<a name="l00226"></a>00226 
+<a name="l00227"></a><a class="code" href="structtheora__info.html#a719a1d77a4a3bfeab79aa5747dbbb04c">00227</a>   <span class="keywordtype">void</span> *codec_setup;
+<a name="l00228"></a>00228 
+<a name="l00229"></a>00229   <span class="comment">/* encode only */</span>
+<a name="l00230"></a><a class="code" href="structtheora__info.html#af294db65a8363a0bcf43f4727763b291">00230</a>   <span class="keywordtype">int</span>           dropframes_p;
+<a name="l00231"></a><a class="code" href="structtheora__info.html#a23648173369174f687085c0ce85ef30e">00231</a>   <span class="keywordtype">int</span>           keyframe_auto_p;
+<a name="l00232"></a><a class="code" href="structtheora__info.html#a03e1b3e337af5f9dabaaaeb9050f145a">00232</a>   ogg_uint32_t  keyframe_frequency;
+<a name="l00233"></a><a class="code" href="structtheora__info.html#ad9d2e22c44a53473010e6d1042dfe0d8">00233</a>   ogg_uint32_t  keyframe_frequency_force;  <span class="comment">/* also used for decode init to</span>
+<a name="l00234"></a>00234 <span class="comment">                                              get granpos shift correct */</span>
+<a name="l00235"></a><a class="code" href="structtheora__info.html#a588942d1ee90a26a7effdf6a0e98b9ce">00235</a>   ogg_uint32_t  keyframe_data_target_bitrate;
+<a name="l00236"></a><a class="code" href="structtheora__info.html#a95cb8958e29ad3d24047ee8f9e7fd99b">00236</a>   ogg_int32_t   keyframe_auto_threshold;
+<a name="l00237"></a><a class="code" href="structtheora__info.html#aa79ca8c0e77a884d4487fd627fae32e9">00237</a>   ogg_uint32_t  keyframe_mindistance;
+<a name="l00238"></a><a class="code" href="structtheora__info.html#ac4789034f547b57d1075e035050eeed9">00238</a>   ogg_int32_t   noise_sensitivity;
+<a name="l00239"></a><a class="code" href="structtheora__info.html#a3fb695de2b2f56dd0203b9e2eb0df1cc">00239</a>   ogg_int32_t   sharpness;
+<a name="l00240"></a>00240 
+<a name="l00241"></a><a class="code" href="structtheora__info.html#a65ab4376ab5242ee82e06c78fb7008ab">00241</a>   <a class="code" href="group__oldfuncs.html#gae169da05bfaaf4e964a6866552d45079" title="A Chroma subsampling.">theora_pixelformat</a> pixelformat;       
+<a name="l00243"></a>00243 } <a class="code" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a>;
+<a name="l00244"></a>00244 
+<a name="l00247"></a><a class="code" href="structtheora__state.html">00247</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>{
+<a name="l00248"></a><a class="code" href="structtheora__state.html#a0efc7ac581ef260b0ca17f518ace0731">00248</a>   <a class="code" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> *i;
+<a name="l00249"></a><a class="code" href="structtheora__state.html#a5dd344a3f79ea7501b18c756772fab7b">00249</a>   ogg_int64_t granulepos;
+<a name="l00250"></a>00250 
+<a name="l00251"></a><a class="code" href="structtheora__state.html#a1fbfd82fb7210cbcc4233cb680ec2af6">00251</a>   <span class="keywordtype">void</span> *internal_encode;
+<a name="l00252"></a><a class="code" href="structtheora__state.html#ad20c4eebbc5ed9764cf03ba8b90e796e">00252</a>   <span class="keywordtype">void</span> *internal_decode;
+<a name="l00253"></a>00253 
+<a name="l00254"></a>00254 } <a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a>;
+<a name="l00255"></a>00255 
+<a name="l00275"></a><a class="code" href="structtheora__comment.html">00275</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a>{
+<a name="l00276"></a><a class="code" href="structtheora__comment.html#a1e236fd180dfce19be89081399444cf5">00276</a>   <span class="keywordtype">char</span> **<a class="code" href="structtheora__comment.html#a1e236fd180dfce19be89081399444cf5" title="An array of comment string vectors.">user_comments</a>;         
+<a name="l00277"></a><a class="code" href="structtheora__comment.html#a5ab4a376d3c217282a684577c9c9f49a">00277</a>   <span class="keywordtype">int</span>   *<a class="code" href="structtheora__comment.html#a5ab4a376d3c217282a684577c9c9f49a" title="An array of corresponding string vector lengths in bytes.">comment_lengths</a>;       
+<a name="l00278"></a><a class="code" href="structtheora__comment.html#a122393035c8352ff9be42d69e73aee00">00278</a>   <span class="keywordtype">int</span>    <a class="code" href="structtheora__comment.html#a122393035c8352ff9be42d69e73aee00" title="The total number of comment string vectors.">comments</a>;              
+<a name="l00279"></a><a class="code" href="structtheora__comment.html#adb371baf8f0daed42af8b875cf8430ef">00279</a>   <span class="keywordtype">char</span>  *<a class="code" href="structtheora__comment.html#adb371baf8f0daed42af8b875cf8430ef" title="The vendor string identifying the encoder, null terminated.">vendor</a>;                
+<a name="l00281"></a>00281 } <a class="code" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a>;
+<a name="l00282"></a>00282 
+<a name="l00283"></a>00283 
+<a name="l00285"></a>00285 <span class="comment">/* \anchor decctlcodes_old</span>
+<a name="l00286"></a>00286 <span class="comment"> * These are the available request codes for theora_control()</span>
+<a name="l00287"></a>00287 <span class="comment"> * when called with a decoder instance.</span>
+<a name="l00288"></a>00288 <span class="comment"> * By convention decoder control codes are odd, to distinguish </span>
+<a name="l00289"></a>00289 <span class="comment"> * them from \ref encctlcodes_old &quot;encoder control codes&quot; which</span>
+<a name="l00290"></a>00290 <span class="comment"> * are even.</span>
+<a name="l00291"></a>00291 <span class="comment"> *</span>
+<a name="l00292"></a>00292 <span class="comment"> * Note that since the 1.0 release, both the legacy and the final</span>
+<a name="l00293"></a>00293 <span class="comment"> * implementation accept all the same control codes, but only the</span>
+<a name="l00294"></a>00294 <span class="comment"> * final API declares the newer codes.</span>
+<a name="l00295"></a>00295 <span class="comment"> *</span>
+<a name="l00296"></a>00296 <span class="comment"> * Keep any experimental or vendor-specific values above \c 0x8000.*/</span>
+<a name="l00297"></a>00297 
+<a name="l00306"></a><a class="code" href="group__oldfuncs.html#gab31f251c9319f2140d247585d30b3d07">00306</a> <span class="preprocessor">#define TH_DECCTL_GET_PPLEVEL_MAX (1)</span>
+<a name="l00307"></a>00307 <span class="preprocessor"></span>
+<a name="l00313"></a><a class="code" href="group__oldfuncs.html#ga87774c35e1a755a84e2d705b38ebef0d">00313</a> <span class="preprocessor">#define TH_DECCTL_SET_PPLEVEL (3)</span>
+<a name="l00314"></a>00314 <span class="preprocessor"></span>
+<a name="l00327"></a><a class="code" href="group__oldfuncs.html#ga27e755e15b4b5604c54974b304037a49">00327</a> <span class="preprocessor">#define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE (4)</span>
+<a name="l00328"></a>00328 <span class="preprocessor"></span>
+<a name="l00336"></a><a class="code" href="group__oldfuncs.html#ga1e870c654d35394f0d490045df04e0f5">00336</a> <span class="preprocessor">#define TH_DECCTL_SET_GRANPOS (5)</span>
+<a name="l00337"></a>00337 <span class="preprocessor"></span>
+<a name="l00353"></a><a class="code" href="group__oldfuncs.html#ga3befcdd66678f8d27034f9c4b16d1b9c">00353</a> <span class="preprocessor">#define TH_ENCCTL_SET_QUANT_PARAMS (2)</span>
+<a name="l00354"></a>00354 <span class="preprocessor"></span>
+<a name="l00382"></a><a class="code" href="group__oldfuncs.html#ga382d685a39a34d8e6ba76b00d804efd8">00382</a> <span class="preprocessor">#define TH_ENCCTL_SET_VP3_COMPATIBLE (10)</span>
+<a name="l00383"></a>00383 <span class="preprocessor"></span>
+<a name="l00397"></a><a class="code" href="group__oldfuncs.html#ga9baf5bdd206e80c78a8fd44687e89783">00397</a> <span class="preprocessor">#define TH_ENCCTL_GET_SPLEVEL_MAX (12)</span>
+<a name="l00398"></a>00398 <span class="preprocessor"></span>
+<a name="l00412"></a><a class="code" href="group__oldfuncs.html#gabd9fbcb6a25a77d991d3620164fe59d6">00412</a> <span class="preprocessor">#define TH_ENCCTL_SET_SPLEVEL (14)</span>
+<a name="l00413"></a>00413 <span class="preprocessor"></span>
+<a name="l00416"></a><a class="code" href="group__oldfuncs.html#gaa4370e13ed3aea6441ccf69dcab2506e">00416</a> <span class="preprocessor">#define OC_FAULT       -1       </span>
+<a name="l00417"></a><a class="code" href="group__oldfuncs.html#ga43d15091b1a03a734a124e9a04d3be55">00417</a> <span class="preprocessor">#define OC_EINVAL      -10      </span>
+<a name="l00418"></a><a class="code" href="group__oldfuncs.html#ga38b9fa0af856d5930c534db26e2ac2d1">00418</a> <span class="preprocessor">#define OC_DISABLED    -11      </span>
+<a name="l00419"></a><a class="code" href="group__oldfuncs.html#ga809cbad2eb36be17a235a3cadfb737ba">00419</a> <span class="preprocessor">#define OC_BADHEADER   -20      </span>
+<a name="l00420"></a><a class="code" href="group__oldfuncs.html#ga9558d6d9eacd2273c8da27f945d725ad">00420</a> <span class="preprocessor">#define OC_NOTFORMAT   -21      </span>
+<a name="l00421"></a><a class="code" href="group__oldfuncs.html#ga4611cfd61160405721d1e2ab0ec2564b">00421</a> <span class="preprocessor">#define OC_VERSION     -22      </span>
+<a name="l00422"></a><a class="code" href="group__oldfuncs.html#ga895dc2597b3bf9c97bf7701c6eff5b0c">00422</a> <span class="preprocessor">#define OC_IMPL        -23      </span>
+<a name="l00423"></a><a class="code" href="group__oldfuncs.html#ga117774c062a63dfad2a5b4d092fa2bb1">00423</a> <span class="preprocessor">#define OC_BADPACKET   -24      </span>
+<a name="l00424"></a><a class="code" href="group__oldfuncs.html#ga60be4dc92c933eac3542bce3ce076496">00424</a> <span class="preprocessor">#define OC_NEWPACKET   -25      </span>
+<a name="l00425"></a><a class="code" href="group__oldfuncs.html#ga84a8d2f5080ad62b415a4e7551941cbb">00425</a> <span class="preprocessor">#define OC_DUPFRAME    1        </span>
+<a name="l00431"></a>00431 <span class="preprocessor">extern const char *theora_version_string(void);</span>
+<a name="l00432"></a>00432 <span class="preprocessor"></span>
+<a name="l00442"></a>00442 <span class="keyword">extern</span> ogg_uint32_t <a class="code" href="group__oldfuncs.html#gad181f4b19d455dcc2bef2533530b84c8" title="Retrieve a 32-bit version number.">theora_version_number</a>(<span class="keywordtype">void</span>);
+<a name="l00443"></a>00443 
+<a name="l00450"></a>00450 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#ga0f7ad4d4b2343278cb4ba8fb2bd5109a" title="Initialize the theora encoder.">theora_encode_init</a>(<a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> *th, <a class="code" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> *ti);
+<a name="l00451"></a>00451 
+<a name="l00462"></a>00462 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#gac0d33d896ca70cedfc94c5986d947078" title="Submit a YUV buffer to the theora encoder.">theora_encode_YUVin</a>(<a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> *t, <a class="code" href="structyuv__buffer.html" title="A YUV buffer for passing uncompressed frames to and from the codec.">yuv_buffer</a> *yuv);
+<a name="l00463"></a>00463 
+<a name="l00476"></a>00476 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#ga5f4929677a735bc2198c2309d235f1b3" title="Request the next packet of encoded video.">theora_encode_packetout</a>( <a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> *t, <span class="keywordtype">int</span> last_p,
+<a name="l00477"></a>00477                                     ogg_packet *op);
+<a name="l00478"></a>00478 
+<a name="l00489"></a>00489 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#ga451feb58d6bde726edbae193689887be" title="Request a packet containing the initial header.">theora_encode_header</a>(<a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> *t, ogg_packet *op);
+<a name="l00490"></a>00490 
+<a name="l00502"></a>00502 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#ga45e8db0713eaaca0f1144f3724cb834a" title="Request a comment header packet from provided metadata.">theora_encode_comment</a>(<a class="code" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> *tc, ogg_packet *op);
+<a name="l00503"></a>00503 
+<a name="l00514"></a>00514 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#ga5085baf20855b283fa01fc948505d9d2" title="Request a packet containing the codebook tables for the stream.">theora_encode_tables</a>(<a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> *t, ogg_packet *op);
+<a name="l00515"></a>00515 
+<a name="l00557"></a>00557 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#ga02915e63c1bd733ee291f577a8b75a82" title="Decode an Ogg packet, with the expectation that the packet contains an initial header...">theora_decode_header</a>(<a class="code" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> *ci, <a class="code" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> *cc,
+<a name="l00558"></a>00558                                 ogg_packet *op);
+<a name="l00559"></a>00559 
+<a name="l00568"></a>00568 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#ga264907c66003799ff77ecbd09eb33d2c" title="Initialize a theora_state handle for decoding.">theora_decode_init</a>(<a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> *th, <a class="code" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> *c);
+<a name="l00569"></a>00569 
+<a name="l00577"></a>00577 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#gaa65a9e53b46fd54ab344bd599fa96975" title="Input a packet containing encoded data into the theora decoder.">theora_decode_packetin</a>(<a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> *th,ogg_packet *op);
+<a name="l00578"></a>00578 
+<a name="l00589"></a>00589 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#ga09d47c80e1e94bff0a46a496816b8daa" title="Output the next available frame of decoded YUV data.">theora_decode_YUVout</a>(<a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> *th,<a class="code" href="structyuv__buffer.html" title="A YUV buffer for passing uncompressed frames to and from the codec.">yuv_buffer</a> *yuv);
+<a name="l00590"></a>00590 
+<a name="l00603"></a>00603 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#gab969f9d0407683f0e5abe73d0839a25b" title="Report whether a theora packet is a header or not This function does no verification...">theora_packet_isheader</a>(ogg_packet *op);
+<a name="l00604"></a>00604 
+<a name="l00615"></a>00615 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#ga39ccc8f847a748d7074c926b4fdd12b2" title="Report whether a theora packet is a keyframe or not.">theora_packet_iskeyframe</a>(ogg_packet *op);
+<a name="l00616"></a>00616 
+<a name="l00642"></a>00642 <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#gacd9360e6a47139c761002410af457a02" title="Report the granulepos shift radix.">theora_granule_shift</a>(<a class="code" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> *ti);
+<a name="l00643"></a>00643 
+<a name="l00660"></a>00660 <span class="keyword">extern</span> ogg_int64_t <a class="code" href="group__oldfuncs.html#ga7bfa3ceb2fb4b41a282456c56e1dd269" title="Convert a granulepos to an absolute frame index, starting at 0.">theora_granule_frame</a>(<a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> *th,ogg_int64_t granulepos);
+<a name="l00661"></a>00661 
+<a name="l00677"></a>00677 <span class="keyword">extern</span> <span class="keywordtype">double</span> <a class="code" href="group__oldfuncs.html#ga4376358b12b9fa23ce6fe21cb5c65ac6" title="Convert a granulepos to absolute time in seconds.">theora_granule_time</a>(<a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> *th,ogg_int64_t granulepos);
+<a name="l00678"></a>00678 
+<a name="l00685"></a>00685 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__oldfuncs.html#ga3091c87d48f1faba018c5956379a6d90" title="Initialize a theora_info structure.">theora_info_init</a>(<a class="code" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> *c);
+<a name="l00686"></a>00686 
+<a name="l00692"></a>00692 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__oldfuncs.html#gaba7022d58edbc4825cacad03f68b3e0d" title="Clear a theora_info structure.">theora_info_clear</a>(<a class="code" href="structtheora__info.html" title="Theora bitstream info.">theora_info</a> *c);
+<a name="l00693"></a>00693 
+<a name="l00698"></a>00698 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__oldfuncs.html#gab252d5d81b925136dda72e8f1c09c5eb" title="Free all internal data associated with a theora_state handle.">theora_clear</a>(<a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> *t);
+<a name="l00699"></a>00699 
+<a name="l00704"></a>00704 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__oldfuncs.html#ga811b92785df3bdbbebb3de612d9d6ce0" title="Initialize an allocated theora_comment structure.">theora_comment_init</a>(<a class="code" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> *tc);
+<a name="l00705"></a>00705 
+<a name="l00718"></a>00718 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__oldfuncs.html#ga650642ed23894e41109bbc42ec393ed4" title="Add a comment to an initialized theora_comment structure.">theora_comment_add</a>(<a class="code" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> *tc, <span class="keywordtype">char</span> *comment);
+<a name="l00719"></a>00719 
+<a name="l00732"></a>00732 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__oldfuncs.html#ga339bd80b5bf4bb168b7052d8ec0b5a92" title="Add a comment to an initialized theora_comment structure.">theora_comment_add_tag</a>(<a class="code" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> *tc,
+<a name="l00733"></a>00733                                        <span class="keywordtype">char</span> *tag, <span class="keywordtype">char</span> *value);
+<a name="l00734"></a>00734 
+<a name="l00749"></a>00749 <span class="keyword">extern</span> <span class="keywordtype">char</span> *<a class="code" href="group__oldfuncs.html#ga4361f6001abb5c83c36a2ddfb648a8dc" title="Look up a comment value by tag.">theora_comment_query</a>(<a class="code" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> *tc, <span class="keywordtype">char</span> *tag, <span class="keywordtype">int</span> count);
+<a name="l00750"></a>00750 
+<a name="l00760"></a>00760 <span class="keyword">extern</span> <span class="keywordtype">int</span>   <a class="code" href="group__oldfuncs.html#ga10f66a3c752442a3e0c0098e0f88df8b" title="Look up the number of instances of a tag.">theora_comment_query_count</a>(<a class="code" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> *tc, <span class="keywordtype">char</span> *tag);
+<a name="l00761"></a>00761 
+<a name="l00766"></a>00766 <span class="keyword">extern</span> <span class="keywordtype">void</span>  <a class="code" href="group__oldfuncs.html#ga04c07c2eefba3a433e43f9fbde14719f" title="Clear an allocated theora_comment struct so that it can be freed.">theora_comment_clear</a>(<a class="code" href="structtheora__comment.html" title="Comment header metadata.">theora_comment</a> *tc);
+<a name="l00767"></a>00767 
+<a name="l00776"></a>00776 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__oldfuncs.html#ga186773db3bc8cd550047e7df1b2ba2c9" title="Encoder control function.">theora_control</a>(<a class="code" href="structtheora__state.html" title="Codec internal state and context.">theora_state</a> *th,<span class="keywordtype">int</span> req,<span class="keywordtype">void</span> *buf,<span class="keywordtype">size_t</span> buf_sz);
+<a name="l00777"></a>00777 
+<a name="l00778"></a>00778 <span class="comment">/* @} */</span> <span class="comment">/* end oldfuncs doxygen group */</span>
+<a name="l00779"></a>00779 
+<a name="l00780"></a>00780 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00781"></a>00781 <span class="preprocessor"></span>}
+<a name="l00782"></a>00782 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
+<a name="l00783"></a>00783 
+<a name="l00784"></a>00784 <span class="preprocessor">#endif </span><span class="comment">/* _O_THEORA_H_ */</span>
+</pre></div></div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/theoradec_8h.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/theoradec_8h.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/theoradec_8h.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,361 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: theoradec.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>theoradec.h File Reference</h1>
+<p>The <code>libtheoradec</code> C decoding API.  
+<a href="#_details">More...</a></p>
+<code>#include &lt;stddef.h&gt;</code><br/>
+<code>#include &lt;ogg/ogg.h&gt;</code><br/>
+<code>#include &quot;<a class="el" href="codec_8h_source.html">codec.h</a>&quot;</code><br/>
+
+<p><a href="theoradec_8h_source.html">Go to the source code of this file.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structth__stripe__callback.html">th_stripe_callback</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The striped decode callback data to pass to <a class="el" href="theoradec_8h.html#ac95cc9e109474b0fa4bb920ab2cfdf1e" title="Sets the striped decode callback function.">TH_DECCTL_SET_STRIPE_CB</a>.  <a href="structth__stripe__callback.html#_details">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoradec_8h.html#a0d78767a326c34dbf84d5b845cba7b4a">_O_THEORA_THEORADEC_H_</a>&nbsp;&nbsp;&nbsp;(1)</td></tr>
+<tr><td colspan="2"><div class="groupHeader">th_decode_ctl() codes</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp638dfd34390d0a936dbf76caf938d78d"></a><a class="anchor" id="decctlcodes"></a> These are the available request codes for <a class="el" href="group__decfuncs.html#ga1a8051958d75b1012573b6e3c8f670e1" title="Decoder control function.">th_decode_ctl()</a>. By convention, these are odd, to distinguish them from the <a class="el" href="theoraenc_8h.html#encctlcodes">encoder control codes</a>. Keep any experimental or vendor-specific values above <code>0x8000</code>. </p>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoradec_8h.html#ab31f251c9319f2140d247585d30b3d07">TH_DECCTL_GET_PPLEVEL_MAX</a>&nbsp;&nbsp;&nbsp;(1)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the maximum post-processing level.  <a href="#ab31f251c9319f2140d247585d30b3d07"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoradec_8h.html#a87774c35e1a755a84e2d705b38ebef0d">TH_DECCTL_SET_PPLEVEL</a>&nbsp;&nbsp;&nbsp;(3)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the post-processing level.  <a href="#a87774c35e1a755a84e2d705b38ebef0d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoradec_8h.html#a1e870c654d35394f0d490045df04e0f5">TH_DECCTL_SET_GRANPOS</a>&nbsp;&nbsp;&nbsp;(5)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the granule position.  <a href="#a1e870c654d35394f0d490045df04e0f5"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoradec_8h.html#ac95cc9e109474b0fa4bb920ab2cfdf1e">TH_DECCTL_SET_STRIPE_CB</a>&nbsp;&nbsp;&nbsp;(7)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the striped decode callback function.  <a href="#ac95cc9e109474b0fa4bb920ab2cfdf1e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoradec_8h.html#a8d5e0b9b4c8898f93f241acbeb7e7ffb">TH_DECCTL_SET_TELEMETRY_MBMODE</a>&nbsp;&nbsp;&nbsp;(9)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enables telemetry and sets the macroblock display mode.  <a href="#a8d5e0b9b4c8898f93f241acbeb7e7ffb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoradec_8h.html#a829285a03d24832c583f33c6357df8aa">TH_DECCTL_SET_TELEMETRY_MV</a>&nbsp;&nbsp;&nbsp;(11)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enables telemetry and sets the motion vector display mode.  <a href="#a829285a03d24832c583f33c6357df8aa"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoradec_8h.html#ae3e2f7674ad92fe67b63915d48c9df5b">TH_DECCTL_SET_TELEMETRY_QI</a>&nbsp;&nbsp;&nbsp;(13)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enables telemetry and sets the adaptive quantization display mode.  <a href="#ae3e2f7674ad92fe67b63915d48c9df5b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoradec_8h.html#a7f43fec07486f8a5f00e92aab7d44a25">TH_DECCTL_SET_TELEMETRY_BITS</a>&nbsp;&nbsp;&nbsp;(15)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enables telemetry and sets the bitstream breakdown visualization mode.  <a href="#a7f43fec07486f8a5f00e92aab7d44a25"></a><br/></td></tr>
+<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoradec_8h.html#a25dfc8713157545abd81eda476ca4b54">th_stripe_decoded_func</a> )(void *_ctx, <a class="el" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">th_ycbcr_buffer</a> _buf, int _yfrag0, int _yfrag_end)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A callback function for striped decode.  <a href="#a25dfc8713157545abd81eda476ca4b54"></a><br/></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Decoder state</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp20ad7456b6a1ebc1cb57f3e51d4d7bc3"></a>The following data structures are opaque, and their contents are not publicly defined by this API.</p>
+<p>Referring to their internals directly is unsupported, and may break without warning. </p>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The decoder context.  <a href="#a843d70bb02563885a8d54b9c1a781729"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Setup information.  <a href="#ab71cd2657455cc27d6c0127c66a89f28"></a><br/></td></tr>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Functions for decoding</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp9d29c94aa62f20426aa5ff062c7daedd"></a>You must link to <code>libtheoradec</code> if you use any of the functions in this section.</p>
+<p>The functions are listed in the order they are used in a typical decode. The basic steps are:</p>
+<ul>
+<li>Parse the header packets by repeatedly calling <a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50" title="Decodes the header packets of a Theora stream.">th_decode_headerin()</a>.</li>
+<li>Allocate a <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> handle with <a class="el" href="group__decfuncs.html#ga0ef07a9a97849054aa606c595a2d807e" title="Allocates a decoder instance.">th_decode_alloc()</a>.</li>
+<li>Call <a class="el" href="group__decfuncs.html#gadef55431b68aaa59d0d7b32b2f118f27" title="Releases all storage used for the decoder setup information.">th_setup_free()</a> to free any memory used for codec setup information.</li>
+<li>Perform any additional decoder configuration with <a class="el" href="group__decfuncs.html#ga1a8051958d75b1012573b6e3c8f670e1" title="Decoder control function.">th_decode_ctl()</a>.</li>
+<li>For each video data packet:<ul>
+<li>Submit the packet to the decoder via <a class="el" href="group__decfuncs.html#ga31c814bf09b2232aff69c57ae20f04eb" title="Submits a packet containing encoded video data to the decoder.">th_decode_packetin()</a>.</li>
+<li>Retrieve the uncompressed video data via <a class="el" href="group__decfuncs.html#gaa9cc8af63fa8540e0fc95572f259cdcb" title="Outputs the next available frame of decoded Y&#39;CbCr data.">th_decode_ycbcr_out()</a>.</li>
+</ul>
+</li>
+<li>Call <a class="el" href="group__decfuncs.html#gafb6684ad8ba507b71112bc9de148e7d0" title="Frees an allocated decoder instance.">th_decode_free()</a> to release all decoder memory. </li>
+</ul>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50">th_decode_headerin</a> (<a class="el" href="structth__info.html">th_info</a> *_info, <a class="el" href="structth__comment.html">th_comment</a> *_tc, <a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a> **_setup, ogg_packet *_op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decodes the header packets of a Theora stream.  <a href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#ga0ef07a9a97849054aa606c595a2d807e">th_decode_alloc</a> (const <a class="el" href="structth__info.html">th_info</a> *_info, const <a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a> *_setup)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocates a decoder instance.  <a href="group__decfuncs.html#ga0ef07a9a97849054aa606c595a2d807e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#gadef55431b68aaa59d0d7b32b2f118f27">th_setup_free</a> (<a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a> *_setup)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Releases all storage used for the decoder setup information.  <a href="group__decfuncs.html#gadef55431b68aaa59d0d7b32b2f118f27"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#ga1a8051958d75b1012573b6e3c8f670e1">th_decode_ctl</a> (<a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *_dec, int _req, void *_buf, size_t _buf_sz)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decoder control function.  <a href="group__decfuncs.html#ga1a8051958d75b1012573b6e3c8f670e1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#ga31c814bf09b2232aff69c57ae20f04eb">th_decode_packetin</a> (<a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *_dec, const ogg_packet *_op, ogg_int64_t *_granpos)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Submits a packet containing encoded video data to the decoder.  <a href="group__decfuncs.html#ga31c814bf09b2232aff69c57ae20f04eb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#gaa9cc8af63fa8540e0fc95572f259cdcb">th_decode_ycbcr_out</a> (<a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *_dec, <a class="el" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">th_ycbcr_buffer</a> _ycbcr)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Outputs the next available frame of decoded Y'CbCr data.  <a href="group__decfuncs.html#gaa9cc8af63fa8540e0fc95572f259cdcb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decfuncs.html#gafb6684ad8ba507b71112bc9de148e7d0">th_decode_free</a> (<a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> *_dec)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees an allocated decoder instance.  <a href="group__decfuncs.html#gafb6684ad8ba507b71112bc9de148e7d0"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The <code>libtheoradec</code> C decoding API. </p>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a0d78767a326c34dbf84d5b845cba7b4a"></a><!-- doxytag: member="theoradec.h::_O_THEORA_THEORADEC_H_" ref="a0d78767a326c34dbf84d5b845cba7b4a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define _O_THEORA_THEORADEC_H_&nbsp;&nbsp;&nbsp;(1)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab31f251c9319f2140d247585d30b3d07"></a><!-- doxytag: member="theoradec.h::TH_DECCTL_GET_PPLEVEL_MAX" ref="ab31f251c9319f2140d247585d30b3d07" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_DECCTL_GET_PPLEVEL_MAX&nbsp;&nbsp;&nbsp;(1)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Gets the maximum post-processing level. </p>
+<p>The decoder supports a post-processing filter that can improve the appearance of the decoded images. This returns the highest level setting for this post-processor, corresponding to maximum improvement and computational expense.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td>int: The maximum post-processing level. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_dec_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(int)</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a1e870c654d35394f0d490045df04e0f5"></a><!-- doxytag: member="theoradec.h::TH_DECCTL_SET_GRANPOS" ref="a1e870c654d35394f0d490045df04e0f5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_DECCTL_SET_GRANPOS&nbsp;&nbsp;&nbsp;(5)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the granule position. </p>
+<p>Call this after a seek, before decoding the first frame, to ensure that the proper granule position is returned for all subsequent frames. If you track timestamps yourself and do not use the granule position returned by the decoder, then you need not call this function.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>ogg_int64_t</code>: The granule position of the next frame. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_dec_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(ogg_int64_t)</code>, or the granule position is negative. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a87774c35e1a755a84e2d705b38ebef0d"></a><!-- doxytag: member="theoradec.h::TH_DECCTL_SET_PPLEVEL" ref="a87774c35e1a755a84e2d705b38ebef0d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_DECCTL_SET_PPLEVEL&nbsp;&nbsp;&nbsp;(3)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the post-processing level. </p>
+<p>By default, post-processing is disabled.</p>
+<p>Sets the level of post-processing to use when decoding the compressed stream. This must be a value between zero (off) and the maximum returned by TH_DECCTL_GET_PPLEVEL_MAX.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td>int: The new post-processing level. 0 to disable; larger values use more CPU. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_dec_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(int)</code>, or the post-processing level is out of bounds. The maximum post-processing level may be implementation-specific, and can be obtained via <a class="el" href="theoradec_8h.html#ab31f251c9319f2140d247585d30b3d07" title="Gets the maximum post-processing level.">TH_DECCTL_GET_PPLEVEL_MAX</a>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ac95cc9e109474b0fa4bb920ab2cfdf1e"></a><!-- doxytag: member="theoradec.h::TH_DECCTL_SET_STRIPE_CB" ref="ac95cc9e109474b0fa4bb920ab2cfdf1e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_DECCTL_SET_STRIPE_CB&nbsp;&nbsp;&nbsp;(7)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the striped decode callback function. </p>
+<p>If set, this function will be called as each piece of a frame is fully decoded in <a class="el" href="group__decfuncs.html#ga31c814bf09b2232aff69c57ae20f04eb" title="Submits a packet containing encoded video data to the decoder.">th_decode_packetin()</a>. You can pass in a <a class="el" href="structth__stripe__callback.html" title="The striped decode callback data to pass to TH_DECCTL_SET_STRIPE_CB.">th_stripe_callback</a> with <a class="el" href="structth__stripe__callback.html#a977c725680a37e3446e459f063b1f4a5" title="The callback function pointer.">th_stripe_callback::stripe_decoded</a> set to <code>NULL</code> to disable the callbacks at any point. Enabling striped decode does not prevent you from calling <a class="el" href="group__decfuncs.html#gaa9cc8af63fa8540e0fc95572f259cdcb" title="Outputs the next available frame of decoded Y&#39;CbCr data.">th_decode_ycbcr_out()</a> after the frame is fully decoded.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><a class="el" href="structth__stripe__callback.html" title="The striped decode callback data to pass to TH_DECCTL_SET_STRIPE_CB.">th_stripe_callback</a>: The callback parameters. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_dec_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(th_stripe_callback)</code>. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a7f43fec07486f8a5f00e92aab7d44a25"></a><!-- doxytag: member="theoradec.h::TH_DECCTL_SET_TELEMETRY_BITS" ref="a7f43fec07486f8a5f00e92aab7d44a25" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_DECCTL_SET_TELEMETRY_BITS&nbsp;&nbsp;&nbsp;(15)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Enables telemetry and sets the bitstream breakdown visualization mode. </p>
+
+</div>
+</div>
+<a class="anchor" id="a8d5e0b9b4c8898f93f241acbeb7e7ffb"></a><!-- doxytag: member="theoradec.h::TH_DECCTL_SET_TELEMETRY_MBMODE" ref="a8d5e0b9b4c8898f93f241acbeb7e7ffb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_DECCTL_SET_TELEMETRY_MBMODE&nbsp;&nbsp;&nbsp;(9)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Enables telemetry and sets the macroblock display mode. </p>
+
+</div>
+</div>
+<a class="anchor" id="a829285a03d24832c583f33c6357df8aa"></a><!-- doxytag: member="theoradec.h::TH_DECCTL_SET_TELEMETRY_MV" ref="a829285a03d24832c583f33c6357df8aa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_DECCTL_SET_TELEMETRY_MV&nbsp;&nbsp;&nbsp;(11)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Enables telemetry and sets the motion vector display mode. </p>
+
+</div>
+</div>
+<a class="anchor" id="ae3e2f7674ad92fe67b63915d48c9df5b"></a><!-- doxytag: member="theoradec.h::TH_DECCTL_SET_TELEMETRY_QI" ref="ae3e2f7674ad92fe67b63915d48c9df5b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_DECCTL_SET_TELEMETRY_QI&nbsp;&nbsp;&nbsp;(13)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Enables telemetry and sets the adaptive quantization display mode. </p>
+
+</div>
+</div>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="a843d70bb02563885a8d54b9c1a781729"></a><!-- doxytag: member="theoradec.h::th_dec_ctx" ref="a843d70bb02563885a8d54b9c1a781729" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a> <a class="el" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">th_dec_ctx</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The decoder context. </p>
+
+</div>
+</div>
+<a class="anchor" id="ab71cd2657455cc27d6c0127c66a89f28"></a><!-- doxytag: member="theoradec.h::th_setup_info" ref="ab71cd2657455cc27d6c0127c66a89f28" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a> <a class="el" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">th_setup_info</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Setup information. </p>
+<p>This contains auxiliary information (Huffman tables and quantization parameters) decoded from the setup header by <a class="el" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50" title="Decodes the header packets of a Theora stream.">th_decode_headerin()</a> to be passed to <a class="el" href="group__decfuncs.html#ga0ef07a9a97849054aa606c595a2d807e" title="Allocates a decoder instance.">th_decode_alloc()</a>. It can be re-used to initialize any number of decoders, and can be freed via <a class="el" href="group__decfuncs.html#gadef55431b68aaa59d0d7b32b2f118f27" title="Releases all storage used for the decoder setup information.">th_setup_free()</a> at any time. </p>
+
+</div>
+</div>
+<a class="anchor" id="a25dfc8713157545abd81eda476ca4b54"></a><!-- doxytag: member="theoradec.h::th_stripe_decoded_func" ref="a25dfc8713157545abd81eda476ca4b54" args=")(void *_ctx, th_ycbcr_buffer _buf, int _yfrag0, int _yfrag_end)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void(* <a class="el" href="theoradec_8h.html#a25dfc8713157545abd81eda476ca4b54">th_stripe_decoded_func</a>)(void *_ctx, <a class="el" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">th_ycbcr_buffer</a> _buf, int _yfrag0, int _yfrag_end)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>A callback function for striped decode. </p>
+<p>This is a function pointer to an application-provided function that will be called each time a section of the image is fully decoded in <a class="el" href="group__decfuncs.html#ga31c814bf09b2232aff69c57ae20f04eb" title="Submits a packet containing encoded video data to the decoder.">th_decode_packetin()</a>. This allows the application to process the section immediately, while it is still in cache. Note that the frame is decoded bottom to top, so <em>_yfrag0</em> will steadily decrease with each call until it reaches 0, at which point the full frame is decoded. The number of fragment rows made available in each call depends on the pixel format and the number of post-processing filters enabled, and may not even be constant for the entire frame. If a non-<code>NULL</code> <em>_granpos</em> pointer is passed to <a class="el" href="group__decfuncs.html#ga31c814bf09b2232aff69c57ae20f04eb" title="Submits a packet containing encoded video data to the decoder.">th_decode_packetin
 ()</a>, the granule position for the frame will be stored in it before the first callback is made. If an entire frame is dropped (a 0-byte packet), then no callbacks will be made at all for that frame. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>_ctx</em>&nbsp;</td><td>An application-provided context pointer. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_buf</em>&nbsp;</td><td>The image buffer for the decoded frame. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_yfrag0</em>&nbsp;</td><td>The Y coordinate of the first row of 8x8 fragments decoded. Multiply this by 8 to obtain the pixel row number in the luma plane. If the chroma planes are subsampled in the Y direction, this will always be divisible by two. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>_yfrag_end</em>&nbsp;</td><td>The Y coordinate of the first row of 8x8 fragments past the newly decoded section. If the chroma planes are subsampled in the Y direction, this will always be divisible by two. I.e., this section contains fragment rows <code><em>_yfrag0</em> ...<em>_yfrag_end</em> -1</code>. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/theoradec_8h_source.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/theoradec_8h_source.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/theoradec_8h_source.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: theoradec.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<h1>theoradec.h</h1><a href="theoradec_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"> *                                                                  *</span>
+<a name="l00003"></a>00003 <span class="comment"> * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE.   *</span>
+<a name="l00004"></a>00004 <span class="comment"> * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *</span>
+<a name="l00005"></a>00005 <span class="comment"> * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *</span>
+<a name="l00006"></a>00006 <span class="comment"> * IN &apos;COPYING&apos;. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *</span>
+<a name="l00007"></a>00007 <span class="comment"> *                                                                  *</span>
+<a name="l00008"></a>00008 <span class="comment"> * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009                *</span>
+<a name="l00009"></a>00009 <span class="comment"> * by the Xiph.Org Foundation http://www.xiph.org/                  *</span>
+<a name="l00010"></a>00010 <span class="comment"> *                                                                  *</span>
+<a name="l00011"></a>00011 <span class="comment"> ********************************************************************</span>
+<a name="l00012"></a>00012 <span class="comment"></span>
+<a name="l00013"></a>00013 <span class="comment">  function:</span>
+<a name="l00014"></a>00014 <span class="comment">  last mod: $Id: theora.h,v 1.8 2004/03/15 22:17:32 derf Exp $</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment"> ********************************************************************/</span>
+<a name="l00017"></a>00017 
+<a name="l00021"></a>00021 <span class="preprocessor">#if !defined(_O_THEORA_THEORADEC_H_)</span>
+<a name="l00022"></a><a class="code" href="theoradec_8h.html#a0d78767a326c34dbf84d5b845cba7b4a">00022</a> <span class="preprocessor"></span><span class="preprocessor"># define _O_THEORA_THEORADEC_H_ (1)</span>
+<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor"># include &lt;stddef.h&gt;</span>
+<a name="l00024"></a>00024 <span class="preprocessor"># include &lt;ogg/ogg.h&gt;</span>
+<a name="l00025"></a>00025 <span class="preprocessor"># include &quot;<a class="code" href="codec_8h.html" title="The shared libtheoradec and libtheoraenc C API.">codec.h</a>&quot;</span>
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 <span class="preprocessor">#if defined(__cplusplus)</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
+<a name="l00029"></a>00029 <span class="preprocessor">#endif</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span>
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00050"></a><a class="code" href="theoradec_8h.html#ab31f251c9319f2140d247585d30b3d07">00050</a> <span class="preprocessor">#define TH_DECCTL_GET_PPLEVEL_MAX (1)</span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span>
+<a name="l00067"></a><a class="code" href="theoradec_8h.html#a87774c35e1a755a84e2d705b38ebef0d">00067</a> <span class="preprocessor">#define TH_DECCTL_SET_PPLEVEL (3)</span>
+<a name="l00068"></a>00068 <span class="preprocessor"></span>
+<a name="l00079"></a><a class="code" href="theoradec_8h.html#a1e870c654d35394f0d490045df04e0f5">00079</a> <span class="preprocessor">#define TH_DECCTL_SET_GRANPOS (5)</span>
+<a name="l00080"></a>00080 <span class="preprocessor"></span>
+<a name="l00093"></a><a class="code" href="theoradec_8h.html#ac95cc9e109474b0fa4bb920ab2cfdf1e">00093</a> <span class="preprocessor">#define TH_DECCTL_SET_STRIPE_CB (7)</span>
+<a name="l00094"></a>00094 <span class="preprocessor"></span>
+<a name="l00096"></a><a class="code" href="theoradec_8h.html#a8d5e0b9b4c8898f93f241acbeb7e7ffb">00096</a> <span class="preprocessor">#define TH_DECCTL_SET_TELEMETRY_MBMODE (9)</span>
+<a name="l00097"></a>00097 <span class="preprocessor"></span>
+<a name="l00098"></a><a class="code" href="theoradec_8h.html#a829285a03d24832c583f33c6357df8aa">00098</a> <span class="preprocessor">#define TH_DECCTL_SET_TELEMETRY_MV (11)</span>
+<a name="l00099"></a>00099 <span class="preprocessor"></span>
+<a name="l00100"></a><a class="code" href="theoradec_8h.html#ae3e2f7674ad92fe67b63915d48c9df5b">00100</a> <span class="preprocessor">#define TH_DECCTL_SET_TELEMETRY_QI (13)</span>
+<a name="l00101"></a>00101 <span class="preprocessor"></span>
+<a name="l00102"></a><a class="code" href="theoradec_8h.html#a7f43fec07486f8a5f00e92aab7d44a25">00102</a> <span class="preprocessor">#define TH_DECCTL_SET_TELEMETRY_BITS (15)</span>
+<a name="l00103"></a>00103 <span class="preprocessor"></span>
+<a name="l00138"></a><a class="code" href="theoradec_8h.html#a25dfc8713157545abd81eda476ca4b54">00138</a> <span class="keyword">typedef</span> void (*<a class="code" href="theoradec_8h.html#a25dfc8713157545abd81eda476ca4b54" title="A callback function for striped decode.">th_stripe_decoded_func</a>)(<span class="keywordtype">void</span> *_ctx,<a class="code" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45" title="A complete image buffer for an uncompressed frame.">th_ycbcr_buffer</a> _buf,
+<a name="l00139"></a>00139  <span class="keywordtype">int</span> _yfrag0,<span class="keywordtype">int</span> _yfrag_end);
+<a name="l00140"></a>00140 
+<a name="l00142"></a><a class="code" href="structth__stripe__callback.html">00142</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>{
+<a name="l00145"></a><a class="code" href="structth__stripe__callback.html#ab895162ce29a411fa98e0ba9661f47d4">00145</a>   <span class="keywordtype">void</span>                   *ctx;
+<a name="l00147"></a><a class="code" href="structth__stripe__callback.html#a977c725680a37e3446e459f063b1f4a5">00147</a>   <a class="code" href="theoradec_8h.html#a25dfc8713157545abd81eda476ca4b54" title="A callback function for striped decode.">th_stripe_decoded_func</a>  stripe_decoded;
+<a name="l00148"></a>00148 }<a class="code" href="structth__stripe__callback.html" title="The striped decode callback data to pass to TH_DECCTL_SET_STRIPE_CB.">th_stripe_callback</a>;
+<a name="l00149"></a>00149 
+<a name="l00150"></a>00150 
+<a name="l00151"></a>00151 
+<a name="l00159"></a><a class="code" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729">00159</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a>    <a class="code" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a>;
+<a name="l00166"></a><a class="code" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28">00166</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28" title="Setup information.">th_setup_info</a> <a class="code" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28" title="Setup information.">th_setup_info</a>;
+<a name="l00231"></a>00231 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__decfuncs.html#ga006d01d36fbe64768c571e6a12b7fc50" title="Decodes the header packets of a Theora stream.">th_decode_headerin</a>(<a class="code" href="structth__info.html" title="Theora bitstream information.">th_info</a> *_info,<a class="code" href="structth__comment.html" title="The comment information.">th_comment</a> *_tc,
+<a name="l00232"></a>00232  <a class="code" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28" title="Setup information.">th_setup_info</a> **_setup,ogg_packet *_op);
+<a name="l00255"></a>00255 <span class="keyword">extern</span> <a class="code" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> *<a class="code" href="group__decfuncs.html#ga0ef07a9a97849054aa606c595a2d807e" title="Allocates a decoder instance.">th_decode_alloc</a>(<span class="keyword">const</span> <a class="code" href="structth__info.html" title="Theora bitstream information.">th_info</a> *_info,
+<a name="l00256"></a>00256  <span class="keyword">const</span> <a class="code" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28" title="Setup information.">th_setup_info</a> *_setup);
+<a name="l00262"></a>00262 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__decfuncs.html#gadef55431b68aaa59d0d7b32b2f118f27" title="Releases all storage used for the decoder setup information.">th_setup_free</a>(<a class="code" href="theoradec_8h.html#ab71cd2657455cc27d6c0127c66a89f28" title="Setup information.">th_setup_info</a> *_setup);
+<a name="l00271"></a>00271 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__decfuncs.html#ga1a8051958d75b1012573b6e3c8f670e1" title="Decoder control function.">th_decode_ctl</a>(<a class="code" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> *_dec,<span class="keywordtype">int</span> _req,<span class="keywordtype">void</span> *_buf,
+<a name="l00272"></a>00272  <span class="keywordtype">size_t</span> _buf_sz);
+<a name="l00294"></a>00294 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__decfuncs.html#ga31c814bf09b2232aff69c57ae20f04eb" title="Submits a packet containing encoded video data to the decoder.">th_decode_packetin</a>(<a class="code" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> *_dec,<span class="keyword">const</span> ogg_packet *_op,
+<a name="l00295"></a>00295  ogg_int64_t *_granpos);
+<a name="l00311"></a>00311 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__decfuncs.html#gaa9cc8af63fa8540e0fc95572f259cdcb" title="Outputs the next available frame of decoded Y&amp;#39;CbCr data.">th_decode_ycbcr_out</a>(<a class="code" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> *_dec,
+<a name="l00312"></a>00312  <a class="code" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45" title="A complete image buffer for an uncompressed frame.">th_ycbcr_buffer</a> _ycbcr);
+<a name="l00315"></a>00315 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__decfuncs.html#gafb6684ad8ba507b71112bc9de148e7d0" title="Frees an allocated decoder instance.">th_decode_free</a>(<a class="code" href="theoradec_8h.html#a843d70bb02563885a8d54b9c1a781729" title="The decoder context.">th_dec_ctx</a> *_dec);
+<a name="l00318"></a>00318 
+<a name="l00319"></a>00319 
+<a name="l00320"></a>00320 
+<a name="l00321"></a>00321 <span class="preprocessor">#if defined(__cplusplus)</span>
+<a name="l00322"></a>00322 <span class="preprocessor"></span>}
+<a name="l00323"></a>00323 <span class="preprocessor">#endif</span>
+<a name="l00324"></a>00324 <span class="preprocessor"></span>
+<a name="l00325"></a>00325 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/theoraenc_8h.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/theoraenc_8h.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/theoraenc_8h.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,674 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: theoraenc.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>theoraenc.h File Reference</h1>
+<p>The <code>libtheoraenc</code> C encoding API.  
+<a href="#_details">More...</a></p>
+<code>#include &lt;stddef.h&gt;</code><br/>
+<code>#include &lt;ogg/ogg.h&gt;</code><br/>
+<code>#include &quot;<a class="el" href="codec_8h_source.html">codec.h</a>&quot;</code><br/>
+
+<p><a href="theoraenc_8h_source.html">Go to the source code of this file.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#ab915dd90f069a2431454fd62365e9381">_O_THEORA_THEORAENC_H_</a>&nbsp;&nbsp;&nbsp;(1)</td></tr>
+<tr><td colspan="2"><div class="groupHeader">th_encode_ctl() codes</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp652c8d6bf1cea216ce117704a398b5f8"></a><a class="anchor" id="encctlcodes"></a> These are the available request codes for <a class="el" href="group__encfuncs.html#ga3a427f6514dfdc01ea72172c469d51d9" title="Encoder control function.">th_encode_ctl()</a>. By convention, these are even, to distinguish them from the <a class="el" href="theoradec_8h.html#decctlcodes">decoder control codes</a>. Keep any experimental or vendor-specific values above <code>0x8000</code>. </p>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a0165348788e560a19b7c61ae8f0c2283">TH_ENCCTL_SET_HUFFMAN_CODES</a>&nbsp;&nbsp;&nbsp;(0)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the Huffman tables to use.  <a href="#a0165348788e560a19b7c61ae8f0c2283"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a3befcdd66678f8d27034f9c4b16d1b9c">TH_ENCCTL_SET_QUANT_PARAMS</a>&nbsp;&nbsp;&nbsp;(2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the quantization parameters to use.  <a href="#a3befcdd66678f8d27034f9c4b16d1b9c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a27e755e15b4b5604c54974b304037a49">TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE</a>&nbsp;&nbsp;&nbsp;(4)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the maximum distance between key frames.  <a href="#a27e755e15b4b5604c54974b304037a49"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a382d685a39a34d8e6ba76b00d804efd8">TH_ENCCTL_SET_VP3_COMPATIBLE</a>&nbsp;&nbsp;&nbsp;(10)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disables any encoder features that would prevent lossless transcoding back to VP3.  <a href="#a382d685a39a34d8e6ba76b00d804efd8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a9baf5bdd206e80c78a8fd44687e89783">TH_ENCCTL_GET_SPLEVEL_MAX</a>&nbsp;&nbsp;&nbsp;(12)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the maximum speed level.  <a href="#a9baf5bdd206e80c78a8fd44687e89783"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#abd9fbcb6a25a77d991d3620164fe59d6">TH_ENCCTL_SET_SPLEVEL</a>&nbsp;&nbsp;&nbsp;(14)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the speed level.  <a href="#abd9fbcb6a25a77d991d3620164fe59d6"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a114b7c552f50b7b8d881a39489af1f61">TH_ENCCTL_GET_SPLEVEL</a>&nbsp;&nbsp;&nbsp;(16)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the current speed level.  <a href="#a114b7c552f50b7b8d881a39489af1f61"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a8bb9b05471c42a09f8684a2583b8a1df">TH_ENCCTL_SET_DUP_COUNT</a>&nbsp;&nbsp;&nbsp;(18)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the number of duplicates of the next frame to produce.  <a href="#a8bb9b05471c42a09f8684a2583b8a1df"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a026502e08fbe1af0a1063f39bd18129c">TH_ENCCTL_SET_RATE_FLAGS</a>&nbsp;&nbsp;&nbsp;(20)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Modifies the default bitrate management behavior.  <a href="#a026502e08fbe1af0a1063f39bd18129c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#aaefb515876b2a180ad5c3120fc584a52">TH_ENCCTL_SET_RATE_BUFFER</a>&nbsp;&nbsp;&nbsp;(22)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the size of the bitrate management bit reservoir as a function of number of frames.  <a href="#aaefb515876b2a180ad5c3120fc584a52"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#ac3751b9c3838888ec2e3f0b0d2823282">TH_ENCCTL_2PASS_OUT</a>&nbsp;&nbsp;&nbsp;(24)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enable pass 1 of two-pass encoding mode and retrieve the first pass metrics.  <a href="#ac3751b9c3838888ec2e3f0b0d2823282"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a4a84f982cdd9a3e3c803a29bbde9df0b">TH_ENCCTL_2PASS_IN</a>&nbsp;&nbsp;&nbsp;(26)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Submits two-pass encoding metric data collected the first encoding pass to the second pass.  <a href="#a4a84f982cdd9a3e3c803a29bbde9df0b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#aac087983fa951b9148c9db6bc2e81ef4">TH_ENCCTL_SET_QUALITY</a>&nbsp;&nbsp;&nbsp;(28)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the current encoding quality.  <a href="#aac087983fa951b9148c9db6bc2e81ef4"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a9b969df55ecad1acd1ae207fad42592e">TH_ENCCTL_SET_BITRATE</a>&nbsp;&nbsp;&nbsp;(30)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the current encoding bitrate.  <a href="#a9b969df55ecad1acd1ae207fad42592e"></a><br/></td></tr>
+<tr><td colspan="2"><div class="groupHeader">TH_ENCCTL_SET_RATE_FLAGS flags</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp6d70796e675cce22589d15a73cb3a16b"></a><a class="anchor" id="ratectlflags"></a> These are the flags available for use with <a class="el" href="theoraenc_8h.html#a026502e08fbe1af0a1063f39bd18129c" title="Modifies the default bitrate management behavior.">TH_ENCCTL_SET_RATE_FLAGS</a>. </p>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a3e7fab53b902b54135522ba286f45e33">TH_RATECTL_DROP_FRAMES</a>&nbsp;&nbsp;&nbsp;(0x1)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drop frames to keep within bitrate buffer constraints.  <a href="#a3e7fab53b902b54135522ba286f45e33"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a32f9983b344a431334493cefb0b9337c">TH_RATECTL_CAP_OVERFLOW</a>&nbsp;&nbsp;&nbsp;(0x2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Ignore bitrate buffer overflows.  <a href="#a32f9983b344a431334493cefb0b9337c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#ad0d62d9dce542caf5296b03b97e020a6">TH_RATECTL_CAP_UNDERFLOW</a>&nbsp;&nbsp;&nbsp;(0x4)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Ignore bitrate buffer underflows.  <a href="#ad0d62d9dce542caf5296b03b97e020a6"></a><br/></td></tr>
+<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Encoder state</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp4ebc85bd8522a8b6128225c02b31c8b7"></a>The following data structure is opaque, and its contents are not publicly defined by this API.</p>
+<p>Referring to its internals directly is unsupported, and may break without warning. </p>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The encoder context.  <a href="#af5cc40472b925456d42526a035d66edd"></a><br/></td></tr>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Functions for encoding</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpc58fb8743a7ca83eb895d57e29e032c8"></a>You must link to <code>libtheoraenc</code> and <code>libtheoradec</code> if you use any of the functions in this section.</p>
+<p>The functions are listed in the order they are used in a typical encode. The basic steps are:</p>
+<ul>
+<li>Fill in a <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> structure with details on the format of the video you wish to encode.</li>
+<li>Allocate a <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> handle with <a class="el" href="group__encfuncs.html#gaa91e47bc9dd5f6ee52045bd7b815e5a7" title="Allocates an encoder instance.">th_encode_alloc()</a>.</li>
+<li>Perform any additional encoder configuration required with <a class="el" href="group__encfuncs.html#ga3a427f6514dfdc01ea72172c469d51d9" title="Encoder control function.">th_encode_ctl()</a>.</li>
+<li>Repeatedly call <a class="el" href="group__encfuncs.html#ga9439d61b566039d194ff782681fbc408" title="Outputs the next header packet.">th_encode_flushheader()</a> to retrieve all the header packets.</li>
+<li>For each uncompressed frame:<ul>
+<li>Submit the uncompressed frame via <a class="el" href="group__encfuncs.html#gadbe7dd66b411c2d61ab8153c15308750" title="Submits an uncompressed frame to the encoder.">th_encode_ycbcr_in()</a></li>
+<li>Repeatedly call <a class="el" href="group__encfuncs.html#ga96d8ac1dda53187455352f99bbb5b04b" title="Retrieves encoded video data packets.">th_encode_packetout()</a> to retrieve any video data packets that are ready.</li>
+</ul>
+</li>
+<li>Call <a class="el" href="group__encfuncs.html#ga36b23d216532231925c4107894204680" title="Frees an allocated encoder instance.">th_encode_free()</a> to release all encoder memory. </li>
+</ul>
+<br/><br/></div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__encfuncs.html#gaa91e47bc9dd5f6ee52045bd7b815e5a7">th_encode_alloc</a> (const <a class="el" href="structth__info.html">th_info</a> *_info)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocates an encoder instance.  <a href="group__encfuncs.html#gaa91e47bc9dd5f6ee52045bd7b815e5a7"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__encfuncs.html#ga3a427f6514dfdc01ea72172c469d51d9">th_encode_ctl</a> (<a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *_enc, int _req, void *_buf, size_t _buf_sz)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encoder control function.  <a href="group__encfuncs.html#ga3a427f6514dfdc01ea72172c469d51d9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__encfuncs.html#ga9439d61b566039d194ff782681fbc408">th_encode_flushheader</a> (<a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *_enc, <a class="el" href="structth__comment.html">th_comment</a> *_comments, ogg_packet *_op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Outputs the next header packet.  <a href="group__encfuncs.html#ga9439d61b566039d194ff782681fbc408"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__encfuncs.html#gadbe7dd66b411c2d61ab8153c15308750">th_encode_ycbcr_in</a> (<a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *_enc, <a class="el" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45">th_ycbcr_buffer</a> _ycbcr)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Submits an uncompressed frame to the encoder.  <a href="group__encfuncs.html#gadbe7dd66b411c2d61ab8153c15308750"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__encfuncs.html#ga96d8ac1dda53187455352f99bbb5b04b">th_encode_packetout</a> (<a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *_enc, int _last, ogg_packet *_op)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves encoded video data packets.  <a href="group__encfuncs.html#ga96d8ac1dda53187455352f99bbb5b04b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__encfuncs.html#ga36b23d216532231925c4107894204680">th_encode_free</a> (<a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> *_enc)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees an allocated encoder instance.  <a href="group__encfuncs.html#ga36b23d216532231925c4107894204680"></a><br/></td></tr>
+<tr><td colspan="2"><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structth__quant__info.html">th_quant_info</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#a3b1b462989f4e7a5a98e6e697f1a7f7d">TH_VP31_QUANT_INFO</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The quantization parameters used by VP3.  <a href="#a3b1b462989f4e7a5a98e6e697f1a7f7d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structth__huff__code.html">th_huff_code</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="theoraenc_8h.html#aee1f7cb1fa0d3b7cc1d4ca0f17e6ae5e">TH_VP31_HUFF_CODES</a> [TH_NHUFFMAN_TABLES][TH_NDCT_TOKENS]</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The Huffman tables used by VP3.  <a href="#aee1f7cb1fa0d3b7cc1d4ca0f17e6ae5e"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The <code>libtheoraenc</code> C encoding API. </p>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ab915dd90f069a2431454fd62365e9381"></a><!-- doxytag: member="theoraenc.h::_O_THEORA_THEORAENC_H_" ref="ab915dd90f069a2431454fd62365e9381" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define _O_THEORA_THEORAENC_H_&nbsp;&nbsp;&nbsp;(1)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4a84f982cdd9a3e3c803a29bbde9df0b"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_2PASS_IN" ref="a4a84f982cdd9a3e3c803a29bbde9df0b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_2PASS_IN&nbsp;&nbsp;&nbsp;(26)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Submits two-pass encoding metric data collected the first encoding pass to the second pass. </p>
+<p>The first call must be made before the first frame is encoded, and a target bitrate must have already been specified to the encoder. It sets the encoder to pass 2 mode implicitly; this cannot be disabled. The encoder may require reading data from some or all of the frames in advance, depending on, e.g., the reservoir size used in the second pass. You must call this function repeatedly before each frame to provide data until either a) it fails to consume all of the data presented or b) all of the pass 1 data has been consumed. In the first case, you must save the remaining data to be presented after the next frame. You can call this function with a NULL argument to get an upper bound on the number of bytes that will be required before the next frame.</p>
+<p>When pass 2 is first enabled, the default bit reservoir is set to the entire file; this gives maximum flexibility but can lead to very high peak rates. You can subsequently set it to another value with <a class="el" href="theoraenc_8h.html#aaefb515876b2a180ad5c3120fc584a52" title="Sets the size of the bitrate management bit reservoir as a function of number of...">TH_ENCCTL_SET_RATE_BUFFER</a> (e.g., to set it to the keyframe interval for non-live streaming), however, you may then need to provide more data before the next frame.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>char[]</code>: A buffer containing the data returned by <a class="el" href="theoraenc_8h.html#ac3751b9c3838888ec2e3f0b0d2823282" title="Enable pass 1 of two-pass encoding mode and retrieve the first pass metrics.">TH_ENCCTL_2PASS_OUT</a> in pass 1. You may pass <code>NULL</code> for <em>_buf</em> to return an upper bound on the number of additional bytes needed before the next frame. The summary data returned at the end of pass 1 must be at the head of the buffer on the first call with a non-<code>NULL</code> <em>_buf</em>, and the placeholder data returned at the start of pass 1 should be omitted. After each call you should advance this buffer by the number of bytes consumed. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>&gt;0</em>&nbsp;</td><td>The number of bytes of metric data required/consumed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>No more data is required before the next frame. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td>No target bitrate has been set, or the first call was made after the first frame was submitted for encoding. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_ENOTFORMAT</em>&nbsp;</td><td>The data did not appear to be pass 1 from a compatible implementation of this library. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EBADHEADER</em>&nbsp;</td><td>The data was invalid; this may be returned when attempting to read an aborted pass 1 file that still has the placeholder data in place of the summary data. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ac3751b9c3838888ec2e3f0b0d2823282"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_2PASS_OUT" ref="ac3751b9c3838888ec2e3f0b0d2823282" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_2PASS_OUT&nbsp;&nbsp;&nbsp;(24)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Enable pass 1 of two-pass encoding mode and retrieve the first pass metrics. </p>
+<p>Pass 1 mode must be enabled before the first frame is encoded, and a target bitrate must have already been specified to the encoder. Although this does not have to be the exact rate that will be used in the second pass, closer values may produce better results. The first call returns the size of the two-pass header data, along with some placeholder content, and sets the encoder into pass 1 mode implicitly. This call sets the encoder to pass 1 mode implicitly. Then, a subsequent call must be made after each call to <a class="el" href="group__encfuncs.html#gadbe7dd66b411c2d61ab8153c15308750" title="Submits an uncompressed frame to the encoder.">th_encode_ycbcr_in()</a> to retrieve the metrics for that frame. An additional, final call must be made to retrieve the summary data, containing such information as the total number of frames, etc. This must be stored in place of the placeholder data that was returned in the first call, before the frame metrics data. All of this data
  must be presented back to the encoder during pass 2 using <a class="el" href="theoraenc_8h.html#a4a84f982cdd9a3e3c803a29bbde9df0b" title="Submits two-pass encoding metric data collected the first encoding pass to the second...">TH_ENCCTL_2PASS_IN</a>.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>&lt;tt&gt;char</em>&nbsp;</td><td>*_buf: Returns a pointer to internal storage containing the two pass metrics data. This storage is only valid until the next call, or until the encoder context is freed, and must be copied by the application. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>&gt;=0</em>&nbsp;</td><td>The number of bytes of metric data available in the returned buffer. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(char *)</code>, no target bitrate has been set, or the first call was made after the first frame was submitted for encoding. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a114b7c552f50b7b8d881a39489af1f61"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_GET_SPLEVEL" ref="a114b7c552f50b7b8d881a39489af1f61" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_GET_SPLEVEL&nbsp;&nbsp;&nbsp;(16)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Gets the current speed level. </p>
+<p>The default speed level may vary according to encoder implementation, but if this control code is not supported (it returns <a class="el" href="codec_8h.html#a921c47accc17841f220af5a6afb79efe" title="The specified function is not implemented.">TH_EIMPL</a>), the default may be assumed to be the slowest available speed (0). The maximum encoding speed level may be implementation- and encoding mode-specific, and can be obtained via <a class="el" href="theoraenc_8h.html#a9baf5bdd206e80c78a8fd44687e89783" title="Gets the maximum speed level.">TH_ENCCTL_GET_SPLEVEL_MAX</a>.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>int</code>: The current encoding speed level. 0 is slowest, larger values use less CPU. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(int)</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation in the current encoding mode. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a9baf5bdd206e80c78a8fd44687e89783"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_GET_SPLEVEL_MAX" ref="a9baf5bdd206e80c78a8fd44687e89783" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_GET_SPLEVEL_MAX&nbsp;&nbsp;&nbsp;(12)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Gets the maximum speed level. </p>
+<p>Higher speed levels favor quicker encoding over better quality per bit. Depending on the encoding mode, and the internal algorithms used, quality may actually improve, but in this case bitrate will also likely increase. In any case, overall rate/distortion performance will probably decrease. The maximum value, and the meaning of each value, may change depending on the current encoding mode (VBR vs. constant quality, etc.).</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>int</code>: The maximum encoding speed level. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(int)</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation in the current encoding mode. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a9b969df55ecad1acd1ae207fad42592e"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_SET_BITRATE" ref="a9b969df55ecad1acd1ae207fad42592e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_BITRATE&nbsp;&nbsp;&nbsp;(30)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the current encoding bitrate. </p>
+<p>Once a bitrate is set, the encoder must use a rate-controlled mode for all future frames (this restriction may be relaxed in a future version). If it is set before the headers are emitted, the target bitrate encoded in them will be updated. Due to the buffer delay, the exact bitrate of each section of the encode is not guaranteed. The encoder may have already used more bits than allowed for the frames it has encoded, expecting to make them up in future frames, or it may have used fewer, holding the excess in reserve. The exact transition between the two bitrates is not well-defined by this API, but may be affected by flags set with <a class="el" href="theoraenc_8h.html#a026502e08fbe1af0a1063f39bd18129c" title="Modifies the default bitrate management behavior.">TH_ENCCTL_SET_RATE_FLAGS</a>. After a number of frames equal to the buffer delay, one may expect further output to average at the target bitrate.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>long</code>: The new target bitrate, in bits per second. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td>The target bitrate was not positive. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a8bb9b05471c42a09f8684a2583b8a1df"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_SET_DUP_COUNT" ref="a8bb9b05471c42a09f8684a2583b8a1df" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_DUP_COUNT&nbsp;&nbsp;&nbsp;(18)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the number of duplicates of the next frame to produce. </p>
+<p>Although libtheora can encode duplicate frames very cheaply, it costs some amount of CPU to detect them, and a run of duplicates cannot span a keyframe boundary. This control code tells the encoder to produce the specified number of extra duplicates of the next frame. This allows the encoder to make smarter keyframe placement decisions and rate control decisions, and reduces CPU usage as well, when compared to just submitting the same frame for encoding multiple times. This setting only applies to the next frame submitted for encoding. You MUST call <a class="el" href="group__encfuncs.html#ga96d8ac1dda53187455352f99bbb5b04b" title="Retrieves encoded video data packets.">th_encode_packetout()</a> repeatedly until it returns 0, or the extra duplicate frames will be lost.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>int</code>: The number of duplicates to produce. If this is negative or zero, no duplicates will be produced. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(int)</code>, or the number of duplicates is greater than or equal to the maximum keyframe interval. In the latter case, NO duplicate frames will be produced. You must ensure that the maximum keyframe interval is set larger than the maximum number of duplicates you will ever wish to insert prior to encoding. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation in the current encoding mode. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a0165348788e560a19b7c61ae8f0c2283"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_SET_HUFFMAN_CODES" ref="a0165348788e560a19b7c61ae8f0c2283" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_HUFFMAN_CODES&nbsp;&nbsp;&nbsp;(0)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the Huffman tables to use. </p>
+<p>The tables are copied, not stored by reference, so they can be freed after this call. <code>NULL</code> may be specified to revert to the default tables.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code><a class="el" href="structth__huff__code.html" title="A Huffman code for a Theora DCT token.">th_huff_code</a>[<a class="el" href="codec_8h.html#a49bf449eae33c5320f0c308f32c6ae42" title="The number of Huffman tables used by Theora.">TH_NHUFFMAN_TABLES</a>][<a class="el" href="codec_8h.html#a2a44f48084e76a58cae48fb5d47cd422" title="The number of DCT token values in each table.">TH_NDCT_TOKENS</a>]</code> </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td>Encoding has already begun or one or more of the given tables is not full or prefix-free, <em>_buf</em> is <code>NULL</code> and <em>_buf_sz</em> is not zero, or <em>_buf</em> is non-<code>NULL</code> and <em>_buf_sz</em> is not <code>sizeof(<a class="el" href="structth__huff__code.html" title="A Huffman code for a Theora DCT token.">th_huff_code</a>)*<a class="el" href="codec_8h.html#a49bf449eae33c5320f0c308f32c6ae42" title="The number of Huffman tables used by Theora.">TH_NHUFFMAN_TABLES</a>*<a class="el" href="codec_8h.html#a2a44f48084e76a58cae48fb5d47cd422" title="The number of DCT token values in each table.">TH_NDCT_TOKENS</a></code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a27e755e15b4b5604c54974b304037a49"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE" ref="a27e755e15b4b5604c54974b304037a49" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE&nbsp;&nbsp;&nbsp;(4)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the maximum distance between key frames. </p>
+<p>This can be changed during an encode, but will be bounded by <code>1&lt;&lt;<a class="el" href="structth__info.html#a693ca4ab11fbc0c3f32594b4bb8766ed" title="The amount to shift to extract the last keyframe number from the granule position...">th_info::keyframe_granule_shift</a></code>. If it is set before encoding begins, <a class="el" href="structth__info.html#a693ca4ab11fbc0c3f32594b4bb8766ed" title="The amount to shift to extract the last keyframe number from the granule position...">th_info::keyframe_granule_shift</a> will be enlarged appropriately.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>ogg_uint32_t</code>: The maximum distance between key frames. </td></tr>
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>ogg_uint32_t</code>: The actual maximum distance set. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(ogg_uint32_t)</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aac087983fa951b9148c9db6bc2e81ef4"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_SET_QUALITY" ref="aac087983fa951b9148c9db6bc2e81ef4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_QUALITY&nbsp;&nbsp;&nbsp;(28)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the current encoding quality. </p>
+<p>This is only valid so long as no bitrate has been specified, either through the <a class="el" href="structth__info.html" title="Theora bitstream information.">th_info</a> struct used to initialize the encoder or through <a class="el" href="theoraenc_8h.html#a9b969df55ecad1acd1ae207fad42592e" title="Sets the current encoding bitrate.">TH_ENCCTL_SET_BITRATE</a> (this restriction may be relaxed in a future version). If it is set before the headers are emitted, the target quality encoded in them will be updated.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>int</code>: The new target quality, in the range 0...63, inclusive. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td>A target bitrate has already been specified, or the quality index was not in the range 0...63. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a3befcdd66678f8d27034f9c4b16d1b9c"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_SET_QUANT_PARAMS" ref="a3befcdd66678f8d27034f9c4b16d1b9c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_QUANT_PARAMS&nbsp;&nbsp;&nbsp;(2)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the quantization parameters to use. </p>
+<p>The parameters are copied, not stored by reference, so they can be freed after this call. <code>NULL</code> may be specified to revert to the default parameters.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><a class="el" href="structth__quant__info.html" title="A complete set of quantization parameters.">th_quant_info</a> </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td>Encoding has already begun, <em>_buf</em> is <code>NULL</code> and <em>_buf_sz</em> is not zero, or <em>_buf</em> is non-<code>NULL</code> and <em>_buf_sz</em> is not <code>sizeof(<a class="el" href="structth__quant__info.html" title="A complete set of quantization parameters.">th_quant_info</a>)</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aaefb515876b2a180ad5c3120fc584a52"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_SET_RATE_BUFFER" ref="aaefb515876b2a180ad5c3120fc584a52" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_RATE_BUFFER&nbsp;&nbsp;&nbsp;(22)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the size of the bitrate management bit reservoir as a function of number of frames. </p>
+<p>The reservoir size affects how quickly bitrate management reacts to instantaneous changes in the video complexity. Larger reservoirs react more slowly, and provide better overall quality, but require more buffering by a client, adding more latency to live streams. By default, libtheora sets the reservoir to the maximum distance between keyframes, subject to a minimum and maximum limit. This call may be used to increase or decrease the reservoir, increasing or decreasing the allowed temporary variance in bitrate. An implementation may impose some limits on the size of a reservoir it can handle, in which case the actual reservoir size may not be exactly what was requested. The actual value set will be returned.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>int</code>: Requested size of the reservoir measured in frames. </td></tr>
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>int</code>: The actual size of the reservoir set. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(int)</code>, or rate control is not enabled. The buffer has an implementation defined minimum and maximum size and the value in _buf will be adjusted to match the actual value set. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation in the current encoding mode. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a026502e08fbe1af0a1063f39bd18129c"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_SET_RATE_FLAGS" ref="a026502e08fbe1af0a1063f39bd18129c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_RATE_FLAGS&nbsp;&nbsp;&nbsp;(20)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Modifies the default bitrate management behavior. </p>
+<p>Use to allow or disallow frame dropping, and to enable or disable capping bit reservoir overflows and underflows. See <a class="el" href="theoraenc_8h.html#encctlcodes">the list of available flags</a>. The flags are set by default to <code><a class="el" href="theoraenc_8h.html#a3e7fab53b902b54135522ba286f45e33" title="Drop frames to keep within bitrate buffer constraints.">TH_RATECTL_DROP_FRAMES</a>|<a class="el" href="theoraenc_8h.html#a32f9983b344a431334493cefb0b9337c" title="Ignore bitrate buffer overflows.">TH_RATECTL_CAP_OVERFLOW</a></code>.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>int</code>: Any combination of <a class="el" href="theoraenc_8h.html#ratectlflags">the available flags</a>:</p>
+<ul>
+<li><a class="el" href="theoraenc_8h.html#a3e7fab53b902b54135522ba286f45e33" title="Drop frames to keep within bitrate buffer constraints.">TH_RATECTL_DROP_FRAMES</a>: Enable frame dropping.</li>
+<li><a class="el" href="theoraenc_8h.html#a32f9983b344a431334493cefb0b9337c" title="Ignore bitrate buffer overflows.">TH_RATECTL_CAP_OVERFLOW</a>: Don't bank excess bits for later use.</li>
+<li><a class="el" href="theoraenc_8h.html#ad0d62d9dce542caf5296b03b97e020a6" title="Ignore bitrate buffer underflows.">TH_RATECTL_CAP_UNDERFLOW</a>: Don't try to make up shortfalls later. </li>
+</ul>
+</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(int)</code> or rate control is not enabled. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation in the current encoding mode. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="abd9fbcb6a25a77d991d3620164fe59d6"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_SET_SPLEVEL" ref="abd9fbcb6a25a77d991d3620164fe59d6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_SPLEVEL&nbsp;&nbsp;&nbsp;(14)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Sets the speed level. </p>
+<p>The current speed level may be retrieved using <a class="el" href="theoraenc_8h.html#a114b7c552f50b7b8d881a39489af1f61" title="Gets the current speed level.">TH_ENCCTL_GET_SPLEVEL</a>.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>int</code>: The new encoding speed level. 0 is slowest, larger values use less CPU. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(int)</code>, or the encoding speed level is out of bounds. The maximum encoding speed level may be implementation- and encoding mode-specific, and can be obtained via <a class="el" href="theoraenc_8h.html#a9baf5bdd206e80c78a8fd44687e89783" title="Gets the maximum speed level.">TH_ENCCTL_GET_SPLEVEL_MAX</a>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation in the current encoding mode. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a382d685a39a34d8e6ba76b00d804efd8"></a><!-- doxytag: member="theoraenc.h::TH_ENCCTL_SET_VP3_COMPATIBLE" ref="a382d685a39a34d8e6ba76b00d804efd8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_ENCCTL_SET_VP3_COMPATIBLE&nbsp;&nbsp;&nbsp;(10)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Disables any encoder features that would prevent lossless transcoding back to VP3. </p>
+<p>This primarily means disabling block-adaptive quantization and always coding all four luma blocks in a macro block when 4MV is used. It also includes using the VP3 quantization tables and Huffman codes; if you set them explicitly after calling this function, the resulting stream will not be VP3-compatible. If you enable VP3-compatibility when encoding 4:2:2 or 4:4:4 source material, or when using a picture region smaller than the full frame (e.g. a non-multiple-of-16 width or height), then non-VP3 bitstream features will still be disabled, but the stream will still not be VP3-compatible, as VP3 was not capable of encoding such formats. If you call this after encoding has already begun, then the quantization tables and codebooks cannot be changed, but the frame-level features will be enabled or disabled as requested.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>int</code>: a non-zero value to enable VP3 compatibility, or 0 to disable it (the default). </td></tr>
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>_buf</em>&nbsp;</td><td><code>int</code>: 1 if all bitstream features required for VP3-compatibility could be set, and 0 otherwise. The latter will be returned if the pixel format is not 4:2:0, the picture region is smaller than the full frame, or if encoding has begun, preventing the quantization tables and codebooks from being set. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Return values:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>TH_EFAULT</em>&nbsp;</td><td><em>_enc_ctx</em> or <em>_buf</em> is <code>NULL</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em>&nbsp;</td><td><em>_buf_sz</em> is not <code>sizeof(int)</code>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>TH_EIMPL</em>&nbsp;</td><td>Not supported by this implementation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a32f9983b344a431334493cefb0b9337c"></a><!-- doxytag: member="theoraenc.h::TH_RATECTL_CAP_OVERFLOW" ref="a32f9983b344a431334493cefb0b9337c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_RATECTL_CAP_OVERFLOW&nbsp;&nbsp;&nbsp;(0x2)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Ignore bitrate buffer overflows. </p>
+<p>If the encoder uses so few bits that the reservoir of available bits overflows, ignore the excess. The encoder will not try to use these extra bits in future frames. At high rates this may cause the result to be undersized, but allows a client to play the stream using a finite buffer; it should normally be enabled. </p>
+
+</div>
+</div>
+<a class="anchor" id="ad0d62d9dce542caf5296b03b97e020a6"></a><!-- doxytag: member="theoraenc.h::TH_RATECTL_CAP_UNDERFLOW" ref="ad0d62d9dce542caf5296b03b97e020a6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_RATECTL_CAP_UNDERFLOW&nbsp;&nbsp;&nbsp;(0x4)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Ignore bitrate buffer underflows. </p>
+<p>If the encoder uses so many bits that the reservoir of available bits underflows, ignore the deficit. The encoder will not try to make up these extra bits in future frames. At low rates this may cause the result to be oversized; it should normally be disabled. </p>
+
+</div>
+</div>
+<a class="anchor" id="a3e7fab53b902b54135522ba286f45e33"></a><!-- doxytag: member="theoraenc.h::TH_RATECTL_DROP_FRAMES" ref="a3e7fab53b902b54135522ba286f45e33" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TH_RATECTL_DROP_FRAMES&nbsp;&nbsp;&nbsp;(0x1)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Drop frames to keep within bitrate buffer constraints. </p>
+<p>This can have a severe impact on quality, but is the only way to ensure that bitrate targets are met at low rates during sudden bursts of activity. </p>
+
+</div>
+</div>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="af5cc40472b925456d42526a035d66edd"></a><!-- doxytag: member="theoraenc.h::th_enc_ctx" ref="af5cc40472b925456d42526a035d66edd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a> <a class="el" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">th_enc_ctx</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The encoder context. </p>
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="aee1f7cb1fa0d3b7cc1d4ca0f17e6ae5e"></a><!-- doxytag: member="theoraenc.h::TH_VP31_HUFF_CODES" ref="aee1f7cb1fa0d3b7cc1d4ca0f17e6ae5e" args="[TH_NHUFFMAN_TABLES][TH_NDCT_TOKENS]" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="structth__huff__code.html">th_huff_code</a> <a class="el" href="theoraenc_8h.html#aee1f7cb1fa0d3b7cc1d4ca0f17e6ae5e">TH_VP31_HUFF_CODES</a>[TH_NHUFFMAN_TABLES][TH_NDCT_TOKENS]</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The Huffman tables used by VP3. </p>
+
+</div>
+</div>
+<a class="anchor" id="a3b1b462989f4e7a5a98e6e697f1a7f7d"></a><!-- doxytag: member="theoraenc.h::TH_VP31_QUANT_INFO" ref="a3b1b462989f4e7a5a98e6e697f1a7f7d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="structth__quant__info.html">th_quant_info</a> <a class="el" href="theoraenc_8h.html#a3b1b462989f4e7a5a98e6e697f1a7f7d">TH_VP31_QUANT_INFO</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>The quantization parameters used by VP3. </p>
+
+</div>
+</div>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>

Added: websites/theora.org/doc/libtheora-1.1/theoraenc_8h_source.html
===================================================================
--- websites/theora.org/doc/libtheora-1.1/theoraenc_8h_source.html	                        (rev 0)
+++ websites/theora.org/doc/libtheora-1.1/theoraenc_8h_source.html	2009-09-24 20:17:13 UTC (rev 16564)
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>libtheora: theoraenc.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<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><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<h1>theoraenc.h</h1><a href="theoraenc_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"> *                                                                  *</span>
+<a name="l00003"></a>00003 <span class="comment"> * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE.   *</span>
+<a name="l00004"></a>00004 <span class="comment"> * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *</span>
+<a name="l00005"></a>00005 <span class="comment"> * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *</span>
+<a name="l00006"></a>00006 <span class="comment"> * IN &apos;COPYING&apos;. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *</span>
+<a name="l00007"></a>00007 <span class="comment"> *                                                                  *</span>
+<a name="l00008"></a>00008 <span class="comment"> * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009                *</span>
+<a name="l00009"></a>00009 <span class="comment"> * by the Xiph.Org Foundation http://www.xiph.org/                  *</span>
+<a name="l00010"></a>00010 <span class="comment"> *                                                                  *</span>
+<a name="l00011"></a>00011 <span class="comment"> ********************************************************************</span>
+<a name="l00012"></a>00012 <span class="comment"></span>
+<a name="l00013"></a>00013 <span class="comment">  function:</span>
+<a name="l00014"></a>00014 <span class="comment">  last mod: $Id: theora.h,v 1.8 2004/03/15 22:17:32 derf Exp $</span>
+<a name="l00015"></a>00015 <span class="comment"></span>
+<a name="l00016"></a>00016 <span class="comment"> ********************************************************************/</span>
+<a name="l00017"></a>00017 
+<a name="l00021"></a>00021 <span class="preprocessor">#if !defined(_O_THEORA_THEORAENC_H_)</span>
+<a name="l00022"></a><a class="code" href="theoraenc_8h.html#ab915dd90f069a2431454fd62365e9381">00022</a> <span class="preprocessor"></span><span class="preprocessor"># define _O_THEORA_THEORAENC_H_ (1)</span>
+<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor"># include &lt;stddef.h&gt;</span>
+<a name="l00024"></a>00024 <span class="preprocessor"># include &lt;ogg/ogg.h&gt;</span>
+<a name="l00025"></a>00025 <span class="preprocessor"># include &quot;<a class="code" href="codec_8h.html" title="The shared libtheoradec and libtheoraenc C API.">codec.h</a>&quot;</span>
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 <span class="preprocessor">#if defined(__cplusplus)</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
+<a name="l00029"></a>00029 <span class="preprocessor">#endif</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span>
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00053"></a><a class="code" href="theoraenc_8h.html#a0165348788e560a19b7c61ae8f0c2283">00053</a> <span class="preprocessor">#define TH_ENCCTL_SET_HUFFMAN_CODES (0)</span>
+<a name="l00054"></a>00054 <span class="preprocessor"></span>
+<a name="l00066"></a><a class="code" href="theoraenc_8h.html#a3befcdd66678f8d27034f9c4b16d1b9c">00066</a> <span class="preprocessor">#define TH_ENCCTL_SET_QUANT_PARAMS (2)</span>
+<a name="l00067"></a>00067 <span class="preprocessor"></span>
+<a name="l00079"></a><a class="code" href="theoraenc_8h.html#a27e755e15b4b5604c54974b304037a49">00079</a> <span class="preprocessor">#define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE (4)</span>
+<a name="l00080"></a>00080 <span class="preprocessor"></span>
+<a name="l00107"></a><a class="code" href="theoraenc_8h.html#a382d685a39a34d8e6ba76b00d804efd8">00107</a> <span class="preprocessor">#define TH_ENCCTL_SET_VP3_COMPATIBLE (10)</span>
+<a name="l00108"></a>00108 <span class="preprocessor"></span>
+<a name="l00121"></a><a class="code" href="theoraenc_8h.html#a9baf5bdd206e80c78a8fd44687e89783">00121</a> <span class="preprocessor">#define TH_ENCCTL_GET_SPLEVEL_MAX (12)</span>
+<a name="l00122"></a>00122 <span class="preprocessor"></span>
+<a name="l00135"></a><a class="code" href="theoraenc_8h.html#abd9fbcb6a25a77d991d3620164fe59d6">00135</a> <span class="preprocessor">#define TH_ENCCTL_SET_SPLEVEL (14)</span>
+<a name="l00136"></a>00136 <span class="preprocessor"></span>
+<a name="l00149"></a><a class="code" href="theoraenc_8h.html#a114b7c552f50b7b8d881a39489af1f61">00149</a> <span class="preprocessor">#define TH_ENCCTL_GET_SPLEVEL (16)</span>
+<a name="l00150"></a>00150 <span class="preprocessor"></span>
+<a name="l00175"></a><a class="code" href="theoraenc_8h.html#a8bb9b05471c42a09f8684a2583b8a1df">00175</a> <span class="preprocessor">#define TH_ENCCTL_SET_DUP_COUNT (18)</span>
+<a name="l00176"></a>00176 <span class="preprocessor"></span>
+<a name="l00195"></a><a class="code" href="theoraenc_8h.html#a026502e08fbe1af0a1063f39bd18129c">00195</a> <span class="preprocessor">#define TH_ENCCTL_SET_RATE_FLAGS (20)</span>
+<a name="l00196"></a>00196 <span class="preprocessor"></span>
+<a name="l00221"></a><a class="code" href="theoraenc_8h.html#aaefb515876b2a180ad5c3120fc584a52">00221</a> <span class="preprocessor">#define TH_ENCCTL_SET_RATE_BUFFER (22)</span>
+<a name="l00222"></a>00222 <span class="preprocessor"></span>
+<a name="l00251"></a><a class="code" href="theoraenc_8h.html#ac3751b9c3838888ec2e3f0b0d2823282">00251</a> <span class="preprocessor">#define TH_ENCCTL_2PASS_OUT (24)</span>
+<a name="l00252"></a>00252 <span class="preprocessor"></span>
+<a name="l00297"></a><a class="code" href="theoraenc_8h.html#a4a84f982cdd9a3e3c803a29bbde9df0b">00297</a> <span class="preprocessor">#define TH_ENCCTL_2PASS_IN (26)</span>
+<a name="l00298"></a>00298 <span class="preprocessor"></span>
+<a name="l00313"></a><a class="code" href="theoraenc_8h.html#aac087983fa951b9148c9db6bc2e81ef4">00313</a> <span class="preprocessor">#define TH_ENCCTL_SET_QUALITY (28)</span>
+<a name="l00314"></a>00314 <span class="preprocessor"></span>
+<a name="l00334"></a><a class="code" href="theoraenc_8h.html#a9b969df55ecad1acd1ae207fad42592e">00334</a> <span class="preprocessor">#define TH_ENCCTL_SET_BITRATE (30)</span>
+<a name="l00335"></a>00335 <span class="preprocessor"></span>
+<a name="l00346"></a><a class="code" href="theoraenc_8h.html#a3e7fab53b902b54135522ba286f45e33">00346</a> <span class="preprocessor">#define TH_RATECTL_DROP_FRAMES   (0x1)</span>
+<a name="l00347"></a>00347 <span class="preprocessor"></span>
+<a name="l00354"></a><a class="code" href="theoraenc_8h.html#a32f9983b344a431334493cefb0b9337c">00354</a> <span class="preprocessor">#define TH_RATECTL_CAP_OVERFLOW  (0x2)</span>
+<a name="l00355"></a>00355 <span class="preprocessor"></span>
+<a name="l00361"></a><a class="code" href="theoraenc_8h.html#ad0d62d9dce542caf5296b03b97e020a6">00361</a> <span class="preprocessor">#define TH_RATECTL_CAP_UNDERFLOW (0x4)</span>
+<a name="l00362"></a>00362 <span class="preprocessor"></span>
+<a name="l00367"></a>00367 <span class="keyword">extern</span> <span class="keyword">const</span> <a class="code" href="structth__quant__info.html" title="A complete set of quantization parameters.">th_quant_info</a> <a class="code" href="theoraenc_8h.html#a3b1b462989f4e7a5a98e6e697f1a7f7d" title="The quantization parameters used by VP3.">TH_VP31_QUANT_INFO</a>;
+<a name="l00368"></a>00368 
+<a name="l00370"></a>00370 <span class="keyword">extern</span> <span class="keyword">const</span> <a class="code" href="structth__huff__code.html" title="A Huffman code for a Theora DCT token.">th_huff_code</a>
+<a name="l00371"></a>00371  <a class="code" href="theoraenc_8h.html#aee1f7cb1fa0d3b7cc1d4ca0f17e6ae5e" title="The Huffman tables used by VP3.">TH_VP31_HUFF_CODES</a>[<a class="code" href="codec_8h.html#a49bf449eae33c5320f0c308f32c6ae42" title="The number of Huffman tables used by Theora.">TH_NHUFFMAN_TABLES</a>][<a class="code" href="codec_8h.html#a2a44f48084e76a58cae48fb5d47cd422" title="The number of DCT token values in each table.">TH_NDCT_TOKENS</a>];
+<a name="l00372"></a>00372 
+<a name="l00373"></a>00373 
+<a name="l00374"></a>00374 
+<a name="l00382"></a><a class="code" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd">00382</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a>    <a class="code" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a>;
+<a name="l00412"></a>00412 <span class="keyword">extern</span> <a class="code" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> *<a class="code" href="group__encfuncs.html#gaa91e47bc9dd5f6ee52045bd7b815e5a7" title="Allocates an encoder instance.">th_encode_alloc</a>(<span class="keyword">const</span> <a class="code" href="structth__info.html" title="Theora bitstream information.">th_info</a> *_info);
+<a name="l00421"></a>00421 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__encfuncs.html#ga3a427f6514dfdc01ea72172c469d51d9" title="Encoder control function.">th_encode_ctl</a>(<a class="code" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> *_enc,<span class="keywordtype">int</span> _req,<span class="keywordtype">void</span> *_buf,<span class="keywordtype">size_t</span> _buf_sz);
+<a name="l00439"></a>00439 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__encfuncs.html#ga9439d61b566039d194ff782681fbc408" title="Outputs the next header packet.">th_encode_flushheader</a>(<a class="code" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> *_enc,
+<a name="l00440"></a>00440  <a class="code" href="structth__comment.html" title="The comment information.">th_comment</a> *_comments,ogg_packet *_op);
+<a name="l00449"></a>00449 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__encfuncs.html#gadbe7dd66b411c2d61ab8153c15308750" title="Submits an uncompressed frame to the encoder.">th_encode_ycbcr_in</a>(<a class="code" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> *_enc,<a class="code" href="codec_8h.html#a343f7cfabad179cc4fe527cf06873f45" title="A complete image buffer for an uncompressed frame.">th_ycbcr_buffer</a> _ycbcr);
+<a name="l00473"></a>00473 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__encfuncs.html#ga96d8ac1dda53187455352f99bbb5b04b" title="Retrieves encoded video data packets.">th_encode_packetout</a>(<a class="code" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> *_enc,<span class="keywordtype">int</span> _last,ogg_packet *_op);
+<a name="l00476"></a>00476 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__encfuncs.html#ga36b23d216532231925c4107894204680" title="Frees an allocated encoder instance.">th_encode_free</a>(<a class="code" href="theoraenc_8h.html#af5cc40472b925456d42526a035d66edd" title="The encoder context.">th_enc_ctx</a> *_enc);
+<a name="l00479"></a>00479 
+<a name="l00480"></a>00480 
+<a name="l00481"></a>00481 
+<a name="l00482"></a>00482 <span class="preprocessor">#if defined(__cplusplus)</span>
+<a name="l00483"></a>00483 <span class="preprocessor"></span>}
+<a name="l00484"></a>00484 <span class="preprocessor">#endif</span>
+<a name="l00485"></a>00485 <span class="preprocessor"></span>
+<a name="l00486"></a>00486 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on 24 Sep 2009 for libtheora by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>



More information about the commits mailing list