== REDCODE ==

Fixed 64bit issues. sizeof(unsigned long) = 8 on 64 bit machines, 
shame on me...
This commit is contained in:
Peter Schlaile 2009-02-08 19:13:29 +00:00
parent 0039da6ed8
commit 270b724b8d
2 changed files with 29 additions and 29 deletions

@ -4,38 +4,38 @@
#include "format.h"
struct red_reob {
unsigned long len;
unsigned long head;
unsigned int len;
unsigned int head;
unsigned long rdvo;
unsigned long rdvs;
unsigned long rdao;
unsigned long rdas;
unsigned int rdvo;
unsigned int rdvs;
unsigned int rdao;
unsigned int rdas;
unsigned long unknown1;
unsigned long unknown2;
unsigned long totlen;
unsigned int unknown1;
unsigned int unknown2;
unsigned int totlen;
unsigned long avgv;
unsigned long avgs;
unsigned int avgv;
unsigned int avgs;
unsigned long unknown3;
unsigned long unknown4;
unsigned long unknown5;
unsigned int unknown3;
unsigned int unknown4;
unsigned int unknown5;
};
struct redcode_handle {
FILE * fp;
struct red_reob * reob;
unsigned long * rdvo;
unsigned long * rdvs;
unsigned long * rdao;
unsigned long * rdas;
unsigned int * rdvo;
unsigned int * rdvs;
unsigned int * rdao;
unsigned int * rdas;
long cfra;
long length;
};
unsigned long read_be32(unsigned long val)
unsigned int read_be32(unsigned int val)
{
unsigned char * v = (unsigned char*) & val;
@ -44,7 +44,7 @@ unsigned long read_be32(unsigned long val)
static unsigned char* read_packet(FILE * fp, char * expect)
{
unsigned long len;
unsigned int len;
char head[5];
unsigned char * rv;
@ -70,9 +70,9 @@ static unsigned char* read_packet(FILE * fp, char * expect)
return rv;
}
static unsigned long * read_index_packet(FILE * fp, char * expect)
static unsigned int * read_index_packet(FILE * fp, char * expect)
{
unsigned long * rv = (unsigned long*) read_packet(fp, expect);
unsigned int * rv = (unsigned int*) read_packet(fp, expect);
int i;
if (!rv) {
@ -92,14 +92,14 @@ static struct red_reob * read_reob(FILE * fp)
return (struct red_reob *) read_index_packet(fp, "REOB");
}
static unsigned long * read_index(FILE * fp, unsigned long i, char * expect)
static unsigned int * read_index(FILE * fp, unsigned int i, char * expect)
{
fseek(fp, i, SEEK_SET);
return (unsigned long*) read_index_packet(fp, expect);
return (unsigned int*) read_index_packet(fp, expect);
}
static unsigned char * read_data(FILE * fp, unsigned long i, char * expect)
static unsigned char * read_data(FILE * fp, unsigned int i, char * expect)
{
fseek(fp, i, SEEK_SET);
@ -190,7 +190,7 @@ struct redcode_frame * redcode_read_video_frame(
rv = (struct redcode_frame*) calloc(1, sizeof(struct redcode_frame));
rv->offset = 12+8;
rv->length = *(unsigned long*)data - rv->offset;
rv->length = *(unsigned int*)data - rv->offset;
rv->data = data;
return rv;
@ -213,7 +213,7 @@ struct redcode_frame * redcode_read_audio_frame(
rv = (struct redcode_frame*) calloc(1, sizeof(struct redcode_frame));
rv->offset = 24+8;
rv->length = *(unsigned long*)data - rv->offset;
rv->length = *(unsigned int*)data - rv->offset;
rv->data = data;
return rv;

@ -3,8 +3,8 @@
struct redcode_handle;
struct redcode_frame {
unsigned long length;
unsigned long offset;
unsigned int length;
unsigned int offset;
unsigned char * data;
};