@ -1500,27 +1500,6 @@ static int vaapi_device_create(AVHWDeviceContext *ctx, const char *device,
try_x11 = HAVE_VAAPI_X11 ;
}
# if HAVE_VAAPI_X11
if ( ! display & & try_x11 ) {
// Try to open the device as an X11 display.
priv - > x11_display = XOpenDisplay ( device ) ;
if ( ! priv - > x11_display ) {
av_log ( ctx , AV_LOG_VERBOSE , " Cannot open X11 display "
" %s. \n " , XDisplayName ( device ) ) ;
} else {
display = vaGetDisplay ( priv - > x11_display ) ;
if ( ! display ) {
av_log ( ctx , AV_LOG_ERROR , " Cannot open a VA display "
" from X11 display %s. \n " , XDisplayName ( device ) ) ;
return AVERROR_UNKNOWN ;
}
av_log ( ctx , AV_LOG_VERBOSE , " Opened VA display via "
" X11 display %s. \n " , XDisplayName ( device ) ) ;
}
}
# endif
# if HAVE_VAAPI_DRM
while ( ! display & & try_drm ) {
// If the device is specified, try to open it as a DRM device node.
@ -1588,6 +1567,27 @@ static int vaapi_device_create(AVHWDeviceContext *ctx, const char *device,
}
# endif
# if HAVE_VAAPI_X11
if ( ! display & & try_x11 ) {
// Try to open the device as an X11 display.
priv - > x11_display = XOpenDisplay ( device ) ;
if ( ! priv - > x11_display ) {
av_log ( ctx , AV_LOG_VERBOSE , " Cannot open X11 display "
" %s. \n " , XDisplayName ( device ) ) ;
} else {
display = vaGetDisplay ( priv - > x11_display ) ;
if ( ! display ) {
av_log ( ctx , AV_LOG_ERROR , " Cannot open a VA display "
" from X11 display %s. \n " , XDisplayName ( device ) ) ;
return AVERROR_UNKNOWN ;
}
av_log ( ctx , AV_LOG_VERBOSE , " Opened VA display via "
" X11 display %s. \n " , XDisplayName ( device ) ) ;
}
}
# endif
if ( ! display ) {
if ( device )
av_log ( ctx , AV_LOG_ERROR , " No VA display found for "