TagLib
Audio
Score 69%
Description:

TagLib is a C++ library for reading and modifying audio meta data, commonly called "tags". TagLib has been used since KDE 3.2 for reading audio metadata.
Last changelog:

13 years ago


Changes from 1.4 to 1.5

- Support for Mac OS X and Microsoft Windows
- Distributed under the MPL (in addition to the previous LGPL license)
- Added support for Speex files
- Added support for TrueAudio files
- Added support for WavPack files
- Added support for ID3v2 general encapsulated object frames
- Added support for ID3v2 unsynchronized lyrics frames
- Added support for ID3v2 URL frames
- Propper exports of all public classes / functions
- Updated the APE::Item API to work with value lists
- Added support to the FileRef class for new Xiph (Ogg) extensions
- Made the samples per frame for MPEG headers accessible
- Made MP3 Xing headers accessible
- Prevent invalid encodings from being written to ID3v1 tags
- Non-Latin1 ID3v2 text frames are automatically converted to UTF-8 on write (if they are not explicitly set to UTF-16)
- Added support for reading ID3v2.2/3 unsynchronized tags
- Made it possible to search for ID3v2 comment frames by description
- Fixed a number of bugs in ID3v2 relative volume adjustment reading and writing
- Added work arounds for iTunes writing invalid ID3v2 frame lengths
- Added work arounds for iTunes not being able to correctly parse numerical ID3v2 genres
- Added work arounds for iTunes putting non-text information in ID3v2 comment frames
- Added a function to export strings to std::wstring
- Added a function to check ASCII compatibility of strings
- Added a function to check Latin1 compatibility of strings

gohanz

11 years ago

A SlackWare 10.2 TGZ Package with SlackBuild script is ready to download!!

http://www.slacky.it



http://www.slacky.it/index.php?option=com_remository&Itemid=29&func=fileinfo&filecatid=153&parent=category

Report

wheeler

11 years ago

Please note that I don't check this forum regularly for bug and problem reports. If you're having an issue with TagLib please report it via bugs.kde.org. Otherwise it will mostly likely simply be ignored.

Report

catmandu

11 years ago

Ain't happening. Make it work the first time. Don't expect us to figure out your bugs and then drop them into the black hole called bugzilla.

Report

wheeler

11 years ago

Sorry, but your comment is plainly idiotic. If you're not willing to be part of the process of bug resolution than you have no business complaining about things not working. This "black hole" that you speak of has two open bugs in it -- out of the dozens that have been reported.

Report

RND

11 years ago

Part of the open source ethos is that programmers rely on the good will of their users to report back any bugs they find.

Report

catmandu

11 years ago

FC3/kde 3.4.0. I compile alot of progs. This one errors out on the make after a successful ./configure

Report

MxCl

11 years ago

NT

Report

josep

11 years ago

juK from 3.4 branch crashes with taglib 1.4.
This is the backtrace that I get when I start juK:

(no debugging symbols found)
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(no debugging symbols found)
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1235021696 (LWP 12590)]
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#4 0xb7c66cb8 in __gnu_cxx::__mt_alloc::deallocate ()
from /usr/lib/libmusicbrainz.so.4
#5 0xb7c66e4e in std::_List_base::_M_clear ()
from /usr/lib/libmusicbrainz.so.4
#6 0xb7c3728b in TagLib::List::~List () from /usr/lib/libtag.so.1
#7 0xb7c39693 in TagLib::Ogg::Page::packets () from /usr/lib/libtag.so.1
#8 0xb7c348eb in TagLib::Ogg::File::packet () from /usr/lib/libtag.so.1
#9 0xb7c3d51d in TagLib::Vorbis::File::read () from /usr/lib/libtag.so.1
#10 0xb7c3d6a2 in TagLib::Vorbis::File::File () from /usr/lib/libtag.so.1
#11 0x080fbabe in Tag::Tag ()
#12 0x080af611 in FileHandle::refresh ()
#13 0x080a4889 in CollectionListItem::checkCurrent ()
#14 0x080a4fff in CollectionList::slotCheckCache ()
#15 0x080a5ade in CollectionList::qt_invoke ()
#16 0xb7185e37 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#17 0xb74a6f6a in QSignal::signal () from /usr/lib/libqt-mt.so.3
#18 0xb71a0fbc in QSignal::activate () from /usr/lib/libqt-mt.so.3
#19 0xb71a829c in QSingleShotTimer::event () from /usr/lib/libqt-mt.so.3
#20 0xb71295a5 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#21 0xb7129e52 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#22 0x426b111c in KApplication::notify () from /usr/lib/libkdecore.so.4
#23 0xb711e2f9 in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3
#24 0xb70d99d2 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#25 0xb713f378 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#26 0xb7128eb3 in QApplication::processEvents () from /usr/lib/libqt-mt.so.3
#27 0xb7128ee1 in QApplication::processEvents () from /usr/lib/libqt-mt.so.3
#28 0x080ce8e9 in processEvents ()
#29 0x080d5a01 in Playlist::addFile ()
#30 0x080d5f7b in Playlist::addFile ()
#31 0x080d6289 in Playlist::addFiles ()
#32 0x080a59c2 in CollectionList::slotNewItems ()
#33 0x080ea213 in PlaylistCollection::ActionHandler::qt_invoke ()
#34 0xb7185e37 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#35 0x41927afd in KDirLister::newItems () from /usr/lib/libkio.so.4
#36 0x41927e6a in KDirLister::emitItems () from /usr/lib/libkio.so.4
#37 0x4192983c in KDirLister::addNewItems () from /usr/lib/libkio.so.4
#38 0x41931317 in KDirLister::openURL () from /usr/lib/libkio.so.4
#39 0xb7185e37 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#40 0x418713e6 in KIO::ListJob::entries () from /usr/lib/libkio.so.4
#41 0x418816ca in KIO::ListJob::slotListEntries () from /usr/lib/libkio.so.4
#42 0x41881c78 in KIO::ListJob::qt_invoke () from /usr/lib/libkio.so.4
#43 0xb7185e37 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#44 0x4186148d in KIO::SlaveInterface::listEntries ()
from /usr/lib/libkio.so.4
#45 0x41863682 in KIO::SlaveInterface::dispatch () from /usr/lib/libkio.so.4
#46 0x41861e80 in KIO::SlaveInterface::dispatch () from /usr/lib/libkio.so.4
#47 0x4185f204 in KIO::Slave::gotInput () from /usr/lib/libkio.so.4
#48 0x4185f399 in KIO::Slave::qt_invoke () from /usr/lib/libkio.so.4
#49 0xb7185e37 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#50 0xb7186411 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#51 0xb74a7b98 in QSocketNotifier::activated () from /usr/lib/libqt-mt.so.3
#52 0xb71a322d in QSocketNotifier::event () from /usr/lib/libqt-mt.so.3
#53 0xb71295a5 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#54 0xb7129e52 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#55 0x426b111c in KApplication::notify () from /usr/lib/libkdecore.so.4
#56 0xb711d392 in QEventLoop::activateSocketNotifiers ()
from /usr/lib/libqt-mt.so.3
#57 0xb70d9918 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#58 0xb713f378 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#59 0xb7128eb3 in QApplication::processEvents () from /usr/lib/libqt-mt.so.3
#60 0xb7128ee1 in QApplication::processEvents () from /usr/lib/libqt-mt.so.3
#61 0x080ce8e9 in processEvents ()
#62 0x080d5a01 in Playlist::addFile ()
#63 0x080d5f7b in Playlist::addFile ()
#64 0x080d5f7b in Playlist::addFile ()
#65 0x080d6289 in Playlist::addFiles ()
#66 0x080e344d in PlaylistCollection::scanFolders ()
#67 0x080ea05a in PlaylistCollection::ActionHandler::qt_invoke ()
#68 0xb7185e37 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#69 0xb74a6f6a in QSignal::signal () from /usr/lib/libqt-mt.so.3
#70 0xb71a0fbc in QSignal::activate () from /usr/lib/libqt-mt.so.3
#71 0xb71a829c in QSingleShotTimer::event () from /usr/lib/libqt-mt.so.3
#72 0xb71295a5 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#73 0xb7129e52 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#74 0x426b111c in KApplication::notify () from /usr/lib/libkdecore.so.4
#75 0xb711e2f9 in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3
#76 0xb70d99d2 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#77 0xb713f27b in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#78 0xb713f194 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#79 0xb7128f0f in QApplication::exec () from /usr/lib/libqt-mt.so.3
#80 0x080c722e in main ()


All Qt/KDE/Juk/Taglib was build with GCC 4.0.1, amaroK 1.2.3 doesn't crash.

Report

Superstoned

12 years ago

why doesnt this get into debian? just like gnupg 1.9.x doesnt get in (still on 1.2.5)? I hate this... KDE is severely handicapped without these libraries :(

Report

shafff

12 years ago

it actually annoys me that taglib writes Year="0" in id3v1 when i change tag with Year="" (empty)
(in amarok).

Report

wheeler

12 years ago

Small is of course relative. It's about half the size of amaroK. ;-)

Report

Superstoned

12 years ago

yeah, and invaluable. amarok is just a player, but without taglib, there whoulnt be a juk either... and no etc etc

so many thanx for the work!

Report

veton

12 years ago

I've just upgrade to amarok 1.0. Overall great. It is with small (but important) libraries like yours that this is possible.

Report

shlomil

13 years ago


Just wanted to thank you again for adding the "override the default string handler" feature. This is very important for some of us. I just hope that juk and amaroK's developer will use this feature soon so I can finally read the tags in my mp3 file.

Report

BOSSoNe

13 years ago

Hi,
i would replace id3lib and vorbisfile by taglib in my apps, but i don't find how to handle pictures stored in id3v2 tags.
Can you give me some little help?
if i've correctly read the api doc for reading i should use:
ID3v2::Tag::frameListMap["APIC"].data()
with this i get the complete frame, so i need to split it to get text encoding
(first byte), mime type, picture type, description and picture data. am i
right?
Thank's
Cyril.

Report

wheeler

13 years ago

Pretty close -- pasting from the ID3v2.4 standard (on id3.org):

<Header for 'Attached picture', ID: "APIC">
Text encoding $xx
MIME type <text string> $00
Picture type $xx
Description <text string according to encoding> $00 (00)
Picture data <binary data>

I'm also planning on adding support for this frame directly in the next release.

Report

wheeler

13 years ago

Oh, and by the way -- this is in CVS now and should come with TagLib 1.2.

Report

navindra

13 years ago

Okay, maybe this is off-topic but technically it does apply to TagLib -- why do so many applications on KDE-Look.org fail to include a version number?

I think it would be useful for KDE apps to have a version number, even if it's just 0.1...

Report

wheeler

13 years ago

You mean the part up there at the top where it says "Version 1.1"? Or the tarball name -- "taglib-1.1.tar.gz"? ;-)

Report

navindra

13 years ago

It wasn't there before, I assure you (don't know about the tarball). I've been monitoring the RDF file and site pretty closely and when I posted that comment, the four or five top applications didn't have version numbers...

I guess someone fixed it.

Report

wheeler

13 years ago

I posted the version number at the same time that I posted the update. It may have been a bug in the RDF output, but it was correct on the web page...

Report

navindra

13 years ago

Ahh then perhaps I saw it before the update...

Report

forestie

13 years ago

I am not sure to understand why we need taglib when there is id3lib that's here since a long time. Or, maybe, taglib relies upon id3lib when it come to id3 tags, and on other libraries for other tag standards? What kind of gap does taglib fill?

Report

wheeler

13 years ago

id3lib is poorly coded, poorly maintained and poorly documented. (I in fact was the id3lib maintainer when I started working on TagLib and decided that it wasn't worth trying to salvage.) TagLib's implementation of the relevant standards is both faster and cleaner and the API is more KDE / Qt friendly.

Report

forestie

13 years ago

Oh, I did not think about that. So, what about id3lib now? I respect your decision, it seems to be founded. What do you think about compatibility, and all applications that rely on id3lib? Please note I am just curious, I am not bashing you! However I must admit I think that in general we have far too many ways to do the same thing with OpenSource, and it is difficult to, say, standardize a little. What do you think about that?

Report

13 years ago


Changes from 1.4 to 1.5

- Support for Mac OS X and Microsoft Windows
- Distributed under the MPL (in addition to the previous LGPL license)
- Added support for Speex files
- Added support for TrueAudio files
- Added support for WavPack files
- Added support for ID3v2 general encapsulated object frames
- Added support for ID3v2 unsynchronized lyrics frames
- Added support for ID3v2 URL frames
- Propper exports of all public classes / functions
- Updated the APE::Item API to work with value lists
- Added support to the FileRef class for new Xiph (Ogg) extensions
- Made the samples per frame for MPEG headers accessible
- Made MP3 Xing headers accessible
- Prevent invalid encodings from being written to ID3v1 tags
- Non-Latin1 ID3v2 text frames are automatically converted to UTF-8 on write (if they are not explicitly set to UTF-16)
- Added support for reading ID3v2.2/3 unsynchronized tags
- Made it possible to search for ID3v2 comment frames by description
- Fixed a number of bugs in ID3v2 relative volume adjustment reading and writing
- Added work arounds for iTunes writing invalid ID3v2 frame lengths
- Added work arounds for iTunes not being able to correctly parse numerical ID3v2 genres
- Added work arounds for iTunes putting non-text information in ID3v2 comment frames
- Added a function to export strings to std::wstring
- Added a function to check ASCII compatibility of strings
- Added a function to check Latin1 compatibility of strings

product-maker 35 87

File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install
Details
version
1.5
updated Feb 22 2008
added Jan 22 2004
downloads
page views 558