int32_t mp4ff_parse_metadata(mp4ff_t *f, const int32_t size) { uint64_t subsize, sumsize = 0; uint8_t atom_type; uint8_t header_size = 0; while (sumsize < size) { subsize = mp4ff_atom_read_header(f, &atom_type, &header_size); mp4ff_parse_tag(f, atom_type, (uint32_t)(subsize-header_size)); sumsize += subsize; } return 0; }
int32_t mp4ff_parse_metadata(mp4ff_t *f, const int32_t size) { uint64_t subsize, sumsize = 0; uint8_t atom_type; uint8_t header_size = 0; while (sumsize < size) { subsize = mp4ff_atom_read_header(f, &atom_type, &header_size); if (subsize == 0) break; if (atom_type == ATOM_UNKNOWN) mp4ff_set_position(f, mp4ff_position(f)+subsize-header_size); else mp4ff_parse_tag(f, atom_type, (uint32_t)(subsize-header_size)); sumsize += subsize; } return 0; }