diff options
Diffstat (limited to 'doc/ov_read.html')
-rw-r--r-- | doc/ov_read.html | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/doc/ov_read.html b/doc/ov_read.html new file mode 100644 index 0000000..208ef18 --- /dev/null +++ b/doc/ov_read.html @@ -0,0 +1,115 @@ +<html> + +<head> +<title>Tremor - function - ov_read</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>Tremor documentation</p></td> +<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td> +</tr> +</table> + +<h1>ov_read()</h1> + +<p><i>declared in "ivorbisfile.h";</i></p> + +<p> + This is the main function used to decode a Vorbis file within a + loop. It returns up to the specified number of bytes of decoded audio + in host-endian, signed 16 bit PCM format. If the audio is + multichannel, the channels are interleaved in the output buffer. + If the passed in buffer is large, <tt>ov_read()</tt> will not fill + it; the passed in buffer size is treated as a <em>limit</em> and + not a request. +<p> + +Note that up to this point, the Tremor API could more or less hide the + multiple logical bitstream nature of chaining from the toplevel + application if the toplevel application didn't particularly care. + However, when reading audio back, the application must be aware + that multiple bitstream sections do not necessarily use the same + number of channels or sampling rate. <p> <tt>ov_read()</tt> passes + back the index of the sequential logical bitstream currently being + decoded (in <tt>*bitstream</tt>) along with the PCM data in order + that the toplevel application can handle channel and/or sample + rate changes. This number will be incremented at chaining + boundaries even for non-seekable streams. For seekable streams, it + represents the actual chaining index within the physical bitstream. +<p> + +<br><br> +<table border=0 color=black cellspacing=0 cellpadding=7> +<tr bgcolor=#cccccc> + <td> +<pre><b> +long ov_read(<a href="OggVorbis_File.html">OggVorbis_File</a> *vf, char *buffer, int length, int *bitstream); +</b></pre> + </td> +</tr> +</table> + +<h3>Parameters</h3> +<dl> +<dt><i>vf</i></dt> +<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec +functions.</dd> +<dt><i>buffer</i></dt> +<dd>A pointer to an output buffer. The decoded output is inserted into this buffer.</dd> +<dt><i>length</i></dt> +<dd>Number of bytes to be read into the buffer. Should be the same size as the buffer. A typical value is 4096.</dd> +<dt><i>bitstream</i></dt> +<dd>A pointer to the number of the current logical bitstream.</dd> +</dl> + + +<h3>Return Values</h3> +<blockquote> +<dl> +<dt>OV_HOLE</dt> + <dd>indicates there was an interruption in the data. + <br>(one of: garbage between pages, loss of sync followed by + recapture, or a corrupt page)</dd> +<dt>OV_EBADLINK</dt> + <dd>indicates that an invalid stream section was supplied to + libvorbisidec, or the requested link is corrupt.</dd> +<dt>0</dt> + <dd>indicates EOF</dd> +<dt><i>n</i></dt> + <dd>indicates actual number of bytes read. <tt>ov_read()</tt> will + decode at most one vorbis packet per invocation, so the value + returned will generally be less than <tt>length</tt>. +</dl> +</blockquote> + +<h3>Notes</h3> +<p><b>Typical usage:</b> +<blockquote> +<tt>bytes_read = ov_read(&vf, +buffer, 4096,&current_section)</tt> +</blockquote> + +This reads up to 4096 bytes into a buffer, with signed 16-bit +little-endian samples. +</p> + + + +<br><br> +<hr noshade> +<table border=0 width=100%> +<tr valign=top> +<td><p class=tiny>copyright © 2002 Xiph.org</p></td> +<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td> +</tr><tr> +<td><p class=tiny>Tremor documentation</p></td> +<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td> +</tr> +</table> + +</body> + +</html> |