mirror of
https://github.com/taglib/taglib.git
synced 2026-11-05 22:18:50 -05:00
bdfeb82cbe2fa16fbb4c8d4a012030e2b4a21b46
QuickTime chapter samples run back to back from media time 0, so when the first chapter starts after 0, QtChapterList::write() prepends an untitled placeholder sample to keep the absolute start times. TagLib's own reader strips it again, but the chapter track's edit list played the whole media from time 0, so AVFoundation and ffmpeg listed the placeholder as an untitled first chapter. The edit list now begins with an empty edit spanning the placeholder, followed by the media from the first written chapter. The placeholder sample is kept, so readers which ignore edit lists see the same chapters as before. A list starting at 0 still gets a single edit. testQTChapterListNonZeroFirstChapterEditList writes chapters at 1 s and 2 s and checks the chapter track's elst: an empty edit (media time -1) of one second in the mvhd timescale, then the remaining duration from media time one second. It also checks that a list starting at 0 gets a single edit from media time 0, and that qtChapters() reads back exactly the written chapters in both cases.
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.
Languages
C++
96.6%
CMake
1.8%
C
0.8%
Python
0.5%
Logos
0.3%