From 7ac8038c3690eb5547cfdff83235f3636f87c303 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 27 May 2008 10:53:55 +0000 Subject: add acx_pthread to the build git-svn-id: file:///home/lennart/svn/public/libcanberra/trunk@14 01b60673-d06a-42c0-afdd-89cb8e0f78ac --- src/read-vorbis.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'src/read-vorbis.c') diff --git a/src/read-vorbis.c b/src/read-vorbis.c index f54e271..34d33a0 100644 --- a/src/read-vorbis.c +++ b/src/read-vorbis.c @@ -27,8 +27,10 @@ #include #include +#include "canberra.h" #include "read-vorbis.h" #include "macro.h" +#include "malloc.h" #define FILE_SIZE_MAX (64U*1024U*1024U) @@ -43,13 +45,13 @@ static int convert_error(int or) { case OV_EBADLINK: case OV_EFAULT: case OV_EREAD: - case OV_EHOLE: + case OV_HOLE: return CA_ERROR_IO; case OV_EIMPL: case OV_EVERSION: - case OV_ENOTAUDIO - return CA_ERROR_NOT_SUPPORTED; + case OV_ENOTAUDIO: + return CA_ERROR_NOTSUPPORTED; case OV_ENOTVORBIS: case OV_EBADHEADER: @@ -60,7 +62,7 @@ static int convert_error(int or) { return CA_ERROR_INVALID; default: - return CA_ERROR_INTERNAL; + return CA_ERROR_IO; } } @@ -80,7 +82,7 @@ int ca_vorbis_open(ca_vorbis **_v, FILE *f) { goto fail; } - if ((n = ov_pcm_total(&ovf, -1)) < 0) { + if ((n = ov_pcm_total(&v->ovf, -1)) < 0) { ret = convert_error(or); ov_clear(&v->ovf); goto fail; @@ -110,33 +112,33 @@ void ca_vorbis_close(ca_vorbis *v) { } unsigned ca_vorbis_get_nchannels(ca_vorbis *v) { - vorbis_info *vi; + const vorbis_info *vi; ca_assert(v); - ca_assert_se(vi = ov_info(&vf, -1)); + ca_assert_se(vi = ov_info(&v->ovf, -1)); return vi->channels; } unsigned ca_vorbis_get_rate(ca_vorbis *v) { - vorbis_info *vi; + const vorbis_info *vi; ca_assert(v); - ca_assert_se(vi = ov_info(&vf, -1)); + ca_assert_se(vi = ov_info(&v->ovf, -1)); return (unsigned) vi->rate; } -int ca_vorbis_read_int16ne(ca_vorbis *v, int16_t *d, unsigned *n){ +int ca_vorbis_read_s16ne(ca_vorbis *v, int16_t *d, unsigned *n){ long r; int section; - ca_return_val_if_fail(w, CA_ERROR_INVALID); + ca_return_val_if_fail(v, CA_ERROR_INVALID); ca_return_val_if_fail(d, CA_ERROR_INVALID); ca_return_val_if_fail(n, CA_ERROR_INVALID); ca_return_val_if_fail(*n > 0, CA_ERROR_INVALID); - r = ov_read(&v->ovf, d, *n * sizeof(float), + r = ov_read(&v->ovf, (char*) d, *n * sizeof(float), #ifdef WORDS_BIGENDIAN 1, #else @@ -145,7 +147,7 @@ int ca_vorbis_read_int16ne(ca_vorbis *v, int16_t *d, unsigned *n){ 2, 1, §ion); if (r < 0) - return convert_error(or); + return convert_error(r); /* We only read the first section */ if (section != 0) -- cgit