2013-01-24 15:44:19 +00:00
< 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.3.2 - 20101101< / 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 © 2000-2010 Xiph.Org< / p > < / td >
2021-09-22 09:18:21 +00:00
< td align = right > < p class = tiny > < a href = "https://xiph.org/vorbis/" > Ogg Vorbis< / a > < / p > < / td >
2013-01-24 15:44:19 +00:00
< / 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 >