Vorbisfile documentation

vorbisfile version 1.3.2 - 20101101

ov_read_filter()

declared in "vorbis/vorbisfile.h";

ov_read_filter() is a variant of ov_read(), the main function used to decode a Vorbis file within a loop. It passes the decoded floating point PCM data to the filter specified in the function arguments before converting the data to integer output samples. All other aspects of its behavior are as with ov_read().




long ov_read_filter(OggVorbis_File *vf, char *buffer, int length, int bigendianp, int word, int sgned, int *bitstream, 
                    void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param);

Parameters

vf
A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisfile functions.
buffer
A pointer to an output buffer. The decoded output is inserted into this buffer.
length
Number of bytes to be read into the buffer. Should be the same size as the buffer. A typical value is 4096.
bigendianp
Specifies big or little endian byte packing. 0 for little endian, 1 for b ig endian. Typical value is 0.
word
Specifies word size. Possible arguments are 1 for 8-bit samples, or 2 or 16-bit samples. Typical value is 2.
sgned
Signed or unsigned data. 0 for unsigned, 1 for signed. Typically 1.
bitstream
A pointer to the number of the current logical bitstream.
filter
Filter function to process float PCM data prior to conversion to interleaved integer output.
filter_param
Data to pass through to the filter function.

Return Values

OV_HOLE
indicates there was an interruption in the data.
(one of: garbage between pages, loss of sync followed by recapture, or a corrupt page)
OV_EBADLINK
indicates that an invalid stream section was supplied to libvorbisfile, or the requested link is corrupt.
0
indicates EOF
n
indicates actual number of bytes read. ov_read() will decode at most one vorbis packet per invocation, so the value returned will generally be less than length.

Notes

Typical usage:

bytes_read = ov_read_filter(&vf, buffer, 4096,0,2,1,&current_section, filter, (void *)filter_data_ptr)
This reads up to 4096 bytes into a buffer, with signed 16-bit little-endian samples. The decoded data is passed to the function filter before integer conversiona nd interleave.




copyright © 2000-2010 Xiph.Org

Ogg Vorbis

Vorbisfile documentation

vorbisfile version 1.3.2 - 20101101