mirror of
https://github.com/taglib/taglib.git
synced 2026-08-14 06:17:00 -04:00
5530420d088fa25f72d58349c6cc118b8f22d9bf
Frame::fieldData() (taglib/mpeg/id3v2/id3v2frame.cpp) discarded any ID3v2.4 frame whose declared size (from the header) no longer matched its actual buffer size after per-frame unsynchronisation was decoded by FrameFactory::prepareFrameHeader(), silently emptying frames like TIT2/TPE1/TALB. Clamp the declared length to what's actually available instead of discarding the frame, only bailing out if the frame's data offset itself doesn't fit. Adds testUnsynchDecodeID3v24Frame() to tests/test_id3v2.cpp, covering a frame with its own per-frame Unsynchronisation flag (as opposed to the tag-wide flag already covered by testUnsynchDecode()), using new fixture tests/data/unsynch24.id3.
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%