]> git.sesse.net Git - vlc/commitdiff
VAAPI: use vlc_xlib_init()
authorRémi Denis-Courmont <remi@remlab.net>
Sat, 30 Oct 2010 16:26:43 +0000 (19:26 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Sat, 30 Oct 2010 16:27:22 +0000 (19:27 +0300)
modules/codec/avcodec/va.h
modules/codec/avcodec/vaapi.c
modules/codec/avcodec/video.c

index 6cb5bf48148d30795ebdd87e922141b71c3c6025..1cc784430796c634cecf541c245a74e056dd70c9 100644 (file)
@@ -58,7 +58,7 @@ static inline void vlc_va_Delete(vlc_va_t *va)
     va->close(va);
 }
 
-vlc_va_t *vlc_va_NewVaapi(int codec_id);
+vlc_va_t *vlc_va_NewVaapi(vlc_object_t *obj, int codec_id);
 vlc_va_t *vlc_va_NewDxva2(vlc_object_t *log, int codec_id);
 
 #endif
index 44148233d44335c081c63f27f58bb37a29c360eb..79369530c429a0c52d491bcbd0a6bd27e4e3d302 100644 (file)
@@ -27,6 +27,7 @@
 
 #include <vlc_common.h>
 #include <vlc_fourcc.h>
+#include <vlc_xlib.h>
 #include <assert.h>
 
 #ifdef HAVE_LIBAVCODEC_AVCODEC_H
@@ -473,14 +474,9 @@ static void Delete( vlc_va_t *p_external )
 }
 
 /* */
-vlc_va_t *vlc_va_NewVaapi( int i_codec_id )
+vlc_va_t *vlc_va_NewVaapi( vlc_object_t *obj, int i_codec_id )
 {
-    bool fail;
-
-    vlc_global_lock( VLC_XLIB_MUTEX );
-    fail = !XInitThreads();
-    vlc_global_unlock( VLC_XLIB_MUTEX );
-    if( unlikely(fail) )
+    if( !vlc_xlib_init( obj ) )
         return NULL;
 
     vlc_va_vaapi_t *p_va = calloc( 1, sizeof(*p_va) );
index 4e3904b8e4b3feca51fae0ebf77ad487bff7478d..6d5fd5d5570311e800bf14fd573f7451823c3ba7 100644 (file)
@@ -1136,7 +1136,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_codec,
             }
 #ifdef HAVE_AVCODEC_VAAPI
             msg_Dbg( p_dec, "Trying VA API" );
-            p_sys->p_va = vlc_va_NewVaapi( p_sys->i_codec_id );
+            p_sys->p_va = vlc_va_NewVaapi( VLC_OBJECT(p_dec), p_sys->i_codec_id );
             if( !p_sys->p_va )
                 msg_Warn( p_dec, "Failed to open VA API" );
 #else