+<html>
+
+<head>
+<title>libvorbisenc - function - vorbis_analysis</title>
+<link rel=stylesheet href="style.css" type="text/css">
+</head>
+
+<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
+<table border=0 width=100%>
+<tr>
+<td><p class=tiny>libvorbisenc documentation</p></td>
+<td align=right><p class=tiny>libvorbisenc release 1.1 - 20091219</p></td>
+</tr>
+</table>
+
+<h1>vorbis_analysis</h1>
+
+<p><i>declared in "vorbis/codec.h";</i></p>
+
+<p>Once the uncompressed audio data has been divided into blocks, this
+function is called on each block. It looks up the encoding mode and
+dispatches the block to the forward transform provided by that mode.
+</p>
+<p>When using a basic encoding mode, with no bitrate management,
+an ogg_packet pointer can be given, and an the coded block is returned
+directly through that structure and can be placed in the output stream.
+</p>
+<p>Otherwise, NULL should be passed for the ogg_packet pointer. In
+that case, after the transform has been applied, the block must passed
+to vorbis_bitrate_addblock() for further coding. This method works with
+both basic and managed encoding modes, so it's recommended for new code.
+</p>
+
+<table border=0 color=black cellspacing=0 cellpadding=7>
+<tr bgcolor=#cccccc>
+ <td>
+<pre><b>
+extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op);
+</b></pre>
+ </td>
+</tr>
+</table>
+
+<h3>Parameters</h3>
+<dl>
+<dt><i>vb</i></dt>
+<dd>Pointer to the vorbis_block to be encoded.</dd>
+<dt><i>op</i></dt>
+<dd>Optional pointer to an ogg_packet. This should normally NULL,
+and the final output obtained by passing <i>vb</i> though the
+vorbis_bitrate_*() interface to perform any further refinement.
+However, when not using a bitrate managed encoding mode, it
+is possible to skip that step by providing an ogg_packet pointer
+here, obtaining the compressed data directly.</dd>
+</dl>
+
+
+<h3>Return Values</h3>
+<ul>
+<li>0 for success</li>
+<li>negative values for failure:
+<ul>
+<li>OV_EINVAL - Invalid request; a non-NULL value was passed for <i>op</i> when the encoder is using a bitrate managed mode.</li>
+<li>OV_EFAULT - Internal fault; indicates a bug or memory corruption.</li>
+<li>OV_EIMPL - Unimplemented; not supported by this version of the library.</li>
+</ul>
+</li>
+</ul>
+<p>
+
+<br><br>
+<hr noshade>
+<table border=0 width=100%>
+<tr valign=top>
+<td><p class=tiny>copyright © 2009 Xiph.Org</p></td>
+<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a><br><a href="mailto:team@vorbis.org">team@vorbis.org</a></p></td>
+</tr><tr>
+<td><p class=tiny>libvorbisenc documentation</p></td>
+<td align=right><p class=tiny>libvorbisenc release 1.1 - 20091219</p></td>
+</tr>
+</table>
+
+
+</body>
+
+</html>