TagLib -> CVS

Scott Wheeler wheeler at kde.org
Sat Sep 6 23:42:24 BST 2003

Hash: SHA1

Hi folks,

At this point several of you are familiar with my work on a new audio meta 
data library.

Some basic information:

It has an abstract API for handling both ID3v1 and ID3v2 in mp3 files and Xiph 
comments in Vorbis files.

It's fast; in my tests it's been about 6x faster (CPU time) than id3lib at 
reading ID3v1 and ID3v2 tags and about 3x faster than libvorbis at reading 

It's C++ with a Qt / KDE-like API and coding style.  While it doesn't link to 
Qt, the small toolkit (a wrapper around STL classes that adds things like 
unicode support, implicit sharing) has a Qt like API and uses standard KDE 
library programming techniques (d-pointers and whatnot).

It has no external dependencies other than a semi-sane STL implementation and 
compiler features that KDE already requires (i.e. partial template 

The current status is that ID3v1 and ID3v2 work for reading and writing, Ogg 
works in read-only.  I rewrote most of the Ogg code at N7y and am pretty 
close to having it working for writing Ogg comments.  (Some of the Ogg page 
rendering code gets a bit nasty.)

I have listed on the feature plan adding ID3v2 support to KDE 3.2 meaning 
rewriting the KFileMetaInfo plugin to use TagLib.  JuK will also most likely 
use the API directly (since it's much faster than going through the KFMI 
abstraction layer).

Several others have shown interest for a variety of applications.

So -- in thinking about where the best place for it to go in CVS I think I've 
come to the conclusion that extragear makes the most sense.  One of the goals 
of TagLib has been for it to be something usable outside of KDE and Qt 
applications (I'll be writing C bindings at some point) and that would allow 
it to have the feature of being easy to access for KDE developers but also 
some separation from being "part of KDE" that would make it more attractive 
to outside developers.  The plan would be to put it there and do a release 
just before 3.2...

Anyway -- I'll shut up and just see if there are any objections.  If not I'll 
get one of the admins to move the CVS repository (from my home machine) in 
the next few days.

The API docs are here:  http://ktown.kde.org/~wheeler/taglib-api/
And a current snapshot: http://ktown.kde.org/~wheeler/taglib-cvs.tar.gz
And a demo program:     

Questions?  Flames?

- -Scott

- -- 
Audience Member: "What was the hardest part of building TeX?"
Donald Knuth: "It was all pretty easy."
Version: GnuPG v1.0.7 (GNU/Linux)


More information about the kde-multimedia mailing list