Hello community,

here is the log from the commit of package libva for openSUSE:Factory checked 
in at 2020-03-06 21:26:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libva (Old)
 and      /work/SRC/openSUSE:Factory/.libva.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libva"

Fri Mar  6 21:26:05 2020 rev:51 rq:781543 version:2.6.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/libva/libva-gl.changes   2020-01-21 
17:17:33.990800663 +0100
+++ /work/SRC/openSUSE:Factory/.libva.new.26092/libva-gl.changes        
2020-03-06 21:26:24.409519365 +0100
@@ -1,0 +2,26 @@
+Wed Feb 26 11:49:43 UTC 2020 - Stefan Dirsch <sndir...@suse.com>
+
+- Update to version 2.6.1
+  * adjust call sequence to ensure authenticate operation is
+    executed this patch is not needed for media-driver, but
+    needed for i965 driver which check authentication. 
+
+-------------------------------------------------------------------
+Fri Jan 10 23:49:36 UTC 2020 - Aaron Stern <ukbeas...@protonmail.com>
+
+- Update to version 2.6.0:
+  * enable the mutiple driver selection logic and enable it for DRM.
+  * drm: Add iHD to driver_name_map
+  * Add missed slice parameter 'slice_data_num_emu_prevn_bytes'
+  * ensure that all meson files are part of the release tarball
+  * configure: use correct comparison operator
+  * trace: support VAConfigAttribMultipleFrame in trace
+  * remove incorrect field of VAConfigAttribValDecJPEG
+  * va/va_trace: Dump VP9 parameters for profile 1~3
+  * add multiple frame capability report
+  * add variable to indicate layer infromation
+  * trace: fix memory leak on closing the trace
+  * add prediction direction caps report
+  * Add comments for colour primaries and transfer characteristics in 
VAProcColorProperties
+
+-------------------------------------------------------------------
libva.changes: same change

Old:
----
  libva-2.5.0.tar.bz2
  libva-2.5.0.tar.bz2.sha1sum

New:
----
  libva-2.6.1.tar.bz2
  libva-2.6.1.tar.bz2.sha1sum

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libva-gl.spec ++++++
--- /var/tmp/diff_new_pack.UbgpGr/_old  2020-03-06 21:26:25.405519916 +0100
+++ /var/tmp/diff_new_pack.UbgpGr/_new  2020-03-06 21:26:25.405519916 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package libva-gl
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -29,12 +29,12 @@
 
 Name:           libva-gl
 %define _name   libva
-Version:        2.5.0
+Version:        2.6.1
 Release:        0
 Summary:        Video Acceleration (VA) API
 License:        MIT
 Group:          Development/Libraries/C and C++
-Url:            http://freedesktop.org/wiki/Software/vaapi
+URL:            http://freedesktop.org/wiki/Software/vaapi
 Source0:        
https://github.com/intel/libva/releases/download/%{version}/%{_name}-%{version}.tar.bz2
 Source1:        
https://github.com/intel/libva/releases/download/%{version}/%{_name}-%{version}.tar.bz2.sha1sum
 Source2:        baselibs.conf

++++++ libva.spec ++++++
--- /var/tmp/diff_new_pack.UbgpGr/_old  2020-03-06 21:26:25.425519927 +0100
+++ /var/tmp/diff_new_pack.UbgpGr/_new  2020-03-06 21:26:25.433519931 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package libva
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -29,12 +29,12 @@
 
 Name:           libva
 %define _name   libva
-Version:        2.5.0
+Version:        2.6.1
 Release:        0
 Summary:        Video Acceleration (VA) API
 License:        MIT
 Group:          Development/Libraries/C and C++
-Url:            http://freedesktop.org/wiki/Software/vaapi
+URL:            http://freedesktop.org/wiki/Software/vaapi
 Source0:        
https://github.com/intel/libva/releases/download/%{version}/%{_name}-%{version}.tar.bz2
 Source1:        
https://github.com/intel/libva/releases/download/%{version}/%{_name}-%{version}.tar.bz2.sha1sum
 Source2:        baselibs.conf

++++++ libva-2.5.0.tar.bz2 -> libva-2.6.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/Makefile.am new/libva-2.6.1/Makefile.am
--- old/libva-2.5.0/Makefile.am 2019-06-17 12:35:14.000000000 +0200
+++ new/libva-2.6.1/Makefile.am 2019-12-17 14:46:07.000000000 +0100
@@ -30,7 +30,7 @@
 SUBDIRS += doc
 endif
 
-EXTRA_DIST=doc/va_footer.html
+EXTRA_DIST=doc/va_footer.html meson.build meson_options.txt
 # Extra clean files so that maintainer-clean removes *everything*
 MAINTAINERCLEANFILES = \
        aclocal.m4 compile config.guess config.sub \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/Makefile.in new/libva-2.6.1/Makefile.in
--- old/libva-2.5.0/Makefile.in 2019-07-05 16:14:46.000000000 +0200
+++ new/libva-2.6.1/Makefile.in 2020-01-17 12:30:10.000000000 +0100
@@ -380,7 +380,7 @@
 ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
 AUTOMAKE_OPTIONS = foreign
 SUBDIRS = va pkgconfig $(am__append_1)
-EXTRA_DIST = doc/va_footer.html
+EXTRA_DIST = doc/va_footer.html meson.build meson_options.txt
 # Extra clean files so that maintainer-clean removes *everything*
 MAINTAINERCLEANFILES = \
        aclocal.m4 compile config.guess config.sub \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/NEWS new/libva-2.6.1/NEWS
--- old/libva-2.5.0/NEWS        2019-07-05 15:08:40.000000000 +0200
+++ new/libva-2.6.1/NEWS        2019-12-25 16:46:11.000000000 +0100
@@ -1,6 +1,21 @@
-libva NEWS -- summary of user visible changes.  2019-07-05
+libva NEWS -- summary of user visible changes.  2019-12-25
 Copyright (C) 2009-2019 Intel Corporation
 
+version 2.6.0 - 15.Dec.2019
+* enable the mutiple driver selection logic and enable it for DRM.
+* drm: Add iHD to driver_name_map
+* Add missed slice parameter 'slice_data_num_emu_prevn_bytes'
+* ensure that all meson files are part of the release tarball
+* configure: use correct comparison operator
+* trace: support VAConfigAttribMultipleFrame in trace
+* remove incorrect field of VAConfigAttribValDecJPEG
+* va/va_trace: Dump VP9 parameters for profile 1~3
+* add multiple frame capability report
+* add variable to indicate layer infromation
+* trace: fix memory leak on closing the trace
+* add prediction direction caps report
+* Add comments for colour primaries and transfer characteristics in 
VAProcColorProperties
+
 version 2.5.0 - 05.Jul.2019
 * Correct the comment of color_range.
 * Add VA_FOURCC_A2B10G10R10 for format a2b10g10r10.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/configure new/libva-2.6.1/configure
--- old/libva-2.5.0/configure   2019-07-05 16:14:46.000000000 +0200
+++ new/libva-2.6.1/configure   2020-01-17 12:30:10.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libva 2.5.0.
+# Generated by GNU Autoconf 2.69 for libva 2.6.1.
 #
 # Report bugs to <https://github.com/intel/libva/issues/new>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='libva'
 PACKAGE_TARNAME='libva'
-PACKAGE_VERSION='2.5.0'
-PACKAGE_STRING='libva 2.5.0'
+PACKAGE_VERSION='2.6.1'
+PACKAGE_STRING='libva 2.6.1'
 PACKAGE_BUGREPORT='https://github.com/intel/libva/issues/new'
 PACKAGE_URL='https://github.com/intel/libva'
 
@@ -1394,7 +1394,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libva 2.5.0 to adapt to many kinds of systems.
+\`configure' configures libva 2.6.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1465,7 +1465,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libva 2.5.0:";;
+     short | recursive ) echo "Configuration of libva 2.6.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1603,7 +1603,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libva configure 2.5.0
+libva configure 2.6.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2093,7 +2093,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libva $as_me 2.5.0, which was
+It was created by libva $as_me 2.6.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2959,7 +2959,7 @@
 
 # Define the identity of the package.
  PACKAGE='libva'
- VERSION='2.5.0'
+ VERSION='2.6.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3099,26 +3099,26 @@
 
 
 VA_API_MAJOR_VERSION=1
-VA_API_MINOR_VERSION=5
+VA_API_MINOR_VERSION=6
 VA_API_MICRO_VERSION=0
-VA_API_VERSION=1.5.0
+VA_API_VERSION=1.6.0
 
 
 
 
 
 LIBVA_MAJOR_VERSION=2
-LIBVA_MINOR_VERSION=5
-LIBVA_MICRO_VERSION=0
-LIBVA_VERSION=2.5.0
+LIBVA_MINOR_VERSION=6
+LIBVA_MICRO_VERSION=1
+LIBVA_VERSION=2.6.1
 
 
 
 
 
-LIBVA_LT_CURRENT=502
+LIBVA_LT_CURRENT=602
 LIBVA_LT_REV=0
-LIBVA_LT_AGE=500
+LIBVA_LT_AGE=600
 LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE"
 LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION"
 
@@ -17653,7 +17653,7 @@
    as_fn_error $? "VA/GLX explicitly enabled, but VA/X11 isn't built" 
"$LINENO" 5
 fi
 
-if test "$USE_X11" == "yes" -a "$enable_glx" != "no"; then
+if test "$USE_X11" = "yes" -a "$enable_glx" != "no"; then
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLX" >&5
@@ -18522,7 +18522,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libva $as_me 2.5.0, which was
+This file was extended by libva $as_me 2.6.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18589,7 +18589,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libva config.status 2.5.0
+libva config.status 2.6.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/configure.ac new/libva-2.6.1/configure.ac
--- old/libva-2.5.0/configure.ac        2019-07-05 15:11:21.000000000 +0200
+++ new/libva-2.6.1/configure.ac        2020-01-17 12:12:33.000000000 +0100
@@ -27,7 +27,7 @@
 # - reset micro version to zero when minor version is incremented
 # - reset minor version to zero when major version is incremented
 m4_define([va_api_major_version], [1])
-m4_define([va_api_minor_version], [5])
+m4_define([va_api_minor_version], [6])
 m4_define([va_api_micro_version], [0])
 
 m4_define([va_api_version],
@@ -42,7 +42,7 @@
 # - reset micro version to zero when VA-API major or minor version is changed
 m4_define([libva_major_version], [m4_eval(va_api_major_version + 1)])
 m4_define([libva_minor_version], [m4_eval(va_api_minor_version)])
-m4_define([libva_micro_version], [0])
+m4_define([libva_micro_version], [1])
 m4_define([libva_pre_version],   [0])
 
 m4_define([libva_version],
@@ -259,7 +259,7 @@
    AC_MSG_ERROR([VA/GLX explicitly enabled, but VA/X11 isn't built])
 fi
 
-if test "$USE_X11" == "yes" -a "$enable_glx" != "no"; then
+if test "$USE_X11" = "yes" -a "$enable_glx" != "no"; then
     PKG_CHECK_MODULES([GLX], [gl x11], [USE_GLX="yes"], [:])
     saved_CPPFLAGS="$CPPFLAGS"
     saved_LIBS="$LIBS"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/doc/Makefile.am 
new/libva-2.6.1/doc/Makefile.am
--- old/libva-2.5.0/doc/Makefile.am     2018-12-26 11:22:45.000000000 +0100
+++ new/libva-2.6.1/doc/Makefile.am     2019-12-17 14:46:07.000000000 +0100
@@ -25,6 +25,7 @@
 
 EXTRA_DIST = \
        Doxyfile.in                     \
+       meson.build                     \
        $(NULL)
 
 VA_HEADER_DIR   = $(top_srcdir)/va
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/doc/Makefile.in 
new/libva-2.6.1/doc/Makefile.in
--- old/libva-2.5.0/doc/Makefile.in     2019-07-05 16:14:46.000000000 +0200
+++ new/libva-2.6.1/doc/Makefile.in     2020-01-17 12:30:10.000000000 +0100
@@ -295,6 +295,7 @@
 top_srcdir = @top_srcdir@
 EXTRA_DIST = \
        Doxyfile.in                     \
+       meson.build                     \
        $(NULL)
 
 VA_HEADER_DIR = $(top_srcdir)/va
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/doc/meson.build 
new/libva-2.6.1/doc/meson.build
--- old/libva-2.5.0/doc/meson.build     1970-01-01 01:00:00.000000000 +0100
+++ new/libva-2.6.1/doc/meson.build     2018-12-26 11:22:45.000000000 +0100
@@ -0,0 +1,49 @@
+ headerdir = join_paths(meson.source_root(), 'va')
+footer = join_paths(meson.current_source_dir(), 'va_footer.html')
+
+libva_headers_doc = [
+  'va.h',
+  'va_enc_h264.h',
+  'va_enc_mpeg2.h',
+  'va_enc_jpeg.h',
+  'va_enc_hevc.h',
+  'va_enc_vp8.h',
+  'va_enc_vp9.h',
+  'va_fei.h',
+  'va_fei_h264.h',
+  'va_fei_hevc.h',
+  'va_dec_hevc.h',
+  'va_dec_jpeg.h',
+  'va_dec_vp8.h',
+  'va_dec_vp9.h',
+  'va_vpp.h'
+]
+
+libva_doc_files = []
+headers = ''
+foreach h : libva_headers_doc
+  libva_doc_files += join_paths (headerdir, h)
+  headers += ' ' + join_paths (headerdir, h)
+endforeach
+
+config = configuration_data()
+config.set('PACKAGE_VERSION', meson.project_version())
+config.set('VA_HEADER_DIR', headerdir)
+config.set('VA_HEADER_FILES', headers)
+config.set('VA_HTML_FOOTER', footer)
+config.set('OUTDIR', meson.current_build_dir())
+
+doxyfile = configure_file(
+  input: 'Doxyfile.in',
+  output: 'Doxyfile',
+  configuration: config)
+
+doc_install_dir = join_paths(get_option('datadir'), 'doc', 
meson.project_name())
+custom_target(
+  'doc',
+  command: [ doxygen, doxyfile ],
+  depend_files: libva_doc_files,
+  input: doxyfile,
+  output: 'html-out',
+  install: true,
+  install_dir: doc_install_dir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/meson.build new/libva-2.6.1/meson.build
--- old/libva-2.5.0/meson.build 1970-01-01 01:00:00.000000000 +0100
+++ new/libva-2.6.1/meson.build 2020-01-17 12:12:50.000000000 +0100
@@ -0,0 +1,132 @@
+# libva package version number, (as distinct from shared library version)
+# XXX: we want the package version to remain at 1.0.x for VA-API 0.32.y
+#
+# - major version is automatically generated from VA-API major version
+# - minor version is automatically generated from VA-API minor version
+# - increment micro for any library release
+# - reset micro version to zero when VA-API major or minor version is changed
+project(
+  'libva', 'c',
+  version : '2.6.1',
+  meson_version : '>= 0.37.0',
+  default_options : [ 'warning_level=1',
+                      'buildtype=debugoptimized' ])
+
+# VA-API version
+# - increment major for any ABI change
+# - increment minor for any interface change (e.g. new/modified function)
+# - increment micro for any other change (new flag, new codec definition, etc.)
+# - reset micro version to zero when minor version is incremented
+# - reset minor version to zero when major version is incremented
+va_api_major_version = 1
+va_api_minor_version = 6
+va_api_micro_version = 0
+
+va_api_version = '@0@.@1@.@2@'.format(va_api_major_version,
+                                     va_api_minor_version,
+                                     va_api_micro_version)
+
+version_arr = meson.project_version().split('.')
+libva_major_version = version_arr[0]
+libva_minor_version = version_arr[1]
+libva_micro_version = version_arr[2]
+libva_version = '@0@.@1@.@2@'.format(libva_major_version,
+                                    libva_minor_version,
+                                    libva_micro_version)
+if version_arr.length() == 4
+  libva_version = '@0@.pre@1@'.format(libva_version, version_arr[3])
+endif
+
+
+# libva library version number (generated, do not change)
+# XXX: we want the SONAME to remain at libva.so.1 for VA-API major == 0
+#
+# The library name is generated libva.<x>.<y>.0 where
+# <x> = VA-API major version + 1
+# <y> = 100 * VA-API minor version + VA-API micro version
+#
+# For example:
+# VA-API 0.32.0 generates libva.so.1.3200.0
+# VA-API 0.34.1 generates libva.so.1.3401.0
+# VA-API 1.2.13 generates libva.so.2.213.0
+libva_interface_bias = va_api_major_version + 1
+libva_interface_age = 0
+libva_binary_age = 100 * va_api_minor_version + va_api_micro_version - 
libva_interface_age
+
+libva_lt_current = 100 * va_api_minor_version + va_api_micro_version + 
libva_interface_bias
+libva_lt_revision = libva_interface_age
+libva_lt_age = libva_binary_age - libva_interface_age
+
+libva_lt_current = libva_lt_current - libva_lt_age
+
+libva_lt_version = '@0@.@1@.@2@'.format(libva_lt_current,
+                                       libva_lt_age,
+                                       libva_lt_revision)
+
+driverdir = get_option('driverdir')
+if driverdir == ''
+  driverdir = '@0@/@1@/@2@'.format(get_option('prefix'), get_option('libdir'), 
'dri')
+endif
+
+configinc = include_directories('.')
+
+cc = meson.get_compiler('c')
+dl_dep = cc.find_library('dl', required : false)
+
+libdrm_dep = dependency('libdrm', version : '>= 2.4')
+
+WITH_DRM = not get_option('disable_drm')
+
+WITH_X11 = false
+if get_option('with_x11') != 'no'
+  x11_dep = dependency('x11', required : get_option('with_x11') == 'yes')
+  xext_dep = dependency('xext', required : get_option('with_x11') == 'yes')
+  xfixes_dep = dependency('xfixes', required : get_option('with_x11') == 'yes')
+
+  WITH_X11 = (x11_dep.found() and xext_dep.found() and xfixes_dep.found())
+endif
+
+if not WITH_X11 and get_option('with_glx') == 'yes'
+  error('VA/GLX explicitly enabled, but VA/X11 isn\'t built')
+endif
+
+WITH_GLX = false
+if WITH_X11 and get_option('with_glx') != 'no'
+  gl_dep = dependency('gl', required : get_option('with_glx') == 'yes')
+  WITH_GLX = gl_dep.found()
+endif
+
+WITH_WAYLAND = false
+if get_option('with_wayland') != 'no'
+  wayland_dep = dependency('wayland-client', version : '>= 1.11.0',
+                          required : get_option('with_wayland') == 'yes')
+  if wayland_dep.found()
+    prefix = wayland_dep.get_pkgconfig_variable('prefix')
+    wl_scanner = find_program('wayland-scanner',
+                             prefix + '/bin/wayland-scanner')
+  endif
+  WITH_WAYLAND = wayland_dep.found()
+endif
+
+va_c_args = []
+if get_option('enable_va_messaging')
+  va_c_args += ['-DENABLE_VA_MESSAGING=1']
+endif
+
+# Symbol visibility
+if cc.has_argument('-fvisibility=hidden')
+  va_c_args += ['-DHAVE_GNUC_VISIBILITY_ATTRIBUTE']
+endif
+
+if (not WITH_DRM and not WITH_X11 and not WITH_WAYLAND)
+  error('Please install at least one backend dev files (DRM, X11, Wayland)')
+endif
+
+subdir('va')
+subdir('pkgconfig')
+
+doxygen = find_program('doxygen', required: false)
+
+if get_option('enable_docs') and doxygen.found()
+  subdir('doc')
+endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/meson_options.txt 
new/libva-2.6.1/meson_options.txt
--- old/libva-2.5.0/meson_options.txt   1970-01-01 01:00:00.000000000 +0100
+++ new/libva-2.6.1/meson_options.txt   2019-11-15 10:51:03.000000000 +0100
@@ -0,0 +1,7 @@
+option('driverdir', type : 'string', description : 'drivers path')
+option('disable_drm', type : 'boolean', value : false)
+option('with_x11', type : 'combo', choices : ['yes', 'no', 'auto'], value : 
'auto')
+option('with_glx', type : 'combo', choices : ['yes', 'no', 'auto'], value : 
'auto')
+option('with_wayland', type : 'combo', choices : ['yes', 'no', 'auto'], value 
: 'auto')
+option('enable_docs', type : 'boolean', value : false)
+option('enable_va_messaging', type : 'boolean', value : true)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/pkgconfig/Makefile.am 
new/libva-2.6.1/pkgconfig/Makefile.am
--- old/libva-2.5.0/pkgconfig/Makefile.am       2018-12-26 11:22:41.000000000 
+0100
+++ new/libva-2.6.1/pkgconfig/Makefile.am       2019-12-17 14:46:07.000000000 
+0100
@@ -43,7 +43,7 @@
 pkgconfigdir = @pkgconfigdir@
 pkgconfig_DATA = $(pcfiles)
 
-EXTRA_DIST = $(all_pcfiles_in)
+EXTRA_DIST = $(all_pcfiles_in) meson.build
 
 DISTCLEANFILES = $(pcfiles)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/pkgconfig/Makefile.in 
new/libva-2.6.1/pkgconfig/Makefile.in
--- old/libva-2.5.0/pkgconfig/Makefile.in       2019-07-05 16:14:46.000000000 
+0200
+++ new/libva-2.6.1/pkgconfig/Makefile.in       2020-01-17 12:30:10.000000000 
+0100
@@ -335,7 +335,7 @@
 all_pcfiles_in = libva.pc.in libva-drm.pc.in libva-x11.pc.in \
        libva-glx.pc.in libva-wayland.pc.in
 pkgconfig_DATA = $(pcfiles)
-EXTRA_DIST = $(all_pcfiles_in)
+EXTRA_DIST = $(all_pcfiles_in) meson.build
 DISTCLEANFILES = $(pcfiles)
 
 # Extra clean files so that maintainer-clean removes *everything*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/pkgconfig/meson.build 
new/libva-2.6.1/pkgconfig/meson.build
--- old/libva-2.5.0/pkgconfig/meson.build       1970-01-01 01:00:00.000000000 
+0100
+++ new/libva-2.6.1/pkgconfig/meson.build       2018-12-26 11:22:41.000000000 
+0100
@@ -0,0 +1,39 @@
+pkgconf = configuration_data()
+
+pkgconf.set('prefix', get_option('prefix'))
+pkgconf.set('exec_prefix', '${prefix}')
+pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
+pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
+pkgconf.set('LIBVA_VERSION', libva_version)
+pkgconf.set('VA_API_VERSION', va_api_version)
+pkgconf.set('LIBVA_DRIVERS_PATH', driverdir)
+
+pkg_install_dir = '@0@/pkgconfig'.format(get_option('libdir'))
+
+pkg_files = [ 'libva' ]
+
+if WITH_DRM
+  pkg_files += [ 'libva-drm' ]
+endif
+
+if WITH_X11
+  pkg_files += [ 'libva-x11' ]
+endif
+
+if WITH_GLX
+  pkg_files += [ 'libva-glx' ]
+endif
+
+if WITH_WAYLAND
+  pkg_files += [ 'libva-wayland' ]
+endif
+
+foreach p : pkg_files
+  infile = p + '.pc.in'
+  outfile = p + '.pc'
+  configure_file(
+    input : infile,
+    output : outfile,
+    configuration : pkgconf,
+    install_dir : pkg_install_dir)
+endforeach
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/Makefile.am 
new/libva-2.6.1/va/Makefile.am
--- old/libva-2.5.0/va/Makefile.am      2019-01-25 18:59:24.000000000 +0100
+++ new/libva-2.6.1/va/Makefile.am      2019-12-17 14:46:07.000000000 +0100
@@ -147,4 +147,5 @@
 EXTRA_DIST = \
        libva.syms              \
        va_version.h.in         \
+       meson.build             \
        $(NULL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/Makefile.in 
new/libva-2.6.1/va/Makefile.in
--- old/libva-2.5.0/va/Makefile.in      2019-07-05 16:14:46.000000000 +0200
+++ new/libva-2.6.1/va/Makefile.in      2020-01-17 12:30:10.000000000 +0100
@@ -547,6 +547,7 @@
 EXTRA_DIST = \
        libva.syms              \
        va_version.h.in         \
+       meson.build             \
        $(NULL)
 
 all: all-recursive
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/drm/va_drm.c 
new/libva-2.6.1/va/drm/va_drm.c
--- old/libva-2.5.0/va/drm/va_drm.c     2018-12-26 11:22:42.000000000 +0100
+++ new/libva-2.6.1/va/drm/va_drm.c     2019-12-25 16:38:29.000000000 +0100
@@ -51,24 +51,19 @@
     free(pDisplayContext->pDriverContext);
     free(pDisplayContext);
 }
-
-static VAStatus
-va_DisplayContextGetDriverName(
+static VAStatus va_DisplayContextGetNumCandidates(
     VADisplayContextP pDisplayContext,
-    char            **driver_name_ptr
+    int *num_candidates
 )
 {
-
     VADriverContextP const ctx = pDisplayContext->pDriverContext;
     struct drm_state * const drm_state = ctx->drm_state;
+    VAStatus status = VA_STATUS_SUCCESS;
     drm_magic_t magic;
-    VAStatus status;
     int ret;
-
-    status = VA_DRM_GetDriverName(ctx, driver_name_ptr);
+    status = VA_DRM_GetNumCandidates(ctx, num_candidates);
     if (status != VA_STATUS_SUCCESS)
         return status;
-
     /* Authentication is only needed for a legacy DRM device */
     if (ctx->display_type != VA_DISPLAY_DRM_RENDERNODES) {
         ret = drmGetMagic(drm_state->fd, &magic);
@@ -80,10 +75,22 @@
     }
 
     drm_state->auth_type = VA_DRM_AUTH_CUSTOM;
-
     return VA_STATUS_SUCCESS;
 }
 
+static VAStatus
+va_DisplayContextGetDriverNameByIndex(
+    VADisplayContextP pDisplayContext,
+    char            **driver_name_ptr,
+    int               candidate_index
+)
+{
+
+    VADriverContextP const ctx = pDisplayContext->pDriverContext;
+
+    return VA_DRM_GetDriverName(ctx, driver_name_ptr, candidate_index);
+}
+
 VADisplay
 vaGetDisplayDRM(int fd)
 {
@@ -108,7 +115,8 @@
 
     pDisplayContext->vaIsValid       = va_DisplayContextIsValid;
     pDisplayContext->vaDestroy       = va_DisplayContextDestroy;
-    pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName;
+    pDisplayContext->vaGetNumCandidates = va_DisplayContextGetNumCandidates;
+    pDisplayContext->vaGetDriverNameByIndex = 
va_DisplayContextGetDriverNameByIndex;
 
     pDriverContext = va_newDriverContext(pDisplayContext);
     if (!pDriverContext)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/drm/va_drm_utils.c 
new/libva-2.6.1/va/drm/va_drm_utils.c
--- old/libva-2.5.0/va/drm/va_drm_utils.c       2019-06-17 12:35:14.000000000 
+0200
+++ new/libva-2.6.1/va/drm/va_drm_utils.c       2019-12-25 16:38:29.000000000 
+0100
@@ -37,6 +37,7 @@
 };
 
 static const struct driver_name_map g_driver_name_map[] = {
+    { "i915",       4, "iHD"    }, // Intel Media driver
     { "i915",       4, "i965"   }, // Intel OTC GenX driver
     { "pvrsrvkm",   8, "pvr"    }, // Intel UMG PVR driver
     { "emgd",       4, "emgd"   }, // Intel ECG PVR driver
@@ -47,14 +48,39 @@
     { NULL,         0, NULL }
 };
 
+/* Returns the VA driver candidate num for the active display*/
+VAStatus
+VA_DRM_GetNumCandidates(VADriverContextP ctx, int * num_candidates)
+{
+    struct drm_state * const drm_state = ctx->drm_state;
+    drmVersionPtr drm_version;
+    int num_of_candidate = 0;
+    const struct driver_name_map *m = NULL;
+    if (!drm_state || drm_state->fd < 0)
+        return VA_STATUS_ERROR_INVALID_DISPLAY;
+    drm_version = drmGetVersion(drm_state->fd);
+    if (!drm_version)
+        return VA_STATUS_ERROR_UNKNOWN;
+    for (m = g_driver_name_map; m->key != NULL; m++) {
+        if (drm_version->name_len >= m->key_len &&
+            strncmp(drm_version->name, m->key, m->key_len) == 0) {
+            num_of_candidate ++;
+        }
+    }
+    drmFreeVersion(drm_version);
+    *num_candidates = num_of_candidate;
+    return VA_STATUS_SUCCESS;
+}
+
 /* Returns the VA driver name for the active display */
 VAStatus
-VA_DRM_GetDriverName(VADriverContextP ctx, char **driver_name_ptr)
+VA_DRM_GetDriverName(VADriverContextP ctx, char **driver_name_ptr, int 
candidate_index)
 {
     struct drm_state * const drm_state = ctx->drm_state;
     drmVersionPtr drm_version;
     char *driver_name = NULL;
     const struct driver_name_map *m;
+    int current_index = 0;
 
     *driver_name_ptr = NULL;
 
@@ -67,8 +93,12 @@
 
     for (m = g_driver_name_map; m->key != NULL; m++) {
         if (drm_version->name_len >= m->key_len &&
-            strncmp(drm_version->name, m->key, m->key_len) == 0)
-            break;
+            strncmp(drm_version->name, m->key, m->key_len) == 0) {
+            if (current_index == candidate_index) {
+                break;
+            }
+            current_index ++;
+        }
     }
     drmFreeVersion(drm_version);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/drm/va_drm_utils.h 
new/libva-2.6.1/va/drm/va_drm_utils.h
--- old/libva-2.5.0/va/drm/va_drm_utils.h       2018-12-26 11:22:42.000000000 
+0100
+++ new/libva-2.6.1/va/drm/va_drm_utils.h       2019-12-25 16:38:29.000000000 
+0100
@@ -41,7 +41,9 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-
+DLL_HIDDEN
+VAStatus
+VA_DRM_GetNumCandidates(VADriverContextP ctx, int * num_candidates);
 /**
  * \brief Returns the VA driver name for the active display.
  *
@@ -62,7 +64,7 @@
  */
 DLL_HIDDEN
 VAStatus
-VA_DRM_GetDriverName(VADriverContextP ctx, char **driver_name_ptr);
+VA_DRM_GetDriverName(VADriverContextP ctx, char **driver_name_ptr, int 
candidate_index);
 
 /**
  * \brief Checks whether the file descriptor is a DRM Render-Nodes one
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/meson.build 
new/libva-2.6.1/va/meson.build
--- old/libva-2.5.0/va/meson.build      1970-01-01 01:00:00.000000000 +0100
+++ new/libva-2.6.1/va/meson.build      2019-11-15 10:51:03.000000000 +0100
@@ -0,0 +1,255 @@
+version_cfg = configuration_data()
+version_cfg.set('VA_API_MAJOR_VERSION', va_api_major_version)
+version_cfg.set('VA_API_MINOR_VERSION', va_api_minor_version)
+version_cfg.set('VA_API_MICRO_VERSION', va_api_micro_version)
+version_cfg.set('VA_API_VERSION', va_api_version)
+
+version_file = configure_file(
+  input : 'va_version.h.in',
+  output : 'va_version.h',
+  configuration : version_cfg)
+
+libva_sources = [
+  'va.c',
+  'va_compat.c',
+  'va_fool.c',
+  'va_str.c',
+  'va_trace.c',
+]
+
+libva_headers = [
+  'va.h',
+  'va_backend.h',
+  'va_backend_vpp.h',
+  'va_compat.h',
+  'va_dec_hevc.h',
+  'va_dec_jpeg.h',
+  'va_dec_vp8.h',
+  'va_dec_vp9.h',
+  'va_drmcommon.h',
+  'va_egl.h',
+  'va_enc_hevc.h',
+  'va_enc_h264.h',
+  'va_enc_jpeg.h',
+  'va_enc_vp8.h',
+  'va_fei.h',
+  'va_fei_h264.h',
+  'va_fei_hevc.h',
+  'va_enc_mpeg2.h',
+  'va_enc_vp9.h',
+  'va_str.h',
+  'va_tpi.h',
+  'va_vpp.h',
+  version_file,
+]
+
+libva_headers_priv = [
+  'sysdeps.h',
+  'va_fool.h',
+  'va_internal.h',
+  'va_trace.h',
+]
+
+libva_sym = 'libva.syms'
+libva_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libva_sym)
+
+install_headers(libva_headers, subdir : 'va')
+
+libva = shared_library(
+  'va',
+  sources : libva_sources +
+            libva_headers +
+            libva_headers_priv,
+  soversion : libva_lt_current,
+  version : libva_lt_version,
+  c_args : ['-DVA_DRIVERS_PATH="' + driverdir + '"'] + va_c_args,
+  include_directories : configinc,
+  link_args : '-Wl,-version-script,' + libva_sym_path,
+  link_depends : libva_sym,
+  install : true,
+  dependencies : [ dl_dep ])
+
+libva_dep = declare_dependency(
+  link_with : libva,
+  include_directories : configinc,
+  dependencies : [ dl_dep ])
+
+if WITH_DRM
+  libva_drm_sources = [
+    'drm/va_drm.c',
+    'drm/va_drm_auth.c',
+    'drm/va_drm_utils.c',
+  ]
+
+  libva_drm_headers = [
+    'drm/va_drm.h',
+  ]
+
+  libva_drm_headers_priv = [
+    'drm/va_drm_auth.h',
+    'drm/va_drm_auth_x11.h',
+    'drm/va_drm_utils.h',
+  ]
+
+  deps = [ libdrm_dep ]
+
+  libva_drm_args = []
+  if get_option('with_x11') != 'no' and x11_dep.found()
+    libva_drm_sources += [ 'drm/va_drm_auth_x11.c' ]
+    libva_drm_args += [
+      '-DLIBVA_MAJOR_VERSION=@0@'.format(libva_major_version)
+    ]
+    deps += [ x11_dep ]
+  endif
+
+  install_headers(libva_drm_headers, subdir : 'va')
+
+  libva_drm = shared_library(
+    'va-drm',
+    sources : libva_drm_sources +
+              libva_drm_headers +
+              libva_drm_headers_priv,
+    soversion : libva_lt_current,
+    version : libva_lt_version,
+    install : true,
+    c_args : libva_drm_args,
+    dependencies : deps + [ libva_dep ])
+
+  libva_drm_dep = declare_dependency(
+    link_with : libva_drm,
+    include_directories : configinc,
+    dependencies : deps)
+endif
+
+if WITH_X11
+  libva_x11_sources = [
+    'x11/dri2_util.c',
+    'x11/va_dri2.c',
+    'x11/va_dricommon.c',
+    'x11/va_fglrx.c',
+    'x11/va_nvctrl.c',
+    'x11/va_x11.c',
+  ]
+
+  libva_x11_headers = [
+    'va_x11.h',
+    'x11/va_dri2.h',
+    'x11/va_dricommon.h',
+  ]
+
+  libva_x11_headers_priv = [
+    'x11/va_dri2str.h',
+    'x11/va_dri2tokens.h',
+    'x11/va_fglrx.h',
+    'x11/va_nvctrl.h',
+  ]
+
+  install_headers(libva_x11_headers, subdir : 'va')
+
+  deps = [ libdrm_dep, x11_dep, xext_dep, xfixes_dep, libva_dep ]
+
+  libva_x11 = shared_library(
+    'va-x11',
+    sources : libva_x11_sources +
+              libva_x11_headers +
+              libva_x11_headers_priv,
+    soversion : libva_lt_current,
+    version : libva_lt_version,
+    install : true,
+    dependencies : deps)
+
+  libva_x11_dep = declare_dependency(
+    link_with : libva_x11,
+    include_directories : configinc,
+    dependencies : deps)
+endif
+
+if WITH_GLX
+  libva_glx_sources = [
+    'glx/va_glx.c',
+    'glx/va_glx_impl.c',
+  ]
+
+  libva_glx_headers = [
+    'glx/va_backend_glx.h',
+    'glx/va_glx.h',
+  ]
+
+  libva_glx_headers_priv = [
+    'glx/va_glx_impl.h',
+    'glx/va_glx_private.h',
+  ]
+
+  install_headers(libva_glx_headers, subdir : 'va')
+
+  deps = [ gl_dep, libva_x11_dep ]
+
+  libva_glx = shared_library(
+    'va-glx',
+    sources : libva_glx_sources +
+              libva_glx_headers +
+              libva_glx_headers_priv,
+    soversion : libva_lt_current,
+    version : libva_lt_version,
+    install : true,
+    dependencies : deps)
+
+  libva_glx_dep = declare_dependency(
+    link_with : libva_glx,
+    include_directories : configinc,
+    dependencies : deps)
+endif
+
+if WITH_WAYLAND
+  libva_wayland_sources = [
+    'wayland/va_wayland.c',
+    'wayland/va_wayland_drm.c',
+    'wayland/va_wayland_emgd.c',
+    'drm/va_drm_utils.c',
+  ]
+
+  libva_wayland_headers = [
+    'wayland/va_backend_wayland.h',
+    'wayland/va_wayland.h',
+  ]
+
+  libva_wayland_headers_priv = [
+    'wayland/va_wayland_drm.h',
+    'wayland/va_wayland_emgd.h',
+    'wayland/va_wayland_private.h',
+  ]
+
+  protocol_files = [
+    custom_target(
+      'wayland-drm-client-protocol.c',
+      output : 'wayland-drm-client-protocol.c',
+      input : 'wayland/wayland-drm.xml',
+      command : [wl_scanner, 'code', '@INPUT@', '@OUTPUT@']),
+
+    custom_target(
+      'wayland-drm-client-protocol.h',
+      output : 'wayland-drm-client-protocol.h',
+      input : 'wayland/wayland-drm.xml',
+      command : [wl_scanner, 'client-header', '@INPUT@', '@OUTPUT@'])
+  ]
+
+  install_headers(libva_wayland_headers, subdir : 'va')
+
+  deps = [ libdrm_dep, wayland_dep, libva_dep ]
+
+  libva_wayland = shared_library(
+    'va-wayland',
+    sources : libva_wayland_sources +
+              libva_wayland_headers +
+              libva_wayland_headers_priv +
+              protocol_files,
+    soversion : libva_lt_current,
+    version : libva_lt_version,
+    install : true,
+    dependencies : deps)
+
+  libva_wayland_dep = declare_dependency(
+    link_with : libva_wayland,
+    include_directories : configinc,
+    dependencies : deps)
+endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/va.c new/libva-2.6.1/va/va.c
--- old/libva-2.5.0/va/va.c     2019-06-17 12:35:14.000000000 +0200
+++ new/libva-2.6.1/va/va.c     2020-01-17 12:11:32.000000000 +0100
@@ -341,12 +341,65 @@
     int ret = snprintf(name, namelen, "__vaDriverInit_%d_%d", major, minor);
     return ret > 0 && ret < namelen;
 }
+/** retrieve the back end driver candidate num , by default it should be 1
+  * if there are no vaGetNumCandidates implementation in the display context
+  * it should be 1 to avoid backward compatible issue */
+static VAStatus va_getDriverNumCandidates(VADisplay dpy, int *num_candidates)
+{
+    VADisplayContextP pDisplayContext = (VADisplayContextP)dpy;
+    *num_candidates = 1;
+    const char *driver_name_env = NULL;
+    VAStatus vaStatus = VA_STATUS_SUCCESS;
+    VADriverContextP ctx;
+
+    ctx = CTX(dpy);
+    driver_name_env = getenv("LIBVA_DRIVER_NAME");
+
+    if (pDisplayContext->vaGetNumCandidates)
+        vaStatus = pDisplayContext->vaGetNumCandidates(pDisplayContext, 
num_candidates);
+    if ((ctx->override_driver_name) || (driver_name_env && (geteuid() == 
getuid())))
+        *num_candidates = 1;
+    return vaStatus;
+}
 
-static VAStatus va_getDriverName(VADisplay dpy, char **driver_name)
+static VAStatus va_getDriverNameByIndex(VADisplay dpy, char **driver_name, int 
candidate_index)
 {
     VADisplayContextP pDisplayContext = (VADisplayContextP)dpy;
+    const char *driver_name_env = NULL;
+    VADriverContextP ctx;
+    VAStatus status = VA_STATUS_SUCCESS;
 
-    return pDisplayContext->vaGetDriverName(pDisplayContext, driver_name);
+    ctx = CTX(dpy);
+    if (pDisplayContext->vaGetDriverNameByIndex) {
+        /*if vaGetDriverNameByIndex is implemented*/
+        status = pDisplayContext->vaGetDriverNameByIndex(pDisplayContext, 
driver_name, candidate_index);
+    } else {
+        if (candidate_index == 0)
+            status = pDisplayContext->vaGetDriverName(pDisplayContext, 
driver_name);
+        else
+            status = VA_STATUS_ERROR_INVALID_PARAMETER;
+    }    
+    driver_name_env = getenv("LIBVA_DRIVER_NAME");
+    /*if user set driver name by vaSetDriverName */
+    if (ctx->override_driver_name){
+        if(*driver_name)
+            free(*driver_name);
+        *driver_name = strdup(ctx->override_driver_name);
+        if (!(*driver_name)) {
+              va_errorMessage(dpy, "va_getDriverNameByIndex  failed with %s, 
out of memory\n",vaErrorStr(VA_STATUS_ERROR_ALLOCATION_FAILED));
+            return VA_STATUS_ERROR_ALLOCATION_FAILED;
+        }
+        va_infoMessage(dpy, "User requested driver '%s'\n", *driver_name);
+        return VA_STATUS_SUCCESS;
+    } else if (driver_name_env && (geteuid() == getuid())) {
+        if(*driver_name)
+            free(*driver_name);
+        /*if user set driver name by environment variable*/
+        *driver_name = strdup(driver_name_env);
+        va_infoMessage(dpy, "User environment variable requested driver 
'%s'\n", *driver_name);
+        return VA_STATUS_SUCCESS;
+    } 
+    return status;
 }
 
 static char *va_getDriverPath(const char *driver_dir, const char *driver_name)
@@ -417,6 +470,7 @@
                 int minor;
             } compatible_versions[] = {
                 { VA_MAJOR_VERSION, VA_MINOR_VERSION },
+                { VA_MAJOR_VERSION, 5 },
                 { VA_MAJOR_VERSION, 4 },
                 { VA_MAJOR_VERSION, 3 },
                 { VA_MAJOR_VERSION, 2 },
@@ -656,15 +710,13 @@
     int *minor_version          /* out */
 )
 {
-    const char *driver_name_env = NULL;
     char *driver_name = NULL;
+    int  num_candidates = 1;
+    int  candidate_index = 0;
     VAStatus vaStatus;
-    VADriverContextP ctx;
 
     CHECK_DISPLAY(dpy);
 
-    ctx = CTX(dpy);
-
     va_TraceInit(dpy);
 
     va_FoolInit(dpy);
@@ -672,46 +724,31 @@
     va_MessagingInit();
 
     va_infoMessage(dpy, "VA-API version %s\n", VA_VERSION_S);
-
-    vaStatus = va_getDriverName(dpy, &driver_name);
-
-    if (!ctx->override_driver_name) {
-        va_infoMessage(dpy, "va_getDriverName() returns %d\n", vaStatus);
-
-        driver_name_env = getenv("LIBVA_DRIVER_NAME");
-    } else if (vaStatus == VA_STATUS_SUCCESS) {
-        if (driver_name)
+    /*get backend driver candidate number, by default the value should be 1*/
+    vaStatus = va_getDriverNumCandidates(dpy, &num_candidates);
+    if (vaStatus != VA_STATUS_SUCCESS) {
+        num_candidates = 1;
+    }
+    /*load driver one by one, until load success */
+    for (candidate_index = 0; candidate_index < num_candidates; 
candidate_index ++) {
+        if(driver_name)
             free(driver_name);
-
-        driver_name = strdup(ctx->override_driver_name);
-        if (!driver_name) {
-            vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
-            va_errorMessage(dpy, "vaInitialize() failed with %s, out of 
memory\n",
-                        vaErrorStr(vaStatus));
-            return vaStatus;
+        vaStatus = va_getDriverNameByIndex(dpy, &driver_name, candidate_index);
+        if(vaStatus != VA_STATUS_SUCCESS) {
+            va_errorMessage(dpy, "vaGetDriverNameByIndex() failed with %s, 
driver_name = %s\n", vaErrorStr(vaStatus), driver_name);
+            break;
         }
-        va_infoMessage(dpy, "User requested driver '%s'\n", driver_name);
-    }
+        vaStatus = va_openDriver(dpy, driver_name);
+        va_infoMessage(dpy, "va_openDriver() returns %d\n", vaStatus);
 
-    if (driver_name_env && (geteuid() == getuid())) {
-        /* Don't allow setuid apps to use LIBVA_DRIVER_NAME */
-        if (driver_name) /* memory is allocated in va_getDriverName */
-            free(driver_name);
+        if (vaStatus == VA_STATUS_SUCCESS) {
+            break;
+       }
         
-        driver_name = strdup(driver_name_env);
-        vaStatus = VA_STATUS_SUCCESS;
-        va_infoMessage(dpy, "User requested driver '%s'\n", driver_name);
     }
 
-    if ((VA_STATUS_SUCCESS == vaStatus) && (driver_name != NULL)) {
-        vaStatus = va_openDriver(dpy, driver_name);
-        va_infoMessage(dpy, "va_openDriver() returns %d\n", vaStatus);
-
-        *major_version = VA_MAJOR_VERSION;
-        *minor_version = VA_MINOR_VERSION;
-    } else
-        va_errorMessage(dpy, "va_getDriverName() failed with 
%s,driver_name=%s\n",
-                        vaErrorStr(vaStatus), driver_name);
+    *major_version = VA_MAJOR_VERSION;
+    *minor_version = VA_MINOR_VERSION;
 
     if (driver_name)
         free(driver_name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/va.h new/libva-2.6.1/va/va.h
--- old/libva-2.5.0/va/va.h     2019-06-28 16:38:52.000000000 +0200
+++ new/libva-2.6.1/va/va.h     2019-12-17 14:46:07.000000000 +0100
@@ -761,6 +761,22 @@
      * attribute value \c VAConfigAttribValMaxFrameSize represent max frame 
size support   
      */
     VAConfigAttribMaxFrameSize           = 38,
+    /** \brief inter frame prediction directrion attribute. Read-only.
+     * this attribute conveys the prediction direction (backward or forword) 
for specific config
+     * the value could be  VA_PREDICTION_DIRECTION_XXXX. it can be combined 
with VAConfigAttribEncMaxRefFrames
+     * to describe reference list , and the prediction direction. if this 
attrib is not present,both direction
+     * should be supported, no restriction.
+     * for example: normal HEVC encoding , maximum reference frame number in 
reflist 0 and reflist 1 is deduced
+     * by  VAConfigAttribEncMaxRefFrames. so there are typical P frame, B 
frame,
+     * if VAConfigAttribPredictionDirection is also present. it will stipulate 
prediction direction in both
+     * reference list. if only one prediction direction present(such as 
PREVIOUS),all reference frame should be
+     *  previous frame (PoC < current).
+     */
+    VAConfigAttribPredictionDirection   = 39,
+    /** \brief combined submission of multiple frames from different streams, 
it is optimization for different HW
+     * implementation, multiple frames encode/decode can improve HW concurrency
+     */
+    VAConfigAttribMultipleFrame         = 40,
     /**@}*/
     VAConfigAttribTypeMax
 } VAConfigAttribType;
@@ -863,14 +879,13 @@
 /** @name Attribute values for VAConfigAttribDecJPEG */
 /**@{*/
 typedef union _VAConfigAttribValDecJPEG {
-    struct{
+    struct {
     /** \brief Set to (1 << VA_ROTATION_xxx) for supported rotation angles. */
     uint32_t rotation : 4;
     /** \brief Reserved for future use. */
     uint32_t reserved : 28;
-    }bits;
+    } bits;
     uint32_t value;
-    uint32_t va_reserved[VA_PADDING_LOW];
 } VAConfigAttribValDecJPEG;
 /** @name Attribute values for VAConfigAttribDecProcessing */
 /**@{*/
@@ -990,6 +1005,19 @@
 #define VA_ENC_QUANTIZATION_TRELLIS_SUPPORTED           0x00000001
 /**@}*/
 
+/** @name Attribute values for VAConfigAttribPredictionDirection */
+/**@{*/
+/** \brief Driver support forward reference frame (inter frame for vpx, P 
frame for H26x MPEG)
+ * can work with the VAConfigAttribEncMaxRefFrames. for example: low delay B 
frame of HEVC.
+ * these value can be OR'd together. typical value should be 
VA_PREDICTION_DIRECTION_PREVIOUS
+ * or VA_PREDICTION_DIRECTION_PREVIOUS | VA_PREDICTION_DIRECTION_FUTURE, 
theoretically, there
+ * are no stream only include future reference frame.
+ */
+#define VA_PREDICTION_DIRECTION_PREVIOUS                0x00000001
+/** \brief Driver support backward prediction frame/slice */
+#define VA_PREDICTION_DIRECTION_FUTURE                  0x00000002
+/**@}*/
+
 /** @name Attribute values for VAConfigAttribEncIntraRefresh */
 /**@{*/
 /** \brief Driver does not support intra refresh */
@@ -1086,6 +1114,21 @@
     uint32_t value;
 } VAConfigAttribValEncRateControlExt;
 
+/** \brief Attribute value for VAConfigAttribMultipleFrame*/
+typedef union _VAConfigAttribValMultipleFrame {
+    struct {
+        /** \brief max num of concurrent frames from different stream */
+        uint32_t max_num_concurrent_frames      : 8;
+        /** \brief indicate whether all stream must support same quality level
+         *  if mixed_quality_level == 0, same quality level setting for 
multple streams is required
+         *  if mixed_quality_level == 1, different stream can have different 
quality level*/
+        uint32_t mixed_quality_level            : 1;
+        /** \brief reserved bit for future, must be zero */
+        uint32_t reserved                       : 23;
+    } bits;
+    uint32_t value;
+}VAConfigAttribValMultipleFrame;
+
 /** @name Attribute values for VAConfigAttribProcessingRate. */
 /**@{*/
 /** \brief Driver does not support processing rate report */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/va_backend.h 
new/libva-2.6.1/va/va_backend.h
--- old/libva-2.5.0/va/va_backend.h     2019-06-17 12:35:14.000000000 +0200
+++ new/libva-2.6.1/va/va_backend.h     2019-12-25 16:38:29.000000000 +0100
@@ -651,9 +651,19 @@
     void *error_callback_user_context;
     VAMessageCallback info_callback;
     void *info_callback_user_context;
+    VAStatus (*vaGetNumCandidates) (
+        VADisplayContextP ctx,
+        int * num_candidates
+    );
+
+    VAStatus (*vaGetDriverNameByIndex) (
+        VADisplayContextP ctx,
+        char **driver_name,
+        int  candidate_index
+    );
 
     /** \brief Reserved bytes for future use, must be zero */
-    unsigned long reserved[32];
+    unsigned long reserved[30];
 };
 
 typedef VAStatus (*VADriverInit) (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/va_dec_hevc.h 
new/libva-2.6.1/va/va_dec_hevc.h
--- old/libva-2.5.0/va/va_dec_hevc.h    2019-03-04 17:20:41.000000000 +0100
+++ new/libva-2.6.1/va/va_dec_hevc.h    2019-12-17 14:46:07.000000000 +0100
@@ -485,10 +485,12 @@
     uint16_t                 num_entry_point_offsets;
     /** HEVC syntax element. */
     uint16_t                 entry_offset_to_subset_array;
+    /** \brief Number of emulation prevention bytes in slice header. */
+    uint16_t                slice_data_num_emu_prevn_bytes;
     /**@}*/
 
     /** \brief Reserved bytes for future use, must be zero */
-    uint32_t                va_reserved[VA_PADDING_LOW - 1];
+    uint32_t                va_reserved[VA_PADDING_LOW - 2];
 } VASliceParameterBufferHEVC;
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/va_enc_hevc.h 
new/libva-2.6.1/va/va_enc_hevc.h
--- old/libva-2.5.0/va/va_enc_hevc.h    2019-06-14 18:36:08.000000000 +0200
+++ new/libva-2.6.1/va/va_enc_hevc.h    2019-12-17 14:46:07.000000000 +0100
@@ -222,8 +222,19 @@
             uint32_t    pcm_loop_filter_disabled_flag                  : 1;
             /** \brief Same as the HEVC bitstream syntax element. */
             uint32_t    sps_temporal_mvp_enabled_flag                  : 1;
-
-            uint32_t    reserved_bits                                  : 16;
+            /** \brief Indicates whether or not the encoding is in low delay 
mode.
+              * 0 normal sequence
+              * 1 no random access B will be coded . and the coding type could 
be only I, P or LDB
+              * this flag only indicates the frame coding type of the sequence.
+              */
+            uint32_t    low_delay_seq                                  : 1;
+            /** \brief Indicates whether or not the encoding is in dyadic 
hierarchical GOP structure
+              * the default value 0, BRC would treat is as flat structure. if 
HierachicalFlag == 1,
+              * application would enable Qp Modulation
+              */
+            uint32_t    hierachical_flag                               : 1;
+            /** \brief keep for future , should be set to 0 */
+            uint32_t    reserved_bits                                  : 14;
         } bits;
         uint32_t value;
     } seq_fields;
@@ -316,7 +327,6 @@
     uint8_t     max_bytes_per_pic_denom;
     /** \brief Same as the HEVC bitstream syntax element. */
     uint8_t     max_bits_per_min_cu_denom;
-
     /** \brief Reserved bytes for future use, must be zero */
     uint32_t                va_reserved[VA_PADDING_MEDIUM];
     /**@}*/
@@ -521,8 +531,16 @@
         uint32_t        value;
     } pic_fields;
 
+    /** \brief When hierachical_level_plus1 > 0, hierachical_level_plus1-1 
indicates
+     *the current frame's level.when it > 0. B1, B2 setting in CodingType can 
be treated as B,
+     *hirachical level is determined by this variable.When 
hierachical_level_plus1  == 0,
+     *hierarchical level information still comes from coding_type.
+     */
+    uint8_t     hierarchical_level_plus1;
+    /** \brief Reserved bytes for future use, must be zero */
+    uint8_t     va_byte_reserved[3];
     /** \brief Reserved bytes for future use, must be zero */
-    uint32_t                va_reserved[VA_PADDING_HIGH];
+    uint32_t                va_reserved[VA_PADDING_HIGH - 1];
 } VAEncPictureParameterBufferHEVC;
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/va_str.c new/libva-2.6.1/va/va_str.c
--- old/libva-2.5.0/va/va_str.c 2019-06-28 16:38:52.000000000 +0200
+++ new/libva-2.6.1/va/va_str.c 2019-12-17 14:46:07.000000000 +0100
@@ -124,6 +124,8 @@
     TOSTR(VAConfigAttribQPBlockSize);
     TOSTR(VAConfigAttribStats);
     TOSTR(VAConfigAttribMaxFrameSize);
+    TOSTR(VAConfigAttribPredictionDirection);
+    TOSTR(VAConfigAttribMultipleFrame);
     case VAConfigAttribTypeMax: break;
     }
     return "<unknown config attribute type>";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/va_trace.c 
new/libva-2.6.1/va/va_trace.c
--- old/libva-2.5.0/va/va_trace.c       2019-06-26 12:21:11.000000000 +0200
+++ new/libva-2.6.1/va/va_trace.c       2019-12-17 14:46:07.000000000 +0100
@@ -99,8 +99,6 @@
 };
 
 struct trace_log_files_manager {
-    int num;
-
     struct trace_log_file log_file[MAX_TRACE_THREAD_NUM];
 };
 
@@ -848,9 +846,6 @@
     for(i = 0;i < MAX_TRACE_THREAD_NUM;i++) {
         struct trace_log_file *plog_file = NULL;
 
-        if(pva_trace->log_files_manager.num <= 0)
-            break;
-
         plog_file = &pva_trace->log_files_manager.log_file[i];
         if(plog_file) {
             if(plog_file->fn_log)
@@ -858,8 +853,6 @@
 
             if(plog_file->fp_log)
                 fclose(plog_file->fp_log);
-
-            pva_trace->log_files_manager.num--;
         }
     }
 
@@ -5026,6 +5019,9 @@
             }
             break;
         case VAProfileVP9Profile0:
+        case VAProfileVP9Profile1:
+        case VAProfileVP9Profile2:
+        case VAProfileVP9Profile3:
             for (j=0; j<num_elements; j++) {
                 va_TraceMsg(trace_ctx, "\telement[%d] = \n", j);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/va_version.h 
new/libva-2.6.1/va/va_version.h
--- old/libva-2.5.0/va/va_version.h     2019-07-05 16:14:49.000000000 +0200
+++ new/libva-2.6.1/va/va_version.h     2020-01-17 12:30:16.000000000 +0100
@@ -37,7 +37,7 @@
  *
  * The minor version of VA-API (2, if %VA_VERSION is 1.2.3)
  */
-#define VA_MINOR_VERSION    5
+#define VA_MINOR_VERSION    6
 
 /**
  * VA_MICRO_VERSION:
@@ -51,7 +51,7 @@
  *
  * The full version of VA-API, like 1.2.3
  */
-#define VA_VERSION          1.5.0
+#define VA_VERSION          1.6.0
 
 /**
  * VA_VERSION_S:
@@ -59,7 +59,7 @@
  * The full version of VA-API, in string form (suited for string
  * concatenation)
  */
-#define VA_VERSION_S       "1.5.0"
+#define VA_VERSION_S       "1.6.0"
 
 /**
  * VA_VERSION_HEX:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/va_vpp.h new/libva-2.6.1/va/va_vpp.h
--- old/libva-2.5.0/va/va_vpp.h 2019-06-26 13:06:02.000000000 +0200
+++ new/libva-2.6.1/va/va_vpp.h 2019-12-17 14:46:07.000000000 +0100
@@ -687,12 +687,53 @@
      *
      * See ISO/IEC 23001-8 or ITU H.273, section 8.1 and table 2.
      * Only used if the color standard in use is \c VAColorStandardExplicit.
+     * Below list the typical colour primaries for the reference.
+     * 
---------------------------------------------------------------------------------
+     * | Value | Primaries                  | Informative Remark               
        |
+     * 
--------------------------------------------------------------------------------
+     * | 1     |primary  x        y         |Rec.ITU-R BT.709-5                
        |
+     * |       |green    0.300    0.600     |IEC 61966-2-1(sRGB or sYCC)       
        |
+     * |       |blue     0.150    0.060     |                                  
        |
+     * |       |red      0.640    0.330     |                                  
        |
+     * |       |whiteD65 0.3127   0.3290    |                                  
        |
+     * 
---------------------------------------------------------------------------------
+     * | 6     |primary  x        y         |Rec.ITU-R BT.601-6 525            
        |
+     * |       |green    0.310    0.595     |                                  
        |
+     * |       |blue     0.155    0.070     |                                  
        |
+     * |       |red      0.630    0.340     |                                  
        |
+     * |       |whiteD65 0.3127   0.3290    |                                  
        |
+     * 
---------------------------------------------------------------------------------
+     * | 9     |primary  x        y         |Rec.ITU-R BT.2020                 
        |
+     * |       |green    0.170    0.797     |                                  
        |
+     * |       |blue     0.131    0.046     |                                  
        |
+     * |       |red      0.708    0.292     |                                  
        |
+     * |       |whiteD65 0.3127   0.3290    |                                  
        |
+     * 
---------------------------------------------------------------------------------
      */
     uint8_t colour_primaries;
     /** Transfer characteristics.
      *
      * See ISO/IEC 23001-8 or ITU H.273, section 8.2 and table 3.
      * Only used if the color standard in use is \c VAColorStandardExplicit.
+     * Below list the typical transfer characteristics for the reference.
+     * -----------------------------------------------------------
+     * | Value | Informative Remark                              |
+     * -----------------------------------------------------------
+     * | 1     |Rec.ITU-R BT.709-5                               |
+     * |       |colour gamut system                              |
+     * -----------------------------------------------------------
+     * | 4     |Assumed display gamma 2.2                        |
+     * -----------------------------------------------------------
+     * | 6     |Rec.ITU-R BT.601-6 525 or 625                    |
+     * -----------------------------------------------------------
+     * | 8     |Linear transfer characteristics                  |
+     * -----------------------------------------------------------
+     * | 13    |IEC 61966-2-1(sRGB or sYCC)                      |
+     * -----------------------------------------------------------
+     * | 14,15 |Rec.ITU-R BT.2020                                |
+     * -----------------------------------------------------------
+     * | 16    |SMPTE ST 2084 for 10,12,14 and 16bit system      |
+     * -----------------------------------------------------------
      */
     uint8_t transfer_characteristics;
     /** Matrix coefficients.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/wayland/va_wayland_drm.c 
new/libva-2.6.1/va/wayland/va_wayland_drm.c
--- old/libva-2.5.0/va/wayland/va_wayland_drm.c 2019-06-17 12:35:14.000000000 
+0200
+++ new/libva-2.6.1/va/wayland/va_wayland_drm.c 2019-12-25 16:38:29.000000000 
+0100
@@ -117,6 +117,29 @@
 };
 
 static VAStatus
+va_DisplayContextGetNumCandidates(
+    VADisplayContextP pDisplayContext,
+    int *candidate_index
+)
+{
+    VADriverContextP const ctx = pDisplayContext->pDriverContext;
+
+    return VA_DRM_GetNumCandidates(ctx, candidate_index);
+}
+
+static VAStatus
+va_DisplayContextGetDriverNameByIndex(
+    VADisplayContextP pDisplayContext,
+    char            **driver_name_ptr,
+    int             candidate_index
+)
+{
+    VADriverContextP const ctx = pDisplayContext->pDriverContext;
+
+    return VA_DRM_GetDriverName(ctx, driver_name_ptr, candidate_index);
+}
+
+static VAStatus
 va_DisplayContextGetDriverName(
     VADisplayContextP pDisplayContext,
     char            **driver_name_ptr
@@ -124,7 +147,7 @@
 {
     VADriverContextP const ctx = pDisplayContext->pDriverContext;
 
-    return VA_DRM_GetDriverName(ctx, driver_name_ptr);
+    return VA_DRM_GetDriverName(ctx, driver_name_ptr, 0);
 }
 
 void
@@ -237,6 +260,8 @@
     wl_drm_ctx->is_authenticated        = 0;
     pDisplayContext->opaque             = wl_drm_ctx;
     pDisplayContext->vaGetDriverName    = va_DisplayContextGetDriverName;
+    pDisplayContext->vaGetNumCandidates  = va_DisplayContextGetNumCandidates;
+    pDisplayContext->vaGetDriverNameByIndex = 
va_DisplayContextGetDriverNameByIndex;
 
     drm_state = calloc(1, sizeof(struct drm_state));
     if (!drm_state) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.5.0/va/wayland/wayland-drm-client-protocol.c 
new/libva-2.6.1/va/wayland/wayland-drm-client-protocol.c
--- old/libva-2.5.0/va/wayland/wayland-drm-client-protocol.c    2019-04-26 
17:23:39.000000000 +0200
+++ new/libva-2.6.1/va/wayland/wayland-drm-client-protocol.c    2019-12-24 
14:45:00.000000000 +0100
@@ -1,5 +1,5 @@
 #include "sysdeps.h"
-/* Generated by wayland-scanner 1.14.0 */
+/* Generated by wayland-scanner 1.16.0 */
 
 /*
  * Copyright © 2008-2011 Kristian Høgsberg

++++++ libva-2.5.0.tar.bz2.sha1sum -> libva-2.6.1.tar.bz2.sha1sum ++++++
--- /work/SRC/openSUSE:Factory/libva/libva-2.5.0.tar.bz2.sha1sum        
2020-01-21 17:17:32.886800044 +0100
+++ /work/SRC/openSUSE:Factory/.libva.new.26092/libva-2.6.1.tar.bz2.sha1sum     
2020-03-06 21:26:24.345519330 +0100
@@ -1 +1 @@
-5bd2b0bc9d1e49cf1e21d9a63696f13a1483bd86  libva-2.5.0.tar.bz2
+6b218e5622174a37fd0cfd8777b10717c95bd20e  libva-2.6.1.tar.bz2


Reply via email to