1
0
Fork 0
forked from len0rd/rockbox

Remove the mallocs for the codecdata in the m4a parser and assume a maximum size of 64 bytes (see comments in source). Also clean up the alac_set_info() function a little and make it alignment-safe. We still need to remove the seektable related mallocs. Please report if any AAC or ALAC files stop playing in Rockbox after this commit - but it is not expected to cause problems.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15861 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dave Chapman 2007-12-01 01:01:35 +00:00
parent 95c117cdb8
commit aaacb7010f
3 changed files with 51 additions and 53 deletions

View file

@ -23,6 +23,19 @@
#include <codecs.h>
#include <inttypes.h>
/* AAC codecdata appears to always be less than 8 bytes - see
AudioSpecificConfig2 in libfaad/mp4.c
ALAC codecdata appears to always be 44 bytes (see alac_set_info in
libalac/alac.c) but my test file contains 56 bytes.
So we go safe and round up to 64 bytes - if we find more than this,
we give an error (even though we could possibly continue), so we
can increase this buffer.
*/
#define MAX_CODECDATA_SIZE 64
typedef struct {
struct codec_api* ci;
int eof;
@ -57,7 +70,7 @@ typedef struct
uint32_t num_sample_byte_sizes;
uint32_t codecdata_len;
void *codecdata;
uint8_t codecdata[MAX_CODECDATA_SIZE];
int mdat_offset;
uint32_t mdat_len;