diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/demuxers/demux_film.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/demuxers/demux_film.c b/src/demuxers/demux_film.c index a4c6c3038..85c41447a 100644 --- a/src/demuxers/demux_film.c +++ b/src/demuxers/demux_film.c @@ -21,7 +21,7 @@ * For more information on the FILM file format, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: demux_film.c,v 1.29 2002/10/05 14:39:24 komadori Exp $ + * $Id: demux_film.c,v 1.30 2002/10/05 17:05:58 tmmm Exp $ */ #ifdef HAVE_CONFIG_H @@ -41,8 +41,8 @@ #include "demux.h" #include "bswap.h" -#define BE_16(x) (be2me_16((uint16_t)(x))) -#define BE_32(x) (be2me_32((uint32_t)(x))) +#define BE_16(x) (be2me_16(*(uint16_t *)(x))) +#define BE_32(x) (be2me_32(*(uint32_t *)(x))) #define FOURCC_TAG( ch0, ch1, ch2, ch3 ) \ ( (long)(unsigned char)(ch3) | ( (long)(unsigned char)(ch2) << 8 ) | \ @@ -143,7 +143,7 @@ static int open_film_file(demux_film_t *film) { } /* header size = header size - 16-byte FILM signature */ - film_header_size = BE_32(scratch[4]) - 16; + film_header_size = BE_32(&scratch[4]) - 16; film_header = xine_xmalloc(film_header_size); if (!film_header) return 0; @@ -162,8 +162,8 @@ static int open_film_file(demux_film_t *film) { /* traverse the FILM header */ i = 0; while (i < film_header_size) { - chunk_type = BE_32(film_header[i]); - chunk_size = BE_32(film_header[i + 4]); + chunk_type = BE_32(&film_header[i]); + chunk_size = BE_32(&film_header[i + 4]); /* sanity check the chunk size */ if (i + chunk_size > film_header_size) { @@ -175,16 +175,16 @@ static int open_film_file(demux_film_t *film) { switch(chunk_type) { case FDSC_TAG: /* always fetch the video information */ - film->bih.biWidth = BE_32(film_header[i + 16]); - film->bih.biHeight = BE_32(film_header[i + 12]); - film->video_codec = BE_32(film_header[i + 8]); + film->bih.biWidth = BE_32(&film_header[i + 16]); + film->bih.biHeight = BE_32(&film_header[i + 12]); + film->video_codec = BE_32(&film_header[i + 8]); film->video_type = fourcc_to_buf_video(*(uint32_t *)&film_header[i + 8]); /* fetch the audio information if the chunk size checks out */ if (chunk_size == 32) { film->audio_channels = film_header[21]; film->audio_bits = film_header[22]; - film->sample_rate = BE_16(film_header[24]); + film->sample_rate = BE_16(&film_header[24]); } else { /* otherwise, make a few assumptions about the audio parms */ film->audio_channels = 1; @@ -201,20 +201,20 @@ static int open_film_file(demux_film_t *film) { /* load the sample table */ if (film->sample_table) free(film->sample_table); - film->frequency = BE_32(film_header[i + 8]); - film->sample_count = BE_32(film_header[i + 12]); + film->frequency = BE_32(&film_header[i + 8]); + film->sample_count = BE_32(&film_header[i + 12]); film->sample_table = xine_xmalloc(film->sample_count * sizeof(film_sample_t)); for (j = 0; j < film->sample_count; j++) { film->sample_table[j].sample_offset = - BE_32(film_header[(i + 16) + j * 16 + 0]) + BE_32(&film_header[(i + 16) + j * 16 + 0]) + film_header_size + 16; film->sample_table[j].sample_size = - BE_32(film_header[(i + 16) + j * 16 + 4]); + BE_32(&film_header[(i + 16) + j * 16 + 4]); film->sample_table[j].syncinfo1 = - BE_32(film_header[(i + 16) + j * 16 + 8]); + BE_32(&film_header[(i + 16) + j * 16 + 8]); film->sample_table[j].syncinfo2 = - BE_32(film_header[(i + 16) + j * 16 + 12]); + BE_32(&film_header[(i + 16) + j * 16 + 12]); /* figure out the pts */ if (film->sample_table[j].syncinfo1 == 0xFFFFFFFF) { |