bug encoding multibyte?

Lukáš Lalinský lalinsky at gmail.com
Tue Feb 6 13:57:14 CET 2007


On Ut, 2007-02-06 at 13:31 +0100, Xavier Duret wrote:
> It is quite clear how to do it technically as long as you provide the
> proper factory classes:
> http://tldp.org/HOWTO/C++-dlopen/index.html
> 
> I do not want to be a pain in your back but it is however not clear
> how "tag_c.cpp" could load your library and remain LGPL. The problem
> with a M4A plugin is:
> - The functionality itself is obviously derivative of taglib but it is
> not a problem because taglib is LGPL.
> - If taglib loads your plugin and then wrap in a function like
> "taglib_file_new_type", then taglib becomes a derivative of your
> plugin and must be GPL. GStreamer has a similar problem:
> http://gstreamer.freedesktop.org/documentation/licensing.html
> 
> Today using taglib in a C program is very simple. You include one
> header file and you link with the proper library. Everything is nice
> and portable across operating systems with no external dependencies.
> 
> If plugins need to be dynamically loaded (because they are in separate
> repositories because they do not have the same license) then you have
> either a compatibility problem (dlopen is not cross platform) or you
> have to add an external dependency (libtltdl for example).
> http://www.gnu.org/software/libtool/manual.html#Distributing-libltdl

You are misunderstanding how does it (not) work. There is "no" plugin
support in TagLib. All you have are two separate libraries. Taglib works
on it's own, the one with additional plugins links to TagLib (not the
other way around). Now what you need to to is load TagLib, register the
new file type to TagLib and use the TagLib::FileRef class. So instead of
one header file, you will include two header files and instead of
linking to "libtag", you will link to "libtag" and "libtagext". Again,
no external dependencies.

Of course, this is the way to go if the "generic" TagLib::Tag API is
enough for you. I personally think using ID3v1-like API for audio
metadata these days it just silly. So for any real use you will need to
use the new classes directly and deal with file format differences.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://mail.kde.org/pipermail/taglib-devel/attachments/20070206/a3aa932f/attachment.pgp 


More information about the taglib-devel mailing list