void MetaBox::addIdatItem(const std::uint32_t itemId, FourCCInt type, const String& name, const Vector<uint8_t>& data) { const uint64_t offset = mItemDataBox.addData(data); addItem(itemId, type, name); ItemLocationExtent locationExtent; locationExtent.mExtentOffset = offset; locationExtent.mExtentLength = data.size(); ItemLocation itemLocation; itemLocation.setItemID(itemId); itemLocation.addExtent(locationExtent); itemLocation.setConstructionMethod(ItemLocation::ConstructionMethod::IDAT_OFFSET); mItemLocationBox.addLocation(itemLocation); }
void MetaBox::addIloc(const std::uint32_t itemId, const std::uint64_t offset, const std::uint64_t length, const std::uint64_t baseOffset) { ItemLocationExtent locationExtent; locationExtent.mExtentOffset = offset; locationExtent.mExtentLength = length; ItemLocation itemLocation; itemLocation.setItemID(itemId); itemLocation.setBaseOffset(baseOffset); itemLocation.addExtent(locationExtent); mItemLocationBox.addLocation(itemLocation); }