mirror of
https://github.com/taglib/taglib.git
synced 2026-05-25 21:19:03 -04:00
ae171ee237ee9e79962df0c2d791cea3494fb652
write() appends a new mdat at EOF to hold chapter text samples but the removal code (both remove() and the replace-existing path in write()) only deleted the chapter trak and tref atoms from inside moov. Each add/remove cycle left the previous chapter mdat behind, causing orphaned mdat atoms to accumulate. Fix: extract a removeQTChapterTrack() helper that performs all three removals atomically. Before deleting the chapter trak, the helper reads the first stco chunk offset (which points 8 bytes past the chapter mdat header) to locate the mdat. After removing the trak and tref (both inside moov, which precedes the mdat at EOF), it adjusts the mdat offset by -(chapterLen + trefLen) and removes the atom, leaving no orphaned data.
TagLib
TagLib Audio Metadata Library
TagLib is a library for reading and editing the metadata of several popular audio formats. Currently, it supports various metadata containers such as ID3v1, ID3v2 and Vorbis comments for MP3, MP4, AAC, Ogg, Opus, FLAC, Speex, APE, MPC, WavPack, WAV, AIFF, TrueAudio, Matroska, WebM, ASF, WMA, DSF, DFF and tracker (MOD, XM, S3M, IT) files.
TagLib is distributed under the GNU Lesser General Public License (LGPL) and Mozilla Public License (MPL). Essentially that means that it may be used in proprietary applications, but if changes are made to TagLib they must be contributed back to the project. Please review the licenses if you are considering using TagLib in your project.
Description
Languages
C++
96.6%
CMake
2.1%
C
0.9%
Logos
0.4%