Vorbisfile documentation | vorbisfile version 1.2.0 - 20070723

# ov_read_float()

declared in "vorbis/vorbisfile.h";

This is the function used to decode a Vorbis file within a loop, but returns samples in native float format instead of in integer formats.

For information on channel ordering and how ov_read_float() deals with the complex issues of chaining, etc, refer to the documentation for ov_read().

    long ov_read_float(OggVorbis_File *vf, float ***pcm_channels, int samples, int *bitstream);

### Parameters

vf
  A pointer to the OggVorbis_File structure--this is used for ALL the externally visible vorbisfile functions.
pcm_channels
  A pointer to an output buffer. The pointer will be set to the decoded output buffer.
samples
  Maximum number of decoded samples to produce.
bitstream
  A pointer to the number of the current logical bitstream.

### 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.
> OV_EINVAL
>   indicates the initial file headers couldn't be read or are corrupt, or that the initial open call for vf failed.
> 0
>   indicates EOF
> n
>   indicates actual number of samples read. `ov_read_float()` will decode at most one vorbis packet per invocation, so the value returned will generally be less than `length`.

### Notes

Typical usage:

> `float **pcm; samples_read = ov_read_float(&vf,pcm, 1024, &current_section)`

This decodes up to 1024 float samples.

copyright © 2002 vorbis team | Ogg Vorbis team@vorbis.org
Vorbisfile documentation | vorbisfile version 1.2.0 - 20070723