VLCs libxml2.2 conflicting with Mac OSX's libxml2.2
As discussed on irc this past weekend, vlc includes it's own copy of libxml2.2 as a shared library.
When writing a 3rd party library using libvlc, it is necessary to set your DYLD_LIBRARY_PATH to /Applications/VLC.app/Contents/MacOS/lib/ to pickup libvlc. As DYLD_LIBRARY_PATH is searched prior to the default locations of /usr/lib, vlc's libxml is picked up in preference to osx's.
libxml2.2 is requested when you try and load libauhal_plugin.
This isn't in itself a problem. However, vlc's libxml2.2 is missing, at minimum, the symbol _xmlXPathDebugDumpObject, which mac osx requires for libxslt (which is also in the chain of libraries starting from libauhal). As at least one symbol is missing in vlc's libxml2.2, libauhal_plugin fails to load and you get no sound when using libvlc from a 3rd party client.
The workaround is to manually list /usr/lib in front vlc's lib dir in the DYLD_LIBRARY_PATH, however, this is not ideal as it can pick up other system libraries in preference to user ones.
There was significant discussion on irc about why libxml2.2 was being distributed as a shared library. Apparently, on other platforms, it's statically linked to avoid precisely these types of problems. It was also questioned what was wrong with using the libxml2.2 that's included with mac os x.
This is reproducible on at least 1.1.10 and 1.1.11. I'm using os x 10.6 (snow leopard).