diff options
Diffstat (limited to 'vorbis/doc/vorbisfile/ov_read.html')
-rw-r--r-- | vorbis/doc/vorbisfile/ov_read.html | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/vorbis/doc/vorbisfile/ov_read.html b/vorbis/doc/vorbisfile/ov_read.html new file mode 100644 index 0000000..5461a84 --- /dev/null +++ b/vorbis/doc/vorbisfile/ov_read.html @@ -0,0 +1,148 @@ +<html> + +<head> +<title>Vorbisfile - 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>Vorbisfile documentation</p></td> +<td align=right><p class=tiny>vorbisfile version 1.3.2 - 20101101</p></td> +</tr> +</table> + +<h1>ov_read()</h1> + +<p><i>declared in "vorbis/vorbisfile.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 PCM audio + in the requested endianness, signedness, and word size. 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>The output channels are in stream order and not remapped. Vorbis I +defines channel order as follows: + +<ul> +<li>one channel - the stream is monophonic +<li>two channels - the stream is stereo. channel order: left, right +<li>three channels - the stream is a 1d-surround encoding. channel order: left, +center, right +<li>four channels - the stream is quadraphonic surround. channel order: front left, +front right, rear left, rear right +<li>five channels - the stream is five-channel surround. channel order: front left, +center, front right, rear left, rear right +<li>six channels - the stream is 5.1 surround. channel order: front left, center, +front right, rear left, rear right, LFE +<li>seven channels - the stream is 6.1 surround. channel order: front left, center, +front right, side left, side right, rear center, LFE +<li>eight channels - the stream is 7.1 surround. channel order: front left, center, +front right, side left, side right, rear left, rear right, +LFE +<li>greater than eight channels - channel use and order is undefined +</ul> + +<p>Note that up to this point, the Vorbisfile 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 bigendianp, int word, int sgned, 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 libvorbisfile +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>bigendianp</i></dt> +<dd>Specifies big or little endian byte packing. 0 for little endian, 1 for b +ig endian. Typical value is 0.</dd> +<dt><i>word</i></dt> +<dd>Specifies word size. Possible arguments are 1 for 8-bit samples, or 2 or +16-bit samples. Typical value is 2.</dd> +<dt><i>sgned</i></dt> +<dd>Signed or unsigned data. 0 for unsigned, 1 for signed. Typically 1.</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 + libvorbisfile, or the requested link is corrupt.</dd> +<dt>OV_EINVAL</dt> + <dd>indicates the initial file headers couldn't be read or + are corrupt, or that the initial open call for <i>vf</i> + failed.</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,0,2,1,&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 © 2000-2010 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>Vorbisfile documentation</p></td> +<td align=right><p class=tiny>vorbisfile version 1.3.2 - 20101101</p></td> +</tr> +</table> + +</body> + +</html> |