mirror of
https://github.com/ctruLua/ctruLua.git
synced 2025-10-27 16:39:29 +00:00
Added Tremor Ogg decoder, removed libvorbis from Makefile. OGG audio working perfectly.
Tremor is extremly similar to libogg but only uses integers (and doesn't provide an encoder). The playing problem with libvorbis was probably a float-precision related issue. No need for make build-all.
This commit is contained in:
parent
c053997f96
commit
e39fcc6c7b
97 changed files with 16571 additions and 15 deletions
115
libs/tremor/doc/ov_read.html
Normal file
115
libs/tremor/doc/ov_read.html
Normal file
|
|
@ -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>
|
||||
Loading…
Add table
Add a link
Reference in a new issue