Local implementation of read_uint32be() in mp3data.c needs a major correction.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29609 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Andree Buschmann 2011-03-17 18:13:14 +00:00
parent c1a5b66499
commit c59a086da6

View file

@ -39,7 +39,7 @@
#include "mp3data.h" #include "mp3data.h"
#include "file.h" #include "file.h"
#include "buffer.h" #include "buffer.h"
#include "metadata/metadata_common.h" #include "system.h"
// #define DEBUG_VERBOSE // #define DEBUG_VERBOSE
@ -214,16 +214,14 @@ static bool headers_have_same_type(unsigned long header1,
} }
/* Helper function to read 4-byte in big endian format. */ /* Helper function to read 4-byte in big endian format. */
static void read_uint32be_mp3data(int fd, unsigned long *data, long *pos) static void read_uint32be_mp3data(int fd, unsigned long *data)
{ {
#ifdef ROCKBOX_BIG_ENDIAN #ifdef ROCKBOX_BIG_ENDIAN
(void)read(fd, (char*)data, 4); (void)read(fd, (char*)data, 4);
#else #else
char tmp[4]; (void)read(fd, (char*)data, 4);
(void)read(fd, tmp, 4); *data = betoh32(*data);
*data = (tmp[0]<<24) | (tmp[1]<<16) | (tmp[2]<<8) | tmp[3];
#endif #endif
*pos += 4;
} }
static unsigned long __find_next_frame(int fd, long *offset, long max_offset, static unsigned long __find_next_frame(int fd, long *offset, long max_offset,
@ -272,7 +270,7 @@ static unsigned long __find_next_frame(int fd, long *offset, long max_offset,
/* Read possible next frame header and seek back to last frame /* Read possible next frame header and seek back to last frame
* headers byte position. */ * headers byte position. */
reference_header = 0; reference_header = 0;
read_uint32be_mp3data(fd, &reference_header, &pos); read_uint32be_mp3data(fd, &reference_header);
// //
lseek(fd, -info.frame_size, SEEK_CUR); lseek(fd, -info.frame_size, SEEK_CUR);