[xiph-commits] r13936 - in websites/theora.org/doc: .
libtheora-1.0beta1
giles at svn.xiph.org
giles at svn.xiph.org
Thu Oct 4 16:28:10 PDT 2007
Author: giles
Date: 2007-10-04 16:28:10 -0700 (Thu, 04 Oct 2007)
New Revision: 13936
Added:
websites/theora.org/doc/libtheora-1.0beta1/
websites/theora.org/doc/libtheora-1.0beta1/annotated.html
websites/theora.org/doc/libtheora-1.0beta1/doxygen.css
websites/theora.org/doc/libtheora-1.0beta1/doxygen.png
websites/theora.org/doc/libtheora-1.0beta1/files.html
websites/theora.org/doc/libtheora-1.0beta1/functions.html
websites/theora.org/doc/libtheora-1.0beta1/functions_vars.html
websites/theora.org/doc/libtheora-1.0beta1/globals.html
websites/theora.org/doc/libtheora-1.0beta1/globals_eval.html
websites/theora.org/doc/libtheora-1.0beta1/globals_func.html
websites/theora.org/doc/libtheora-1.0beta1/index.html
websites/theora.org/doc/libtheora-1.0beta1/structtheora__comment.html
websites/theora.org/doc/libtheora-1.0beta1/structtheora__info.html
websites/theora.org/doc/libtheora-1.0beta1/structtheora__state.html
websites/theora.org/doc/libtheora-1.0beta1/structyuv__buffer.html
websites/theora.org/doc/libtheora-1.0beta1/tab_b.gif
websites/theora.org/doc/libtheora-1.0beta1/tab_l.gif
websites/theora.org/doc/libtheora-1.0beta1/tab_r.gif
websites/theora.org/doc/libtheora-1.0beta1/tabs.css
websites/theora.org/doc/libtheora-1.0beta1/theora_8h-source.html
websites/theora.org/doc/libtheora-1.0beta1/theora_8h.html
Modified:
websites/theora.org/doc/index.shtml.en
Log:
Upload API docs from the beta tree.
Modified: websites/theora.org/doc/index.shtml.en
===================================================================
--- websites/theora.org/doc/index.shtml.en 2007-10-04 20:18:48 UTC (rev 13935)
+++ websites/theora.org/doc/index.shtml.en 2007-10-04 23:28:10 UTC (rev 13936)
@@ -14,7 +14,7 @@
<ul>
<li><a href="/faq/">Frequently Asked Questions</a></li>
<li><a href="/doc/Theora_I_spec.pdf">Theora I Format Specification</a></li>
- <li><a href="/doc/libtheora-1.0alpha6/">libtheora API reference</a></li>
+ <li><a href="/doc/libtheora-1.0beta1/">libtheora API reference</a></li>
<li><a href="http://people.xiph.org/~tterribe/doc/libtheora-exp/">theora-exp API reference</a></li>
</ul>
Added: websites/theora.org/doc/libtheora-1.0beta1/annotated.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/annotated.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/annotated.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: Data Structures</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li id="current"><a href="annotated.html"><span>Data Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul></div>
+<div class="tabs">
+ <ul>
+ <li id="current"><a href="annotated.html"><span>Data Structures</span></a></li>
+ <li><a href="functions.html"><span>Data Fields</span></a></li>
+ </ul></div>
+<h1>libtheora Data Structures</h1>Here are the data structures with brief descriptions:<table>
+ <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>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/doxygen.css
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/doxygen.css (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/doxygen.css 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,358 @@
+BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
+ font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+BODY,TD {
+ font-size: 90%;
+}
+H1 {
+ text-align: center;
+ font-size: 160%;
+}
+H2 {
+ font-size: 120%;
+}
+H3 {
+ font-size: 100%;
+}
+CAPTION { font-weight: bold }
+DIV.qindex {
+ width: 100%;
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ padding: 2px;
+ line-height: 140%;
+}
+DIV.nav {
+ width: 100%;
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ padding: 2px;
+ line-height: 140%;
+}
+DIV.navtab {
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+TD.navtab {
+ font-size: 70%;
+}
+A.qindex {
+ text-decoration: none;
+ font-weight: bold;
+ color: #1A419D;
+}
+A.qindex:visited {
+ text-decoration: none;
+ font-weight: bold;
+ color: #1A419D
+}
+A.qindex:hover {
+ text-decoration: none;
+ background-color: #ddddff;
+}
+A.qindexHL {
+ text-decoration: none;
+ font-weight: bold;
+ background-color: #6666cc;
+ color: #ffffff;
+ border: 1px double #9295C2;
+}
+A.qindexHL:hover {
+ text-decoration: none;
+ background-color: #6666cc;
+ color: #ffffff;
+}
+A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
+A.el { text-decoration: none; font-weight: bold }
+A.elRef { font-weight: bold }
+A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
+A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
+A.codeRef:link { font-weight: normal; color: #0000FF}
+A.codeRef:visited { font-weight: normal; color: #0000FF}
+A:hover { text-decoration: none; background-color: #f2f2ff }
+DL.el { margin-left: -1cm }
+.fragment {
+ font-family: monospace, fixed;
+ font-size: 95%;
+}
+PRE.fragment {
+ border: 1px solid #CCCCCC;
+ background-color: #f5f5f5;
+ margin-top: 4px;
+ margin-bottom: 4px;
+ margin-left: 2px;
+ margin-right: 8px;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+
+DIV.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ margin-bottom: 6px;
+ font-weight: bold;
+}
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
+BODY {
+ background: white;
+ color: black;
+ margin-right: 20px;
+ margin-left: 20px;
+}
+TD.indexkey {
+ background-color: #e8eef2;
+ font-weight: bold;
+ padding-right : 10px;
+ padding-top : 2px;
+ padding-left : 10px;
+ padding-bottom : 2px;
+ margin-left : 0px;
+ margin-right : 0px;
+ margin-top : 2px;
+ margin-bottom : 2px;
+ border: 1px solid #CCCCCC;
+}
+TD.indexvalue {
+ background-color: #e8eef2;
+ font-style: italic;
+ padding-right : 10px;
+ padding-top : 2px;
+ padding-left : 10px;
+ padding-bottom : 2px;
+ margin-left : 0px;
+ margin-right : 0px;
+ margin-top : 2px;
+ margin-bottom : 2px;
+ border: 1px solid #CCCCCC;
+}
+TR.memlist {
+ background-color: #f0f0f0;
+}
+P.formulaDsp { text-align: center; }
+IMG.formulaDsp { }
+IMG.formulaInl { vertical-align: middle; }
+SPAN.keyword { color: #008000 }
+SPAN.keywordtype { color: #604020 }
+SPAN.keywordflow { color: #e08000 }
+SPAN.comment { color: #800000 }
+SPAN.preprocessor { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral { color: #008080 }
+.mdescLeft {
+ padding: 0px 8px 4px 8px;
+ font-size: 80%;
+ font-style: italic;
+ background-color: #FAFAFA;
+ border-top: 1px none #E0E0E0;
+ border-right: 1px none #E0E0E0;
+ border-bottom: 1px none #E0E0E0;
+ border-left: 1px none #E0E0E0;
+ margin: 0px;
+}
+.mdescRight {
+ padding: 0px 8px 4px 8px;
+ font-size: 80%;
+ font-style: italic;
+ background-color: #FAFAFA;
+ border-top: 1px none #E0E0E0;
+ border-right: 1px none #E0E0E0;
+ border-bottom: 1px none #E0E0E0;
+ border-left: 1px none #E0E0E0;
+ margin: 0px;
+}
+.memItemLeft {
+ padding: 1px 0px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: solid;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ background-color: #FAFAFA;
+ font-size: 80%;
+}
+.memItemRight {
+ padding: 1px 8px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: solid;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ background-color: #FAFAFA;
+ font-size: 80%;
+}
+.memTemplItemLeft {
+ padding: 1px 0px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: none;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ background-color: #FAFAFA;
+ font-size: 80%;
+}
+.memTemplItemRight {
+ padding: 1px 8px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: none;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ background-color: #FAFAFA;
+ font-size: 80%;
+}
+.memTemplParams {
+ padding: 1px 0px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: solid;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ color: #606060;
+ background-color: #FAFAFA;
+ font-size: 80%;
+}
+.search { color: #003399;
+ font-weight: bold;
+}
+FORM.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+INPUT.search { font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+TD.tiny { font-size: 75%;
+}
+a {
+ color: #1A41A8;
+}
+a:visited {
+ color: #2A3798;
+}
+.dirtab { padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #84b0c7;
+}
+TH.dirtab { background: #e8eef2;
+ font-weight: bold;
+}
+HR { height: 1px;
+ border: none;
+ border-top: 1px solid black;
+}
+
+/* Style for detailed member documentation */
+.memtemplate {
+ font-size: 80%;
+ color: #606060;
+ font-weight: normal;
+}
+.memnav {
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+.memitem {
+ padding: 4px;
+ background-color: #eef3f5;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #dedeee;
+ -moz-border-radius: 8px 8px 8px 8px;
+}
+.memname {
+ white-space: nowrap;
+ font-weight: bold;
+}
+.memdoc{
+ padding-left: 10px;
+}
+.memproto {
+ background-color: #d5e1e8;
+ width: 100%;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #84b0c7;
+ font-weight: bold;
+ -moz-border-radius: 8px 8px 8px 8px;
+}
+.paramkey {
+ text-align: right;
+}
+.paramtype {
+ white-space: nowrap;
+}
+.paramname {
+ color: #602020;
+ font-style: italic;
+ white-space: nowrap;
+}
+/* End Styling for detailed member documentation */
+
+/* for the tree view */
+.ftvtree {
+ font-family: sans-serif;
+ margin:0.5em;
+}
+.directory { font-size: 9pt; font-weight: bold; }
+.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
+.directory > h3 { margin-top: 0; }
+.directory p { margin: 0px; white-space: nowrap; }
+.directory div { display: none; margin: 0px; }
+.directory img { vertical-align: -30%; }
Added: websites/theora.org/doc/libtheora-1.0beta1/doxygen.png
===================================================================
(Binary files differ)
Property changes on: websites/theora.org/doc/libtheora-1.0beta1/doxygen.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: websites/theora.org/doc/libtheora-1.0beta1/files.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/files.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/files.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: File Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="annotated.html"><span>Data Structures</span></a></li>
+ <li id="current"><a href="files.html"><span>Files</span></a></li>
+ </ul></div>
+<div class="tabs">
+ <ul>
+ <li id="current"><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul></div>
+<h1>libtheora File List</h1>Here is a list of all documented files with brief descriptions:<table>
+ <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 C API </td></tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/functions.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/functions.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/functions.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li id="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li>
+ <li id="current"><a href="functions.html"><span>Data Fields</span></a></li>
+ </ul></div>
+<div class="tabs">
+ <ul>
+ <li id="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+</div>
+Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+<p>
+<ul>
+<li>aspect_denominator
+: <a class="el" href="structtheora__info.html#4dd10a45536510b8748e80fb6adf8e51">theora_info</a>
+<li>aspect_numerator
+: <a class="el" href="structtheora__info.html#dcd1750a5bb10c3da1a29b2154683bb3">theora_info</a>
+<li>colorspace
+: <a class="el" href="structtheora__info.html#fc1972d0a6227b957f51baf417483e78">theora_info</a>
+<li>comment_lengths
+: <a class="el" href="structtheora__comment.html#3ae630a111e08d268bd9455089e2d549">theora_comment</a>
+<li>comments
+: <a class="el" href="structtheora__comment.html#72742a6f74e87e4363d5f11c42837b97">theora_comment</a>
+<li>fps_denominator
+: <a class="el" href="structtheora__info.html#fca33e94f7c437ea5d2dc4eb6ab4642a">theora_info</a>
+<li>fps_numerator
+: <a class="el" href="structtheora__info.html#b5b73000d86c892a805d7edc874ffdf8">theora_info</a>
+<li>frame_height
+: <a class="el" href="structtheora__info.html#6aa64f83107f32b7e4214462bd173cda">theora_info</a>
+<li>frame_width
+: <a class="el" href="structtheora__info.html#a3c69b1f45e66cabae99a8a90c13003e">theora_info</a>
+<li>height
+: <a class="el" href="structtheora__info.html#8e7f84ca1724bb90c210c2815f904a01">theora_info</a>
+<li>offset_x
+: <a class="el" href="structtheora__info.html#ef18353df17bab7b78b1f3a48141fda5">theora_info</a>
+<li>offset_y
+: <a class="el" href="structtheora__info.html#5e7da1d6b6f90f4f038d04f9cf677e3d">theora_info</a>
+<li>pixelformat
+: <a class="el" href="structtheora__info.html#37b7d715f46d0240195b3a0184e7b178">theora_info</a>
+<li>quality
+: <a class="el" href="structtheora__info.html#48df8ab9e7ec3a47656c2e2028ee2dba">theora_info</a>
+<li>quick_p
+: <a class="el" href="structtheora__info.html#8ac3973b333ca026c0749a2f2ff044db">theora_info</a>
+<li>target_bitrate
+: <a class="el" href="structtheora__info.html#d568c28dc5fa1f22630826e5eb95a874">theora_info</a>
+<li>u
+: <a class="el" href="structyuv__buffer.html#05bc01e25bbad6c86e81c58997cbbe89">yuv_buffer</a>
+<li>user_comments
+: <a class="el" href="structtheora__comment.html#5cf2d0a7ac70e6f5fa286da7a3c2edef">theora_comment</a>
+<li>uv_height
+: <a class="el" href="structyuv__buffer.html#e000b9579ca67e7aa3e40755517285cc">yuv_buffer</a>
+<li>uv_stride
+: <a class="el" href="structyuv__buffer.html#8501c16afe7c891ebc3aa4572f2a4ef3">yuv_buffer</a>
+<li>uv_width
+: <a class="el" href="structyuv__buffer.html#464b8795e6f91436204710f1c3f957b9">yuv_buffer</a>
+<li>v
+: <a class="el" href="structyuv__buffer.html#2638f17c1f26aee27072148c3155b404">yuv_buffer</a>
+<li>vendor
+: <a class="el" href="structtheora__comment.html#3f0da11f1a775c63109f9c0c2fbb5fc5">theora_comment</a>
+<li>width
+: <a class="el" href="structtheora__info.html#6f1094fe341bac5ad9b23e0afab836a6">theora_info</a>
+<li>y
+: <a class="el" href="structyuv__buffer.html#34464280b291ac3b8ffd8a6fd0ee2ce9">yuv_buffer</a>
+<li>y_height
+: <a class="el" href="structyuv__buffer.html#c8af965f6efae51897a2f1690cbaf103">yuv_buffer</a>
+<li>y_stride
+: <a class="el" href="structyuv__buffer.html#1b556662ed0bc7866ee78e32687c0eea">yuv_buffer</a>
+<li>y_width
+: <a class="el" href="structyuv__buffer.html#1f6d315bbeac5c143e675bff7606d9fa">yuv_buffer</a>
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/functions_vars.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/functions_vars.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/functions_vars.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: Data Fields - Variables</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li id="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li>
+ <li id="current"><a href="functions.html"><span>Data Fields</span></a></li>
+ </ul></div>
+<div class="tabs">
+ <ul>
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li id="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+</div>
+
+<p>
+<ul>
+<li>aspect_denominator
+: <a class="el" href="structtheora__info.html#4dd10a45536510b8748e80fb6adf8e51">theora_info</a>
+<li>aspect_numerator
+: <a class="el" href="structtheora__info.html#dcd1750a5bb10c3da1a29b2154683bb3">theora_info</a>
+<li>colorspace
+: <a class="el" href="structtheora__info.html#fc1972d0a6227b957f51baf417483e78">theora_info</a>
+<li>comment_lengths
+: <a class="el" href="structtheora__comment.html#3ae630a111e08d268bd9455089e2d549">theora_comment</a>
+<li>comments
+: <a class="el" href="structtheora__comment.html#72742a6f74e87e4363d5f11c42837b97">theora_comment</a>
+<li>fps_denominator
+: <a class="el" href="structtheora__info.html#fca33e94f7c437ea5d2dc4eb6ab4642a">theora_info</a>
+<li>fps_numerator
+: <a class="el" href="structtheora__info.html#b5b73000d86c892a805d7edc874ffdf8">theora_info</a>
+<li>frame_height
+: <a class="el" href="structtheora__info.html#6aa64f83107f32b7e4214462bd173cda">theora_info</a>
+<li>frame_width
+: <a class="el" href="structtheora__info.html#a3c69b1f45e66cabae99a8a90c13003e">theora_info</a>
+<li>height
+: <a class="el" href="structtheora__info.html#8e7f84ca1724bb90c210c2815f904a01">theora_info</a>
+<li>offset_x
+: <a class="el" href="structtheora__info.html#ef18353df17bab7b78b1f3a48141fda5">theora_info</a>
+<li>offset_y
+: <a class="el" href="structtheora__info.html#5e7da1d6b6f90f4f038d04f9cf677e3d">theora_info</a>
+<li>pixelformat
+: <a class="el" href="structtheora__info.html#37b7d715f46d0240195b3a0184e7b178">theora_info</a>
+<li>quality
+: <a class="el" href="structtheora__info.html#48df8ab9e7ec3a47656c2e2028ee2dba">theora_info</a>
+<li>quick_p
+: <a class="el" href="structtheora__info.html#8ac3973b333ca026c0749a2f2ff044db">theora_info</a>
+<li>target_bitrate
+: <a class="el" href="structtheora__info.html#d568c28dc5fa1f22630826e5eb95a874">theora_info</a>
+<li>u
+: <a class="el" href="structyuv__buffer.html#05bc01e25bbad6c86e81c58997cbbe89">yuv_buffer</a>
+<li>user_comments
+: <a class="el" href="structtheora__comment.html#5cf2d0a7ac70e6f5fa286da7a3c2edef">theora_comment</a>
+<li>uv_height
+: <a class="el" href="structyuv__buffer.html#e000b9579ca67e7aa3e40755517285cc">yuv_buffer</a>
+<li>uv_stride
+: <a class="el" href="structyuv__buffer.html#8501c16afe7c891ebc3aa4572f2a4ef3">yuv_buffer</a>
+<li>uv_width
+: <a class="el" href="structyuv__buffer.html#464b8795e6f91436204710f1c3f957b9">yuv_buffer</a>
+<li>v
+: <a class="el" href="structyuv__buffer.html#2638f17c1f26aee27072148c3155b404">yuv_buffer</a>
+<li>vendor
+: <a class="el" href="structtheora__comment.html#3f0da11f1a775c63109f9c0c2fbb5fc5">theora_comment</a>
+<li>width
+: <a class="el" href="structtheora__info.html#6f1094fe341bac5ad9b23e0afab836a6">theora_info</a>
+<li>y
+: <a class="el" href="structyuv__buffer.html#34464280b291ac3b8ffd8a6fd0ee2ce9">yuv_buffer</a>
+<li>y_height
+: <a class="el" href="structyuv__buffer.html#c8af965f6efae51897a2f1690cbaf103">yuv_buffer</a>
+<li>y_stride
+: <a class="el" href="structyuv__buffer.html#1b556662ed0bc7866ee78e32687c0eea">yuv_buffer</a>
+<li>y_width
+: <a class="el" href="structyuv__buffer.html#1f6d315bbeac5c143e675bff7606d9fa">yuv_buffer</a>
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/globals.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/globals.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/globals.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="annotated.html"><span>Data Structures</span></a></li>
+ <li id="current"><a href="files.html"><span>Files</span></a></li>
+ </ul></div>
+<div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li id="current"><a href="globals.html"><span>Globals</span></a></li>
+ </ul></div>
+<div class="tabs">
+ <ul>
+ <li id="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_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+</div>
+<div class="tabs">
+ <ul>
+ <li><a href="#index_o"><span>o</span></a></li>
+ <li><a href="#index_t"><span>t</span></a></li>
+ </ul>
+</div>
+
+<p>
+Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+<p>
+<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
+<li>OC_CS_ITU_REC_470BG
+: <a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d3d957a2abfb9f9b11912eddb564365d3">theora.h</a>
+<li>OC_CS_ITU_REC_470M
+: <a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d91b8497a22276b56b62cbec714c6365f">theora.h</a>
+<li>OC_CS_NSPACES
+: <a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d171c884c1c919c2c264f8bf6224d758f">theora.h</a>
+<li>OC_CS_UNSPECIFIED
+: <a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d98594a87da35091a8baa4643bd8904ef">theora.h</a>
+<li>OC_PF_420
+: <a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3ba38f832e52748c1df744683c15fe05b">theora.h</a>
+<li>OC_PF_422
+: <a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3c841320c974a9704f146d52d08f31cb0">theora.h</a>
+<li>OC_PF_444
+: <a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3a2c8a52c7c2e20fac7b0182579e89144">theora.h</a>
+<li>OC_PF_RSVD
+: <a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d317351a1b9c53cd886ad34c3b1d3bd7b3">theora.h</a>
+</ul>
+<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
+<li>theora_clear()
+: <a class="el" href="theora_8h.html#c3d872f1cbe57918661471cf41fe2949">theora.h</a>
+<li>theora_comment_add()
+: <a class="el" href="theora_8h.html#795da8fab8fe137dea276d6bf20bf5f2">theora.h</a>
+<li>theora_comment_add_tag()
+: <a class="el" href="theora_8h.html#adc406fcdc1d2192ae2a9adfb3bd4e6f">theora.h</a>
+<li>theora_comment_clear()
+: <a class="el" href="theora_8h.html#7cabfa586d5e0ecae1dedd7c05d6a1fe">theora.h</a>
+<li>theora_comment_init()
+: <a class="el" href="theora_8h.html#531adee5230be7d45af1dede0e82c79a">theora.h</a>
+<li>theora_comment_query()
+: <a class="el" href="theora_8h.html#0071768c54009941f50d7c738a33340d">theora.h</a>
+<li>theora_comment_query_count()
+: <a class="el" href="theora_8h.html#d0ee4a15b96518d5d8ab38df814c0b27">theora.h</a>
+<li>theora_control()
+: <a class="el" href="theora_8h.html#32fe20dcb67d5fd13d7153a4f3dff535">theora.h</a>
+<li>theora_decode_header()
+: <a class="el" href="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">theora.h</a>
+<li>theora_decode_init()
+: <a class="el" href="theora_8h.html#a9f81159ae039353cac6076a59fba871">theora.h</a>
+<li>theora_decode_packetin()
+: <a class="el" href="theora_8h.html#a67cbe3cc458aad10904c0cc78044fc5">theora.h</a>
+<li>theora_decode_YUVout()
+: <a class="el" href="theora_8h.html#38049cd76f6f1d30906344dcc747782c">theora.h</a>
+<li>theora_encode_comment()
+: <a class="el" href="theora_8h.html#db11c4000d2a049167ea1d0a6aa12194">theora.h</a>
+<li>theora_encode_header()
+: <a class="el" href="theora_8h.html#4f9e6ef696ec209d14749177edde69f4">theora.h</a>
+<li>theora_encode_init()
+: <a class="el" href="theora_8h.html#9544a8feccd8a25e6336a57eac2c411e">theora.h</a>
+<li>theora_encode_packetout()
+: <a class="el" href="theora_8h.html#bd4b6f1eb80929ea318fbaa1d5d7fba3">theora.h</a>
+<li>theora_encode_tables()
+: <a class="el" href="theora_8h.html#74fcaad3b21a9bfa643f0627ecba96d7">theora.h</a>
+<li>theora_encode_YUVin()
+: <a class="el" href="theora_8h.html#21afcb28b49f5c775a4dbe6ab1d8b00e">theora.h</a>
+<li>theora_granule_frame()
+: <a class="el" href="theora_8h.html#072d4900733c1d0798b868dafb50847c">theora.h</a>
+<li>theora_granule_shift()
+: <a class="el" href="theora_8h.html#3fd68eba5a134ac84d4db08dd8126991">theora.h</a>
+<li>theora_granule_time()
+: <a class="el" href="theora_8h.html#56a89dbe9051fe6a3b7b31a6812df77d">theora.h</a>
+<li>theora_info_clear()
+: <a class="el" href="theora_8h.html#c72b3f8c404d658d1e675e39a75b1931">theora.h</a>
+<li>theora_info_init()
+: <a class="el" href="theora_8h.html#f0f9fbb7e7bcce3c536e0b46d300c71e">theora.h</a>
+<li>theora_packet_isheader()
+: <a class="el" href="theora_8h.html#b75731ff4e6a113430715dee160c1626">theora.h</a>
+<li>theora_packet_iskeyframe()
+: <a class="el" href="theora_8h.html#88a636ebe2e390aa0ca6bb547912814f">theora.h</a>
+<li>theora_version_number()
+: <a class="el" href="theora_8h.html#d9cec696a9c830e9b3cb1bf4e372b23d">theora.h</a>
+<li>theora_version_string()
+: <a class="el" href="theora_8h.html#7682deb3e6612db562f54ea66b95584b">theora.h</a>
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/globals_eval.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/globals_eval.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/globals_eval.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="annotated.html"><span>Data Structures</span></a></li>
+ <li id="current"><a href="files.html"><span>Files</span></a></li>
+ </ul></div>
+<div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li id="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 id="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+</div>
+
+<p>
+<ul>
+<li>OC_CS_ITU_REC_470BG
+: <a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d3d957a2abfb9f9b11912eddb564365d3">theora.h</a>
+<li>OC_CS_ITU_REC_470M
+: <a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d91b8497a22276b56b62cbec714c6365f">theora.h</a>
+<li>OC_CS_NSPACES
+: <a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d171c884c1c919c2c264f8bf6224d758f">theora.h</a>
+<li>OC_CS_UNSPECIFIED
+: <a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d98594a87da35091a8baa4643bd8904ef">theora.h</a>
+<li>OC_PF_420
+: <a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3ba38f832e52748c1df744683c15fe05b">theora.h</a>
+<li>OC_PF_422
+: <a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3c841320c974a9704f146d52d08f31cb0">theora.h</a>
+<li>OC_PF_444
+: <a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3a2c8a52c7c2e20fac7b0182579e89144">theora.h</a>
+<li>OC_PF_RSVD
+: <a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d317351a1b9c53cd886ad34c3b1d3bd7b3">theora.h</a>
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/globals_func.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/globals_func.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/globals_func.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="annotated.html"><span>Data Structures</span></a></li>
+ <li id="current"><a href="files.html"><span>Files</span></a></li>
+ </ul></div>
+<div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li id="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 id="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+</div>
+
+<p>
+<ul>
+<li>theora_clear()
+: <a class="el" href="theora_8h.html#c3d872f1cbe57918661471cf41fe2949">theora.h</a>
+<li>theora_comment_add()
+: <a class="el" href="theora_8h.html#795da8fab8fe137dea276d6bf20bf5f2">theora.h</a>
+<li>theora_comment_add_tag()
+: <a class="el" href="theora_8h.html#adc406fcdc1d2192ae2a9adfb3bd4e6f">theora.h</a>
+<li>theora_comment_clear()
+: <a class="el" href="theora_8h.html#7cabfa586d5e0ecae1dedd7c05d6a1fe">theora.h</a>
+<li>theora_comment_init()
+: <a class="el" href="theora_8h.html#531adee5230be7d45af1dede0e82c79a">theora.h</a>
+<li>theora_comment_query()
+: <a class="el" href="theora_8h.html#0071768c54009941f50d7c738a33340d">theora.h</a>
+<li>theora_comment_query_count()
+: <a class="el" href="theora_8h.html#d0ee4a15b96518d5d8ab38df814c0b27">theora.h</a>
+<li>theora_control()
+: <a class="el" href="theora_8h.html#32fe20dcb67d5fd13d7153a4f3dff535">theora.h</a>
+<li>theora_decode_header()
+: <a class="el" href="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">theora.h</a>
+<li>theora_decode_init()
+: <a class="el" href="theora_8h.html#a9f81159ae039353cac6076a59fba871">theora.h</a>
+<li>theora_decode_packetin()
+: <a class="el" href="theora_8h.html#a67cbe3cc458aad10904c0cc78044fc5">theora.h</a>
+<li>theora_decode_YUVout()
+: <a class="el" href="theora_8h.html#38049cd76f6f1d30906344dcc747782c">theora.h</a>
+<li>theora_encode_comment()
+: <a class="el" href="theora_8h.html#db11c4000d2a049167ea1d0a6aa12194">theora.h</a>
+<li>theora_encode_header()
+: <a class="el" href="theora_8h.html#4f9e6ef696ec209d14749177edde69f4">theora.h</a>
+<li>theora_encode_init()
+: <a class="el" href="theora_8h.html#9544a8feccd8a25e6336a57eac2c411e">theora.h</a>
+<li>theora_encode_packetout()
+: <a class="el" href="theora_8h.html#bd4b6f1eb80929ea318fbaa1d5d7fba3">theora.h</a>
+<li>theora_encode_tables()
+: <a class="el" href="theora_8h.html#74fcaad3b21a9bfa643f0627ecba96d7">theora.h</a>
+<li>theora_encode_YUVin()
+: <a class="el" href="theora_8h.html#21afcb28b49f5c775a4dbe6ab1d8b00e">theora.h</a>
+<li>theora_granule_frame()
+: <a class="el" href="theora_8h.html#072d4900733c1d0798b868dafb50847c">theora.h</a>
+<li>theora_granule_shift()
+: <a class="el" href="theora_8h.html#3fd68eba5a134ac84d4db08dd8126991">theora.h</a>
+<li>theora_granule_time()
+: <a class="el" href="theora_8h.html#56a89dbe9051fe6a3b7b31a6812df77d">theora.h</a>
+<li>theora_info_clear()
+: <a class="el" href="theora_8h.html#c72b3f8c404d658d1e675e39a75b1931">theora.h</a>
+<li>theora_info_init()
+: <a class="el" href="theora_8h.html#f0f9fbb7e7bcce3c536e0b46d300c71e">theora.h</a>
+<li>theora_packet_isheader()
+: <a class="el" href="theora_8h.html#b75731ff4e6a113430715dee160c1626">theora.h</a>
+<li>theora_packet_iskeyframe()
+: <a class="el" href="theora_8h.html#88a636ebe2e390aa0ca6bb547912814f">theora.h</a>
+<li>theora_version_number()
+: <a class="el" href="theora_8h.html#d9cec696a9c830e9b3cb1bf4e372b23d">theora.h</a>
+<li>theora_version_string()
+: <a class="el" href="theora_8h.html#7682deb3e6612db562f54ea66b95584b">theora.h</a>
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/index.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/index.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/index.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li id="current"><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="annotated.html"><span>Data Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul></div>
+<h1>libtheora Documentation</h1>
+<p>
+<h3 align="center">1.0beta1 </h3><h2><a class="anchor" name="intro">
+Introduction</a></h2>
+This is the documentation for the libtheora C API. 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 for Ogg multimedia formats by <a href="http://www.xiph.org/">Xiph.Org</a>.<h2><a class="anchor" name="overview">
+Overview</a></h2>
+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.<h2><a class="anchor" name="decoding">
+Decoding Process</a></h2>
+Decoding can be separated into the following steps:<ol type=1>
+<li>initialise <a class="el" href="structtheora__info.html">theora_info</a> and <a class="el" href="structtheora__comment.html">theora_comment</a> structures using <a class="el" href="theora_8h.html#f0f9fbb7e7bcce3c536e0b46d300c71e">theora_info_init()</a> and <a class="el" href="theora_8h.html#531adee5230be7d45af1dede0e82c79a">theora_comment_init()</a>: <div class="fragment"><pre class="fragment">
+ theora_info info;
+ theora_comment comment;
+
+ theora_info_init(&info);
+ theora_comment_init(&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">theora_info</a> and <a class="el" href="structtheora__comment.html">theora_comment</a> structures using <a class="el" href="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">theora_decode_header()</a>. See <a class="el" href="index.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 < 3; i++)
+ {
+ (get a theora packet "op" from the Ogg stream)
+ theora_decode_header(&info, &comment, op);
+ }
+ </pre></div></li><li>initialise the decoder based on the information retrieved into the <a class="el" href="structtheora__info.html">theora_info</a> struct by <a class="el" href="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">theora_decode_header()</a>. You will need a <a class="el" href="structtheora__state.html">theora_state</a> struct. <div class="fragment"><pre class="fragment">
+ theora_state state;
+
+ theora_decode_init(&state, &info);
+ </pre></div></li><li>pass in packets and retrieve decoded frames! See the <a class="el" href="structyuv__buffer.html">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(&state, op);
+ theora_decode_YUVout(&state, &buffer);
+ }
+ </pre></div></li></ol>
+<h3><a class="anchor" name="identification">
+Identifying Theora Packets</a></h3>
+All streams inside an Ogg file have a unique serial_no attached to the stream. Typically, you will want to<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="theora_8h.html#b75731ff4e6a113430715dee160c1626">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="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">theora_decode_header()</a> function and check the return value; or examine the header bytes at the beginning of the Ogg page.<h3><a class="anchor" name="example">
+Example Decoder</a></h3>
+See <a href="http://svn.xiph.org/trunk/theora/examples/dump_video.c">examples/dump_video.c</a> for a simple decoder implementation.<h2><a class="anchor" name="encoding">
+Encoding Process</a></h2>
+See <a href="http://svn.xiph.org/trunk/theora/examples/encoder_example.c">examples/encoder_example.c</a> for a simple encoder implementation. <hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/structtheora__comment.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/structtheora__comment.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/structtheora__comment.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: theora_comment Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li id="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li>
+ <li><a href="functions.html"><span>Data Fields</span></a></li>
+ </ul></div>
+<h1>theora_comment Struct Reference</h1><!-- doxytag: class="theora_comment" -->Comment header metadata.
+<a href="#_details">More...</a>
+<p>
+<code>#include <<a class="el" href="theora_8h-source.html">theora.h</a>></code>
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5cf2d0a7ac70e6f5fa286da7a3c2edef"></a><!-- doxytag: member="theora_comment::user_comments" ref="5cf2d0a7ac70e6f5fa286da7a3c2edef" args="" -->
+char ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__comment.html#5cf2d0a7ac70e6f5fa286da7a3c2edef">user_comments</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">An array of comment string vectors. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3ae630a111e08d268bd9455089e2d549"></a><!-- doxytag: member="theora_comment::comment_lengths" ref="3ae630a111e08d268bd9455089e2d549" args="" -->
+int * </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__comment.html#3ae630a111e08d268bd9455089e2d549">comment_lengths</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">An array of corresponding string vector lengths in bytes. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="72742a6f74e87e4363d5f11c42837b97"></a><!-- doxytag: member="theora_comment::comments" ref="72742a6f74e87e4363d5f11c42837b97" args="" -->
+int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__comment.html#72742a6f74e87e4363d5f11c42837b97">comments</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">The total number of comment string vectors. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3f0da11f1a775c63109f9c0c2fbb5fc5"></a><!-- doxytag: member="theora_comment::vendor" ref="3f0da11f1a775c63109f9c0c2fbb5fc5" args="" -->
+char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__comment.html#3f0da11f1a775c63109f9c0c2fbb5fc5">vendor</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">The vendor string identifying the encoder, null terminated. <br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Comment header metadata.
+<p>
+This structure holds the in-stream metadata corresponding to the 'comment' header packet.<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>
+In filling in this structure, <a class="el" href="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">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>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="theora_8h-source.html">theora.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/structtheora__info.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/structtheora__info.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/structtheora__info.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: theora_info Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li id="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li>
+ <li><a href="functions.html"><span>Data Fields</span></a></li>
+ </ul></div>
+<h1>theora_info Struct Reference</h1><!-- doxytag: class="theora_info" -->Theora bitstream info.
+<a href="#_details">More...</a>
+<p>
+<code>#include <<a class="el" href="theora_8h-source.html">theora.h</a>></code>
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6f1094fe341bac5ad9b23e0afab836a6"></a><!-- doxytag: member="theora_info::width" ref="6f1094fe341bac5ad9b23e0afab836a6" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#6f1094fe341bac5ad9b23e0afab836a6">width</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">encoded frame width <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8e7f84ca1724bb90c210c2815f904a01"></a><!-- doxytag: member="theora_info::height" ref="8e7f84ca1724bb90c210c2815f904a01" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#8e7f84ca1724bb90c210c2815f904a01">height</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">encoded frame height <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a3c69b1f45e66cabae99a8a90c13003e"></a><!-- doxytag: member="theora_info::frame_width" ref="a3c69b1f45e66cabae99a8a90c13003e" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#a3c69b1f45e66cabae99a8a90c13003e">frame_width</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">display frame width <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6aa64f83107f32b7e4214462bd173cda"></a><!-- doxytag: member="theora_info::frame_height" ref="6aa64f83107f32b7e4214462bd173cda" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#6aa64f83107f32b7e4214462bd173cda">frame_height</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">display frame height <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ef18353df17bab7b78b1f3a48141fda5"></a><!-- doxytag: member="theora_info::offset_x" ref="ef18353df17bab7b78b1f3a48141fda5" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#ef18353df17bab7b78b1f3a48141fda5">offset_x</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">horizontal offset of the displayed frame <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5e7da1d6b6f90f4f038d04f9cf677e3d"></a><!-- doxytag: member="theora_info::offset_y" ref="5e7da1d6b6f90f4f038d04f9cf677e3d" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#5e7da1d6b6f90f4f038d04f9cf677e3d">offset_y</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">vertical offset of the displayed frame <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b5b73000d86c892a805d7edc874ffdf8"></a><!-- doxytag: member="theora_info::fps_numerator" ref="b5b73000d86c892a805d7edc874ffdf8" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#b5b73000d86c892a805d7edc874ffdf8">fps_numerator</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">frame rate numerator <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fca33e94f7c437ea5d2dc4eb6ab4642a"></a><!-- doxytag: member="theora_info::fps_denominator" ref="fca33e94f7c437ea5d2dc4eb6ab4642a" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#fca33e94f7c437ea5d2dc4eb6ab4642a">fps_denominator</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">frame rate denominator <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dcd1750a5bb10c3da1a29b2154683bb3"></a><!-- doxytag: member="theora_info::aspect_numerator" ref="dcd1750a5bb10c3da1a29b2154683bb3" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#dcd1750a5bb10c3da1a29b2154683bb3">aspect_numerator</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">pixel aspect ratio numerator <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4dd10a45536510b8748e80fb6adf8e51"></a><!-- doxytag: member="theora_info::aspect_denominator" ref="4dd10a45536510b8748e80fb6adf8e51" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#4dd10a45536510b8748e80fb6adf8e51">aspect_denominator</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">pixel aspect ratio denominator <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fc1972d0a6227b957f51baf417483e78"></a><!-- doxytag: member="theora_info::colorspace" ref="fc1972d0a6227b957f51baf417483e78" args="" -->
+<a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d">theora_colorspace</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#fc1972d0a6227b957f51baf417483e78">colorspace</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">colorspace <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d568c28dc5fa1f22630826e5eb95a874"></a><!-- doxytag: member="theora_info::target_bitrate" ref="d568c28dc5fa1f22630826e5eb95a874" args="" -->
+int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#d568c28dc5fa1f22630826e5eb95a874">target_bitrate</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">nominal bitrate in bits per second <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="48df8ab9e7ec3a47656c2e2028ee2dba"></a><!-- doxytag: member="theora_info::quality" ref="48df8ab9e7ec3a47656c2e2028ee2dba" args="" -->
+int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#48df8ab9e7ec3a47656c2e2028ee2dba">quality</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Nominal quality setting, 0-63. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8ac3973b333ca026c0749a2f2ff044db"></a><!-- doxytag: member="theora_info::quick_p" ref="8ac3973b333ca026c0749a2f2ff044db" args="" -->
+int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#8ac3973b333ca026c0749a2f2ff044db">quick_p</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Quick encode/decode. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="658d5d9af1546c6a155b652569910935"></a><!-- doxytag: member="theora_info::version_major" ref="658d5d9af1546c6a155b652569910935" args="" -->
+unsigned char </td><td class="memItemRight" valign="bottom"><b>version_major</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="248c4c2c467e75c128e37596c4acefa1"></a><!-- doxytag: member="theora_info::version_minor" ref="248c4c2c467e75c128e37596c4acefa1" args="" -->
+unsigned char </td><td class="memItemRight" valign="bottom"><b>version_minor</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="107b3fc2cd72eff290ac665966a806d2"></a><!-- doxytag: member="theora_info::version_subminor" ref="107b3fc2cd72eff290ac665966a806d2" args="" -->
+unsigned char </td><td class="memItemRight" valign="bottom"><b>version_subminor</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7bfcea185ef25b5d1c264a473e1c46bf"></a><!-- doxytag: member="theora_info::codec_setup" ref="7bfcea185ef25b5d1c264a473e1c46bf" args="" -->
+void * </td><td class="memItemRight" valign="bottom"><b>codec_setup</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1fa7ebf4307a40cae93bd2952ac7b61d"></a><!-- doxytag: member="theora_info::dropframes_p" ref="1fa7ebf4307a40cae93bd2952ac7b61d" args="" -->
+int </td><td class="memItemRight" valign="bottom"><b>dropframes_p</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="90b808a057363c58eba4fb210729f5bd"></a><!-- doxytag: member="theora_info::keyframe_auto_p" ref="90b808a057363c58eba4fb210729f5bd" args="" -->
+int </td><td class="memItemRight" valign="bottom"><b>keyframe_auto_p</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="18c71b2258bddb04f72d6e96282b319e"></a><!-- doxytag: member="theora_info::keyframe_frequency" ref="18c71b2258bddb04f72d6e96282b319e" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><b>keyframe_frequency</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="74a72a8f7eac847705d2ebda3703aed7"></a><!-- doxytag: member="theora_info::keyframe_frequency_force" ref="74a72a8f7eac847705d2ebda3703aed7" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><b>keyframe_frequency_force</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1ee985972c9ac6447b5b1080eac25c88"></a><!-- doxytag: member="theora_info::keyframe_data_target_bitrate" ref="1ee985972c9ac6447b5b1080eac25c88" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><b>keyframe_data_target_bitrate</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5eadc1d55bb41e886fa86164a0870ef9"></a><!-- doxytag: member="theora_info::keyframe_auto_threshold" ref="5eadc1d55bb41e886fa86164a0870ef9" args="" -->
+ogg_int32_t </td><td class="memItemRight" valign="bottom"><b>keyframe_auto_threshold</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5cd8291a9c734b51d96a68e9fd890969"></a><!-- doxytag: member="theora_info::keyframe_mindistance" ref="5cd8291a9c734b51d96a68e9fd890969" args="" -->
+ogg_uint32_t </td><td class="memItemRight" valign="bottom"><b>keyframe_mindistance</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c819b9b14cd2b87d6f1c143a25a8f321"></a><!-- doxytag: member="theora_info::noise_sensitivity" ref="c819b9b14cd2b87d6f1c143a25a8f321" args="" -->
+ogg_int32_t </td><td class="memItemRight" valign="bottom"><b>noise_sensitivity</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="844635956752ae709296df19a66de0e7"></a><!-- doxytag: member="theora_info::sharpness" ref="844635956752ae709296df19a66de0e7" args="" -->
+ogg_int32_t </td><td class="memItemRight" valign="bottom"><b>sharpness</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="37b7d715f46d0240195b3a0184e7b178"></a><!-- doxytag: member="theora_info::pixelformat" ref="37b7d715f46d0240195b3a0184e7b178" args="" -->
+<a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3">theora_pixelformat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html#37b7d715f46d0240195b3a0184e7b178">pixelformat</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">chroma subsampling mode to expect <br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Theora bitstream info.
+<p>
+Contains the basic playback parameters for a stream, corresponding to the initial 'info' header packet.<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>
+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>
+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>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="theora_8h-source.html">theora.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/structtheora__state.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/structtheora__state.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/structtheora__state.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: theora_state Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li id="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li>
+ <li><a href="functions.html"><span>Data Fields</span></a></li>
+ </ul></div>
+<h1>theora_state Struct Reference</h1><!-- doxytag: class="theora_state" -->Codec internal state and context.
+<a href="#_details">More...</a>
+<p>
+<code>#include <<a class="el" href="theora_8h-source.html">theora.h</a>></code>
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6b5096e702a26e3a9b526908357bf17f"></a><!-- doxytag: member="theora_state::i" ref="6b5096e702a26e3a9b526908357bf17f" args="" -->
+<a class="el" href="structtheora__info.html">theora_info</a> * </td><td class="memItemRight" valign="bottom"><b>i</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="38c865281bf523d0af82c6a7da574c40"></a><!-- doxytag: member="theora_state::granulepos" ref="38c865281bf523d0af82c6a7da574c40" args="" -->
+ogg_int64_t </td><td class="memItemRight" valign="bottom"><b>granulepos</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3cfd040487f5caf89b6ecea3122c90ab"></a><!-- doxytag: member="theora_state::internal_encode" ref="3cfd040487f5caf89b6ecea3122c90ab" args="" -->
+void * </td><td class="memItemRight" valign="bottom"><b>internal_encode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7652f35bc3c0c8000aaf942b5c60d5bc"></a><!-- doxytag: member="theora_state::internal_decode" ref="7652f35bc3c0c8000aaf942b5c60d5bc" args="" -->
+void * </td><td class="memItemRight" valign="bottom"><b>internal_decode</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Codec internal state and context.
+<p>
+<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></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/structyuv__buffer.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/structyuv__buffer.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/structyuv__buffer.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: yuv_buffer Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li id="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li>
+ <li><a href="functions.html"><span>Data Fields</span></a></li>
+ </ul></div>
+<h1>yuv_buffer Struct Reference</h1><!-- doxytag: class="yuv_buffer" -->A YUV buffer for passing uncompressed frames to and from the codec.
+<a href="#_details">More...</a>
+<p>
+<code>#include <<a class="el" href="theora_8h-source.html">theora.h</a>></code>
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1f6d315bbeac5c143e675bff7606d9fa"></a><!-- doxytag: member="yuv_buffer::y_width" ref="1f6d315bbeac5c143e675bff7606d9fa" args="" -->
+int </td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#1f6d315bbeac5c143e675bff7606d9fa">y_width</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Width of the Y' luminance plane. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c8af965f6efae51897a2f1690cbaf103"></a><!-- doxytag: member="yuv_buffer::y_height" ref="c8af965f6efae51897a2f1690cbaf103" args="" -->
+int </td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#c8af965f6efae51897a2f1690cbaf103">y_height</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Height of the luminance plane. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1b556662ed0bc7866ee78e32687c0eea"></a><!-- doxytag: member="yuv_buffer::y_stride" ref="1b556662ed0bc7866ee78e32687c0eea" args="" -->
+int </td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#1b556662ed0bc7866ee78e32687c0eea">y_stride</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Offset in bytes between successive rows. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="464b8795e6f91436204710f1c3f957b9"></a><!-- doxytag: member="yuv_buffer::uv_width" ref="464b8795e6f91436204710f1c3f957b9" args="" -->
+int </td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#464b8795e6f91436204710f1c3f957b9">uv_width</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Width of the Cb and Cr chroma planes. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e000b9579ca67e7aa3e40755517285cc"></a><!-- doxytag: member="yuv_buffer::uv_height" ref="e000b9579ca67e7aa3e40755517285cc" args="" -->
+int </td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#e000b9579ca67e7aa3e40755517285cc">uv_height</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Height of the chroma planes. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8501c16afe7c891ebc3aa4572f2a4ef3"></a><!-- doxytag: member="yuv_buffer::uv_stride" ref="8501c16afe7c891ebc3aa4572f2a4ef3" args="" -->
+int </td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#8501c16afe7c891ebc3aa4572f2a4ef3">uv_stride</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Offset between successive chroma rows. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="34464280b291ac3b8ffd8a6fd0ee2ce9"></a><!-- doxytag: member="yuv_buffer::y" ref="34464280b291ac3b8ffd8a6fd0ee2ce9" args="" -->
+unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#34464280b291ac3b8ffd8a6fd0ee2ce9">y</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to start of luminance data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="05bc01e25bbad6c86e81c58997cbbe89"></a><!-- doxytag: member="yuv_buffer::u" ref="05bc01e25bbad6c86e81c58997cbbe89" args="" -->
+unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#05bc01e25bbad6c86e81c58997cbbe89">u</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to start of Cb data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2638f17c1f26aee27072148c3155b404"></a><!-- doxytag: member="yuv_buffer::v" ref="2638f17c1f26aee27072148c3155b404" args="" -->
+unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html#2638f17c1f26aee27072148c3155b404">v</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to start of Cr data. <br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+A YUV buffer for passing uncompressed frames to and from the codec.
+<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">theora_info</a> structure; frames returned by the decoder may need to be cropped for display.<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>
+During decode, the <a class="el" href="structyuv__buffer.html">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>
+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>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="theora_8h-source.html">theora.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/tab_b.gif
===================================================================
(Binary files differ)
Property changes on: websites/theora.org/doc/libtheora-1.0beta1/tab_b.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: websites/theora.org/doc/libtheora-1.0beta1/tab_l.gif
===================================================================
(Binary files differ)
Property changes on: websites/theora.org/doc/libtheora-1.0beta1/tab_l.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: websites/theora.org/doc/libtheora-1.0beta1/tab_r.gif
===================================================================
(Binary files differ)
Property changes on: websites/theora.org/doc/libtheora-1.0beta1/tab_r.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: websites/theora.org/doc/libtheora-1.0beta1/tabs.css
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/tabs.css (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/tabs.css 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,102 @@
+/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
+
+DIV.tabs
+{
+ float : left;
+ width : 100%;
+ background : url("tab_b.gif") repeat-x bottom;
+ margin-bottom : 4px;
+}
+
+DIV.tabs UL
+{
+ margin : 0px;
+ padding-left : 10px;
+ list-style : none;
+}
+
+DIV.tabs LI, DIV.tabs FORM
+{
+ display : inline;
+ margin : 0px;
+ padding : 0px;
+}
+
+DIV.tabs FORM
+{
+ float : right;
+}
+
+DIV.tabs A
+{
+ float : left;
+ background : url("tab_r.gif") no-repeat right top;
+ border-bottom : 1px solid #84B0C7;
+ font-size : x-small;
+ font-weight : bold;
+ text-decoration : none;
+}
+
+DIV.tabs A:hover
+{
+ background-position: 100% -150px;
+}
+
+DIV.tabs A:link, DIV.tabs A:visited,
+DIV.tabs A:active, DIV.tabs A:hover
+{
+ color: #1A419D;
+}
+
+DIV.tabs SPAN
+{
+ float : left;
+ display : block;
+ background : url("tab_l.gif") no-repeat left top;
+ padding : 5px 9px;
+ white-space : nowrap;
+}
+
+DIV.tabs INPUT
+{
+ float : right;
+ display : inline;
+ font-size : 1em;
+}
+
+DIV.tabs TD
+{
+ font-size : x-small;
+ font-weight : bold;
+ text-decoration : none;
+}
+
+
+
+/* Commented Backslash Hack hides rule from IE5-Mac \*/
+DIV.tabs SPAN {float : none;}
+/* End IE5-Mac hack */
+
+DIV.tabs A:hover SPAN
+{
+ background-position: 0% -150px;
+}
+
+DIV.tabs LI#current A
+{
+ background-position: 100% -150px;
+ border-width : 0px;
+}
+
+DIV.tabs LI#current SPAN
+{
+ background-position: 0% -150px;
+ padding-bottom : 6px;
+}
+
+DIV.nav
+{
+ background : none;
+ border : none;
+ border-bottom : 1px solid #84B0C7;
+}
Added: websites/theora.org/doc/libtheora-1.0beta1/theora_8h-source.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/theora_8h-source.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/theora_8h-source.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,233 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: theora.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="annotated.html"><span>Data Structures</span></a></li>
+ <li id="current"><a href="files.html"><span>Files</span></a></li>
+ </ul></div>
+<div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul></div>
+<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 'COPYING'. 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-2007 *</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">"C"</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 <stddef.h></span> <span class="comment">/* for size_t */</span>
+<a name="l00027"></a>00027
+<a name="l00028"></a>00028 <span class="preprocessor">#ifndef LIBOGG2</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#include <ogg/ogg.h></span>
+<a name="l00030"></a>00030 <span class="preprocessor">#else</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#include <ogg2/ogg.h></span>
+<a name="l00032"></a>00032 <span class="comment">/* This is temporary until libogg2 is more complete */</span>
+<a name="l00033"></a>00033 ogg_buffer_state *ogg_buffer_create(<span class="keywordtype">void</span>);
+<a name="l00034"></a>00034 <span class="preprocessor">#endif</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00155"></a><a class="code" href="structyuv__buffer.html">00155</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
+<a name="l00156"></a><a class="code" href="structyuv__buffer.html#1f6d315bbeac5c143e675bff7606d9fa">00156</a> <span class="keywordtype">int</span> y_width;
+<a name="l00157"></a><a class="code" href="structyuv__buffer.html#c8af965f6efae51897a2f1690cbaf103">00157</a> <span class="keywordtype">int</span> y_height;
+<a name="l00158"></a><a class="code" href="structyuv__buffer.html#1b556662ed0bc7866ee78e32687c0eea">00158</a> <span class="keywordtype">int</span> y_stride;
+<a name="l00160"></a><a class="code" href="structyuv__buffer.html#464b8795e6f91436204710f1c3f957b9">00160</a> <span class="keywordtype">int</span> uv_width;
+<a name="l00161"></a><a class="code" href="structyuv__buffer.html#e000b9579ca67e7aa3e40755517285cc">00161</a> <span class="keywordtype">int</span> uv_height;
+<a name="l00162"></a><a class="code" href="structyuv__buffer.html#8501c16afe7c891ebc3aa4572f2a4ef3">00162</a> <span class="keywordtype">int</span> uv_stride;
+<a name="l00163"></a><a class="code" href="structyuv__buffer.html#34464280b291ac3b8ffd8a6fd0ee2ce9">00163</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *y;
+<a name="l00164"></a><a class="code" href="structyuv__buffer.html#05bc01e25bbad6c86e81c58997cbbe89">00164</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *u;
+<a name="l00165"></a><a class="code" href="structyuv__buffer.html#2638f17c1f26aee27072148c3155b404">00165</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *v;
+<a name="l00167"></a>00167 } <a class="code" href="structyuv__buffer.html">yuv_buffer</a>;
+<a name="l00168"></a>00168
+<a name="l00172"></a><a class="code" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d">00172</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00173"></a>00173 <a class="code" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d98594a87da35091a8baa4643bd8904ef">OC_CS_UNSPECIFIED</a>,
+<a name="l00174"></a>00174 <a class="code" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d91b8497a22276b56b62cbec714c6365f">OC_CS_ITU_REC_470M</a>,
+<a name="l00175"></a>00175 <a class="code" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d3d957a2abfb9f9b11912eddb564365d3">OC_CS_ITU_REC_470BG</a>,
+<a name="l00176"></a><a class="code" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d171c884c1c919c2c264f8bf6224d758f">00176</a> <a class="code" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d171c884c1c919c2c264f8bf6224d758f">OC_CS_NSPACES</a>
+<a name="l00177"></a>00177 } <a class="code" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d">theora_colorspace</a>;
+<a name="l00178"></a>00178
+<a name="l00186"></a><a class="code" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3">00186</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00187"></a>00187 <a class="code" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3ba38f832e52748c1df744683c15fe05b">OC_PF_420</a>,
+<a name="l00188"></a>00188 <a class="code" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d317351a1b9c53cd886ad34c3b1d3bd7b3">OC_PF_RSVD</a>,
+<a name="l00189"></a>00189 <a class="code" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3c841320c974a9704f146d52d08f31cb0">OC_PF_422</a>,
+<a name="l00190"></a>00190 <a class="code" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3a2c8a52c7c2e20fac7b0182579e89144">OC_PF_444</a>,
+<a name="l00191"></a>00191 } <a class="code" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3">theora_pixelformat</a>;
+<a name="l00192"></a>00192
+<a name="l00214"></a><a class="code" href="structtheora__info.html">00214</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
+<a name="l00215"></a><a class="code" href="structtheora__info.html#6f1094fe341bac5ad9b23e0afab836a6">00215</a> ogg_uint32_t width;
+<a name="l00216"></a><a class="code" href="structtheora__info.html#8e7f84ca1724bb90c210c2815f904a01">00216</a> ogg_uint32_t height;
+<a name="l00217"></a><a class="code" href="structtheora__info.html#a3c69b1f45e66cabae99a8a90c13003e">00217</a> ogg_uint32_t frame_width;
+<a name="l00218"></a><a class="code" href="structtheora__info.html#6aa64f83107f32b7e4214462bd173cda">00218</a> ogg_uint32_t frame_height;
+<a name="l00219"></a><a class="code" href="structtheora__info.html#ef18353df17bab7b78b1f3a48141fda5">00219</a> ogg_uint32_t offset_x;
+<a name="l00220"></a><a class="code" href="structtheora__info.html#5e7da1d6b6f90f4f038d04f9cf677e3d">00220</a> ogg_uint32_t offset_y;
+<a name="l00221"></a><a class="code" href="structtheora__info.html#b5b73000d86c892a805d7edc874ffdf8">00221</a> ogg_uint32_t fps_numerator;
+<a name="l00222"></a><a class="code" href="structtheora__info.html#fca33e94f7c437ea5d2dc4eb6ab4642a">00222</a> ogg_uint32_t fps_denominator;
+<a name="l00223"></a><a class="code" href="structtheora__info.html#dcd1750a5bb10c3da1a29b2154683bb3">00223</a> ogg_uint32_t aspect_numerator;
+<a name="l00224"></a><a class="code" href="structtheora__info.html#4dd10a45536510b8748e80fb6adf8e51">00224</a> ogg_uint32_t aspect_denominator;
+<a name="l00225"></a><a class="code" href="structtheora__info.html#fc1972d0a6227b957f51baf417483e78">00225</a> theora_colorspace colorspace;
+<a name="l00226"></a><a class="code" href="structtheora__info.html#d568c28dc5fa1f22630826e5eb95a874">00226</a> <span class="keywordtype">int</span> target_bitrate;
+<a name="l00227"></a><a class="code" href="structtheora__info.html#48df8ab9e7ec3a47656c2e2028ee2dba">00227</a> <span class="keywordtype">int</span> quality;
+<a name="l00228"></a><a class="code" href="structtheora__info.html#8ac3973b333ca026c0749a2f2ff044db">00228</a> <span class="keywordtype">int</span> quick_p;
+<a name="l00230"></a>00230 <span class="comment">/* decode only */</span>
+<a name="l00231"></a>00231 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> version_major;
+<a name="l00232"></a>00232 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> version_minor;
+<a name="l00233"></a>00233 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> version_subminor;
+<a name="l00234"></a>00234
+<a name="l00235"></a>00235 <span class="keywordtype">void</span> *codec_setup;
+<a name="l00236"></a>00236
+<a name="l00237"></a>00237 <span class="comment">/* encode only */</span>
+<a name="l00238"></a>00238 <span class="keywordtype">int</span> dropframes_p;
+<a name="l00239"></a>00239 <span class="keywordtype">int</span> keyframe_auto_p;
+<a name="l00240"></a>00240 ogg_uint32_t keyframe_frequency;
+<a name="l00241"></a>00241 ogg_uint32_t keyframe_frequency_force; <span class="comment">/* also used for decode init to</span>
+<a name="l00242"></a>00242 <span class="comment"> get granpos shift correct */</span>
+<a name="l00243"></a>00243 ogg_uint32_t keyframe_data_target_bitrate;
+<a name="l00244"></a>00244 ogg_int32_t keyframe_auto_threshold;
+<a name="l00245"></a>00245 ogg_uint32_t keyframe_mindistance;
+<a name="l00246"></a>00246 ogg_int32_t noise_sensitivity;
+<a name="l00247"></a>00247 ogg_int32_t sharpness;
+<a name="l00248"></a>00248
+<a name="l00249"></a><a class="code" href="structtheora__info.html#37b7d715f46d0240195b3a0184e7b178">00249</a> theora_pixelformat pixelformat;
+<a name="l00251"></a>00251 } <a class="code" href="structtheora__info.html">theora_info</a>;
+<a name="l00252"></a>00252
+<a name="l00255"></a><a class="code" href="structtheora__state.html">00255</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>{
+<a name="l00256"></a>00256 <a class="code" href="structtheora__info.html">theora_info</a> *i;
+<a name="l00257"></a>00257 ogg_int64_t granulepos;
+<a name="l00258"></a>00258
+<a name="l00259"></a>00259 <span class="keywordtype">void</span> *internal_encode;
+<a name="l00260"></a>00260 <span class="keywordtype">void</span> *internal_decode;
+<a name="l00261"></a>00261
+<a name="l00262"></a>00262 } <a class="code" href="structtheora__state.html">theora_state</a>;
+<a name="l00263"></a>00263
+<a name="l00283"></a><a class="code" href="structtheora__comment.html">00283</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structtheora__comment.html">theora_comment</a>{
+<a name="l00284"></a><a class="code" href="structtheora__comment.html#5cf2d0a7ac70e6f5fa286da7a3c2edef">00284</a> <span class="keywordtype">char</span> **<a class="code" href="structtheora__comment.html#5cf2d0a7ac70e6f5fa286da7a3c2edef">user_comments</a>;
+<a name="l00285"></a><a class="code" href="structtheora__comment.html#3ae630a111e08d268bd9455089e2d549">00285</a> <span class="keywordtype">int</span> *<a class="code" href="structtheora__comment.html#3ae630a111e08d268bd9455089e2d549">comment_lengths</a>;
+<a name="l00286"></a><a class="code" href="structtheora__comment.html#72742a6f74e87e4363d5f11c42837b97">00286</a> <span class="keywordtype">int</span> <a class="code" href="structtheora__comment.html#72742a6f74e87e4363d5f11c42837b97">comments</a>;
+<a name="l00287"></a><a class="code" href="structtheora__comment.html#3f0da11f1a775c63109f9c0c2fbb5fc5">00287</a> <span class="keywordtype">char</span> *<a class="code" href="structtheora__comment.html#3f0da11f1a775c63109f9c0c2fbb5fc5">vendor</a>;
+<a name="l00289"></a>00289 } <a class="code" href="structtheora__comment.html">theora_comment</a>;
+<a name="l00290"></a>00290
+<a name="l00291"></a>00291
+<a name="l00307"></a><a class="code" href="theora_8h.html#65bcee69b870122fb6632b69c3d3c1eb">00307</a> <span class="preprocessor">#define TH_DECCTL_GET_PPLEVEL_MAX (1)</span>
+<a name="l00308"></a>00308 <span class="preprocessor"></span>
+<a name="l00314"></a><a class="code" href="theora_8h.html#72d56e667f939d0ebaa78ef7b786386f">00314</a> <span class="preprocessor">#define TH_DECCTL_SET_PPLEVEL (3)</span>
+<a name="l00315"></a>00315 <span class="preprocessor"></span>
+<a name="l00323"></a><a class="code" href="theora_8h.html#6c80846ad5cbcaa4718dc716664ec812">00323</a> <span class="preprocessor">#define TH_DECCTL_SET_GRANPOS (5)</span>
+<a name="l00324"></a>00324 <span class="preprocessor"></span>
+<a name="l00325"></a>00325
+<a name="l00346"></a><a class="code" href="theora_8h.html#781afc3b480e049082cea1beb8c79fa3">00346</a> <span class="preprocessor">#define TH_ENCCTL_SET_HUFFMAN_CODES (0)</span>
+<a name="l00347"></a>00347 <span class="preprocessor"></span>
+<a name="l00365"></a><a class="code" href="theora_8h.html#525b6d11691cd1279d9b8665b1d10072">00365</a> <span class="preprocessor">#define TH_ENCCTL_SET_QUANT_PARAMS (2)</span>
+<a name="l00366"></a>00366 <span class="preprocessor"></span>
+<a name="l00378"></a><a class="code" href="theora_8h.html#7102eda810b38358f8ffda8342e08a1f">00378</a> <span class="preprocessor">#define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE (4)</span>
+<a name="l00379"></a>00379 <span class="preprocessor"></span>
+<a name="l00406"></a><a class="code" href="theora_8h.html#e22ef42ef7d3fe7274b50664b8734f91">00406</a> <span class="preprocessor">#define TH_ENCCTL_SET_VP3_COMPATIBLE (10)</span>
+<a name="l00407"></a>00407 <span class="preprocessor"></span>
+<a name="l00420"></a><a class="code" href="theora_8h.html#0c290c0cffb04fa16a651c9e1db6ef63">00420</a> <span class="preprocessor">#define TH_ENCCTL_GET_SPLEVEL_MAX (12)</span>
+<a name="l00421"></a>00421 <span class="preprocessor"></span>
+<a name="l00434"></a><a class="code" href="theora_8h.html#189936543acdb82b56fd28dde7bd22f5">00434</a> <span class="preprocessor">#define TH_ENCCTL_SET_SPLEVEL (14)</span>
+<a name="l00435"></a>00435 <span class="preprocessor"></span>
+<a name="l00454"></a><a class="code" href="theora_8h.html#9893803fcfa2ee6d3bb9f446a2c16cc6">00454</a> <span class="preprocessor">#define TH_ENCCTL_SETUP_VBR (16)</span>
+<a name="l00455"></a>00455 <span class="preprocessor"></span>
+<a name="l00469"></a><a class="code" href="theora_8h.html#a2344d1de39748820f47348cb4853506">00469</a> <span class="preprocessor">#define TH_ENCCTL_SETUP_CQI (18)</span>
+<a name="l00470"></a>00470 <span class="preprocessor"></span>
+<a name="l00472"></a><a class="code" href="theora_8h.html#95aff598c4af451822e7e836b3886cbf">00472</a> <span class="preprocessor">#define OC_FAULT -1 </span>
+<a name="l00473"></a><a class="code" href="theora_8h.html#06a281a54a00da88abf1a3b29ec11e4a">00473</a> <span class="preprocessor">#define OC_EINVAL -10 </span>
+<a name="l00474"></a><a class="code" href="theora_8h.html#b2bc670dc664c72ea6fcbaf9deda3476">00474</a> <span class="preprocessor">#define OC_DISABLED -11 </span>
+<a name="l00475"></a><a class="code" href="theora_8h.html#9d583a6c9a30e48ec7d4ea937f769614">00475</a> <span class="preprocessor">#define OC_BADHEADER -20 </span>
+<a name="l00476"></a><a class="code" href="theora_8h.html#ed82978e76177264a6b8fc3278697c33">00476</a> <span class="preprocessor">#define OC_NOTFORMAT -21 </span>
+<a name="l00477"></a><a class="code" href="theora_8h.html#1398927f9660a187ae02d93022795ae8">00477</a> <span class="preprocessor">#define OC_VERSION -22 </span>
+<a name="l00478"></a><a class="code" href="theora_8h.html#5d58ee606f97079e94c30549584fd7c8">00478</a> <span class="preprocessor">#define OC_IMPL -23 </span>
+<a name="l00479"></a><a class="code" href="theora_8h.html#36091b71b428f52454e363463ef6e445">00479</a> <span class="preprocessor">#define OC_BADPACKET -24 </span>
+<a name="l00480"></a><a class="code" href="theora_8h.html#efea777076ff2a9004b418415edba208">00480</a> <span class="preprocessor">#define OC_NEWPACKET -25 </span>
+<a name="l00481"></a><a class="code" href="theora_8h.html#a4e82ad9e3a51af2f9659f2eb353170e">00481</a> <span class="preprocessor">#define OC_DUPFRAME 1 </span>
+<a name="l00487"></a>00487 <span class="preprocessor">extern const char *theora_version_string(void);</span>
+<a name="l00488"></a>00488 <span class="preprocessor"></span>
+<a name="l00498"></a>00498 <span class="keyword">extern</span> ogg_uint32_t <a class="code" href="theora_8h.html#d9cec696a9c830e9b3cb1bf4e372b23d">theora_version_number</a>(<span class="keywordtype">void</span>);
+<a name="l00499"></a>00499
+<a name="l00506"></a>00506 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#9544a8feccd8a25e6336a57eac2c411e">theora_encode_init</a>(<a class="code" href="structtheora__state.html">theora_state</a> *th, <a class="code" href="structtheora__info.html">theora_info</a> *ti);
+<a name="l00507"></a>00507
+<a name="l00518"></a>00518 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#21afcb28b49f5c775a4dbe6ab1d8b00e">theora_encode_YUVin</a>(<a class="code" href="structtheora__state.html">theora_state</a> *t, <a class="code" href="structyuv__buffer.html">yuv_buffer</a> *yuv);
+<a name="l00519"></a>00519
+<a name="l00532"></a>00532 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#bd4b6f1eb80929ea318fbaa1d5d7fba3">theora_encode_packetout</a>( <a class="code" href="structtheora__state.html">theora_state</a> *t, <span class="keywordtype">int</span> last_p,
+<a name="l00533"></a>00533 ogg_packet *op);
+<a name="l00534"></a>00534
+<a name="l00545"></a>00545 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#4f9e6ef696ec209d14749177edde69f4">theora_encode_header</a>(<a class="code" href="structtheora__state.html">theora_state</a> *t, ogg_packet *op);
+<a name="l00546"></a>00546
+<a name="l00558"></a>00558 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#db11c4000d2a049167ea1d0a6aa12194">theora_encode_comment</a>(<a class="code" href="structtheora__comment.html">theora_comment</a> *tc, ogg_packet *op);
+<a name="l00559"></a>00559
+<a name="l00570"></a>00570 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#74fcaad3b21a9bfa643f0627ecba96d7">theora_encode_tables</a>(<a class="code" href="structtheora__state.html">theora_state</a> *t, ogg_packet *op);
+<a name="l00571"></a>00571
+<a name="l00613"></a>00613 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">theora_decode_header</a>(<a class="code" href="structtheora__info.html">theora_info</a> *ci, <a class="code" href="structtheora__comment.html">theora_comment</a> *cc,
+<a name="l00614"></a>00614 ogg_packet *op);
+<a name="l00615"></a>00615
+<a name="l00624"></a>00624 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#a9f81159ae039353cac6076a59fba871">theora_decode_init</a>(<a class="code" href="structtheora__state.html">theora_state</a> *th, <a class="code" href="structtheora__info.html">theora_info</a> *c);
+<a name="l00625"></a>00625
+<a name="l00633"></a>00633 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#a67cbe3cc458aad10904c0cc78044fc5">theora_decode_packetin</a>(<a class="code" href="structtheora__state.html">theora_state</a> *th,ogg_packet *op);
+<a name="l00634"></a>00634
+<a name="l00645"></a>00645 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#38049cd76f6f1d30906344dcc747782c">theora_decode_YUVout</a>(<a class="code" href="structtheora__state.html">theora_state</a> *th,<a class="code" href="structyuv__buffer.html">yuv_buffer</a> *yuv);
+<a name="l00646"></a>00646
+<a name="l00659"></a>00659 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#b75731ff4e6a113430715dee160c1626">theora_packet_isheader</a>(ogg_packet *op);
+<a name="l00660"></a>00660
+<a name="l00671"></a>00671 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#88a636ebe2e390aa0ca6bb547912814f">theora_packet_iskeyframe</a>(ogg_packet *op);
+<a name="l00672"></a>00672
+<a name="l00698"></a>00698 <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#3fd68eba5a134ac84d4db08dd8126991">theora_granule_shift</a>(<a class="code" href="structtheora__info.html">theora_info</a> *ti);
+<a name="l00699"></a>00699
+<a name="l00711"></a>00711 <span class="keyword">extern</span> ogg_int64_t <a class="code" href="theora_8h.html#072d4900733c1d0798b868dafb50847c">theora_granule_frame</a>(<a class="code" href="structtheora__state.html">theora_state</a> *th,ogg_int64_t granulepos);
+<a name="l00712"></a>00712
+<a name="l00723"></a>00723 <span class="keyword">extern</span> <span class="keywordtype">double</span> <a class="code" href="theora_8h.html#56a89dbe9051fe6a3b7b31a6812df77d">theora_granule_time</a>(<a class="code" href="structtheora__state.html">theora_state</a> *th,ogg_int64_t granulepos);
+<a name="l00724"></a>00724
+<a name="l00731"></a>00731 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="theora_8h.html#f0f9fbb7e7bcce3c536e0b46d300c71e">theora_info_init</a>(<a class="code" href="structtheora__info.html">theora_info</a> *c);
+<a name="l00732"></a>00732
+<a name="l00738"></a>00738 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="theora_8h.html#c72b3f8c404d658d1e675e39a75b1931">theora_info_clear</a>(<a class="code" href="structtheora__info.html">theora_info</a> *c);
+<a name="l00739"></a>00739
+<a name="l00744"></a>00744 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="theora_8h.html#c3d872f1cbe57918661471cf41fe2949">theora_clear</a>(<a class="code" href="structtheora__state.html">theora_state</a> *t);
+<a name="l00745"></a>00745
+<a name="l00750"></a>00750 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="theora_8h.html#531adee5230be7d45af1dede0e82c79a">theora_comment_init</a>(<a class="code" href="structtheora__comment.html">theora_comment</a> *tc);
+<a name="l00751"></a>00751
+<a name="l00764"></a>00764 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="theora_8h.html#795da8fab8fe137dea276d6bf20bf5f2">theora_comment_add</a>(<a class="code" href="structtheora__comment.html">theora_comment</a> *tc, <span class="keywordtype">char</span> *comment);
+<a name="l00765"></a>00765
+<a name="l00778"></a>00778 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="theora_8h.html#adc406fcdc1d2192ae2a9adfb3bd4e6f">theora_comment_add_tag</a>(<a class="code" href="structtheora__comment.html">theora_comment</a> *tc,
+<a name="l00779"></a>00779 <span class="keywordtype">char</span> *tag, <span class="keywordtype">char</span> *value);
+<a name="l00780"></a>00780
+<a name="l00795"></a>00795 <span class="keyword">extern</span> <span class="keywordtype">char</span> *<a class="code" href="theora_8h.html#0071768c54009941f50d7c738a33340d">theora_comment_query</a>(<a class="code" href="structtheora__comment.html">theora_comment</a> *tc, <span class="keywordtype">char</span> *tag, <span class="keywordtype">int</span> count);
+<a name="l00796"></a>00796
+<a name="l00806"></a>00806 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#d0ee4a15b96518d5d8ab38df814c0b27">theora_comment_query_count</a>(<a class="code" href="structtheora__comment.html">theora_comment</a> *tc, <span class="keywordtype">char</span> *tag);
+<a name="l00807"></a>00807
+<a name="l00812"></a>00812 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="theora_8h.html#7cabfa586d5e0ecae1dedd7c05d6a1fe">theora_comment_clear</a>(<a class="code" href="structtheora__comment.html">theora_comment</a> *tc);
+<a name="l00813"></a>00813
+<a name="l00822"></a>00822 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="theora_8h.html#32fe20dcb67d5fd13d7153a4f3dff535">theora_control</a>(<a class="code" href="structtheora__state.html">theora_state</a> *th,<span class="keywordtype">int</span> req,<span class="keywordtype">void</span> *buf,size_t buf_sz);
+<a name="l00823"></a>00823
+<a name="l00824"></a>00824 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00825"></a>00825 <span class="preprocessor"></span>}
+<a name="l00826"></a>00826 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
+<a name="l00827"></a>00827
+<a name="l00828"></a>00828 <span class="preprocessor">#endif </span><span class="comment">/* _O_THEORA_H_ */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
Added: websites/theora.org/doc/libtheora-1.0beta1/theora_8h.html
===================================================================
--- websites/theora.org/doc/libtheora-1.0beta1/theora_8h.html (rev 0)
+++ websites/theora.org/doc/libtheora-1.0beta1/theora_8h.html 2007-10-04 23:28:10 UTC (rev 13936)
@@ -0,0 +1,1607 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>libtheora: theora.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.1 -->
+<div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="annotated.html"><span>Data Structures</span></a></li>
+ <li id="current"><a href="files.html"><span>Files</span></a></li>
+ </ul></div>
+<div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul></div>
+<h1>theora.h File Reference</h1>The libtheora C API. <a href="#_details">More...</a>
+<p>
+<code>#include <stddef.h></code><br>
+<code>#include <ogg/ogg.h></code><br>
+
+<p>
+<a href="theora_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structyuv__buffer.html">yuv_buffer</a></td></tr>
+
+<tr><td class="mdescLeft"> </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" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__info.html">theora_info</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Theora bitstream info. <a href="structtheora__info.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__state.html">theora_state</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Codec internal state and context. <a href="structtheora__state.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structtheora__comment.html">theora_comment</a></td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Comment header metadata. <a href="structtheora__comment.html#_details">More...</a><br></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="95aff598c4af451822e7e836b3886cbf"></a><!-- doxytag: member="theora.h::OC_FAULT" ref="95aff598c4af451822e7e836b3886cbf" args="" -->
+#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#95aff598c4af451822e7e836b3886cbf">OC_FAULT</a> -1</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">General failure. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="06a281a54a00da88abf1a3b29ec11e4a"></a><!-- doxytag: member="theora.h::OC_EINVAL" ref="06a281a54a00da88abf1a3b29ec11e4a" args="" -->
+#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#06a281a54a00da88abf1a3b29ec11e4a">OC_EINVAL</a> -10</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Library encountered invalid internal data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b2bc670dc664c72ea6fcbaf9deda3476"></a><!-- doxytag: member="theora.h::OC_DISABLED" ref="b2bc670dc664c72ea6fcbaf9deda3476" args="" -->
+#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#b2bc670dc664c72ea6fcbaf9deda3476">OC_DISABLED</a> -11</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Requested action is disabled. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9d583a6c9a30e48ec7d4ea937f769614"></a><!-- doxytag: member="theora.h::OC_BADHEADER" ref="9d583a6c9a30e48ec7d4ea937f769614" args="" -->
+#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#9d583a6c9a30e48ec7d4ea937f769614">OC_BADHEADER</a> -20</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Header packet was corrupt/invalid. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ed82978e76177264a6b8fc3278697c33"></a><!-- doxytag: member="theora.h::OC_NOTFORMAT" ref="ed82978e76177264a6b8fc3278697c33" args="" -->
+#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#ed82978e76177264a6b8fc3278697c33">OC_NOTFORMAT</a> -21</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Packet is not a theora packet. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1398927f9660a187ae02d93022795ae8"></a><!-- doxytag: member="theora.h::OC_VERSION" ref="1398927f9660a187ae02d93022795ae8" args="" -->
+#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#1398927f9660a187ae02d93022795ae8">OC_VERSION</a> -22</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitstream version is not handled. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5d58ee606f97079e94c30549584fd7c8"></a><!-- doxytag: member="theora.h::OC_IMPL" ref="5d58ee606f97079e94c30549584fd7c8" args="" -->
+#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#5d58ee606f97079e94c30549584fd7c8">OC_IMPL</a> -23</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Feature or action not implemented. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="36091b71b428f52454e363463ef6e445"></a><!-- doxytag: member="theora.h::OC_BADPACKET" ref="36091b71b428f52454e363463ef6e445" args="" -->
+#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#36091b71b428f52454e363463ef6e445">OC_BADPACKET</a> -24</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Packet is corrupt. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="efea777076ff2a9004b418415edba208"></a><!-- doxytag: member="theora.h::OC_NEWPACKET" ref="efea777076ff2a9004b418415edba208" args="" -->
+#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#efea777076ff2a9004b418415edba208">OC_NEWPACKET</a> -25</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Packet is an (ignorable) unhandled extension. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a4e82ad9e3a51af2f9659f2eb353170e"></a><!-- doxytag: member="theora.h::OC_DUPFRAME" ref="a4e82ad9e3a51af2f9659f2eb353170e" args="" -->
+#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#a4e82ad9e3a51af2f9659f2eb353170e">OC_DUPFRAME</a> 1</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Packet is a dropped frame. <br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">theora_control() codes</div></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#65bcee69b870122fb6632b69c3d3c1eb">TH_DECCTL_GET_PPLEVEL_MAX</a> (1)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the maximum post-processing level. <a href="#65bcee69b870122fb6632b69c3d3c1eb"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#72d56e667f939d0ebaa78ef7b786386f">TH_DECCTL_SET_PPLEVEL</a> (3)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the post-processing level. <a href="#72d56e667f939d0ebaa78ef7b786386f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#6c80846ad5cbcaa4718dc716664ec812">TH_DECCTL_SET_GRANPOS</a> (5)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the granule position. <a href="#6c80846ad5cbcaa4718dc716664ec812"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#781afc3b480e049082cea1beb8c79fa3">TH_ENCCTL_SET_HUFFMAN_CODES</a> (0)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the Huffman tables to use. <a href="#781afc3b480e049082cea1beb8c79fa3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#525b6d11691cd1279d9b8665b1d10072">TH_ENCCTL_SET_QUANT_PARAMS</a> (2)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the quantization parameters to use. <a href="#525b6d11691cd1279d9b8665b1d10072"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#7102eda810b38358f8ffda8342e08a1f">TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE</a> (4)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the maximum distance between key frames. <a href="#7102eda810b38358f8ffda8342e08a1f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#e22ef42ef7d3fe7274b50664b8734f91">TH_ENCCTL_SET_VP3_COMPATIBLE</a> (10)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Disables any encoder features that would prevent lossless transcoding back to VP3. <a href="#e22ef42ef7d3fe7274b50664b8734f91"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#0c290c0cffb04fa16a651c9e1db6ef63">TH_ENCCTL_GET_SPLEVEL_MAX</a> (12)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the maximum speed level. <a href="#0c290c0cffb04fa16a651c9e1db6ef63"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#189936543acdb82b56fd28dde7bd22f5">TH_ENCCTL_SET_SPLEVEL</a> (14)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the speed level. <a href="#189936543acdb82b56fd28dde7bd22f5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#9893803fcfa2ee6d3bb9f446a2c16cc6">TH_ENCCTL_SETUP_VBR</a> (16)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Puts the encoder in VBR mode. <a href="#9893803fcfa2ee6d3bb9f446a2c16cc6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#a2344d1de39748820f47348cb4853506">TH_ENCCTL_SETUP_CQI</a> (18)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Puts the encoder in CQI mode. <a href="#a2344d1de39748820f47348cb4853506"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d">theora_colorspace</a> { <a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d98594a87da35091a8baa4643bd8904ef">OC_CS_UNSPECIFIED</a>,
+<a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d91b8497a22276b56b62cbec714c6365f">OC_CS_ITU_REC_470M</a>,
+<a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d3d957a2abfb9f9b11912eddb564365d3">OC_CS_ITU_REC_470BG</a>,
+<a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d171c884c1c919c2c264f8bf6224d758f">OC_CS_NSPACES</a>
+ }</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">A Colorspace. <a href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3">theora_pixelformat</a> { <a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3ba38f832e52748c1df744683c15fe05b">OC_PF_420</a>,
+<a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d317351a1b9c53cd886ad34c3b1d3bd7b3">OC_PF_RSVD</a>,
+<a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3c841320c974a9704f146d52d08f31cb0">OC_PF_422</a>,
+<a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3a2c8a52c7c2e20fac7b0182579e89144">OC_PF_444</a>
+ }</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">A Chroma subsampling. <a href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3">More...</a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#7682deb3e6612db562f54ea66b95584b">theora_version_string</a> (void)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve a human-readable string to identify the encoder vendor and version. <a href="#7682deb3e6612db562f54ea66b95584b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ogg_uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#d9cec696a9c830e9b3cb1bf4e372b23d">theora_version_number</a> (void)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve a 32-bit version number. <a href="#d9cec696a9c830e9b3cb1bf4e372b23d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#9544a8feccd8a25e6336a57eac2c411e">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"> </td><td class="mdescRight">Initialize the theora encoder. <a href="#9544a8feccd8a25e6336a57eac2c411e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#21afcb28b49f5c775a4dbe6ab1d8b00e">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"> </td><td class="mdescRight">Submit a YUV buffer to the theora encoder. <a href="#21afcb28b49f5c775a4dbe6ab1d8b00e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#bd4b6f1eb80929ea318fbaa1d5d7fba3">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"> </td><td class="mdescRight">Request the next packet of encoded video. <a href="#bd4b6f1eb80929ea318fbaa1d5d7fba3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#4f9e6ef696ec209d14749177edde69f4">theora_encode_header</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t, ogg_packet *op)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Request a packet containing the initial header. <a href="#4f9e6ef696ec209d14749177edde69f4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#db11c4000d2a049167ea1d0a6aa12194">theora_encode_comment</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, ogg_packet *op)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Request a comment header packet from provided metadata. <a href="#db11c4000d2a049167ea1d0a6aa12194"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#74fcaad3b21a9bfa643f0627ecba96d7">theora_encode_tables</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t, ogg_packet *op)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Request a packet containing the codebook tables for the stream. <a href="#74fcaad3b21a9bfa643f0627ecba96d7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">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"> </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="#41a60c67649c41ae88278d777f89ee3f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#a9f81159ae039353cac6076a59fba871">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"> </td><td class="mdescRight">Initialize a <a class="el" href="structtheora__state.html">theora_state</a> handle for decoding. <a href="#a9f81159ae039353cac6076a59fba871"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#a67cbe3cc458aad10904c0cc78044fc5">theora_decode_packetin</a> (<a class="el" href="structtheora__state.html">theora_state</a> *th, ogg_packet *op)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Input a packet containing encoded data into the theora decoder. <a href="#a67cbe3cc458aad10904c0cc78044fc5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#38049cd76f6f1d30906344dcc747782c">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"> </td><td class="mdescRight">Output the next available frame of decoded YUV data. <a href="#38049cd76f6f1d30906344dcc747782c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#b75731ff4e6a113430715dee160c1626">theora_packet_isheader</a> (ogg_packet *op)</td></tr>
+
+<tr><td class="mdescLeft"> </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="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">theora_decode_header()</a> for that. <a href="#b75731ff4e6a113430715dee160c1626"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#88a636ebe2e390aa0ca6bb547912814f">theora_packet_iskeyframe</a> (ogg_packet *op)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Report whether a theora packet is a keyframe or not. <a href="#88a636ebe2e390aa0ca6bb547912814f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#3fd68eba5a134ac84d4db08dd8126991">theora_granule_shift</a> (<a class="el" href="structtheora__info.html">theora_info</a> *ti)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Report the granulepos shift radix. <a href="#3fd68eba5a134ac84d4db08dd8126991"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ogg_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#072d4900733c1d0798b868dafb50847c">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"> </td><td class="mdescRight">Convert a granulepos to an absolute frame number. <a href="#072d4900733c1d0798b868dafb50847c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#56a89dbe9051fe6a3b7b31a6812df77d">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"> </td><td class="mdescRight">Convert a granulepos to absolute time in seconds. <a href="#56a89dbe9051fe6a3b7b31a6812df77d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#f0f9fbb7e7bcce3c536e0b46d300c71e">theora_info_init</a> (<a class="el" href="structtheora__info.html">theora_info</a> *c)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize a <a class="el" href="structtheora__info.html">theora_info</a> structure. <a href="#f0f9fbb7e7bcce3c536e0b46d300c71e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#c72b3f8c404d658d1e675e39a75b1931">theora_info_clear</a> (<a class="el" href="structtheora__info.html">theora_info</a> *c)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Clear a <a class="el" href="structtheora__info.html">theora_info</a> structure. <a href="#c72b3f8c404d658d1e675e39a75b1931"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#c3d872f1cbe57918661471cf41fe2949">theora_clear</a> (<a class="el" href="structtheora__state.html">theora_state</a> *t)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Free all internal data associated with a <a class="el" href="structtheora__state.html">theora_state</a> handle. <a href="#c3d872f1cbe57918661471cf41fe2949"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#531adee5230be7d45af1dede0e82c79a">theora_comment_init</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize an allocated <a class="el" href="structtheora__comment.html">theora_comment</a> structure. <a href="#531adee5230be7d45af1dede0e82c79a"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#795da8fab8fe137dea276d6bf20bf5f2">theora_comment_add</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, char *comment)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a comment to an initialized <a class="el" href="structtheora__comment.html">theora_comment</a> structure. <a href="#795da8fab8fe137dea276d6bf20bf5f2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#adc406fcdc1d2192ae2a9adfb3bd4e6f">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"> </td><td class="mdescRight">Add a comment to an initialized <a class="el" href="structtheora__comment.html">theora_comment</a> structure. <a href="#adc406fcdc1d2192ae2a9adfb3bd4e6f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#0071768c54009941f50d7c738a33340d">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"> </td><td class="mdescRight">Look up a comment value by tag. <a href="#0071768c54009941f50d7c738a33340d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#d0ee4a15b96518d5d8ab38df814c0b27">theora_comment_query_count</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc, char *tag)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Look up the number of instances of a tag. <a href="#d0ee4a15b96518d5d8ab38df814c0b27"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#7cabfa586d5e0ecae1dedd7c05d6a1fe">theora_comment_clear</a> (<a class="el" href="structtheora__comment.html">theora_comment</a> *tc)</td></tr>
+
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Clear an allocated <a class="el" href="structtheora__comment.html">theora_comment</a> struct so that it can be freed. <a href="#7cabfa586d5e0ecae1dedd7c05d6a1fe"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="theora_8h.html#32fe20dcb67d5fd13d7153a4f3dff535">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"> </td><td class="mdescRight">Encoder control function. <a href="#32fe20dcb67d5fd13d7153a4f3dff535"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+The libtheora C API.
+<p>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="65bcee69b870122fb6632b69c3d3c1eb"></a><!-- doxytag: member="theora.h::TH_DECCTL_GET_PPLEVEL_MAX" ref="65bcee69b870122fb6632b69c3d3c1eb" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define TH_DECCTL_GET_PPLEVEL_MAX (1) </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the maximum post-processing level.
+<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.
+</div>
+</div><p>
+<a class="anchor" name="6c80846ad5cbcaa4718dc716664ec812"></a><!-- doxytag: member="theora.h::TH_DECCTL_SET_GRANPOS" ref="6c80846ad5cbcaa4718dc716664ec812" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define TH_DECCTL_SET_GRANPOS (5) </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set the granule position.
+<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.
+</div>
+</div><p>
+<a class="anchor" name="72d56e667f939d0ebaa78ef7b786386f"></a><!-- doxytag: member="theora.h::TH_DECCTL_SET_PPLEVEL" ref="72d56e667f939d0ebaa78ef7b786386f" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define TH_DECCTL_SET_PPLEVEL (3) </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set the post-processing level.
+<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.
+</div>
+</div><p>
+<a class="anchor" name="0c290c0cffb04fa16a651c9e1db6ef63"></a><!-- doxytag: member="theora.h::TH_ENCCTL_GET_SPLEVEL_MAX" ref="0c290c0cffb04fa16a651c9e1db6ef63" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define TH_ENCCTL_GET_SPLEVEL_MAX (12) </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets the maximum speed level.
+<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 compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>buf</em> </td><td>int: The maximum encoding speed level. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>TH_FAULT</em> </td><td><em><a class="el" href="structtheora__state.html">theora_state</a></em> or <em>buf</em> is <code>NULL</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em> </td><td><em>buf_sz</em> is not <code>sizeof(int)</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_IMPL</em> </td><td>Not supported by this implementation in the current encoding mode. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="781afc3b480e049082cea1beb8c79fa3"></a><!-- doxytag: member="theora.h::TH_ENCCTL_SET_HUFFMAN_CODES" ref="781afc3b480e049082cea1beb8c79fa3" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define TH_ENCCTL_SET_HUFFMAN_CODES (0) </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets the Huffman tables to use.
+<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 compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>buf</em> </td><td><code>th_huff_code[TH_NHUFFMAN_TABLES][TH_NDCT_TOKENS]</code> </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>TH_FAULT</em> </td><td><em><a class="el" href="structtheora__state.html">theora_state</a></em> is <code>NULL</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em> </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(th_huff_code)*TH_NHUFFMAN_TABLES*TH_NDCT_TOKENS</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_IMPL</em> </td><td>Not supported by this implementation. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="7102eda810b38358f8ffda8342e08a1f"></a><!-- doxytag: member="theora.h::TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE" ref="7102eda810b38358f8ffda8342e08a1f" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE (4) </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets the maximum distance between key frames.
+<p>
+This can be changed during an encode, but will be bounded by <code>1<<th_info::keyframe_granule_shift</code>. If it is set before encoding begins, th_info::keyframe_granule_shift will be enlarged appropriately.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>buf</em> </td><td><code>ogg_uint32_t</code>: The maximum distance between key frames. </td></tr>
+ <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>buf</em> </td><td><code>ogg_uint32_t</code>: The actual maximum distance set. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>TH_FAULT</em> </td><td><em><a class="el" href="structtheora__state.html">theora_state</a></em> or <em>buf</em> is <code>NULL</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em> </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_IMPL</em> </td><td>Not supported by this implementation. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="525b6d11691cd1279d9b8665b1d10072"></a><!-- doxytag: member="theora.h::TH_ENCCTL_SET_QUANT_PARAMS" ref="525b6d11691cd1279d9b8665b1d10072" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define TH_ENCCTL_SET_QUANT_PARAMS (2) </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets the quantization parameters to use.
+<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. 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.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>buf</em> </td><td>th_quant_info </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>TH_FAULT</em> </td><td><em><a class="el" href="structtheora__state.html">theora_state</a></em> is <code>NULL</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em> </td><td>Encoding has already begun, the quantization parameters do not meet one of the above stated conditions, <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(th_quant_info)</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_IMPL</em> </td><td>Not supported by this implementation. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="189936543acdb82b56fd28dde7bd22f5"></a><!-- doxytag: member="theora.h::TH_ENCCTL_SET_SPLEVEL" ref="189936543acdb82b56fd28dde7bd22f5" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define TH_ENCCTL_SET_SPLEVEL (14) </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sets the speed level.
+<p>
+By default a speed value of 1 is used.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>buf</em> </td><td>int: The new encoding speed level. 0 is slowest, larger values use less CPU. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>TH_FAULT</em> </td><td><em><a class="el" href="structtheora__state.html">theora_state</a></em> or <em>buf</em> is <code>NULL</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em> </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="theora_8h.html#0c290c0cffb04fa16a651c9e1db6ef63">TH_ENCCTL_GET_SPLEVEL_MAX</a>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_IMPL</em> </td><td>Not supported by this implementation in the current encoding mode. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="e22ef42ef7d3fe7274b50664b8734f91"></a><!-- doxytag: member="theora.h::TH_ENCCTL_SET_VP3_COMPATIBLE" ref="e22ef42ef7d3fe7274b50664b8734f91" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define TH_ENCCTL_SET_VP3_COMPATIBLE (10) </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Disables any encoder features that would prevent lossless transcoding back to VP3.
+<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 compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>buf</em> </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> </td><td valign="top"><em>buf</em> </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>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>TH_FAULT</em> </td><td><em><a class="el" href="structtheora__state.html">theora_state</a></em> or <em>buf</em> is <code>NULL</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em> </td><td><em>buf_sz</em> is not <code>sizeof(int)</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_IMPL</em> </td><td>Not supported by this implementation. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a2344d1de39748820f47348cb4853506"></a><!-- doxytag: member="theora.h::TH_ENCCTL_SETUP_CQI" ref="a2344d1de39748820f47348cb4853506" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define TH_ENCCTL_SETUP_CQI (18) </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Puts the encoder in CQI mode.
+<p>
+This can be done at any time during the encoding process, with different QI values. See the th_info struct documentation for details on how the default encoding mode is chosen.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>buf</em> </td><td><code>th_cqi_cfg</code>: the configuration parameters. This may be <code>NULL</code>, in which case the current CQI configuration is unchanged. The default is to use the QI setting passed in via the th_info struct when the encoder was initialized. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>OC_EFAULT</em> </td><td><em><a class="el" href="structtheora__state.html">theora_state</a></em> is <code>NULL</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em> </td><td><em>buf_sz</em> is not <code>sizeof(th_cqi_cfg)</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_IMPL</em> </td><td>Not supported by this implementation. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="9893803fcfa2ee6d3bb9f446a2c16cc6"></a><!-- doxytag: member="theora.h::TH_ENCCTL_SETUP_VBR" ref="9893803fcfa2ee6d3bb9f446a2c16cc6" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define TH_ENCCTL_SETUP_VBR (16) </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Puts the encoder in VBR mode.
+<p>
+This can be done at any time during the encoding process, with different configuration parameters, to encode different regions of the video segment with different qualities. See the th_info struct documentation for details on how the default encoding mode is chosen.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>buf</em> </td><td><code>th_vbr_cfg</code>: the configuration parameters. This may be <code>NULL</code>, in which case the current VBR configuration is unchanged. The default is to use the QI setting passed in via the th_info struct when the encoder was initialized, with a full range of admissible quantizers. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>OC_EFAULT</em> </td><td><em><a class="el" href="structtheora__state.html">theora_state</a></em> is <code>NULL</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_EINVAL</em> </td><td>The configuration parameters do not meet one of their stated requirements, <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(th_vbr_cfg)</code>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>TH_IMPL</em> </td><td>Not supported by this implementation. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<hr><h2>Enumeration Type Documentation</h2>
+<a class="anchor" name="fdb3ecc6cbb1a6c346281db5c972d52d"></a><!-- doxytag: member="theora.h::theora_colorspace" ref="fdb3ecc6cbb1a6c346281db5c972d52d" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="theora_8h.html#fdb3ecc6cbb1a6c346281db5c972d52d">theora_colorspace</a> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+A Colorspace.
+<p>
+<dl compact><dt><b>Enumerator: </b></dt><dd>
+<table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" name="fdb3ecc6cbb1a6c346281db5c972d52d98594a87da35091a8baa4643bd8904ef"></a><!-- doxytag: member="OC_CS_UNSPECIFIED" ref="fdb3ecc6cbb1a6c346281db5c972d52d98594a87da35091a8baa4643bd8904ef" args="" -->OC_CS_UNSPECIFIED</em> </td><td>
+The colorspace is unknown or unspecified. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="fdb3ecc6cbb1a6c346281db5c972d52d91b8497a22276b56b62cbec714c6365f"></a><!-- doxytag: member="OC_CS_ITU_REC_470M" ref="fdb3ecc6cbb1a6c346281db5c972d52d91b8497a22276b56b62cbec714c6365f" args="" -->OC_CS_ITU_REC_470M</em> </td><td>
+This is the best option for 'NTSC' content. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="fdb3ecc6cbb1a6c346281db5c972d52d3d957a2abfb9f9b11912eddb564365d3"></a><!-- doxytag: member="OC_CS_ITU_REC_470BG" ref="fdb3ecc6cbb1a6c346281db5c972d52d3d957a2abfb9f9b11912eddb564365d3" args="" -->OC_CS_ITU_REC_470BG</em> </td><td>
+This is the best option for 'PAL' content. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="fdb3ecc6cbb1a6c346281db5c972d52d171c884c1c919c2c264f8bf6224d758f"></a><!-- doxytag: member="OC_CS_NSPACES" ref="fdb3ecc6cbb1a6c346281db5c972d52d171c884c1c919c2c264f8bf6224d758f" args="" -->OC_CS_NSPACES</em> </td><td>
+This marks the end of the defined colorspaces. </td></tr>
+</table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="e6d5fa4a952719a002d8df5ba19fd7d3"></a><!-- doxytag: member="theora.h::theora_pixelformat" ref="e6d5fa4a952719a002d8df5ba19fd7d3" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="theora_8h.html#e6d5fa4a952719a002d8df5ba19fd7d3">theora_pixelformat</a> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+A Chroma subsampling.
+<p>
+These enumerate the available chroma subsampling options supported by the theora format. See Section 4.4 of the specification for exact definitions. <dl compact><dt><b>Enumerator: </b></dt><dd>
+<table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" name="e6d5fa4a952719a002d8df5ba19fd7d3ba38f832e52748c1df744683c15fe05b"></a><!-- doxytag: member="OC_PF_420" ref="e6d5fa4a952719a002d8df5ba19fd7d3ba38f832e52748c1df744683c15fe05b" args="" -->OC_PF_420</em> </td><td>
+Chroma subsampling by 2 in each direction (4:2:0). </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="e6d5fa4a952719a002d8df5ba19fd7d317351a1b9c53cd886ad34c3b1d3bd7b3"></a><!-- doxytag: member="OC_PF_RSVD" ref="e6d5fa4a952719a002d8df5ba19fd7d317351a1b9c53cd886ad34c3b1d3bd7b3" args="" -->OC_PF_RSVD</em> </td><td>
+Reserved value. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="e6d5fa4a952719a002d8df5ba19fd7d3c841320c974a9704f146d52d08f31cb0"></a><!-- doxytag: member="OC_PF_422" ref="e6d5fa4a952719a002d8df5ba19fd7d3c841320c974a9704f146d52d08f31cb0" args="" -->OC_PF_422</em> </td><td>
+Horizonatal chroma subsampling by 2 (4:2:2). </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="e6d5fa4a952719a002d8df5ba19fd7d3a2c8a52c7c2e20fac7b0182579e89144"></a><!-- doxytag: member="OC_PF_444" ref="e6d5fa4a952719a002d8df5ba19fd7d3a2c8a52c7c2e20fac7b0182579e89144" args="" -->OC_PF_444</em> </td><td>
+No chroma subsampling at all (4:4:4). </td></tr>
+</table>
+</dl>
+
+</div>
+</div><p>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="c3d872f1cbe57918661471cf41fe2949"></a><!-- doxytag: member="theora.h::theora_clear" ref="c3d872f1cbe57918661471cf41fe2949" 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> * </td>
+ <td class="paramname"> <em>t</em> </td>
+ <td> ) </td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Free all internal data associated with a <a class="el" href="structtheora__state.html">theora_state</a> handle.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>A <a class="el" href="structtheora__state.html">theora_state</a> handle. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="795da8fab8fe137dea276d6bf20bf5f2"></a><!-- doxytag: member="theora.h::theora_comment_add" ref="795da8fab8fe137dea276d6bf20bf5f2" 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> * </td>
+ <td class="paramname"> <em>tc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char * </td>
+ <td class="paramname"> <em>comment</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Add a comment to an initialized <a class="el" href="structtheora__comment.html">theora_comment</a> structure.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>tc</em> </td><td>A previously initialized theora comment structure </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>comment</em> </td><td>A null-terminated string encoding the comment in the form "TAG=the value"</td></tr>
+ </table>
+</dl>
+Neither <a class="el" href="theora_8h.html#795da8fab8fe137dea276d6bf20bf5f2">theora_comment_add()</a> nor <a class="el" href="theora_8h.html#adc406fcdc1d2192ae2a9adfb3bd4e6f">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">theora_comment</a> structure directly.
+</div>
+</div><p>
+<a class="anchor" name="adc406fcdc1d2192ae2a9adfb3bd4e6f"></a><!-- doxytag: member="theora.h::theora_comment_add_tag" ref="adc406fcdc1d2192ae2a9adfb3bd4e6f" 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> * </td>
+ <td class="paramname"> <em>tc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char * </td>
+ <td class="paramname"> <em>tag</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char * </td>
+ <td class="paramname"> <em>value</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Add a comment to an initialized <a class="el" href="structtheora__comment.html">theora_comment</a> structure.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>tc</em> </td><td>A previously initialized theora comment structure </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>tag</em> </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> </td><td>The corresponding value as a null-terminated string</td></tr>
+ </table>
+</dl>
+Neither <a class="el" href="theora_8h.html#795da8fab8fe137dea276d6bf20bf5f2">theora_comment_add()</a> nor <a class="el" href="theora_8h.html#adc406fcdc1d2192ae2a9adfb3bd4e6f">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">theora_comment</a> structure directly.
+</div>
+</div><p>
+<a class="anchor" name="7cabfa586d5e0ecae1dedd7c05d6a1fe"></a><!-- doxytag: member="theora.h::theora_comment_clear" ref="7cabfa586d5e0ecae1dedd7c05d6a1fe" 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> * </td>
+ <td class="paramname"> <em>tc</em> </td>
+ <td> ) </td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Clear an allocated <a class="el" href="structtheora__comment.html">theora_comment</a> struct so that it can be freed.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>tc</em> </td><td>An allocated <a class="el" href="structtheora__comment.html">theora_comment</a> structure. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="531adee5230be7d45af1dede0e82c79a"></a><!-- doxytag: member="theora.h::theora_comment_init" ref="531adee5230be7d45af1dede0e82c79a" 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> * </td>
+ <td class="paramname"> <em>tc</em> </td>
+ <td> ) </td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Initialize an allocated <a class="el" href="structtheora__comment.html">theora_comment</a> structure.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>tc</em> </td><td>An allocated <a class="el" href="structtheora__comment.html">theora_comment</a> structure </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="0071768c54009941f50d7c738a33340d"></a><!-- doxytag: member="theora.h::theora_comment_query" ref="0071768c54009941f50d7c738a33340d" 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> * </td>
+ <td class="paramname"> <em>tc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char * </td>
+ <td class="paramname"> <em>tag</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"> <em>count</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Look up a comment value by tag.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>tc</em> </td><td>Tn initialized <a class="el" href="structtheora__comment.html">theora_comment</a> structure </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>tag</em> </td><td>The tag to look up </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>count</em> </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>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the queried tag's value </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>NULL</em> </td><td>No matching tag is found</td></tr>
+ </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Use <a class="el" href="theora_8h.html#d0ee4a15b96518d5d8ab38df814c0b27">theora_comment_query_count()</a> to get the legal range for the count parameter. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d0ee4a15b96518d5d8ab38df814c0b27"></a><!-- doxytag: member="theora.h::theora_comment_query_count" ref="d0ee4a15b96518d5d8ab38df814c0b27" 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> * </td>
+ <td class="paramname"> <em>tc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char * </td>
+ <td class="paramname"> <em>tag</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Look up the number of instances of a tag.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>tc</em> </td><td>An initialized <a class="el" href="structtheora__comment.html">theora_comment</a> structure </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>tag</em> </td><td>The tag to look up </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number on instances of a particular tag.</dd></dl>
+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="theora_8h.html#0071768c54009941f50d7c738a33340d">theora_comment_query()</a> to retrieve all instances in order.
+</div>
+</div><p>
+<a class="anchor" name="32fe20dcb67d5fd13d7153a4f3dff535"></a><!-- doxytag: member="theora.h::theora_control" ref="32fe20dcb67d5fd13d7153a4f3dff535" 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> * </td>
+ <td class="paramname"> <em>th</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"> <em>req</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"> <em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t </td>
+ <td class="paramname"> <em>buf_sz</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Encoder control function.
+<p>
+This is used to provide advanced control the encoding process. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>th</em> </td><td>A <a class="el" href="structtheora__state.html">theora_state</a> handle. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>req</em> </td><td>The control code to process. See <a class="el" href="/home/giles/projects/xiph/theora/include/theora/theora.h.html#encctlcodes">the list of available control codes</a> for details. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>The parameters for this control code. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>buf_sz</em> </td><td>The size of the parameter buffer. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="41a60c67649c41ae88278d777f89ee3f"></a><!-- doxytag: member="theora.h::theora_decode_header" ref="41a60c67649c41ae88278d777f89ee3f" 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> * </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> * </td>
+ <td class="paramname"> <em>cc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ogg_packet * </td>
+ <td class="paramname"> <em>op</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>ci</em> </td><td>A <a class="el" href="structtheora__info.html">theora_info</a> structure to fill. This must have been previously initialized with <a class="el" href="theora_8h.html#f0f9fbb7e7bcce3c536e0b46d300c71e">theora_info_init()</a>. If <em>op</em> contains an initial header, <a class="el" href="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">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="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">theora_decode_header()</a> will parse these and attach an internal representation to <em>ci->codec_setup</em>. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>cc</em> </td><td>A <a class="el" href="structtheora__comment.html">theora_comment</a> structure to fill. If <em>op</em> contains comment data, <a class="el" href="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">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> </td><td>An ogg_packet structure which you expect contains an initial header, comment data or codebook tables.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>OC_BADHEADER</em> </td><td><em>op</em> is NULL; OR the first byte of <em>op->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> </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> </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> </td><td>Success</td></tr>
+ </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>The normal usage is that <a class="el" href="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">theora_decode_header()</a> be called on the first three packets of a theora logical bitstream in succession. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a9f81159ae039353cac6076a59fba871"></a><!-- doxytag: member="theora.h::theora_decode_init" ref="a9f81159ae039353cac6076a59fba871" 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> * </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> * </td>
+ <td class="paramname"> <em>c</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Initialize a <a class="el" href="structtheora__state.html">theora_state</a> handle for decoding.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>th</em> </td><td>The <a class="el" href="structtheora__state.html">theora_state</a> handle to initialize. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>A <a class="el" href="structtheora__info.html">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="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">theora_decode_header()</a>. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>Success </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a67cbe3cc458aad10904c0cc78044fc5"></a><!-- doxytag: member="theora.h::theora_decode_packetin" ref="a67cbe3cc458aad10904c0cc78044fc5" 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> * </td>
+ <td class="paramname"> <em>th</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ogg_packet * </td>
+ <td class="paramname"> <em>op</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Input a packet containing encoded data into the theora decoder.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>th</em> </td><td>A <a class="el" href="structtheora__state.html">theora_state</a> handle previously initialized for decoding. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>op</em> </td><td>An ogg_packet containing encoded theora data. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>Success </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>OC_BADPACKET</em> </td><td><em>op</em> does not contain encoded video data </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="38049cd76f6f1d30906344dcc747782c"></a><!-- doxytag: member="theora.h::theora_decode_YUVout" ref="38049cd76f6f1d30906344dcc747782c" 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> * </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> * </td>
+ <td class="paramname"> <em>yuv</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Output the next available frame of decoded YUV data.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>th</em> </td><td>A <a class="el" href="structtheora__state.html">theora_state</a> handle previously initialized for decoding. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>yuv</em> </td><td>A <a class="el" href="structyuv__buffer.html">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>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>Success </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="db11c4000d2a049167ea1d0a6aa12194"></a><!-- doxytag: member="theora.h::theora_encode_comment" ref="db11c4000d2a049167ea1d0a6aa12194" 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> * </td>
+ <td class="paramname"> <em>tc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ogg_packet * </td>
+ <td class="paramname"> <em>op</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Request a comment header packet from provided metadata.
+<p>
+A pointer to the comment data is placed in a user-provided ogg_packet structure. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>tc</em> </td><td>A <a class="el" href="structtheora__comment.html">theora_comment</a> structure filled with the desired metadata </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>op</em> </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>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>Success </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="4f9e6ef696ec209d14749177edde69f4"></a><!-- doxytag: member="theora.h::theora_encode_header" ref="4f9e6ef696ec209d14749177edde69f4" 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> * </td>
+ <td class="paramname"> <em>t</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ogg_packet * </td>
+ <td class="paramname"> <em>op</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Request a packet containing the initial header.
+<p>
+A pointer to the header data is placed in a user-provided ogg_packet structure. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>A <a class="el" href="structtheora__state.html">theora_state</a> handle previously initialized for encoding. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>op</em> </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>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>Success </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="9544a8feccd8a25e6336a57eac2c411e"></a><!-- doxytag: member="theora.h::theora_encode_init" ref="9544a8feccd8a25e6336a57eac2c411e" 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> * </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> * </td>
+ <td class="paramname"> <em>ti</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Initialize the theora encoder.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>th</em> </td><td>The <a class="el" href="structtheora__state.html">theora_state</a> handle to initialize for encoding. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>ti</em> </td><td>A <a class="el" href="structtheora__info.html">theora_info</a> struct filled with the desired encoding parameters. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>Success </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="bd4b6f1eb80929ea318fbaa1d5d7fba3"></a><!-- doxytag: member="theora.h::theora_encode_packetout" ref="bd4b6f1eb80929ea318fbaa1d5d7fba3" 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> * </td>
+ <td class="paramname"> <em>t</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"> <em>last_p</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ogg_packet * </td>
+ <td class="paramname"> <em>op</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Request the next packet of encoded video.
+<p>
+The encoded data is placed in a user-provided ogg_packet structure. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>A <a class="el" href="structtheora__state.html">theora_state</a> handle previously initialized for encoding. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>last_p</em> </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> </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>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>No internal storage exists OR no packet is ready </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>-1</em> </td><td>The encoding process has completed </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>1</em> </td><td>Success </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="74fcaad3b21a9bfa643f0627ecba96d7"></a><!-- doxytag: member="theora.h::theora_encode_tables" ref="74fcaad3b21a9bfa643f0627ecba96d7" 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> * </td>
+ <td class="paramname"> <em>t</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ogg_packet * </td>
+ <td class="paramname"> <em>op</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Request a packet containing the codebook tables for the stream.
+<p>
+A pointer to the codebook data is placed in a user-provided ogg_packet structure. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>A <a class="el" href="structtheora__state.html">theora_state</a> handle previously initialized for encoding. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>op</em> </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>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>Success </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="21afcb28b49f5c775a4dbe6ab1d8b00e"></a><!-- doxytag: member="theora.h::theora_encode_YUVin" ref="21afcb28b49f5c775a4dbe6ab1d8b00e" 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> * </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> * </td>
+ <td class="paramname"> <em>yuv</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Submit a YUV buffer to the theora encoder.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>A <a class="el" href="structtheora__state.html">theora_state</a> handle previously initialized for encoding. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>yuv</em> </td><td>A buffer of YUV data to encode. Note that both the <a class="el" href="structyuv__buffer.html">yuv_buffer</a> struct and the luma/chroma buffers within should be allocated by the user. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>OC_EINVAL</em> </td><td>Encoder is not ready, or is finished. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>-1</em> </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> </td><td>Success </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="072d4900733c1d0798b868dafb50847c"></a><!-- doxytag: member="theora.h::theora_granule_frame" ref="072d4900733c1d0798b868dafb50847c" 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> * </td>
+ <td class="paramname"> <em>th</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ogg_int64_t </td>
+ <td class="paramname"> <em>granulepos</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Convert a granulepos to an absolute frame number.
+<p>
+The granulepos is interpreted in the context of a given <a class="el" href="structtheora__state.html">theora_state</a> handle.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>th</em> </td><td>A previously initialized <a class="el" href="structtheora__state.html">theora_state</a> handle (encode or decode) </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>granulepos</em> </td><td>The granulepos to convert. </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The frame number corresponding to <em>granulepos</em>. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>-1</em> </td><td>The given granulepos is undefined (i.e. negative)</td></tr>
+ </table>
+</dl>
+Thus function was added in the 1.0alpha4 release.
+</div>
+</div><p>
+<a class="anchor" name="3fd68eba5a134ac84d4db08dd8126991"></a><!-- doxytag: member="theora.h::theora_granule_shift" ref="3fd68eba5a134ac84d4db08dd8126991" 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> * </td>
+ <td class="paramname"> <em>ti</em> </td>
+ <td> ) </td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Report the granulepos shift radix.
+<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>
+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>
+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 compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>ti</em> </td><td>A previously initialized <a class="el" href="structtheora__info.html">theora_info</a> struct </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The bit shift dividing the two granulepos fields</dd></dl>
+This function was added in the 1.0alpha5 release.
+</div>
+</div><p>
+<a class="anchor" name="56a89dbe9051fe6a3b7b31a6812df77d"></a><!-- doxytag: member="theora.h::theora_granule_time" ref="56a89dbe9051fe6a3b7b31a6812df77d" 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> * </td>
+ <td class="paramname"> <em>th</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ogg_int64_t </td>
+ <td class="paramname"> <em>granulepos</em></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Convert a granulepos to absolute time in seconds.
+<p>
+The granulepos is interpreted in the context of a given <a class="el" href="structtheora__state.html">theora_state</a> handle. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>th</em> </td><td>A previously initialized <a class="el" href="structtheora__state.html">theora_state</a> handle (encode or decode) </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>granulepos</em> </td><td>The granulepos to convert. </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The absolute time in seconds corresponding to <em>granulepos</em>. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>-1.</em> </td><td>The given granulepos is undefined (i.e. negative), or </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>-1.</em> </td><td>The function has been disabled because floating point support is not available. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="c72b3f8c404d658d1e675e39a75b1931"></a><!-- doxytag: member="theora.h::theora_info_clear" ref="c72b3f8c404d658d1e675e39a75b1931" 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> * </td>
+ <td class="paramname"> <em>c</em> </td>
+ <td> ) </td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Clear a <a class="el" href="structtheora__info.html">theora_info</a> structure.
+<p>
+All values within the given <a class="el" href="structtheora__info.html">theora_info</a> structure are cleared, and associated internal codec setup data is freed. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>A <a class="el" href="structtheora__info.html">theora_info</a> struct to initialize. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="f0f9fbb7e7bcce3c536e0b46d300c71e"></a><!-- doxytag: member="theora.h::theora_info_init" ref="f0f9fbb7e7bcce3c536e0b46d300c71e" 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> * </td>
+ <td class="paramname"> <em>c</em> </td>
+ <td> ) </td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Initialize a <a class="el" href="structtheora__info.html">theora_info</a> structure.
+<p>
+All values within the given <a class="el" href="structtheora__info.html">theora_info</a> structure are initialized, and space is allocated within libtheora for internal codec setup data. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>A <a class="el" href="structtheora__info.html">theora_info</a> struct to initialize. </td></tr>
+ </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="b75731ff4e6a113430715dee160c1626"></a><!-- doxytag: member="theora.h::theora_packet_isheader" ref="b75731ff4e6a113430715dee160c1626" 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 * </td>
+ <td class="paramname"> <em>op</em> </td>
+ <td> ) </td>
+ <td width="100%"></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="theora_8h.html#41a60c67649c41ae88278d777f89ee3f">theora_decode_header()</a> for that.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>op</em> </td><td>An ogg_packet containing encoded theora data. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>1</em> </td><td>The packet is a header packet </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>The packet is not a header packet (and so contains frame data)</td></tr>
+ </table>
+</dl>
+Thus function was added in the 1.0alpha4 release.
+</div>
+</div><p>
+<a class="anchor" name="88a636ebe2e390aa0ca6bb547912814f"></a><!-- doxytag: member="theora.h::theora_packet_iskeyframe" ref="88a636ebe2e390aa0ca6bb547912814f" 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 * </td>
+ <td class="paramname"> <em>op</em> </td>
+ <td> ) </td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Report whether a theora packet is a keyframe or not.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>op</em> </td><td>An ogg_packet containing encoded theora data. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>1</em> </td><td>The packet contains a keyframe image </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>The packet is contains an interframe delta </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>-1</em> </td><td>The packet is not an image data packet at all</td></tr>
+ </table>
+</dl>
+Thus function was added in the 1.0alpha4 release.
+</div>
+</div><p>
+<a class="anchor" name="d9cec696a9c830e9b3cb1bf4e372b23d"></a><!-- doxytag: member="theora.h::theora_version_number" ref="d9cec696a9c830e9b3cb1bf4e372b23d" 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 </td>
+ <td class="paramname"> </td>
+ <td> ) </td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve a 32-bit version number.
+<p>
+This number is composed of a 16-bit major version, 8-bit minor version and 8 bit sub-version, composed as follows: <pre>
+ (VERSION_MAJOR<<16) + (VERSION_MINOR<<8) + (VERSION_SUB)
+</pre> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The version number. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="7682deb3e6612db562f54ea66b95584b"></a><!-- doxytag: member="theora.h::theora_version_string" ref="7682deb3e6612db562f54ea66b95584b" 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 </td>
+ <td class="paramname"> </td>
+ <td> ) </td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieve a human-readable string to identify the encoder vendor and version.
+<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A version string. </dd></dl>
+
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 4 16:23:03 2007 for libtheora by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</body>
+</html>
More information about the commits
mailing list