summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/demuxers/demux_film.c32
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) {