diff --git a/taglib/riff/aiff/aifffile.cpp b/taglib/riff/aiff/aifffile.cpp index cec725f5..2f2498b4 100644 --- a/taglib/riff/aiff/aifffile.cpp +++ b/taglib/riff/aiff/aifffile.cpp @@ -86,6 +86,8 @@ bool RIFF::AIFF::File::save() return false; } + setChunkData("ID3 ", d->tag->render()); + return true; } diff --git a/taglib/riff/rifffile.cpp b/taglib/riff/rifffile.cpp index ce8d118e..08227d87 100644 --- a/taglib/riff/rifffile.cpp +++ b/taglib/riff/rifffile.cpp @@ -127,7 +127,7 @@ void RIFF::File::setChunkData(const ByteVector &name, const ByteVector &data) // Now update the specific chunk - writeChunk(name, data, d->chunkOffsets[i] - 8, d->chunkOffsets[i] + 8); + writeChunk(name, data, d->chunkOffsets[i] - 8, d->chunkSizes[i] + 8); // Now update the internal offsets @@ -169,8 +169,10 @@ void RIFF::File::read() void RIFF::File::writeChunk(const ByteVector &name, const ByteVector &data, ulong offset, ulong replace) { - ByteVector value = name; - value.append(ByteVector::fromUInt(data.size(), d->endianness == BigEndian)); - value.append(data); - insert(data, offset, replace); + debug("Writting chunk at " + String::number(offset)); + + ByteVector combined = name; + combined.append(ByteVector::fromUInt(data.size(), d->endianness == BigEndian)); + combined.append(data); + insert(combined, offset, replace); }