python bindings: workaround for the #2257 / #2266 VLC bug (linux only ATM)
authorOlivier Aubert <olivier.aubert@liris.cnrs.fr>
Mon, 15 Dec 2008 10:44:39 +0000 (11:44 +0100)
committerOlivier Aubert <olivier.aubert@liris.cnrs.fr>
Mon, 15 Dec 2008 10:44:39 +0000 (11:44 +0100)
bindings/python/vlc_module.c

index 7a90a4b..c82e6a0 100644 (file)
@@ -22,6 +22,7 @@
  *****************************************************************************/
 
 #include "vlcglue.h"
+#include <dlfcn.h>
 
 /**************************************************************************
  * VLC Module
@@ -47,6 +48,21 @@ initvlc( void )
 {
     PyObject* p_module;
 
+#ifdef WIN32
+    /*
+      FIXME: Win32 support is trickier than that (does not support dlopen).
+      Get code from src/modules/os.c to work on different OSes.
+    */
+    #define LIBVLCCORE "libvlccore.dll"
+#else
+    #define LIBVLCCORE "libvlccore.so"
+#endif
+    /* Workaround for the 2257/2266 VLC bug. */
+    if ( !dlopen( LIBVLCCORE, RTLD_NOW | RTLD_GLOBAL ) )
+    {
+        fprintf( stderr, "Error when loading libvlccore:\n%s\nTrying to continue anyway.\n", dlerror() );
+    }
+
     /* vlcMediaPlayer_Type.tp_new = PyType_GenericNew; */
     vlcMediaPlayer_Type.tp_alloc = PyType_GenericAlloc;
     /* vlcMedia_Type.tp_new = PyType_GenericNew; */