cannam@86: Error return codes possible from libvorbis and libvorbisfile: cannam@86: cannam@86: All 'failure' style returns are <0; this either indicates a generic cannam@86: 'false' value (eg, ready? T or F) or an error condition. Code can cannam@86: safely just test for < 0, or look at the specific return code for more cannam@86: detail. cannam@86: cannam@86: *** Return codes: cannam@86: cannam@86: OV_FALSE The call returned a 'false' status (eg, ov_bitrate_instant cannam@86: can return OV_FALSE if playback is not in progress, and thus cannam@86: there is no instantaneous bitrate information to report. cannam@86: cannam@86: OV_HOLE libvorbis/libvorbisfile is alerting the application that cannam@86: there was an interruption in the data (one of: garbage cannam@86: between pages, loss of sync followed by recapture, or a cannam@86: corrupt page) cannam@86: cannam@86: OV_EREAD A read from media returned an error. cannam@86: cannam@86: OV_EFAULT Internal logic fault; indicates a bug or heap/stack cannam@86: corruption. cannam@86: cannam@86: OV_EIMPL The bitstream makes use of a feature not implemented in this cannam@86: library version. cannam@86: cannam@86: OV_EINVAL Invalid argument value. cannam@86: cannam@86: OV_ENOTVORBIS Bitstream/page/packet is not Vorbis data. cannam@86: cannam@86: OV_EBADHEADER Invalid Vorbis bitstream header. cannam@86: cannam@86: OV_EVERSION Vorbis version mismatch. cannam@86: cannam@86: OV_ENOTAUDIO Packet data submitted to vorbis_synthesis is not audio data. cannam@86: cannam@86: OV_EBADPACKET Invalid packet submitted to vorbis_synthesis. cannam@86: cannam@86: OV_EBADLINK Invalid stream section supplied to libvorbis/libvorbisfile, cannam@86: or the requested link is corrupt. cannam@86: cannam@86: OV_ENOSEEK Bitstream is not seekable. cannam@86: cannam@86: cannam@86: **************************************************************** cannam@86: *** Libvorbis functions that can return failure/error codes: cannam@86: cannam@86: int vorbis_analysis_headerout() cannam@86: OV_EIMPL cannam@86: cannam@86: int vorbis_analysis_wrote() cannam@86: OV_EINVAL cannam@86: cannam@86: int vorbis_synthesis_headerin() cannam@86: OV_ENOTVORBIS, OV_EVERSION, OV_EBADHEADER cannam@86: cannam@86: int vorbis_synthesis() cannam@86: OV_ENOTAUDIO, OV_EBADPACKET cannam@86: cannam@86: int vorbis_synthesis_read() cannam@86: OV_EINVAL cannam@86: cannam@86: **************************************************************** cannam@86: *** Libvorbisfile functions that can return failure/error codes: cannam@86: cannam@86: int ov_open_callbacks() cannam@86: OV_EREAD, OV_ENOTVORBIS, OV_EVERSION, OV_EBADHEADER, OV_FAULT cannam@86: cannam@86: int ov_open() cannam@86: OV_EREAD, OV_ENOTVORBIS, OV_EVERSION, OV_EBADHEADER, OV_FAULT cannam@86: cannam@86: long ov_bitrate() cannam@86: OV_EINVAL, OV_FALSE cannam@86: cannam@86: long ov_bitrate_instant() cannam@86: OV_FALSE cannam@86: cannam@86: ogg_int64_t ov_raw_total() cannam@86: OV_EINVAL cannam@86: cannam@86: ogg_int64_t ov_pcm_total() cannam@86: OV_EINVAL cannam@86: cannam@86: double ov_time_total() cannam@86: OV_EINVAL cannam@86: cannam@86: int ov_raw_seek() cannam@86: OV_ENOSEEK, OV_EINVAL, OV_BADLINK cannam@86: cannam@86: int ov_pcm_seek_page() cannam@86: OV_ENOSEEK, OV_EINVAL, OV_EREAD, OV_BADLINK, OV_FAULT cannam@86: cannam@86: int ov_pcm_seek() cannam@86: OV_ENOSEEK, OV_EINVAL, OV_EREAD, OV_BADLINK, OV_FAULT cannam@86: cannam@86: int ov_time_seek() cannam@86: OV_ENOSEEK, OV_EINVAL, OV_EREAD, OV_BADLINK, OV_FAULT cannam@86: cannam@86: int ov_time_seek_page() cannam@86: OV_ENOSEEK, OV_EINVAL, OV_EREAD, OV_BADLINK, OV_FAULT cannam@86: cannam@86: long ov_read() cannam@86: OV_HOLE, OV_EBADLINK