From: Jean-Paul Saman Date: Thu, 10 Apr 2008 18:01:51 +0000 (+0200) Subject: Properly detect XvMC capabilities. X-Git-Tag: 0.9.0-test0~1490^2~4 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=b6cdf137040a4c01b2340eb921a3509c4133a930;p=vlc Properly detect XvMC capabilities. --- diff --git a/modules/video_output/x11/xcommon.c b/modules/video_output/x11/xcommon.c index c3c686f3a1..0f7000be1f 100644 --- a/modules/video_output/x11/xcommon.c +++ b/modules/video_output/x11/xcommon.c @@ -426,7 +426,7 @@ int E_(Activate) ( vlc_object_t *p_this ) msg_Dbg(p_vout, "Deinterlace = %d", p_vout->p_sys->xvmc_deinterlace_method); msg_Dbg(p_vout, "Crop = %d", p_vout->p_sys->xvmc_crop_style); - if( !checkXvMCCap( p_vout ) ) + if( checkXvMCCap( p_vout ) == VLC_EGENERIC ) { msg_Err( p_vout, "no XVMC capability found" ); E_(Deactivate)( p_vout ); diff --git a/modules/video_output/x11/xvmc.c b/modules/video_output/x11/xvmc.c index 01aeb62a4f..a4ed98b42a 100644 --- a/modules/video_output/x11/xvmc.c +++ b/modules/video_output/x11/xvmc.c @@ -745,25 +745,27 @@ int checkXvMCCap( vout_thread_t *p_vout ) XFree(surfaceInfo); /* - * Try to create a direct rendering context. This will fail if we are not - * on the displaying computer or an indirect context is not available. - */ + * Try to create a direct rendering context. This will fail if we are not + * on the displaying computer or an indirect context is not available. + */ XVMCUNLOCKDISPLAY( p_vout->p_sys->p_display ); curCap = p_vout->p_sys->xvmc_cap; if( Success == XvMCCreateContext( p_vout->p_sys->p_display, i_xvport, curCap->type_id, curCap->max_width, curCap->max_height, - XVMC_DIRECT, &c) ) + XVMC_DIRECT, &c ) ) { - p_vout->p_sys->context_flags = XVMC_DIRECT; + msg_Dbg( p_vout, "using direct XVMC rendering context" ); + p_vout->p_sys->context_flags = XVMC_DIRECT; } else if( Success == XvMCCreateContext( p_vout->p_sys->p_display, i_xvport, curCap->type_id, curCap->max_width, curCap->max_height, - 0, &c) ) + 0, &c ) ) { + msg_Dbg( p_vout, "using default XVMC rendering context" ); p_vout->p_sys->context_flags = 0; } else