Welcome to mirror list, hosted at ThFree Co, Russian Federation.

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