projects
/
paraslash.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Kill afhi->header_offset.
[paraslash.git]
/
aac_afh.c
diff --git
a/aac_afh.c
b/aac_afh.c
index
fdc2227
..
94b0f8b
100644
(file)
--- a/
aac_afh.c
+++ b/
aac_afh.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 2006-20
08
Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-20
11
Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
@@
-10,13
+10,12
@@
/** \file aac_afh.c para_server's aac audio format handler */
/** \file aac_afh.c para_server's aac audio format handler */
-#include <osl.h>
+#include <regex.h>
+
#include "para.h"
#include "error.h"
#include "para.h"
#include "error.h"
-#include "string.h"
#include "afh.h"
#include "afh.h"
-#include "afs.h"
-#include "server.h"
+#include "string.h"
#include "aac.h"
static int aac_find_stsz(unsigned char *buf, size_t buflen, off_t *skip)
#include "aac.h"
static int aac_find_stsz(unsigned char *buf, size_t buflen, off_t *skip)
@@
-92,11
+91,9
@@
static char *get_tag(unsigned char *p, int size)
return buf;
}
return buf;
}
-static
char *read_tags(unsigned char *buf, size_t buflen
)
+static
void read_tags(unsigned char *buf, size_t buflen, struct afh_info *afhi
)
{
unsigned char *p = buf;
{
unsigned char *p = buf;
- char *title = NULL, *artist = NULL, *album = NULL, *year = NULL,
- *comment = NULL, *result;
while (p + 32 < buf + buflen) {
unsigned char *q, type1[5], type2[5];
while (p + 32 < buf + buflen) {
unsigned char *q, type1[5], type2[5];
@@
-115,27
+112,20
@@
static char *read_tags(unsigned char *buf, size_t buflen)
if (q + size2 > buf + buflen)
break;
if (!atom_cmp(type1, "©ART"))
if (q + size2 > buf + buflen)
break;
if (!atom_cmp(type1, "©ART"))
- artist = get_tag(q, size2);
+ a
fhi->tags.a
rtist = get_tag(q, size2);
else if (!atom_cmp(type1, "©alb"))
else if (!atom_cmp(type1, "©alb"))
- album = get_tag(q, size2);
+ a
fhi->tags.a
lbum = get_tag(q, size2);
else if (!atom_cmp(type1, "©nam"))
else if (!atom_cmp(type1, "©nam"))
- title = get_tag(q, size2);
+
afhi->tags.
title = get_tag(q, size2);
else if (!atom_cmp(type1, "©cmt"))
else if (!atom_cmp(type1, "©cmt"))
- comment = get_tag(q, size2);
+
afhi->tags.
comment = get_tag(q, size2);
else if (!atom_cmp(type1, "©day"))
else if (!atom_cmp(type1, "©day"))
- year = get_tag(q, size2);
+
afhi->tags.
year = get_tag(q, size2);
p += size1;
}
p += size1;
}
- result = make_taginfo(title, artist, album, year, comment);
- free(title);
- free(artist);
- free(album);
- free(year);
- free(comment);
- return result;
}
}
-static
char *read_meta(unsigned char *buf, size_t buflen
)
+static
void read_meta(unsigned char *buf, size_t buflen, struct afh_info *afhi
)
{
unsigned char *p = buf;
{
unsigned char *p = buf;
@@
-146,12
+136,12
@@
static char *read_meta(unsigned char *buf, size_t buflen)
continue;
}
p += 4;
continue;
}
p += 4;
- return read_tags(p, buflen - (p - buf));
+ return read_tags(p, buflen - (p - buf)
, afhi
);
}
}
- return make_taginfo(NULL, NULL, NULL, NULL, NULL);
}
}
-static char *aac_get_taginfo(unsigned char *buf, size_t buflen)
+static void aac_get_taginfo(unsigned char *buf, size_t buflen,
+ struct afh_info *afhi)
{
int i;
uint64_t subsize;
{
int i;
uint64_t subsize;
@@
-166,10
+156,9
@@
static char *aac_get_taginfo(unsigned char *buf, size_t buflen)
p = buf + i;
i += read_atom_header(p, &subsize, type);
p = buf + i;
p = buf + i;
i += read_atom_header(p, &subsize, type);
p = buf + i;
- return read_meta(p, buflen - i);
+ return read_meta(p, buflen - i
, afhi
);
}
PARA_INFO_LOG("no meta data\n");
}
PARA_INFO_LOG("no meta data\n");
- return make_taginfo(NULL, NULL, NULL, NULL, NULL);
}
static ssize_t aac_compute_chunk_table(struct afh_info *afhi,
}
static ssize_t aac_compute_chunk_table(struct afh_info *afhi,
@@
-233,12
+222,11
@@
static int aac_get_file_info(char *map, size_t numbytes, __a_unused int fd,
mp4AudioSpecificConfig mp4ASC;
NeAACDecHandle handle = NULL;
unsigned char *umap = (unsigned char *) map;
mp4AudioSpecificConfig mp4ASC;
NeAACDecHandle handle = NULL;
unsigned char *umap = (unsigned char *) map;
- char *taginfo;
ret = aac_find_esds(umap, numbytes, &skip, &decoder_len);
if (ret < 0)
goto out;
ret = aac_find_esds(umap, numbytes, &skip, &decoder_len);
if (ret < 0)
goto out;
-
taginfo = aac_get_taginfo(umap, numbytes
);
+
aac_get_taginfo(umap, numbytes, afhi
);
handle = aac_open();
ret = -E_AAC_AFH_INIT;
if (NeAACDecInit(handle, umap + skip, decoder_len, &rate, &channels))
handle = aac_open();
ret = -E_AAC_AFH_INIT;
if (NeAACDecInit(handle, umap + skip, decoder_len, &rate, &channels))
@@
-269,11
+257,6
@@
static int aac_get_file_info(char *map, size_t numbytes, __a_unused int fd,
ret = (afhi->chunk_table[afhi->chunks_total] - afhi->chunk_table[0]) * 8; /* bits */
ret += (channels * afhi->seconds_total * 500); /* avoid rounding error */
afhi->bitrate = ret / (channels * afhi->seconds_total * 1000);
ret = (afhi->chunk_table[afhi->chunks_total] - afhi->chunk_table[0]) * 8; /* bits */
ret += (channels * afhi->seconds_total * 500); /* avoid rounding error */
afhi->bitrate = ret / (channels * afhi->seconds_total * 1000);
- afhi->info_string = make_message("%s:\n%s",
- status_item_list[SI_AUDIO_FILE_INFO],
- taginfo);
- free(taginfo);
- tv_scale(20, &afhi->chunk_tv, &afhi->eof_tv);
ret = 1;
out:
if (handle)
ret = 1;
out:
if (handle)