return 0;
}
-static int32_t mp4ff_parse_tag(mp4ff_t * f, const uint8_t parent_atom_type,
+static int32_t mp4ff_parse_tag(mp4ff_t * f, const uint8_t parent,
const int32_t size)
{
uint8_t atom_type;
mp4ff_read_int32(f); /* reserved */
/* some need special attention */
- if (parent_atom_type == ATOM_GENRE2 || parent_atom_type == ATOM_TEMPO) {
+ if (parent == ATOM_GENRE2 || parent == ATOM_TEMPO) {
if (subsize - header_size >= 8 + 2) {
uint16_t val = mp4ff_read_int16(f);
- if (parent_atom_type == ATOM_TEMPO) {
+ if (parent == ATOM_TEMPO) {
char temp[16];
sprintf(temp, "%.5u BPM", val);
mp4ff_tag_add_field(&(f-> tags), "tempo", temp, -1);
}
done = 1;
}
- } else if (parent_atom_type == ATOM_TRACK || parent_atom_type == ATOM_DISC) {
+ } else if (parent == ATOM_TRACK || parent == ATOM_DISC) {
if (subsize - header_size >= (sizeof (char) + sizeof (uint8_t) * 3 + sizeof (uint32_t) + /* version + flags + reserved */
- +(parent_atom_type == ATOM_TRACK ? sizeof (uint16_t) : 0) /* leading uint16_t if ATOM_TRACK */
+ +(parent == ATOM_TRACK ? sizeof (uint16_t) : 0) /* leading uint16_t if ATOM_TRACK */
+sizeof (uint16_t) /* track / disc */
+sizeof (uint16_t)) /* totaltracks / totaldiscs */) {
uint16_t index, total;
mp4ff_read_int16(f);
index = mp4ff_read_int16(f);
total = mp4ff_read_int16(f);
- if (parent_atom_type == ATOM_TRACK)
+ if (parent == ATOM_TRACK)
mp4ff_read_int16(f);
sprintf(temp, "%d", index);
- mp4ff_tag_add_field(&(f->tags), parent_atom_type == ATOM_TRACK ?
+ mp4ff_tag_add_field(&(f->tags), parent == ATOM_TRACK ?
"track" : "disc", temp, -1);
if (total > 0) {
sprintf(temp, "%d",
total);
mp4ff_tag_add_field(& (f-> tags),
- parent_atom_type == ATOM_TRACK?
+ parent == ATOM_TRACK?
"totaltracks" : "totaldiscs", temp, -1);
}
done = 1;
if (data) {
if (!done) {
if (name == NULL)
- mp4ff_set_metadata_name(parent_atom_type, &name);
+ mp4ff_set_metadata_name(parent , &name);
if (name)
mp4ff_tag_add_field(&(f->tags), name, data, len);
}