fix some signed warnings in aac and mp3 decoders
[paraslash.git] / ogg_afh.c
index 078ff786883b53c17b83ffc04f42cb61bc0be4c5..d5c4726269b4d30c889f16340cb5f2ca5e86c640 100644 (file)
--- a/ogg_afh.c
+++ b/ogg_afh.c
@@ -117,18 +117,14 @@ static int ogg_open_callbacks(void *datasource, OggVorbis_File *vf, ov_callbacks
 
 }
 
-static void ogg_save_header(char *map, struct audio_format_info *afi)
-{
-       afi->header = para_malloc(afi->header_len);
-       memcpy(afi->header, map, afi->header_len);
-}
-
-static int ogg_compute_header_len(char *map, off_t numbytes,
+static int ogg_compute_header_len(char *map, size_t numbytes,
                struct audio_format_info *afi)
 {
-       int ret, len = PARA_MIN(numbytes, CHUNK_SIZE);
-       unsigned int serial;
+       int ret;
+       size_t len = PARA_MIN(numbytes, CHUNK_SIZE);
+       int serial;
        char *buf;
+
        ogg_page page;
        ogg_packet packet;
        vorbis_comment vc;
@@ -140,9 +136,9 @@ static int ogg_compute_header_len(char *map, off_t numbytes,
        ogg_sync_init(sync_in);
        vorbis_info_init(&vi);
        vorbis_comment_init(&vc);
-       buf = ogg_sync_buffer(sync_in, len);
+       buf = ogg_sync_buffer(sync_in, (long)len);
        memcpy(buf, map, len);
-       ogg_sync_wrote(sync_in, len);
+       ogg_sync_wrote(sync_in, (long)len);
        ret = -E_SYNC_PAGEOUT;
        if (ogg_sync_pageout(sync_in, &page) <= 0)
                goto err1;
@@ -187,7 +183,7 @@ static int ogg_compute_header_len(char *map, off_t numbytes,
        while (ogg_stream_flush(stream_out, &page))
                afi->header_len += page.body_len + page.header_len;
        PARA_INFO_LOG("header_len = %d\n", afi->header_len);
-       ogg_save_header(map, afi);
+       afi->header_offset = 0;
        ret = 1;
 err2:
        ogg_stream_destroy(stream_in);
@@ -205,7 +201,7 @@ err1:
  * CHUNK_TIME begins. Always successful.
  */
 static long unsigned ogg_compute_chunk_table(OggVorbis_File *of,
-       struct audio_format_info *afi, double time_total)
+       struct audio_format_info *afi, long unsigned time_total)
 {
        int i, ret, num;
        ssize_t max_chunk_len, pos = 0, min = 0, old_pos;
@@ -245,7 +241,7 @@ static long unsigned ogg_compute_chunk_table(OggVorbis_File *of,
 /*
  * Init oggvorbis file and write some tech data to given pointers.
  */
-static int ogg_get_file_info(char *map, off_t numbytes,
+static int ogg_get_file_info(char *map, size_t numbytes,
                struct audio_format_info *afi)
 {
        int ret;
@@ -287,8 +283,6 @@ static int ogg_get_file_info(char *map, off_t numbytes,
        ret = 1;
 err:
        ov_clear(&of); /* keeps the file open */
-       if (ret < 0)
-               free(afi->header);
        return ret;
 }