summaryrefslogtreecommitdiffstats
path: root/src/read-vorbis.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-08-14 19:09:33 +0200
committerLennart Poettering <lennart@poettering.net>2008-08-14 19:09:33 +0200
commitf059c857b202a2428b1b4757de2d3d9f23fdf9a3 (patch)
tree7298fdb125cfbb1543616cd46b63442d50a3f4ba /src/read-vorbis.c
parent876bbf8c2f3ea26e6553a431f5042cd9d2c99723 (diff)
enable a few additional gcc warnings and fix all problems found
Diffstat (limited to 'src/read-vorbis.c')
-rw-r--r--src/read-vorbis.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/read-vorbis.c b/src/read-vorbis.c
index 6bafd54..e450cb7 100644
--- a/src/read-vorbis.c
+++ b/src/read-vorbis.c
@@ -30,11 +30,11 @@
#include "macro.h"
#include "malloc.h"
-#define FILE_SIZE_MAX (64U*1024U*1024U)
+#define FILE_SIZE_MAX ((off_t) (64U*1024U*1024U))
struct ca_vorbis {
OggVorbis_File ovf;
- size_t size;
+ off_t size;
};
static int convert_error(int or) {
@@ -87,13 +87,13 @@ int ca_vorbis_open(ca_vorbis **_v, FILE *f) {
goto fail;
}
- if (n * sizeof(int16_t) > FILE_SIZE_MAX) {
+ if (((off_t) n * (off_t) sizeof(int16_t)) > FILE_SIZE_MAX) {
ret = CA_ERROR_TOOBIG;
ov_clear(&v->ovf);
goto fail;
}
- v->size = n * sizeof(int16_t) * ca_vorbis_get_nchannels(v);
+ v->size = (off_t) n * (off_t) sizeof(int16_t) * ca_vorbis_get_nchannels(v);
*_v = v;
@@ -118,7 +118,7 @@ unsigned ca_vorbis_get_nchannels(ca_vorbis *v) {
ca_assert_se(vi = ov_info(&v->ovf, -1));
- return vi->channels;
+ return (unsigned) vi->channels;
}
unsigned ca_vorbis_get_rate(ca_vorbis *v) {
@@ -130,7 +130,7 @@ unsigned ca_vorbis_get_rate(ca_vorbis *v) {
return (unsigned) vi->rate;
}
-int ca_vorbis_read_s16ne(ca_vorbis *v, int16_t *d, unsigned *n){
+int ca_vorbis_read_s16ne(ca_vorbis *v, int16_t *d, size_t *n){
long r;
int section;
int length;
@@ -141,7 +141,7 @@ int ca_vorbis_read_s16ne(ca_vorbis *v, int16_t *d, unsigned *n){
ca_return_val_if_fail(n, CA_ERROR_INVALID);
ca_return_val_if_fail(*n > 0, CA_ERROR_INVALID);
- length = *n * sizeof(int16_t);
+ length = (int) (*n * sizeof(int16_t));
do {
@@ -154,7 +154,7 @@ int ca_vorbis_read_s16ne(ca_vorbis *v, int16_t *d, unsigned *n){
2, 1, &section);
if (r < 0)
- return convert_error(r);
+ return convert_error((int) r);
if (r == 0)
break;
@@ -163,22 +163,22 @@ int ca_vorbis_read_s16ne(ca_vorbis *v, int16_t *d, unsigned *n){
if (section != 0)
break;
- length -= r;
+ length -= (int) r;
d += r/sizeof(int16_t);
- n_read += r;
+ n_read += (size_t) r;
} while (length >= 4096);
- ca_assert(v->size >= n_read);
- v->size -= n_read;
+ ca_assert(v->size >= (off_t) n_read);
+ v->size -= (off_t) n_read;
- *n = (unsigned) n_read/sizeof(int16_t);
+ *n = n_read/sizeof(int16_t);
return CA_SUCCESS;
}
-size_t ca_vorbis_get_size(ca_vorbis *v) {
- ca_return_val_if_fail(v, CA_ERROR_INVALID);
+off_t ca_vorbis_get_size(ca_vorbis *v) {
+ ca_return_val_if_fail(v, (off_t) -1);
return v->size;
}