diff --git a/fieldbasedtag.h b/fieldbasedtag.h index ab090dd..dd75b6d 100644 --- a/fieldbasedtag.h +++ b/fieldbasedtag.h @@ -226,7 +226,9 @@ bool FieldMapBasedTag::internallySetValues(const FieldMapBas } // add remaining specified values (there are more specified values than existing ones) for (; valuesIterator != values.cend(); ++valuesIterator) { - m_fields.insert(std::make_pair(id, FieldType(id, *valuesIterator))); + if (!valuesIterator->isEmpty()) { + m_fields.insert(std::make_pair(id, FieldType(id, *valuesIterator))); + } } // remove remaining existing values (there are more existing values than specified ones) for (; range.first != range.second; ++range.first) { diff --git a/mp4/mp4tag.cpp b/mp4/mp4tag.cpp index 0eda6f5..0b75f15 100644 --- a/mp4/mp4tag.cpp +++ b/mp4/mp4tag.cpp @@ -278,8 +278,10 @@ bool Mp4Tag::setValues(KnownField field, const std::vector &values) } } for (; valuesIterator != values.cend(); ++valuesIterator) { - fields().emplace(std::piecewise_construct, std::forward_as_tuple(Mp4TagAtomIds::Extended), - std::forward_as_tuple(extendedId.mean, extendedId.name, *valuesIterator)); + if (valuesIterator->isEmpty()) { + fields().emplace(std::piecewise_construct, std::forward_as_tuple(Mp4TagAtomIds::Extended), + std::forward_as_tuple(extendedId.mean, extendedId.name, *valuesIterator)); + } } for (; range.first != range.second; ++range.first) { range.first->second.clearValue();