summaryrefslogtreecommitdiffstats
path: root/src/read-vorbis.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-05-27 10:53:55 +0000
committerLennart Poettering <lennart@poettering.net>2008-05-27 10:53:55 +0000
commit7ac8038c3690eb5547cfdff83235f3636f87c303 (patch)
tree0854e5d007b5142095b57d0e00fd7aaaba17fc5e /src/read-vorbis.c
parent6a75b780762a8695a83e0e94e6fcbce4d2f73573 (diff)
add acx_pthread to the build
git-svn-id: file:///home/lennart/svn/public/libcanberra/trunk@14 01b60673-d06a-42c0-afdd-89cb8e0f78ac
Diffstat (limited to 'src/read-vorbis.c')
-rw-r--r--src/read-vorbis.c28
1 files changed, 15 insertions, 13 deletions
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 <vorbis/vorbisfile.h>
#include <vorbis/codec.h>
+#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, &section);
if (r < 0)
- return convert_error(or);
+ return convert_error(r);
/* We only read the first section */
if (section != 0)