cannam@86: cannam@86: cannam@86:
cannam@86:Vorbisfile documentation |
cannam@86: vorbisfile version 1.3.2 - 20101101 |
cannam@86:
declared in "vorbis/vorbisfile.h"
cannam@86: cannam@86:cannam@86: The OggVorbis_File structure defines an Ogg Vorbis file. cannam@86:
cannam@86: cannam@86: This structure is used in all libvorbisfile routines. Before it can cannam@86: be used, it must be initialized by ov_open(), ov_fopen(), or ov_open_callbacks(). Important cannam@86: Note: The use of ov_open() is cannam@86: discouraged under Windows due to a peculiarity of Windows linking cannam@86: convention; use ov_fopen() or ov_open_callbacks() instead. This cannam@86: caution only applies to Windows; use of ov_open() is appropriate for all other cannam@86: platforms. See the ov_open() page for more cannam@86: information. cannam@86: cannam@86:
cannam@86: After use, the OggVorbis_File structure must be deallocated with a cannam@86: call to ov_clear(). cannam@86: cannam@86:
cannam@86: Note that once a file handle is passed to a successful ov_open() call, the handle is owned by cannam@86: libvorbisfile and will be closed by libvorbisfile later during the cannam@86: call to ov_clear(). The handle should not cannam@86: be used or closed outside of the libvorbisfile API. Similarly, files cannam@86: opened by ov_fopen() will also be closed cannam@86: internally by vorbisfile in ov_clear().
cannam@86: cannam@86: ov_open_callbacks() allows the cannam@86: application to choose whether libvorbisfile will or will not close the cannam@86: handle in ov_clear(); see the ov_open_callbacks() page for more information.
cannam@86: cannam@86: If a call to ov_open() or ov_open_callbacks() fails, cannam@86: libvorbisfile does not assume ownership of the handle and the cannam@86: application is expected to close it if necessary. A failed ov_fopen() call will internally close the cannam@86: file handle if the open process fails.
cannam@86:
cannam@86:
cannam@86:
cannam@86: typedef struct { cannam@86: void *datasource; /* Pointer to a FILE *, etc. */ cannam@86: int seekable; cannam@86: ogg_int64_t offset; cannam@86: ogg_int64_t end; cannam@86: ogg_sync_state oy; cannam@86: cannam@86: /* If the FILE handle isn't seekable (eg, a pipe), only the current cannam@86: stream appears */ cannam@86: int links; cannam@86: ogg_int64_t *offsets; cannam@86: ogg_int64_t *dataoffsets; cannam@86: long *serialnos; cannam@86: ogg_int64_t *pcmlengths; cannam@86: vorbis_info *vi; cannam@86: vorbis_comment *vc; cannam@86: cannam@86: /* Decoding working state local storage */ cannam@86: ogg_int64_t pcm_offset; cannam@86: int ready_state; cannam@86: long current_serialno; cannam@86: int current_link; cannam@86: cannam@86: ogg_int64_t bittrack; cannam@86: ogg_int64_t samptrack; cannam@86: cannam@86: ogg_stream_state os; /* take physical pages, weld into a logical cannam@86: stream of packets */ cannam@86: vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ cannam@86: vorbis_block vb; /* local working space for packet->PCM decode */ cannam@86: cannam@86: ov_callbacks callbacks; cannam@86: cannam@86: } OggVorbis_File;cannam@86: |
cannam@86:
copyright © 2000-2010 Xiph.Org |
cannam@86: cannam@86: |
Vorbisfile documentation |
cannam@86: vorbisfile version 1.3.2 - 20101101 |
cannam@86: