aacdec: Fix some signedness issues
[paraslash.git] / aacdec.c
index aa835390e7f18ef0b8572e1a8b6e59de58c51393..e0890da9dcd9e95fd78884ad2e65014e89573dc7 100644 (file)
--- a/aacdec.c
+++ b/aacdec.c
@@ -44,20 +44,14 @@ struct private_mp4dec_data {
        mp4AudioSpecificConfig mp4ASC;
 
        int initialized;
-       char *inbuf;
+       unsigned char *inbuf;
        int inbuf_len;
        int consumed;
        long unsigned consumed_total;
 
-       int noffsets;
-       int *offset;
+       unsigned noffsets;
+       unsigned *offset;
        int offset_pos;
-
-#if 0
-       int nsamples;
-       int *table;
-       int table_pos;
-#endif
 };
 
 static int read_mp4_descr_length(struct private_mp4dec_data *padd)
@@ -79,7 +73,7 @@ static int read_mp4_descr_length(struct private_mp4dec_data *padd)
 static int find_esds(struct private_mp4dec_data *padd)
 {
        for (; padd->consumed < padd->inbuf_len; padd->consumed++) {
-               char *p = padd->inbuf + padd->consumed;
+               unsigned char *p = padd->inbuf + padd->consumed;
                int decoder_length;
 
                if (p[0] != 'e' || p[1] != 's' || p[2] != 'd' || p[3] != 's')
@@ -122,45 +116,6 @@ static int read_int32(struct private_mp4dec_data *padd, unsigned *result)
        return 1;
 }
 
-#if 0
-int fill_table(struct private_mp4dec_data *padd)
-{
-       int i, ret;
-
-       for (i = padd->table_pos; i < padd->nsamples; i++) {
-               ret = read_int32(padd, &padd->table[i]);
-               if (ret < 0)
-                       return -1;
-               PARA_DEBUG_LOG("sample #%d: %d\n", i, padd->table[i]);
-               padd->table_pos++;
-       }
-       return 1;
-
-}
-int find_stsz(struct private_mp4dec_data *padd)
-{
-       int ret;
-
-       for (; padd->consumed < padd->inbuf_len; padd->consumed++) {
-               char *p = padd->inbuf + padd->consumed;
-
-               if (p[0] != 's' || p[1] != 't' || p[2] != 's' || p[3] != 'z')
-                       continue;
-               PARA_INFO_LOG("found stsz: %d\n", padd->consumed);
-               padd->consumed += 12;
-               ret = -E_STSZ;
-               if (read_int32(padd, &padd->nsamples) < 0)
-                       goto out;
-               PARA_INFO_LOG("num samples: %d\n", padd->nsamples);
-               padd->table = para_malloc(padd->nsamples * sizeof(int));
-               return 1;
-       }
-       ret = -E_STSZ;
-out:
-       return ret;
-}
-#endif
-
 static int fill_offset_table(struct private_mp4dec_data *padd)
 {
        int i, ret;
@@ -180,7 +135,7 @@ static int find_stco(struct private_mp4dec_data *padd)
        int ret;
 
        for (; padd->consumed < padd->inbuf_len; padd->consumed++) {
-               char *p = padd->inbuf + padd->consumed;
+               unsigned char *p = padd->inbuf + padd->consumed;
 
                if (p[0] != 's' || p[1] != 't' || p[2] != 'c' || p[3] != 'o')
                        continue;
@@ -205,10 +160,10 @@ static ssize_t mp4dec(char *inbuffer, size_t len, struct filter_node *fn)
 
        if (fn->loaded > fn->bufsize * 4 / 5)
                return 0;
-       if (len < 10 && !*fci->eof)
+       if (len < 1000 && !*fci->eof)
                return 0;
        padd->consumed = 0;
-       padd->inbuf = inbuffer;
+       padd->inbuf = (unsigned char*)inbuffer;
        padd->inbuf_len = len;
 
        if (!padd->initialized) {
@@ -216,7 +171,7 @@ static ssize_t mp4dec(char *inbuffer, size_t len, struct filter_node *fn)
                if (ret < 0)
                        goto out;
 
-               p = inbuffer + padd->consumed;
+               p = padd->inbuf + padd->consumed;
                ret = E_AACDEC_INIT;
                if (NeAACDecInit2(padd->decoder, p, ret, &rate, &channels) < 0) {
                        PARA_INFO_LOG("header not found, consumed: %d\n",
@@ -230,22 +185,7 @@ static ssize_t mp4dec(char *inbuffer, size_t len, struct filter_node *fn)
                padd->initialized = 1;
        }
        padd->consumed = 0;
-#if 0
-       if (!padd->table_pos) {
-               ret = find_stsz(padd);
-               if (ret < 0)
-                       goto out;
-       }
-       if (padd->table_pos < padd->nsamples) {
-               fill_table(padd);
-               ret = padd->consumed;
-               goto out;
-       }
-#endif
        if (!padd->offset_pos) {
-//             ret = find_stco(padd);
-//             if (ret < 0)
-//                     goto out;
                ret = len;
                if (find_stco(padd) < 0)
                        goto out;