{
ByteVectorList data = parseData(atom, file);
if(data.size()) {
- d->items.insert(atom->name, (int)data[0].toShort());
+ addItem(atom->name, (int)data[0].toShort());
}
}
{
ByteVectorList data = parseData(atom, file);
if(data.size()) {
- d->items.insert(atom->name, data[0].toUInt());
+ addItem(atom->name, data[0].toUInt());
}
}
{
ByteVectorList data = parseData(atom, file);
if(data.size()) {
- d->items.insert(atom->name, data[0].toLongLong());
+ addItem(atom->name, data[0].toLongLong());
}
}
{
ByteVectorList data = parseData(atom, file);
if(data.size()) {
- d->items.insert(atom->name, (uchar)data[0].at(0));
+ addItem(atom->name, (uchar)data[0].at(0));
}
}
ByteVectorList data = parseData(atom, file);
if(data.size()) {
int idx = (int)data[0].toShort();
- if(!d->items.contains("\251gen") && idx > 0) {
- d->items.insert("\251gen", StringList(ID3v1::genre(idx - 1)));
+ if(idx > 0) {
+ addItem("\251gen", StringList(ID3v1::genre(idx - 1)));
}
}
}
if(data.size()) {
int a = data[0].mid(2, 2).toShort();
int b = data[0].mid(4, 2).toShort();
- d->items.insert(atom->name, MP4::Item(a, b));
+ addItem(atom->name, MP4::Item(a, b));
}
}
ByteVectorList data = parseData(atom, file);
if(data.size()) {
bool value = data[0].size() ? data[0][0] != '\0' : false;
- d->items.insert(atom->name, value);
+ addItem(atom->name, value);
}
}
for(unsigned int i = 0; i < data.size(); i++) {
value.append(String(data[i], String::UTF8));
}
- d->items.insert(atom->name, value);
+ addItem(atom->name, value);
}
}
}
Item item(value);
item.setAtomDataType(type);
- d->items.insert(name, item);
+ addItem(name, item);
}
else {
ByteVectorList value;
}
Item item(value);
item.setAtomDataType(type);
- d->items.insert(name, item);
+ addItem(name, item);
}
}
}
pos += length;
}
if(value.size() > 0)
- d->items.insert(atom->name, value);
+ addItem(atom->name, value);
}
ByteVector
return ignoredProps;
}
+void MP4::Tag::addItem(const String &name, const Item &value)
+{
+ if(!d->items.contains(name)) {
+ d->items.insert(name, value);
+ }
+ else {
+ debug("MP4: Ignoring duplicate atom \"" + name + "\"");
+ }
+}