mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-23 12:02:39 -05:00
Put the SMAF metadata buffer on the stack to save some memory. Only tested with one SMAF file, so please check if you have more.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24886 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
9c0847fc27
commit
c6e69cd886
1 changed files with 5 additions and 5 deletions
|
|
@ -48,8 +48,6 @@ static int support_codepages[7] = {
|
|||
#define TAG_ARTIST (('A'<<8)|'N')
|
||||
#define TAG_COMPOSER (('S'<<8)|'W')
|
||||
|
||||
static unsigned char smafbuf[1024];
|
||||
|
||||
static bool read_datachunk(unsigned char *src, int size, unsigned short tag,
|
||||
int codepage, unsigned char *dst)
|
||||
{
|
||||
|
|
@ -235,9 +233,11 @@ static bool get_smaf_metadata_score_track(struct mp3entry *id3,
|
|||
|
||||
bool get_smaf_metadata(int fd, struct mp3entry* id3)
|
||||
{
|
||||
unsigned char smafbuf[1024];
|
||||
|
||||
/* Use the trackname part of the id3 structure as a temporary buffer */
|
||||
unsigned char* buf = (unsigned char *)id3->path;
|
||||
unsigned char *endbuf = smafbuf + 1024;
|
||||
unsigned char *endbuf = smafbuf + sizeof(smafbuf);
|
||||
int i;
|
||||
int contents_size;
|
||||
int codepage = ISO_8859_1;
|
||||
|
|
@ -347,8 +347,8 @@ bool get_smaf_metadata(int fd, struct mp3entry* id3)
|
|||
if (contents_size > i)
|
||||
lseek(fd, contents_size - i, SEEK_CUR);
|
||||
|
||||
/* assume the SMAF pcm data position is less than 1024 bytes */
|
||||
if (read(fd, smafbuf, 1024) < 1024)
|
||||
/* assume the SMAF pcm data position is near the start */
|
||||
if (read(fd, smafbuf, sizeof(smafbuf)) < (ssize_t)sizeof(smafbuf))
|
||||
return false;
|
||||
|
||||
buf = smafbuf;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue