mirror of
https://github.com/taglib/taglib.git
synced 2026-08-14 06:17:00 -04:00
b2e27c3a45e58950b50c1b36502a9ef7fcf088db
Matroska::Tag::title() falls back to \Segment\Info\Title when a file has no TITLE simple tag. That title was only extracted inside read()'s readProperties branch, because Info is also where the audio properties come from, so opening a file with readAudioProperties = false left the tag with an empty title: FileRef(path, true ).tag()->title(); // "handbrake" FileRef(path, false).tag()->title(); // "" Reading tags without audio properties is the documented fast path for scanning a library, so this silently emptied the title for exactly the callers who opted into it, and it made tag content depend on an audio-properties flag in a way no other format does. Store the segment title on the file itself, read regardless of readProperties, and use it from both read() and tag(). The Info element is already resident by then, so no additional I/O is involved and audioProperties() still returns null when properties were not requested.
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.7%
CMake
2%
C
0.9%
Logos
0.4%