bug encoding multibyte?

Xavier Duret xaviour.maillists at gmail.com
Tue Feb 6 13:31:40 CET 2007


> There isn't a way to load "plugins" automatically, you need to
> explicitly register new file type resolvers for FileRef. I the C API, I
> can think of calling a function on startup (e.g. `void
> taglib_ext_register()`), that would add support for the new file
> formats.
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


More information about the taglib-devel mailing list