123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- <html>
- <head>
- <title>Tremor - datatype - OggVorbis_File</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>OggVorbis_File</h1>
- <p><i>declared in "ivorbisfile.h"</i></p>
- <p>
- The OggVorbis_File structure defines an Ogg Vorbis file.
- <p>
- This structure is used in all libvorbisidec routines. Before it can be used,
- it must be initialized by <a href="ov_open.html">ov_open()</a> or <a
- href="ov_open_callbacks.html">ov_open_callbacks()</a>.
- <p>
- After use, the OggVorbis_File structure must be deallocated with a
- call to <a href="ov_clear.html">ov_clear()</a>.
- <p>
- Once a file or data source is opened successfully by libvorbisidec
- (using <a href="ov_open.html">ov_open()</a> or <a
- href="ov_open_callbacks.html">ov_open_callbacks()</a>), it is owned by
- libvorbisidec. The file should not be used by any other applications or
- functions outside of the libvorbisidec API. The file must not be closed
- directly by the application at any time after a successful open;
- libvorbisidec expects to close the file within <a
- href="ov_clear.html">ov_clear()</a>.
- <p>
- If the call to <a href="ov_open.html">ov_open()</a> or <a
- href="ov_open_callbacks.html">ov_open_callbacks()</a> <b>fails</b>,
- libvorbisidec does <b>not</b> assume ownership of the file and the
- application is expected to close it if necessary.
- <br><br>
- <table border=0 width=100% color=black cellspacing=0 cellpadding=7>
- <tr bgcolor=#cccccc>
- <td>
- <pre><b>typedef struct {
- void *datasource; /* Pointer to a FILE *, etc. */
- int seekable;
- ogg_int64_t offset;
- ogg_int64_t end;
- ogg_sync_state oy;
- /* If the FILE handle isn't seekable (eg, a pipe), only the current
- stream appears */
- int links;
- ogg_int64_t *offsets;
- ogg_int64_t *dataoffsets;
- long *serialnos;
- ogg_int64_t *pcmlengths;
- vorbis_info *vi;
- vorbis_comment *vc;
- /* Decoding working state local storage */
- ogg_int64_t pcm_offset;
- int ready_state;
- long current_serialno;
- int current_link;
- ogg_int64_t bittrack;
- ogg_int64_t samptrack;
- ogg_stream_state os; /* take physical pages, weld into a logical
- stream of packets */
- vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
- vorbis_block vb; /* local working space for packet->PCM decode */
- <a href="ov_callbacks.html">ov_callbacks</a> callbacks;
- } OggVorbis_File;</b></pre>
- </td>
- </tr>
- </table>
- <h3>Relevant Struct Members</h3>
- <dl>
- <dt><i>datasource</i></dt>
- <dd>Pointer to file or other ogg source. When using stdio based
- file/stream access, this field contains a <tt>FILE</tt> pointer. When using
- custom IO via callbacks, libvorbisidec treats this void pointer as a
- black box only to be passed to the callback routines provided by the
- application.</dd>
- <dt><i>seekable</i></dt>
- <dd>Read-only int indicating whether file is seekable. E.g., a physical file is seekable, a pipe isn't.</dd>
- <dt><i>links</i></dt>
- <dd>Read-only int indicating the number of logical bitstreams within the physical bitstream.</dd>
- <dt><i>ov_callbacks</i></dt>
- <dd>Collection of file manipulation routines to be used on this data source. When using stdio/FILE access via <a href="ov_open.html">ov_open()</a>, the callbacks will be filled in with stdio calls or wrappers to stdio calls.</dd>
- </dl>
- <h3>Notes</h3>
- <p>Tremor requires a native 64 bit integer type to compile and
- function; The GNU build system will locate and typedef
- <tt>ogg_int64_t</tt> to the appropriate native type. If not using the
- GNU build tools, you will need to define <tt>ogg_int64_t</tt> as a
- 64-bit type inside your system's project file/Makefile, etc. On win32,
- for example, this should be defined as <tt>__int64</tt>.
- <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>
|