Opened 14 months ago
Closed 13 months ago
#19056 closed enhancement (fixed)
taglib-2.0
Reported by: | Bruce Dubbs | Owned by: | Bruce Dubbs |
---|---|---|---|
Priority: | normal | Milestone: | 12.1 |
Component: | BOOK | Version: | git |
Severity: | normal | Keywords: | |
Cc: |
Description
New major version.
Change History (8)
comment:1 by , 14 months ago
Summary: | taglib-2.0 → taglib-2.0 (beta, wait for 2.0.0) |
---|
comment:2 by , 14 months ago
Milestone: | 12.1 → 99-Waiting |
---|
comment:3 by , 13 months ago
Milestone: | 99-Waiting → 12.1 |
---|---|
Summary: | taglib-2.0 (beta, wait for 2.0.0) → taglib-2.0 |
2.0 was released on January 24th.
comment:4 by , 13 months ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:5 by , 13 months ago
- New major version, binary incompatible, but source-compatible with the latest 1.x release if no deprecated features are used.
- Requires a C++17 compiler and uses features of C++17.
- Major code cleanup, fixed warnings issued by compilers and static analyzers.
- Made methods virtual which should have been virtual but could not be changed to keep binary compatibility, remove related workarounds.
- Removed deprecated functions:
- APE::Item::Item(const String &, const String &)
- APE::Item::toStringList(): Use values()
- APE::Item::value(): Use binaryData()
- ASF::Properties::setLength()
- ByteVector::checksum()
- ByteVector::isNull(): Use isEmpty()
- ByteVector::null
- FLAC::File::setID3v2FrameFactory()
- FLAC::File::streamInfoData()
- FLAC::File::streamLength()
- FLAC::Properties::Properties(File *, ReadStyle)
- FLAC::Properties::sampleWidth(): Use bitsPerSample()
- File::isReadable(): Use system functions
- File::isWritable(): Use system functions
- FileName::str()
- FileRef::create(): Use constructor
- MP4::Tag::itemListMap(): Use itemMap()
- MPC::File::remove(): Use strip()
- MPC::Properties::Properties(const ByteVector &, long, ReadStyle)
- MPEG::File::save(int, ...): Use overload
- MPEG::File::setID3v2FrameFactory(): Use constructor
- MPEG::ID3v2::Frame::Header::Header(const ByteVector &, bool)
- MPEG::ID3v2::Frame::Header::frameAlterPreservation(): Use fileAlterPreservation()
- MPEG::ID3v2::Frame::Header::setData(const ByteVector &, bool)
- MPEG::ID3v2::Frame::Header::size(unsigned int): Use size()
- MPEG::ID3v2::Frame::Header::unsycronisation(): use unsynchronisation()
- MPEG::ID3v2::Frame::checkEncoding(const StringList &, String::Type): Use checkTextEncoding(const StringList &, String::Type)
- MPEG::ID3v2::Frame::headerSize(): Use Header::size()
- MPEG::ID3v2::Frame::headerSize(unsigned int): Use Header::size(unsigned int)
- MPEG::ID3v2::FrameFactory::createFrame(const ByteVector &, bool)
- MPEG::ID3v2::FrameFactory::createFrame(const ByteVector &, unsigned int): Use createFrame(const ByteVector &, const Header *)
- MPEG::ID3v2::RelativeVolumeFrame::channelType()
- MPEG::ID3v2::RelativeVolumeFrame::peakVolume(): Use peakVolume(ChannelType)
- MPEG::ID3v2::RelativeVolumeFrame::setChannelType()
- MPEG::ID3v2::RelativeVolumeFrame::setPeakVolume(const PeakVolume &): Use setPeakVolume(const PeakVolume &, ChannelType)
- MPEG::ID3v2::RelativeVolumeFrame::setVolumeAdjustment(float): Use setVolumeAdjustment(float, ChannelType)
- MPEG::ID3v2::RelativeVolumeFrame::setVolumeAdjustmentIndex(short): Use setVolumeAdjustmentIndex(short, ChannelType)
- MPEG::ID3v2::RelativeVolumeFrame::volumeAdjustment(): Use volumeAdjustment(ChannelType)
- MPEG::ID3v2::RelativeVolumeFrame::volumeAdjustmentIndex(): Use volumeAdjustmentIndex(ChannelType)
- MPEG::ID3v2::Tag::footer()
- MPEG::ID3v2::Tag::render(int): Use render(Version)
- MPEG::XingHeader::xingHeaderOffset()
- Ogg::Page::getCopyWithNewPageSequenceNumber()
- Ogg::XiphComment::removeField(): Use removeFields()
- PropertyMap::unsupportedData(): Returns now const reference, use addUnsupportedData() to add keys
- RIFF::AIFF::Properties::Properties(const ByteVector &, ReadStyle)
- RIFF::AIFF::Properties::Properties(const ByteVector &, int, ReadStyle)
- RIFF::AIFF::Properties::sampleWidth(): Use bitsPerSample()
- RIFF::WAV::File::save(TagTypes, bool, int): Use save(TagTypes, StripTags, Version)
- RIFF::WAV::File::tag(): Returns now a TagUnion, use ID3v2Tag() to get an ID3v2::Tag
- String::isNull(): Use isEmpty()
- String::null
- TrueAudio::File::setID3v2FrameFactory(): Use constructor
- WavPack::Properties::Properties(const ByteVector &, long, ReadStyle)
- Made methods const: Frame::Header::size(), Frame::headerSize(), MP4::Atom::findall(), MP4::Atoms::find(), MP4::Atoms::path().
- Made classes non-virtual: APE::Footer, APE::Item, ASF::Attribute, ASF::Picture, MP4::CoverArt, MP4::Item, ID3v2::ExtendedHeader, ID3v2::Footer, ID3v2::Header, MPEG::Header, MPEG::XingHeader, Ogg::Page, Ogg::PageHeader.
- Removed type definitions in TagLib namespace: wchar, uchar, ushort, uint, ulong, ulonglong, wstring: Use the standard types.
- Removed include file taglib_config.h and its defines TAGLIB_WITH_ASF, TAGLIB_WITH_MP4: They were always 1 since version 1.8.
- Behavioral changes:
- The basic tag methods (e.g. genre()) separate multiple values with " / " instead of " ".
- The stream operator for String uses UTF-8 instead of ISO-8859-1 encoding.
- MP4 property ORIGINALDATE is mapped to "----:com.apple.iTunes:ORIGINALDATE" instead of "----:com.apple.iTunes:originaldate".
- MP4 property ENCODEDBY is mapped to "©enc" instead of "©too", which is now mapped to ENCODING.
- Unified interface for complex properties like pictures.
- Simplified the unified properties interface by providing its methods on FileRef.
- C bindings: Support for properties (taglib_property_...) and complex properties like cover art (taglib_complex_property_...), memory I/O streams.
- Support for Direct Stream Digital (DSD) stream files (DSF) and interchange file format (DSDIFF, DFF), ADTS (AAC) files.
- The runtime version can be queried.
- Additional utility functions ByteVector::fromUShort(), ByteVector::fromULongLong(), ByteVector::toULongLong(), ByteVector::toULongLong(), List::sort().
- Fixed List::setAutoDelete() affecting implicitly shared copies.
- Build system: Direct support for CMake, find_package(TagLib) exports target TagLib::tag.
- Build system: Fixed PackageConfig to support both relative and absolute paths.
- Build system: utf8cpp is no longer included, it can be provided via a system package or a Git submodule.
- ASF: Support additional properties ARTISTWEBPAGE, ENCODING, ENCODINGTIME, FILEWEBPAGE, INITIALKEY, ORIGINALALBUM, ORIGINALARTIST, ORIGINALFILENAME, ORIGINALLYRICIST.
- ID3v2: Fixed extensibility of FrameFactory, use it also for WAV and AIFF files.
- MP4: Support additional properties OWNER, RELEASEDATE.
- MP4: Introduced ItemFactory allowing clients to support new atom types.
- MP4: Detect duration from mvhd atom if not present in mdhd atom.
- MP4: Fixed type of hdvd atom to be integer instead of boolean.
- MP4: Tolerate trailing garbage in M4A files.
- MPC: Fixed content check in presence of an ID3v2 tag.
- MPEG: Do not scan full file for ID3v2 tag when ReadStyle Fast is used.
- RIFF: Support properties ALBUM, ARRANGER, ARTIST, ARTISTWEBPAGE, BPM, COMMENT, COMPOSER, COPYRIGHT, DATE, DISCSUBTITLE, ENCODEDBY, ENCODING, ENCODINGTIME, GENRE, ISRC, LABEL, LANGUAGE, LYRICIST, MEDIA, PERFORMER, RELEASECOUNTRY, REMIXER, TITLE, TRACKNUMBER.
- WAV: Fixed crash with files having the "id3 " chunk as the only valid chunk.
- Windows: Fixed support for files larger than 2GB.
comment:7 by , 13 months ago
Replying to Xi Ruoyao:
It seems requiring a package named "utfcpp" now.
https://github.com/nemtrif/utfcpp/archive/v4.0.5/utfcpp-4.0.5.tar.gz
mkdir build && cmake -DCMAKE_INSTALL_PREFIX=/usr .. && make && sudo make install
Even -DCMAKE_BUILD_TYPE=Release
is not needed because it's a header-only library.
comment:8 by , 13 months ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Added utfcpp-4.0.5 at commit 73808b30.
Updated to taglib-2.0 at commit e4119b5b.
Fixed.
Note:
See TracTickets
for help on using tickets.
It's beta as at now.