| <html> |
| |
| <head> |
| <title>Vorbisfile - 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>Vorbisfile documentation</p></td> |
| <td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td> |
| </tr> |
| </table> |
| |
| <h1>OggVorbis_File</h1> |
| |
| <p><i>declared in "vorbis/vorbisfile.h"</i></p> |
| |
| <p> |
| The OggVorbis_File structure defines an Ogg Vorbis file. |
| <p> |
| |
| This structure is used in all libvorbisfile routines. Before it can |
| be used, it must be initialized by <a |
| href="ov_open.html">ov_open()</a>, <a |
| href="ov_fopen.html">ov_fopen()</a>, or <a |
| href="ov_open_callbacks.html">ov_open_callbacks()</a>. <em>Important |
| Note:</em> The use of <a href="ov_open.html">ov_open()</a> is |
| discouraged under Windows due to a peculiarity of Windows linking |
| convention; use <a href="ov_fopen.html">ov_fopen()</a> or <a |
| href="ov_open_callbacks.html">ov_open_callbacks()</a> instead. This |
| caution only applies to Windows; use of <a |
| href="ov_open.html">ov_open()</a> is appropriate for all other |
| platforms. See the <a href="ov_open.html">ov_open()</a> page for more |
| information. |
| |
| <p> |
| After use, the OggVorbis_File structure must be deallocated with a |
| call to <a href="ov_clear.html">ov_clear()</a>. |
| |
| <p> |
| Note that once a file handle is passed to a successful <a |
| href="ov_open.html">ov_open()</a> call, the handle is owned by |
| libvorbisfile and will be closed by libvorbisfile later during the |
| call to <a href="ov_clear.html">ov_clear()</a>. The handle should not |
| be used or closed outside of the libvorbisfile API. Similarly, files |
| opened by <a href="ov_fopen.html">ov_fopen()</a> will also be closed |
| internally by vorbisfile in <a href="ov_clear.html">ov_clear()</a>.<p> |
| |
| <a href="ov_open_callbacks.html">ov_open_callbacks()</a> allows the |
| application to choose whether libvorbisfile will or will not close the |
| handle in <a href="ov_clear.html">ov_clear()</a>; see the <a |
| href="ov_open_callbacks.html">ov_open_callbacks()</a> page for more information.<p> |
| |
| If a call to <a href="ov_open.html">ov_open()</a> or <a |
| href="ov_open_callbacks.html">ov_open_callbacks()</a> <b>fails</b>, |
| libvorbisfile does <b>not</b> assume ownership of the handle and the |
| application is expected to close it if necessary. A failed <a |
| href="ov_fopen.html">ov_fopen()</a> call will internally close the |
| file handle if the open process fails.<p> |
| |
| <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, libvorbisfile 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> |
| |
| <br><br> |
| <hr noshade> |
| <table border=0 width=100%> |
| <tr valign=top> |
| <td><p class=tiny>copyright © 2007 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.2.0 - 20070723</p></td> |
| </tr> |
| </table> |
| |
| </body> |
| |
| </html> |