Hello community,

here is the log from the commit of package libva for openSUSE:Factory checked 
in at 2020-04-14 15:08:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libva (Old)
 and      /work/SRC/openSUSE:Factory/.libva.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libva"

Tue Apr 14 15:08:51 2020 rev:53 rq:792964 version:2.7.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/libva/libva-gl.changes   2020-03-16 
10:16:56.623553153 +0100
+++ /work/SRC/openSUSE:Factory/.libva.new.2738/libva-gl.changes 2020-04-14 
16:23:34.447703952 +0200
@@ -1,0 +2,15 @@
+Fri Apr 10 15:14:22 UTC 2020 - Stefan Dirsch <sndir...@suse.com>
+
+- Update to version 2.7.0
+  * trace: av1 decode buffers trace
+  * trace: Add HEVC REXT and SCC trace for decoding.
+  * Add av1 decode interfaces
+  * Fix crashes on system without supported hardware by PR #369.
+  * Add 2 FourCC for 10bit RGB(without Alpha) format: X2R10G10B10
+    and X2B10G10R10.
+  * Fix android build issue #365 and remove some trailing
+    whitespace
+  * Adjust call sequence to ensure authenticate operation is
+    executed to fix #355
+
+-------------------------------------------------------------------
libva.changes: same change

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

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

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

Other differences:
------------------
++++++ libva-gl.spec ++++++
--- /var/tmp/diff_new_pack.1Iyg98/_old  2020-04-14 16:23:34.971704434 +0200
+++ /var/tmp/diff_new_pack.1Iyg98/_new  2020-04-14 16:23:34.971704434 +0200
@@ -23,7 +23,7 @@
 
 Name:           libva-gl
 %define _name   libva
-Version:        2.6.1
+Version:        2.7.0
 Release:        0
 Summary:        Video Acceleration (VA) API
 License:        MIT

++++++ libva.spec ++++++
--- /var/tmp/diff_new_pack.1Iyg98/_old  2020-04-14 16:23:34.987704449 +0200
+++ /var/tmp/diff_new_pack.1Iyg98/_new  2020-04-14 16:23:34.991704452 +0200
@@ -23,7 +23,7 @@
 
 Name:           libva
 %define _name   libva
-Version:        2.6.1
+Version:        2.7.0
 Release:        0
 Summary:        Video Acceleration (VA) API
 License:        MIT

++++++ libva-2.6.1.tar.bz2 -> libva-2.7.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/NEWS new/libva-2.7.0/NEWS
--- old/libva-2.6.1/NEWS        2019-12-25 16:46:11.000000000 +0100
+++ new/libva-2.7.0/NEWS        2020-03-27 15:22:08.000000000 +0100
@@ -1,5 +1,14 @@
-libva NEWS -- summary of user visible changes.  2019-12-25
-Copyright (C) 2009-2019 Intel Corporation
+libva NEWS -- summary of user visible changes.  2020-03-26
+Copyright (C) 2009-2020 Intel Corporation
+
+version 2.7.0 - 26.Mar.2020
+* trace: av1 decode buffers trace
+* trace: Add HEVC REXT and SCC trace for decoding.
+* Add av1 decode interfaces
+* Fix crashes on system without supported hardware by PR #369.
+* Add 2 FourCC for 10bit RGB(without Alpha) format: X2R10G10B10 and 
X2B10G10R10.
+* Fix android build issue #365 and remove some trailing whitespace
+* Adjust call sequence to ensure authenticate operation is executed to fix #355
 
 version 2.6.0 - 15.Dec.2019
 * enable the mutiple driver selection logic and enable it for DRM.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/configure new/libva-2.7.0/configure
--- old/libva-2.6.1/configure   2020-01-17 12:30:10.000000000 +0100
+++ new/libva-2.7.0/configure   2020-04-09 17:48:09.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libva 2.6.1.
+# Generated by GNU Autoconf 2.69 for libva 2.7.0.
 #
 # 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.6.1'
-PACKAGE_STRING='libva 2.6.1'
+PACKAGE_VERSION='2.7.0'
+PACKAGE_STRING='libva 2.7.0'
 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.6.1 to adapt to many kinds of systems.
+\`configure' configures libva 2.7.0 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.6.1:";;
+     short | recursive ) echo "Configuration of libva 2.7.0:";;
    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.6.1
+libva configure 2.7.0
 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.6.1, which was
+It was created by libva $as_me 2.7.0, 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.6.1'
+ VERSION='2.7.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3099,26 +3099,26 @@
 
 
 VA_API_MAJOR_VERSION=1
-VA_API_MINOR_VERSION=6
+VA_API_MINOR_VERSION=7
 VA_API_MICRO_VERSION=0
-VA_API_VERSION=1.6.0
+VA_API_VERSION=1.7.0
 
 
 
 
 
 LIBVA_MAJOR_VERSION=2
-LIBVA_MINOR_VERSION=6
-LIBVA_MICRO_VERSION=1
-LIBVA_VERSION=2.6.1
+LIBVA_MINOR_VERSION=7
+LIBVA_MICRO_VERSION=0
+LIBVA_VERSION=2.7.0
 
 
 
 
 
-LIBVA_LT_CURRENT=602
+LIBVA_LT_CURRENT=702
 LIBVA_LT_REV=0
-LIBVA_LT_AGE=600
+LIBVA_LT_AGE=700
 LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE"
 LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION"
 
@@ -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.6.1, which was
+This file was extended by libva $as_me 2.7.0, 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.6.1
+libva config.status 2.7.0
 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.6.1/configure.ac new/libva-2.7.0/configure.ac
--- old/libva-2.6.1/configure.ac        2020-01-17 12:12:33.000000000 +0100
+++ new/libva-2.7.0/configure.ac        2020-04-09 17:43:02.000000000 +0200
@@ -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], [6])
+m4_define([va_api_minor_version], [7])
 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], [1])
+m4_define([libva_micro_version], [0])
 m4_define([libva_pre_version],   [0])
 
 m4_define([libva_version],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/meson.build new/libva-2.7.0/meson.build
--- old/libva-2.6.1/meson.build 2020-01-17 12:12:50.000000000 +0100
+++ new/libva-2.7.0/meson.build 2020-04-09 17:43:02.000000000 +0200
@@ -7,7 +7,7 @@
 # - reset micro version to zero when VA-API major or minor version is changed
 project(
   'libva', 'c',
-  version : '2.6.1',
+  version : '2.7.0',
   meson_version : '>= 0.37.0',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
@@ -19,7 +19,7 @@
 # - 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_minor_version = 7
 va_api_micro_version = 0
 
 va_api_version = '@0@.@1@.@2@'.format(va_api_major_version,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/va/Makefile.am 
new/libva-2.7.0/va/Makefile.am
--- old/libva-2.6.1/va/Makefile.am      2019-12-17 14:46:07.000000000 +0100
+++ new/libva-2.7.0/va/Makefile.am      2020-03-16 16:42:07.000000000 +0100
@@ -42,6 +42,7 @@
        va_backend.h            \
        va_backend_vpp.h        \
        va_compat.h             \
+       va_dec_av1.h            \
        va_dec_hevc.h           \
        va_dec_jpeg.h           \
        va_dec_vp8.h            \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/va/Makefile.in 
new/libva-2.7.0/va/Makefile.in
--- old/libva-2.6.1/va/Makefile.in      2020-01-17 12:30:10.000000000 +0100
+++ new/libva-2.7.0/va/Makefile.in      2020-04-09 17:48:08.000000000 +0200
@@ -255,11 +255,11 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__libvainclude_HEADERS_DIST = 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_enc_mpeg2.h va_fei_hevc.h va_enc_vp9.h \
-       va_str.h va_tpi.h va_version.h va_vpp.h va_x11.h
+       va_compat.h va_dec_av1.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_enc_mpeg2.h va_fei_hevc.h \
+       va_enc_vp9.h va_str.h va_tpi.h va_version.h va_vpp.h va_x11.h
 HEADERS = $(libvainclude_HEADERS) $(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
@@ -483,11 +483,12 @@
        $(NULL)
 
 libva_source_h = 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_enc_mpeg2.h va_fei_hevc.h va_enc_vp9.h va_str.h va_tpi.h \
-       va_version.h va_vpp.h $(NULL) $(am__append_6)
+       va_dec_av1.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_enc_mpeg2.h va_fei_hevc.h va_enc_vp9.h \
+       va_str.h va_tpi.h va_version.h va_vpp.h $(NULL) \
+       $(am__append_6)
 libva_source_h_priv = \
        sysdeps.h               \
        va_fool.h               \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/va/drm/va_drm_utils.c 
new/libva-2.7.0/va/drm/va_drm_utils.c
--- old/libva-2.6.1/va/drm/va_drm_utils.c       2019-12-25 16:38:29.000000000 
+0100
+++ new/libva-2.7.0/va/drm/va_drm_utils.c       2020-03-25 23:08:39.000000000 
+0100
@@ -54,7 +54,7 @@
 {
     struct drm_state * const drm_state = ctx->drm_state;
     drmVersionPtr drm_version;
-    int num_of_candidate = 0;
+    int count = 0;
     const struct driver_name_map *m = NULL;
     if (!drm_state || drm_state->fd < 0)
         return VA_STATUS_ERROR_INVALID_DISPLAY;
@@ -64,12 +64,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) {
-            num_of_candidate ++;
+            count ++;
         }
     }
     drmFreeVersion(drm_version);
-    *num_candidates = num_of_candidate;
-    return VA_STATUS_SUCCESS;
+    *num_candidates = count;
+    return count ? VA_STATUS_SUCCESS : VA_STATUS_ERROR_UNKNOWN;
 }
 
 /* Returns the VA driver name for the active display */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/va/meson.build 
new/libva-2.7.0/va/meson.build
--- old/libva-2.6.1/va/meson.build      2019-11-15 10:51:03.000000000 +0100
+++ new/libva-2.7.0/va/meson.build      2020-03-16 16:42:07.000000000 +0100
@@ -26,6 +26,7 @@
   'va_dec_jpeg.h',
   'va_dec_vp8.h',
   'va_dec_vp9.h',
+  'va_dec_av1.h',
   'va_drmcommon.h',
   'va_egl.h',
   'va_enc_hevc.h',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/va/va.c new/libva-2.7.0/va/va.c
--- old/libva-2.6.1/va/va.c     2020-01-17 12:11:32.000000000 +0100
+++ new/libva-2.7.0/va/va.c     2020-04-09 17:43:02.000000000 +0200
@@ -378,7 +378,7 @@
             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){
@@ -398,7 +398,7 @@
         *driver_name = strdup(driver_name_env);
         va_infoMessage(dpy, "User environment variable requested driver 
'%s'\n", *driver_name);
         return VA_STATUS_SUCCESS;
-    } 
+    }
     return status;
 }
 
@@ -470,6 +470,7 @@
                 int minor;
             } compatible_versions[] = {
                 { VA_MAJOR_VERSION, VA_MINOR_VERSION },
+                { VA_MAJOR_VERSION, 6 },
                 { VA_MAJOR_VERSION, 5 },
                 { VA_MAJOR_VERSION, 4 },
                 { VA_MAJOR_VERSION, 3 },
@@ -744,7 +745,7 @@
         if (vaStatus == VA_STATUS_SUCCESS) {
             break;
        }
-        
+
     }
 
     *major_version = VA_MAJOR_VERSION;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/va/va.h new/libva-2.7.0/va/va.h
--- old/libva-2.6.1/va/va.h     2019-12-17 14:46:07.000000000 +0100
+++ new/libva-2.7.0/va/va.h     2020-03-25 23:08:39.000000000 +0100
@@ -119,11 +119,12 @@
  *     - \ref api_enc_mpeg2
  *     - \ref api_enc_vp8
  *     - \ref api_enc_vp9
- * - Decoder (HEVC, JPEG, VP8, VP9)
+ * - Decoder (HEVC, JPEG, VP8, VP9, AV1)
  *      - \ref api_dec_hevc
  *      - \ref api_dec_jpeg
  *      - \ref api_dec_vp8
  *      - \ref api_dec_vp9
+ *      - \ref api_dec_av1
  * - \ref api_vpp
  * - FEI (H264, HEVC)
  *     - \ref api_fei
@@ -392,7 +393,9 @@
     VAProfileHEVCMain444_12             = 28,
     VAProfileHEVCSccMain                = 29,
     VAProfileHEVCSccMain10              = 30,
-    VAProfileHEVCSccMain444             = 31
+    VAProfileHEVCSccMain444             = 31,
+    VAProfileAV1Profile0                = 32,
+    VAProfileAV1Profile1                = 33
 } VAProfile;
 
 /**
@@ -4005,6 +4008,14 @@
  * 10-bit Pixel BGR formats.
  */
 #define VA_FOURCC_A2B10G10R10   0x30334241 /* VA_FOURCC('A','B','3','0') */
+/**
+ * 10-bit Pixel RGB formats without alpha.
+ */
+#define VA_FOURCC_X2R10G10B10   0x30335258 /* VA_FOURCC('X','R','3','0') */
+/**
+ * 10-bit Pixel BGR formats without alpha.
+ */
+#define VA_FOURCC_X2B10G10R10   0x30334258 /* VA_FOURCC('X','B','3','0') */
 
 /** Y8: 8-bit greyscale.
  *
@@ -4616,6 +4627,7 @@
 #include <va/va_dec_jpeg.h>
 #include <va/va_dec_vp8.h>
 #include <va/va_dec_vp9.h>
+#include <va/va_dec_av1.h>
 #include <va/va_enc_hevc.h>
 #include <va/va_fei_hevc.h>
 #include <va/va_enc_h264.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/va/va_dec_av1.h 
new/libva-2.7.0/va/va_dec_av1.h
--- old/libva-2.6.1/va/va_dec_av1.h     1970-01-01 01:00:00.000000000 +0100
+++ new/libva-2.7.0/va/va_dec_av1.h     2020-03-25 23:08:39.000000000 +0100
@@ -0,0 +1,660 @@
+/*
+ * Copyright (c) 2019 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/**
+ * \file va_dec_av1.h
+ * \brief The AV1 decoding API
+ *
+ * This file contains the \ref api_dec_av1 "AV1 decoding API".
+ */
+
+#ifndef VA_DEC_AV1_H
+#define VA_DEC_AV1_H
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief AV1 Decoding Picture Parameter Buffer Structure
+ *
+ * This structure conveys picture level parameters.
+ * App should send a surface with this data structure down to VAAPI once
+ * per frame.
+ *
+ */
+
+/** \brief Segmentation Information
+  */
+typedef struct _VASegmentationStructAV1 {
+    union {
+        struct {
+             /** Indicates whether segmentation map related syntax elements
+             *  are present or not for current frame. If equal to 0,
+             *  the segmentation map related syntax elements are
+             *  not present for the current frame and the control flags of
+             *  segmentation map related tables feature_data[][], and
+             *  feature_mask[] are not valid and shall be ignored by 
accelerator.
+             */
+            uint32_t         enabled                                     : 1;
+            /** Value 1 indicates that the segmentation map are updated
+             *  during the decoding of this frame.
+             *  Value 0 means that the segmentation map from the previous
+             *  frame is used.
+             */
+            uint32_t         update_map                                  : 1;
+            /** Value 1 indicates that the updates to the segmentation map
+             *  are coded relative to the existing segmentation map.
+             *  Value 0 indicates that the new segmentation map is coded
+             *  without reference to the existing segmentation map.
+             */
+            uint32_t         temporal_update                             : 1;
+            /** Value 1 indicates that new parameters are about to be
+             *  specified for each segment.
+             *  Value 0 indicates that the segmentation parameters
+             *  should keep their existing values.
+             */
+            uint32_t         update_data                                 : 1;
+
+            /** \brief Reserved bytes for future use, must be zero */
+            uint32_t         reserved                                    : 28;
+        } bits;
+        uint32_t             value;
+    } segment_info_fields;
+
+    /** \brief Segmentation parameters for current frame.
+     *  feature_data[segment_id][feature_id]
+     *  where segment_id has value range [0..7] indicating the segment id.
+     *  and feature_id is defined as
+        typedef enum {
+            SEG_LVL_ALT_Q,       // Use alternate Quantizer ....
+            SEG_LVL_ALT_LF_Y_V,  // Use alternate loop filter value on y plane 
vertical
+            SEG_LVL_ALT_LF_Y_H,  // Use alternate loop filter value on y plane 
horizontal
+            SEG_LVL_ALT_LF_U,    // Use alternate loop filter value on u plane
+            SEG_LVL_ALT_LF_V,    // Use alternate loop filter value on v plane
+            SEG_LVL_REF_FRAME,   // Optional Segment reference frame
+            SEG_LVL_SKIP,        // Optional Segment (0,0) + skip mode
+            SEG_LVL_GLOBALMV,
+            SEG_LVL_MAX
+        } SEG_LVL_FEATURES;
+     *  feature_data[][] is equivalent to variable FeatureData[][] in spec,
+     *  which is after clip3() operation.
+     *  Clip3(x, y, z) = (z < x)? x : ((z > y)? y : z);
+     *  The limit is defined in Segmentation_Feature_Max[ SEG_LVL_MAX ] = {
+     *  255, MAX_LOOP_FILTER, MAX_LOOP_FILTER, MAX_LOOP_FILTER, 
MAX_LOOP_FILTER, 7, 0, 0 }
+     */
+    int16_t                 feature_data[8][8];
+
+    /** \brief indicates if a feature is enabled or not.
+     *  Each bit field itself is the feature_id. Index is segment_id.
+     *  feature_mask[segment_id] & (1 << feature_id) equal to 1 specify that 
the feature of
+     *  feature_id for segment of segment_id is enabled, otherwise disabled.
+     */
+    uint8_t                 feature_mask[8];
+
+    /** \brief Reserved bytes for future use, must be zero */
+    uint32_t                va_reserved[VA_PADDING_LOW];
+
+} VASegmentationStructAV1;
+
+/** \brief Film Grain Information
+  */
+typedef struct _VAFilmGrainStructAV1 {
+    union {
+        struct {
+            /** \brief Specify whether or not film grain is applied on current 
frame.
+             *  If set to 0, all the rest parameters should be set to zero
+             *  and ignored.
+             */
+            uint32_t        apply_grain                                 : 1;
+            uint32_t        chroma_scaling_from_luma                    : 1;
+            uint32_t        grain_scaling_minus_8                       : 2;
+            uint32_t        ar_coeff_lag                                : 2;
+            uint32_t        ar_coeff_shift_minus_6                      : 2;
+            uint32_t        grain_scale_shift                           : 2;
+            uint32_t        overlap_flag                                : 1;
+            uint32_t        clip_to_restricted_range                    : 1;
+            /** \brief Reserved bytes for future use, must be zero */
+            uint32_t        reserved                                    : 20;
+        } bits;
+        uint32_t            value;
+    } film_grain_info_fields;
+
+    uint16_t                grain_seed;
+    /*  value range [0..14] */
+    uint8_t                 num_y_points;
+    uint8_t                 point_y_value[14];
+    uint8_t                 point_y_scaling[14];
+    /*  value range [0..10] */
+    uint8_t                 num_cb_points;
+    uint8_t                 point_cb_value[10];
+    uint8_t                 point_cb_scaling[10];
+    /*  value range [0..10] */
+    uint8_t                 num_cr_points;
+    uint8_t                 point_cr_value[10];
+    uint8_t                 point_cr_scaling[10];
+    /*  value range [-128..127] */
+    int8_t                  ar_coeffs_y[24];
+    int8_t                  ar_coeffs_cb[25];
+    int8_t                  ar_coeffs_cr[25];
+    uint8_t                 cb_mult;
+    uint8_t                 cb_luma_mult;
+    uint16_t                cb_offset;
+    uint8_t                 cr_mult;
+    uint8_t                 cr_luma_mult;
+    uint16_t                cr_offset;
+
+    /** \brief Reserved bytes for future use, must be zero */
+    uint32_t                va_reserved[VA_PADDING_LOW];
+
+} VAFilmGrainStructAV1;
+
+typedef enum {
+    /** identity transformation, 0-parameter */
+    VAAV1TransformationIdentity           = 0,
+    /** translational motion, 2-parameter */
+    VAAV1TransformationTranslation        = 1,
+    /** simplified affine with rotation + zoom only, 4-parameter */
+    VAAV1TransformationRotzoom            = 2,
+    /** affine, 6-parameter */
+    VAAV1TransformationAffine             = 3,
+    /** transformation count */
+    VAAV1TransformationCount
+} VAAV1TransformationType;
+
+typedef struct _VAWarpedMotionParamsAV1{
+
+    /** \brief Specify the type of warped motion */
+    VAAV1TransformationType  wmtype;
+
+    /** \brief Specify warp motion parameters
+     *  wm.wmmat[] corresponds to gm_params[][] in spec.
+     *  Details in AV1 spec section 5.9.24 or refer to libaom code
+     *  
https://aomedia.googlesource.com/aom/+/refs/heads/master/av1/decoder/decodeframe.c
+     */
+    int32_t                 wmmat[8];
+
+    /* valid or invalid on affine set */
+    uint8_t  invalid;
+
+    /** \brief Reserved bytes for future use, must be zero */
+    uint32_t                va_reserved[VA_PADDING_LOW];
+
+} VAWarpedMotionParamsAV1;
+
+/**
+ * \brief AV1 Decoding Picture Parameter Buffer Structure
+ *
+ * This structure conveys picture level parameters and should be sent once
+ * per frame.
+ *
+ */
+typedef struct  _VADecPictureParameterBufferAV1
+{
+    /**@{*/
+
+    /** \brief sequence level information
+     */
+
+    /** \brief AV1 bit stream profile
+     */
+    uint8_t                 profile;
+
+    uint8_t                 order_hint_bits_minus_1;
+
+    /** \brief bit depth index
+     *  value range [0..2]
+     *  0 - bit depth 8;
+     *  1 - bit depth 10;
+     *  2 - bit depth 12;
+     */
+    uint8_t                 bit_depth_idx;
+
+    /** \brief corresponds to AV1 spec variable of the same name. */
+    uint8_t                 matrix_coefficients;
+
+    union {
+        struct {
+            uint32_t        still_picture                               : 1;
+            uint32_t        use_128x128_superblock                      : 1;
+            uint32_t        enable_filter_intra                         : 1;
+            uint32_t        enable_intra_edge_filter                    : 1;
+
+            /** read_compound_tools */
+            uint32_t        enable_interintra_compound                  : 1;
+            uint32_t        enable_masked_compound                      : 1;
+
+            uint32_t        enable_dual_filter                          : 1;
+            uint32_t        enable_order_hint                           : 1;
+            uint32_t        enable_jnt_comp                             : 1;
+            uint32_t        enable_cdef                                 : 1;
+            uint32_t        mono_chrome                                 : 1;
+            uint32_t        color_range                                 : 1;
+            uint32_t        subsampling_x                               : 1;
+            uint32_t        subsampling_y                               : 1;
+            uint32_t        chroma_sample_position                      : 1;
+            uint32_t        film_grain_params_present                   : 1;
+            /** \brief Reserved bytes for future use, must be zero */
+            uint32_t        reserved                                    : 16;
+        } fields;
+        uint32_t value;
+    } seq_info_fields;
+
+    /** \brief Picture level information
+     */
+
+    /** \brief buffer description of decoded current picture
+     */
+    VASurfaceID             current_frame;
+
+    /** \brief display buffer of current picture
+     *  Used for film grain applied decoded picture.
+     *  Valid only when apply_grain equals 1.
+     */
+    VASurfaceID             current_display_picture;
+
+    /** \brief number of anchor frames for large scale tile
+     *  This parameter gives the number of entries of anchor_frames_list[].
+     *  Value range [0..128].
+     */
+    uint8_t                anchor_frames_num;
+
+    /** \brief anchor frame list for large scale tile
+     *  For large scale tile applications, the anchor frames could come from
+     *  previously decoded frames in current sequence (aka. internal), or
+     *  from external sources.
+     *  For external anchor frames, application should call API
+     *  vaCreateBuffer() to generate frame buffers and populate them with
+     *  pixel frames. And this process may happen multiple times.
+     *  The array anchor_frames_list[] is used to register all the available
+     *  anchor frames from both external and internal, up to the current
+     *  frame instance. If a previously registerred anchor frame is no longer
+     *  needed, it should be removed from the list. But it does not prevent
+     *  applications from relacing the frame buffer with new anchor frames.
+     *  Please note that the internal anchor frames may not still be present
+     *  in the current DPB buffer. But if it is in the anchor_frames_list[],
+     *  it should not be replaced with other frames or removed from memory
+     *  until it is not shown in the list.
+     *  This number of entries of the list is given by parameter 
anchor_frames_num.
+     */
+    VASurfaceID             *anchor_frames_list;
+
+    /** \brief Picture resolution minus 1
+     *  Picture original resolution. If SuperRes is enabled,
+     *  this is the upscaled resolution.
+     *  The value may not be multiple of 8.
+     *  value range [0..65535]
+     */
+    uint16_t                frame_width_minus1;
+    uint16_t                frame_height_minus1;
+
+    /** \brief Output frame buffer size in unit of tiles
+     *  Valid only when large_scale_tile equals 1.
+     *  value range [0..65535]
+     */
+    uint16_t                output_frame_width_in_tiles_minus_1;
+    uint16_t                output_frame_height_in_tiles_minus_1;
+
+    /** \brief Surface indices of reference frames in DPB.
+     *
+     *  Contains a list of uncompressed frame buffer surface indices as 
references.
+     *  Application needs to make sure all the entries point to valid frames
+     *  except for the key frame by checking ref_frame_id[]. If missing frame
+     *  is identified, application may choose to perform error recovery by
+     *  pointing problematic index to an alternative frame buffer.
+     *  Driver is not responsible to validate reference frames' id.
+     */
+    VASurfaceID             ref_frame_map[8];
+
+    /** \brief Reference frame indices.
+     *
+     *  Contains a list of indices into ref_frame_map[8].
+     *  It specifies the reference frame correspondence.
+     *  The indices of the array are defined as [LAST_FRAME – LAST_FRAME,
+     *  LAST2_FRAME – LAST_FRAME, …, ALTREF2_FRAME – LAST_FRAME], where each
+     *  symbol is defined as:
+     *  enum{INTRA_FRAME = 0, LAST_FRAME, LAST2_FRAME, LAST3_FRAME, 
GOLDEN_FRAME,
+     *  BWDREF_FRAME, ALTREF_FRAME};
+     */
+    uint8_t                 ref_frame_idx[7];
+
+    /** \brief primary reference frame index
+     *  Index into ref_frame_idx[], specifying which reference frame contains
+     *  propagated info that should be loaded at the start of the frame.
+     *  When value equals PRIMARY_REF_NONE (7), it indicates there is
+     *  no primary reference frame.
+     *  value range [0..7]
+     */
+    uint8_t                 primary_ref_frame;
+
+    uint8_t                 order_hint;
+
+    VASegmentationStructAV1 seg_info;
+    VAFilmGrainStructAV1    film_grain_info;
+
+    /** \brief tile structure
+     *  When uniform_tile_spacing_flag == 1, the value of tile_cols and
+     *  tile_rows need to be power of 2, and width_in_sbs_minus_1[] and
+     *  height_in_sbs_minus_1[] should be ignored, which will be generated
+     *  by driver based on tile_cols and tile_rows.
+     */
+    uint8_t                 tile_cols;
+    uint8_t                 tile_rows;
+
+    /* specifes the width/height of a tile minus 1 in units of superblocks */
+    uint16_t                width_in_sbs_minus_1[63];
+    uint16_t                height_in_sbs_minus_1[63];
+
+    /** \brief number of tiles minus 1 in large scale tile list
+     *  Same as AV1 semantic element.
+     *  Valid only when large_scale_tiles == 1.
+     */
+    uint16_t                tile_count_minus_1;
+
+    /* specify the tile index for context updating */
+    uint16_t                context_update_tile_id;
+
+    union
+    {
+        struct
+        {
+            /** \brief flags for current picture
+             *  same syntax and semantic as those in AV1 code
+             */
+
+             /** \brief Frame Type
+              *  0:     KEY_FRAME;
+              *  1:     INTER_FRAME;
+              *  2:     INTRA_ONLY_FRAME;
+              *  3:     SWITCH_FRAME
+              *  For SWITCH_FRAME, application shall set error_resilient_mode 
= 1,
+              *  refresh_frame_flags, etc. appropriately. And driver will 
convert it
+              *  to INTER_FRAME.
+              */
+            uint32_t        frame_type                                  : 2;
+            uint32_t        show_frame                                  : 1;
+            uint32_t        showable_frame                              : 1;
+            uint32_t        error_resilient_mode                        : 1;
+            uint32_t        disable_cdf_update                          : 1;
+            uint32_t        allow_screen_content_tools                  : 1;
+            uint32_t        force_integer_mv                            : 1;
+            uint32_t        allow_intrabc                               : 1;
+            uint32_t        use_superres                                : 1;
+            uint32_t        allow_high_precision_mv                     : 1;
+            uint32_t        is_motion_mode_switchable                   : 1;
+            uint32_t        use_ref_frame_mvs                           : 1;
+            /* disable_frame_end_update_cdf is coded as refresh_frame_context. 
*/
+            uint32_t        disable_frame_end_update_cdf                : 1;
+            uint32_t        uniform_tile_spacing_flag                   : 1;
+            uint32_t        allow_warped_motion                         : 1;
+            /** \brief indicate if current frame in large scale tile mode */
+            uint32_t        large_scale_tile                            : 1;
+
+            /** \brief Reserved bytes for future use, must be zero */
+            uint32_t        reserved                                    : 15;
+        } bits;
+        uint32_t            value;
+    } pic_info_fields;
+
+    /** \brief Supper resolution scale denominator.
+     *  value range [9..16]
+     */
+    uint8_t                 superres_scale_denominator;
+
+    /** \brief Interpolation filter.
+     *  value range [0..9]
+     */
+    uint8_t                 interp_filter;
+
+    /** \brief luma loop filter levels.
+     *  value range [0..63].
+     */
+    uint8_t                 filter_level[2];
+
+    /** \brief chroma loop filter levels.
+     *  value range [0..63].
+     */
+    uint8_t                 filter_level_u;
+    uint8_t                 filter_level_v;
+
+    union
+    {
+        struct
+        {
+            /** \brief flags for reference pictures
+             *  same syntax and semantic as those in AV1 code
+             */
+            uint8_t         sharpness_level                             : 3;
+            uint8_t         mode_ref_delta_enabled                      : 1;
+            uint8_t         mode_ref_delta_update                       : 1;
+
+            /** \brief Reserved bytes for future use, must be zero */
+            uint8_t         reserved                                    : 3;
+        } bits;
+        uint8_t             value;
+    } loop_filter_info_fields;
+
+    /** \brief The adjustment needed for the filter level based on
+     *  the chosen reference frame.
+     *  value range [-63..63].
+     */
+    int8_t                  ref_deltas[8];
+
+    /** \brief The adjustment needed for the filter level based on
+     *  the chosen mode.
+     *  value range [-63..63].
+     */
+    int8_t                  mode_deltas[2];
+
+    /** \brief quantization
+     */
+    /** \brief Y AC index
+     *  value range [0..255]
+     */
+    uint8_t                base_qindex;
+    /** \brief Y DC delta from Y AC
+     *  value range [-63..63]
+     */
+    int8_t                  y_dc_delta_q;
+    /** \brief U DC delta from Y AC
+     *  value range [-63..63]
+     */
+    int8_t                  u_dc_delta_q;
+    /** \brief U AC delta from Y AC
+     *  value range [-63..63]
+     */
+    int8_t                  u_ac_delta_q;
+    /** \brief V DC delta from Y AC
+     *  value range [-63..63]
+     */
+    int8_t                  v_dc_delta_q;
+    /** \brief V AC delta from Y AC
+     *  value range [-63..63]
+     */
+    int8_t                  v_ac_delta_q;
+
+    /** \brief quantization_matrix
+     */
+    union
+    {
+        struct
+        {
+            uint16_t        using_qmatrix                               : 1;
+            /** \brief qm level
+             *  value range [0..15]
+             *  Invalid if using_qmatrix equals 0.
+             */
+            uint16_t        qm_y                                        : 4;
+            uint16_t        qm_u                                        : 4;
+            uint16_t        qm_v                                        : 4;
+
+            /** \brief Reserved bytes for future use, must be zero */
+            uint16_t        reserved                                    : 3;
+        } bits;
+        uint16_t            value;
+    } qmatrix_fields;
+
+    union
+    {
+        struct
+        {
+            /** \brief delta_q parameters
+             */
+            uint32_t        delta_q_present_flag                        : 1;
+            uint32_t        log2_delta_q_res                            : 2;
+
+            /** \brief delta_lf parameters
+             */
+            uint32_t        delta_lf_present_flag                       : 1;
+            uint32_t        log2_delta_lf_res                           : 2;
+
+            /** \brief CONFIG_LOOPFILTER_LEVEL
+             */
+            uint32_t        delta_lf_multi                              : 1;
+
+            /** \brief read_tx_mode
+             *  value range [0..2]
+             */
+            uint32_t        tx_mode                                     : 2;
+
+            /* AV1 frame reference mode semantic */
+            uint32_t        reference_select                            : 1;
+
+            uint32_t        reduced_tx_set_used                         : 1;
+
+            uint32_t        skip_mode_present                           : 1;
+
+            /** \brief Reserved bytes for future use, must be zero */
+            uint32_t        reserved                                    : 20;
+        } bits;
+        uint32_t            value;
+    } mode_control_fields;
+
+    /** \brief CDEF parameters
+     */
+    /*  value range [0..3]  */
+    uint8_t                 cdef_damping_minus_3;
+    /*  value range [0..3]  */
+    uint8_t                 cdef_bits;
+    /*  value range [0..63]  */
+    uint8_t                 cdef_y_strengths[8];
+    /*  value range [0..63]  */
+    uint8_t                 cdef_uv_strengths[8];
+
+    /** \brief loop restoration parameters
+     */
+    union
+    {
+        struct
+        {
+            uint16_t        yframe_restoration_type                     : 2;
+            uint16_t        cbframe_restoration_type                    : 2;
+            uint16_t        crframe_restoration_type                    : 2;
+            uint16_t        lr_unit_shift                               : 2;
+            uint16_t        lr_uv_shift                                 : 1;
+
+            /** \brief Reserved bytes for future use, must be zero */
+            uint16_t        reserved                                    : 7;
+        } bits;
+        uint16_t            value;
+    } loop_restoration_fields;
+
+    /** \brief global motion
+     */
+    VAWarpedMotionParamsAV1 wm[7];
+
+    /**@}*/
+
+    /** \brief Reserved bytes for future use, must be zero */
+    uint32_t                va_reserved[VA_PADDING_MEDIUM];
+} VADecPictureParameterBufferAV1;
+
+
+/**
+ * \brief AV1 Slice Parameter Buffer Structure
+ *
+ * This structure conveys parameters related to bit stream data and should be
+ * sent once per tile.
+ *
+ * It uses the name VASliceParameterBufferAV1 to be consistent with other 
codec,
+ * but actually means VATileParameterBufferAV1.
+ *
+ * Slice data buffer of VASliceDataBufferType is used
+ * to send the bitstream.
+ *
+ * Please note that host decoder is responsible to parse out the
+ * per tile information. And the bit stream in sent to driver in per
+ * tile granularity.
+ */
+typedef struct _VASliceParameterBufferAV1
+{
+    /**@{*/
+    /** \brief The byte count of current tile in the bitstream buffer,
+     *  starting from first byte of the buffer.
+     *  It uses the name slice_data_size to be consistent with other codec,
+     *  but actually means tile_data_size.
+     */
+    uint32_t                slice_data_size;
+    /**
+     * offset to the first byte of the data buffer.
+     */
+    uint32_t                slice_data_offset;
+    /**
+     * see VA_SLICE_DATA_FLAG_XXX definitions
+     */
+    uint32_t                slice_data_flag;
+
+    uint16_t                tile_row;
+    uint16_t                tile_column;
+    uint16_t                tg_start;
+    uint16_t                tg_end;
+    /** \brief anchor frame index for large scale tile.
+     *  index into an array AnchorFrames of the frames that the tile uses
+     *  for prediction.
+     *  valid only when large_scale_tile equals 1.
+     */
+    uint8_t                 anchor_frame_idx;
+
+    /** \brief tile index in the tile list.
+     *  Valid only when large_scale_tile is enabled.
+     *  Driver uses this field to decide the tile output location.
+     */
+    uint16_t                tile_idx_in_tile_list;
+
+    /**@}*/
+
+    /** \brief Reserved bytes for future use, must be zero */
+    uint32_t                va_reserved[VA_PADDING_LOW];
+} VASliceParameterBufferAV1;
+
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_DEC_AV1_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/va/va_trace.c 
new/libva-2.7.0/va/va_trace.c
--- old/libva-2.6.1/va/va_trace.c       2019-12-17 14:46:07.000000000 +0100
+++ new/libva-2.7.0/va/va_trace.c       2020-03-25 23:08:39.000000000 +0100
@@ -2153,6 +2153,41 @@
     }
 }
 
+static inline void va_TraceIsRextProfile(
+    VADisplay dpy,
+    VAContextID context,
+    bool *isRext /* out */
+)
+{
+    DPY2TRACECTX(dpy, context, VA_INVALID_ID);
+
+    *isRext = (\
+               trace_ctx->trace_profile == VAProfileHEVCMain12     || \
+               trace_ctx->trace_profile == VAProfileHEVCMain422_10 || \
+               trace_ctx->trace_profile == VAProfileHEVCMain422_12 || \
+               trace_ctx->trace_profile == VAProfileHEVCMain444    || \
+               trace_ctx->trace_profile == VAProfileHEVCMain444_10 || \
+               trace_ctx->trace_profile == VAProfileHEVCMain444_12 || \
+               trace_ctx->trace_profile == VAProfileHEVCSccMain    || \
+               trace_ctx->trace_profile == VAProfileHEVCSccMain10  || \
+               trace_ctx->trace_profile == VAProfileHEVCSccMain444    \
+              );
+}
+
+static inline void va_TraceIsSccProfile(
+    VADisplay dpy,
+    VAContextID context,
+    bool *isScc /* out */
+)
+{
+    DPY2TRACECTX(dpy, context, VA_INVALID_ID);
+
+    *isScc = (\
+              trace_ctx->trace_profile == VAProfileHEVCSccMain    || \
+              trace_ctx->trace_profile == VAProfileHEVCSccMain10  || \
+              trace_ctx->trace_profile == VAProfileHEVCSccMain444    \
+             );
+}
 
 static void va_TraceVAPictureParameterBufferHEVC(
     VADisplay dpy,
@@ -2163,8 +2198,24 @@
     unsigned int num_elements,
     void *data)
 {
-    int i;
-    VAPictureParameterBufferHEVC *p = (VAPictureParameterBufferHEVC*)data;
+    int i, j;
+    bool isRext = false;
+    bool isScc = false;
+    VAPictureParameterBufferHEVC *p = NULL;
+    VAPictureParameterBufferHEVCRext *pRext = NULL;
+    VAPictureParameterBufferHEVCScc *pScc = NULL;
+
+    va_TraceIsRextProfile(dpy, context, &isRext);
+    va_TraceIsSccProfile(dpy, context, &isScc);
+
+    if (isRext) {
+        p = &((VAPictureParameterBufferHEVCExtension*)data)->base;
+        pRext = &((VAPictureParameterBufferHEVCExtension*)data)->rext;
+
+        if (isScc)
+            pScc = &((VAPictureParameterBufferHEVCExtension*)data)->scc;
+    } else
+        p = (VAPictureParameterBufferHEVC*)data;
 
     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
 
@@ -2279,6 +2330,71 @@
     va_TraceMsg(trace_ctx, "\tnum_extra_slice_header_bits = %d\n", 
p->num_extra_slice_header_bits);
     va_TraceMsg(trace_ctx, "\tst_rps_bits = %d\n", p->st_rps_bits);
 
+    if (isRext && pRext) {
+        va_TraceMsg(trace_ctx, "\trange_extension_pic_fields = %d\n", 
pRext->range_extension_pic_fields.value);
+        va_TraceMsg(trace_ctx, "\ttransform_skip_rotation_enabled_flag = 
%d\n", 
pRext->range_extension_pic_fields.bits.transform_skip_rotation_enabled_flag);
+        va_TraceMsg(trace_ctx, "\ttransform_skip_context_enabled_flag = %d\n", 
pRext->range_extension_pic_fields.bits.transform_skip_context_enabled_flag);
+        va_TraceMsg(trace_ctx, "\timplicit_rdpcm_enabled_flag = %d\n", 
pRext->range_extension_pic_fields.bits.implicit_rdpcm_enabled_flag);
+        va_TraceMsg(trace_ctx, "\texplicit_rdpcm_enabled_flag = %d\n", 
pRext->range_extension_pic_fields.bits.explicit_rdpcm_enabled_flag);
+        va_TraceMsg(trace_ctx, "\textended_precision_processing_flag = %d\n", 
pRext->range_extension_pic_fields.bits.extended_precision_processing_flag);
+        va_TraceMsg(trace_ctx, "\tintra_smoothing_disabled_flag = %d\n", 
pRext->range_extension_pic_fields.bits.intra_smoothing_disabled_flag);
+        va_TraceMsg(trace_ctx, "\thigh_precision_offsets_enabled_flag = %d\n", 
pRext->range_extension_pic_fields.bits.high_precision_offsets_enabled_flag);
+        va_TraceMsg(trace_ctx, "\tpersistent_rice_adaptation_enabled_flag = 
%d\n", 
pRext->range_extension_pic_fields.bits.persistent_rice_adaptation_enabled_flag);
+        va_TraceMsg(trace_ctx, "\tcabac_bypass_alignment_enabled_flag = %d\n", 
pRext->range_extension_pic_fields.bits.cabac_bypass_alignment_enabled_flag);
+        va_TraceMsg(trace_ctx, "\tcross_component_prediction_enabled_flag = 
%d\n", 
pRext->range_extension_pic_fields.bits.cross_component_prediction_enabled_flag);
+        va_TraceMsg(trace_ctx, "\tchroma_qp_offset_list_enabled_flag = %d\n", 
pRext->range_extension_pic_fields.bits.chroma_qp_offset_list_enabled_flag);
+        va_TraceMsg(trace_ctx, "\treserved = %d\n", 
pRext->range_extension_pic_fields.bits.reserved);
+
+        va_TraceMsg(trace_ctx, "\tdiff_cu_chroma_qp_offset_depth = %d\n", 
pRext->diff_cu_chroma_qp_offset_depth);
+        va_TraceMsg(trace_ctx, "\tchroma_qp_offset_list_len_minus1 = %d\n", 
pRext->chroma_qp_offset_list_len_minus1);
+        va_TraceMsg(trace_ctx, "\tlog2_sao_offset_scale_luma = %d\n", 
pRext->log2_sao_offset_scale_luma);
+        va_TraceMsg(trace_ctx, "\tlog2_sao_offset_scale_chroma = %d\n", 
pRext->log2_sao_offset_scale_chroma);
+        va_TraceMsg(trace_ctx, "\tlog2_max_transform_skip_block_size_minus2 = 
%d\n", pRext->log2_max_transform_skip_block_size_minus2);
+
+        va_TraceMsg(trace_ctx, "\tcb_qp_offset_list[6] = \n");
+        va_TraceMsg(trace_ctx, "");
+        for (i = 0; i < 6; i++)
+            va_TracePrint(trace_ctx, "\t%d", pRext->cb_qp_offset_list[i]);
+        va_TracePrint(trace_ctx, "\n");
+
+        va_TraceMsg(trace_ctx, "\tcr_qp_offset_list[] = \n");
+        va_TraceMsg(trace_ctx, "");
+        for (i = 0; i < 6; i++)
+            va_TracePrint(trace_ctx, "\t%d", pRext->cr_qp_offset_list[i]);
+        va_TracePrint(trace_ctx, "\n");
+    }
+
+    if (isScc && pScc) {
+        va_TraceMsg(trace_ctx, "\tscreen_content_pic_fields = %d\n", 
pScc->screen_content_pic_fields.value);
+        va_TraceMsg(trace_ctx, "\tpps_curr_pic_ref_enabled_flag = %d\n", 
pScc->screen_content_pic_fields.bits.pps_curr_pic_ref_enabled_flag);
+        va_TraceMsg(trace_ctx, "\tpalette_mode_enabled_flag = %d\n", 
pScc->screen_content_pic_fields.bits.palette_mode_enabled_flag);
+        va_TraceMsg(trace_ctx, "\tmotion_vector_resolution_control_idc = 
%d\n", 
pScc->screen_content_pic_fields.bits.motion_vector_resolution_control_idc);
+        va_TraceMsg(trace_ctx, "\tintra_boundary_filtering_disabled_flag = 
%d\n", 
pScc->screen_content_pic_fields.bits.intra_boundary_filtering_disabled_flag);
+        va_TraceMsg(trace_ctx, 
"\tresidual_adaptive_colour_transform_enabled_flag = %d\n", 
pScc->screen_content_pic_fields.bits.residual_adaptive_colour_transform_enabled_flag);
+        va_TraceMsg(trace_ctx, "\tpps_slice_act_qp_offsets_present_flag = 
%d\n", 
pScc->screen_content_pic_fields.bits.pps_slice_act_qp_offsets_present_flag);
+        va_TraceMsg(trace_ctx, "\treserved = %d\n", 
pScc->screen_content_pic_fields.bits.reserved);
+
+        va_TraceMsg(trace_ctx, "\tpalette_max_size = %d\n", 
pScc->palette_max_size);
+        va_TraceMsg(trace_ctx, "\tdelta_palette_max_predictor_size = %d\n", 
pScc->delta_palette_max_predictor_size);
+        va_TraceMsg(trace_ctx, "\tpredictor_palette_size = %d\n", 
pScc->predictor_palette_size);
+
+        va_TraceMsg(trace_ctx, "\tpredictor_palette_entries[3][128] = \n");
+        va_TraceMsg(trace_ctx, "");
+        for (i = 0; i < 3; i++) {
+            for (j = 0; j < 128; j++) {
+                va_TracePrint(trace_ctx, "\t%d", 
pScc->predictor_palette_entries[i][j]);
+                if ((j + 1) % 8 == 0)
+                    TRACE_NEWLINE();
+            }
+            TRACE_NEWLINE();
+        }
+        va_TracePrint(trace_ctx, "\n");
+
+        va_TraceMsg(trace_ctx, "\tpps_act_y_qp_offset_plus5 = %d\n", 
pScc->pps_act_y_qp_offset_plus5);
+        va_TraceMsg(trace_ctx, "\tpps_act_cb_qp_offset_plus5 = %d\n", 
pScc->pps_act_cb_qp_offset_plus5);
+        va_TraceMsg(trace_ctx, "\tpps_act_cr_qp_offset_plus3 = %d\n", 
pScc->pps_act_cr_qp_offset_plus3);
+    }
+
     return;
 }
 
@@ -2292,7 +2408,16 @@
     void *data)
 {
     int i,j;
-    VASliceParameterBufferHEVC* p = (VASliceParameterBufferHEVC*)data;
+    bool isRext = false;
+    VASliceParameterBufferHEVC* p = NULL;
+    VASliceParameterBufferHEVCRext *pRext = NULL;
+
+    va_TraceIsRextProfile(dpy, context, &isRext);
+    if (isRext) {
+        p = &((VASliceParameterBufferHEVCExtension*)data)->base;
+        pRext = &((VASliceParameterBufferHEVCExtension*)data)->rext;
+    } else
+        p = (VASliceParameterBufferHEVC*)data;
 
     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
 
@@ -2366,6 +2491,59 @@
 
     va_TraceMsg(trace_ctx, "\tfive_minus_max_num_merge_cand = %d\n", 
p->five_minus_max_num_merge_cand);
 
+    va_TraceMsg(trace_ctx, "\tnum_entry_point_offsets = %d\n", 
p->num_entry_point_offsets);
+    va_TraceMsg(trace_ctx, "\tentry_offset_to_subset_array = %d\n", 
p->entry_offset_to_subset_array);
+    va_TraceMsg(trace_ctx, "\tslice_data_num_emu_prevn_bytes = %d\n", 
p->slice_data_num_emu_prevn_bytes);
+
+    if (isRext && pRext) {
+        va_TraceMsg(trace_ctx, "\tluma_offset_l0[15] = \n");
+        va_TraceMsg(trace_ctx, "");
+        for (i = 0; i < 15; i++) {
+            va_TracePrint(trace_ctx, "\t%d", pRext->luma_offset_l0[i]);
+            if ((i + 1) % 8 == 0)
+                TRACE_NEWLINE();
+        }
+        va_TracePrint(trace_ctx, "\n");
+
+        va_TraceMsg(trace_ctx, "\tChromaOffsetL0[15][2] = \n");
+        va_TraceMsg(trace_ctx, "");
+        for (i = 0; i < 15; i++) {
+            for (j = 0; j < 2; j++) {
+                va_TracePrint(trace_ctx, "\t%d", pRext->ChromaOffsetL0[i][j]);
+            }
+            TRACE_NEWLINE();
+        }
+        va_TracePrint(trace_ctx, "\n");
+
+        va_TraceMsg(trace_ctx, "\tluma_offset_l1[15] = \n");
+        va_TraceMsg(trace_ctx, "");
+        for (i = 0; i < 15; i++) {
+            va_TracePrint(trace_ctx, "\t%d", pRext->luma_offset_l1[i]);
+            if ((i + 1) % 8 == 0)
+                TRACE_NEWLINE();
+        }
+        va_TracePrint(trace_ctx, "\n");
+
+        va_TraceMsg(trace_ctx, "\tChromaOffsetL1[15][2] = \n");
+        va_TraceMsg(trace_ctx, "");
+        for (i = 0; i < 15; i++) {
+            for (j = 0; j < 2; j++) {
+                va_TracePrint(trace_ctx, "\t%d", pRext->ChromaOffsetL1[i][j]);
+            }
+            TRACE_NEWLINE();
+        }
+        va_TracePrint(trace_ctx, "\n");
+
+        va_TraceMsg(trace_ctx, "\tslice_ext_flags = %d\n", 
pRext->slice_ext_flags.value);
+        va_TraceMsg(trace_ctx, "\tcu_chroma_qp_offset_enabled_flag = %d\n", 
pRext->slice_ext_flags.bits.cu_chroma_qp_offset_enabled_flag);
+        va_TraceMsg(trace_ctx, "\tuse_integer_mv_flag = %d\n", 
pRext->slice_ext_flags.bits.use_integer_mv_flag);
+        va_TraceMsg(trace_ctx, "\treserved = %d\n", 
pRext->slice_ext_flags.bits.reserved);
+
+        va_TraceMsg(trace_ctx, "\tslice_act_y_qp_offset = %d\n", 
pRext->slice_act_y_qp_offset);
+        va_TraceMsg(trace_ctx, "\tslice_act_cb_qp_offset = %d\n", 
pRext->slice_act_cb_qp_offset);
+        va_TraceMsg(trace_ctx, "\tslice_act_cr_qp_offset = %d\n", 
pRext->slice_act_cr_qp_offset);
+    }
+
     va_TraceMsg(trace_ctx, NULL);
 }
 
@@ -3030,9 +3208,8 @@
 {
     VAEncSliceParameterBuffer* p = (VAEncSliceParameterBuffer*)data;
     DPY2TRACECTX(dpy, context, VA_INVALID_ID);
-    
+
     va_TraceMsg(trace_ctx, "\t--VAEncSliceParameterBuffer\n");
-    
     va_TraceMsg(trace_ctx, "\tstart_row_number = %d\n", p->start_row_number);
     va_TraceMsg(trace_ctx, "\tslice_height = %d\n", p->slice_height);
     va_TraceMsg(trace_ctx, "\tslice_flags.is_intra = %d\n", 
p->slice_flags.bits.is_intra);
@@ -3797,6 +3974,119 @@
     return;
 }
 
+static void va_TraceVAPictureParameterBufferAV1(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VADecPictureParameterBufferAV1 *p = (VADecPictureParameterBufferAV1 *)data;
+    DPY2TRACECTX(dpy, context, VA_INVALID_ID);
+    int i;
+
+    va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferAV1\n");
+
+    va_TraceMsg(trace_ctx, "\tprofile = %d\n", p->profile);
+
+    va_TraceMsg(trace_ctx, "\tframe_width_minus_1 = %d\n", 
p->frame_width_minus1);
+    va_TraceMsg(trace_ctx, "\tframe_height_minus_1 = %d\n", 
p->frame_height_minus1);
+
+    va_TraceMsg(trace_ctx, "\toutput_frame_width_in_tiles_minus_1 = %d\n", 
p->output_frame_width_in_tiles_minus_1);
+    va_TraceMsg(trace_ctx, "\toutput_frame_height_in_tiles_minus_1 = %d\n", 
p->output_frame_height_in_tiles_minus_1);
+
+    va_TraceMsg(trace_ctx, "\tbit_depth_idx = %d\n", p->bit_depth_idx);
+    va_TraceMsg(trace_ctx, "\tseq_info_fields = %X\n", 
p->seq_info_fields.value);
+
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.still_picture = %d\n", 
p->seq_info_fields.fields.still_picture);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.use_128x128_superblock = 
%d\n", p->seq_info_fields.fields.use_128x128_superblock);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_filter_intra = %d\n", 
p->seq_info_fields.fields.enable_filter_intra);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_intra_edge_filter = 
%d\n", p->seq_info_fields.fields.enable_intra_edge_filter);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_interintra_compound = 
%d\n", p->seq_info_fields.fields.enable_interintra_compound);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_masked_compound = 
%d\n", p->seq_info_fields.fields.enable_masked_compound);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_dual_filter = %d\n", 
p->seq_info_fields.fields.enable_dual_filter);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_order_hint = %d\n", 
p->seq_info_fields.fields.enable_order_hint);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_jnt_comp = %d\n", 
p->seq_info_fields.fields.enable_jnt_comp);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.enable_cdef = %d\n", 
p->seq_info_fields.fields.enable_cdef);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.mono_chrome = %d\n", 
p->seq_info_fields.fields.mono_chrome);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.color_range = %d\n", 
p->seq_info_fields.fields.color_range);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.subsampling_x = %d\n", 
p->seq_info_fields.fields.subsampling_x);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.subsampling_y = %d\n", 
p->seq_info_fields.fields.subsampling_y);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.chroma_sample_position = 
%d\n", p->seq_info_fields.fields.chroma_sample_position);
+    va_TraceMsg(trace_ctx, "\t\tseq_info_fields.film_grain_params_present = 
%d\n", p->seq_info_fields.fields.film_grain_params_present);
+
+    va_TraceMsg(trace_ctx, "\tpic_info_fields = %X\n", 
p->pic_info_fields.value);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.frame_type = %d\n", 
p->pic_info_fields.bits.frame_type);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.show_frame = %d\n", 
p->pic_info_fields.bits.show_frame);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.showable_frame = %d\n", 
p->pic_info_fields.bits.showable_frame);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.error_resilient_mode = %d\n", 
p->pic_info_fields.bits.error_resilient_mode);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.disable_cdf_update = %d\n", 
p->pic_info_fields.bits.disable_cdf_update);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.allow_screen_content_tools = 
%d\n", p->pic_info_fields.bits.allow_screen_content_tools);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.force_integer_mv = %d\n", 
p->pic_info_fields.bits.force_integer_mv);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.allow_intrabc = %d\n", 
p->pic_info_fields.bits.allow_intrabc);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.use_superres = %d\n", 
p->pic_info_fields.bits.use_superres);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.allow_high_precision_mv = 
%d\n", p->pic_info_fields.bits.allow_high_precision_mv);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.is_motion_mode_switchable = 
%d\n", p->pic_info_fields.bits.is_motion_mode_switchable);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.use_ref_frame_mvs = %d\n", 
p->pic_info_fields.bits.use_ref_frame_mvs);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.disable_frame_end_update_cdf = 
%d\n", p->pic_info_fields.bits.disable_frame_end_update_cdf);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.uniform_tile_spacing_flag = 
%d\n", p->pic_info_fields.bits.uniform_tile_spacing_flag);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.allow_warped_motion = %d\n", 
p->pic_info_fields.bits.allow_warped_motion);
+    va_TraceMsg(trace_ctx, "\t\tpic_info_fields.large_scale_tile = %d\n", 
p->pic_info_fields.bits.large_scale_tile);
+
+    va_TraceMsg(trace_ctx, "\tloop_filter_info_fields = %X\n", 
p->loop_filter_info_fields.value);
+    va_TraceMsg(trace_ctx, "\t\tloop_filter_info_fields.bits.sharpness_level = 
%d\n", p->loop_filter_info_fields.bits.sharpness_level);
+    va_TraceMsg(trace_ctx, 
"\t\tloop_filter_info_fields.bits.mode_ref_delta_enabled = %d\n", 
p->loop_filter_info_fields.bits.mode_ref_delta_enabled);
+    va_TraceMsg(trace_ctx, 
"\t\tloop_filter_info_fields.bits.mode_ref_delta_update = %d\n", 
p->loop_filter_info_fields.bits.mode_ref_delta_update);
+
+    va_TraceMsg(trace_ctx, "\tcurrent_frame = %X\n", p->current_frame);
+    va_TraceMsg(trace_ctx, "\tcurrent_display_picture = %X\n", 
p->current_display_picture);
+
+    va_TraceMsg(trace_ctx, "\ttile_cols = %d\n", p->tile_cols);
+    va_TraceMsg(trace_ctx, "\ttile_rows = %d\n", p->tile_rows);
+    va_TraceMsg(trace_ctx, "\ttile_count_minus_1 = %d\n", 
p->tile_count_minus_1);
+    va_TraceMsg(trace_ctx, "\tcontext_update_tile_id = %d\n", 
p->context_update_tile_id);
+
+    va_TraceMsg(trace_ctx, "\tprimary_ref_frame = %d\n", p->primary_ref_frame);
+    for (i=0;i<8;i++)
+        va_TraceMsg(trace_ctx, "\tref_frame_map[%d] = %X\n", i, 
p->ref_frame_map[i]);
+
+    for (i=0;i<7;i++)
+        va_TraceMsg(trace_ctx, "\tref_frame_idx[%d] = %d\n", i, 
p->ref_frame_idx[i]);
+
+    va_TraceMsg(trace_ctx, "\torder_hint = %d\n", p->order_hint);
+
+    va_TraceMsg(trace_ctx, "\tanchor_frames_num = %d\n", p->anchor_frames_num);
+    for (i=0;i<p->anchor_frames_num;i++)
+        va_TraceMsg(trace_ctx, "\t\tanchor_frames_list[%d] = %X\n", i, 
p->anchor_frames_list[i]);
+
+    va_TraceMsg(trace_ctx, "\tsuperres_scale_denominator = %d\n", 
p->superres_scale_denominator);
+    va_TraceMsg(trace_ctx, "\tinterp_filter = %d\n", p->interp_filter);
+    va_TraceMsg(trace_ctx, "\tfilter_level[0] = %d\n", p->filter_level[0]);
+    va_TraceMsg(trace_ctx, "\tfilter_level[1] = %d\n", p->filter_level[1]);
+    va_TraceMsg(trace_ctx, "\tfilter_level_u = %d\n", p->filter_level_u);
+    va_TraceMsg(trace_ctx, "\tfilter_level_v = %d\n", p->filter_level_v);
+
+    va_TraceMsg(trace_ctx, "\tmode_control_fields = %X\n", 
p->mode_control_fields.value);
+    va_TraceMsg(trace_ctx, "\t\tmode_control_fields.delta_q_present_flag = 
%d\n", p->mode_control_fields.bits.delta_q_present_flag);
+    va_TraceMsg(trace_ctx, "\t\tmode_control_fields.log2_delta_q_res = %d\n", 
p->mode_control_fields.bits.log2_delta_q_res);
+    va_TraceMsg(trace_ctx, "\t\tmode_control_fields.delta_lf_present_flag = 
%d\n", p->mode_control_fields.bits.delta_lf_present_flag);
+    va_TraceMsg(trace_ctx, "\t\tmode_control_fields.log2_delta_lf_res = %d\n", 
p->mode_control_fields.bits.log2_delta_lf_res);
+    va_TraceMsg(trace_ctx, "\t\tmode_control_fields.delta_lf_multi = %d\n", 
p->mode_control_fields.bits.delta_lf_multi);
+    va_TraceMsg(trace_ctx, "\t\tmode_control_fields.tx_mode = %d\n", 
p->mode_control_fields.bits.tx_mode);
+    va_TraceMsg(trace_ctx, "\t\tmode_control_fields.reference_select = %d\n", 
p->mode_control_fields.bits.reference_select);
+    va_TraceMsg(trace_ctx, "\t\tmode_control_fields.reduced_tx_set_used = 
%d\n", p->mode_control_fields.bits.reduced_tx_set_used);
+    va_TraceMsg(trace_ctx, "\t\tmode_control_fields.skip_mode_present = %d\n", 
p->mode_control_fields.bits.skip_mode_present);
+    va_TraceMsg(trace_ctx, "\t\tmode_control_fields.skip_mode_present = %d\n", 
p->mode_control_fields.bits.skip_mode_present);
+
+    va_TraceMsg(trace_ctx, "\tloop_filter_info_fields = %X\n", 
p->loop_filter_info_fields.value);
+
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
 static void va_TraceVAEncPictureParameterBufferVP8(
     VADisplay dpy,
     VAContextID context,
@@ -3995,6 +4285,39 @@
     return;
 }
 
+static void va_TraceVASliceParameterBufferAV1(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+
+    VASliceParameterBufferAV1 *p = (VASliceParameterBufferAV1 *)data;
+    DPY2TRACECTX(dpy, context, VA_INVALID_ID);
+
+    va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferAV1\n");
+
+    va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
+    va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
+    va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
+
+    va_TraceMsg(trace_ctx, "\ttile_row = %d\n", p->tile_row);
+    va_TraceMsg(trace_ctx, "\ttile_column = %d\n", p->tile_column);
+
+    va_TraceMsg(trace_ctx, "\ttg_start = %d\n", p->tg_start);
+    va_TraceMsg(trace_ctx, "\ttg_end = %d\n", p->tg_end);
+
+    va_TraceMsg(trace_ctx, "\tanchor_frame_idx = %d\n", p->anchor_frame_idx);
+    va_TraceMsg(trace_ctx, "\ttile_idx_in_tile_list = %d\n", 
p->tile_idx_in_tile_list);
+
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
 void va_TraceBeginPicture(
     VADisplay dpy,
     VAContextID context,
@@ -4621,6 +4944,30 @@
     }
 }
 
+static void va_TraceAV1Buf(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *pbuf
+)
+{
+    DPY2TRACECTX(dpy, context, VA_INVALID_ID);
+
+    switch (type) {
+    case VAPictureParameterBufferType:
+        va_TraceVAPictureParameterBufferAV1(dpy, context, buffer, type, size, 
num_elements, pbuf);
+        break;
+    case VASliceParameterBufferType:
+        va_TraceVASliceParameterBufferAV1(dpy, context, buffer, type, size, 
num_elements, pbuf);
+        break;
+    default:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, 
pbuf);
+        break;
+    }
+}
 static void va_TraceVC1Buf(
     VADisplay dpy,
     VAContextID context,
@@ -5012,6 +5359,9 @@
         case VAProfileHEVCMain444_12:
         case VAProfileHEVCMain:
         case VAProfileHEVCMain10:
+        case VAProfileHEVCSccMain:
+        case VAProfileHEVCSccMain10:
+        case VAProfileHEVCSccMain444:
             for (j=0; j<num_elements; j++) {
                 va_TraceMsg(trace_ctx, "\telement[%d] = ", j);
 
@@ -5028,6 +5378,14 @@
                 va_TraceVP9Buf(dpy, context, buffers[i], type, size, 
num_elements, pbuf + size*j);
             }
             break;
+        case VAProfileAV1Profile0:
+        case VAProfileAV1Profile1:
+            for (j=0; j<num_elements; j++) {
+                va_TraceMsg(trace_ctx, "\telement[%d] = \n", j);
+
+                va_TraceAV1Buf(dpy, context, buffers[i], type, size, 
num_elements, pbuf + size*j);
+            }
+            break;
         default:
             break;
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/va/va_version.h 
new/libva-2.7.0/va/va_version.h
--- old/libva-2.6.1/va/va_version.h     2020-01-17 12:30:16.000000000 +0100
+++ new/libva-2.7.0/va/va_version.h     2020-04-09 17:48:12.000000000 +0200
@@ -37,7 +37,7 @@
  *
  * The minor version of VA-API (2, if %VA_VERSION is 1.2.3)
  */
-#define VA_MINOR_VERSION    6
+#define VA_MINOR_VERSION    7
 
 /**
  * VA_MICRO_VERSION:
@@ -51,7 +51,7 @@
  *
  * The full version of VA-API, like 1.2.3
  */
-#define VA_VERSION          1.6.0
+#define VA_VERSION          1.7.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.6.0"
+#define VA_VERSION_S       "1.7.0"
 
 /**
  * VA_VERSION_HEX:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libva-2.6.1/va/wayland/wayland-drm-client-protocol.c 
new/libva-2.7.0/va/wayland/wayland-drm-client-protocol.c
--- old/libva-2.6.1/va/wayland/wayland-drm-client-protocol.c    2019-12-24 
14:45:00.000000000 +0100
+++ new/libva-2.7.0/va/wayland/wayland-drm-client-protocol.c    2020-03-11 
10:42:57.000000000 +0100
@@ -34,54 +34,54 @@
 extern const struct wl_interface wl_buffer_interface;
 
 static const struct wl_interface *types[] = {
-       NULL,
-       &wl_buffer_interface,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       &wl_buffer_interface,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       &wl_buffer_interface,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
+    NULL,
+    &wl_buffer_interface,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    &wl_buffer_interface,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    &wl_buffer_interface,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
 };
 
 static const struct wl_message wl_drm_requests[] = {
-       { "authenticate", "u", types + 0 },
-       { "create_buffer", "nuiiuu", types + 1 },
-       { "create_planar_buffer", "nuiiuiiiiii", types + 7 },
-       { "create_prime_buffer", "2nhiiuiiiiii", types + 18 },
+    { "authenticate", "u", types + 0 },
+    { "create_buffer", "nuiiuu", types + 1 },
+    { "create_planar_buffer", "nuiiuiiiiii", types + 7 },
+    { "create_prime_buffer", "2nhiiuiiiiii", types + 18 },
 };
 
 static const struct wl_message wl_drm_events[] = {
-       { "device", "s", types + 0 },
-       { "format", "u", types + 0 },
-       { "authenticated", "", types + 0 },
-       { "capabilities", "u", types + 0 },
+    { "device", "s", types + 0 },
+    { "format", "u", types + 0 },
+    { "authenticated", "", types + 0 },
+    { "capabilities", "u", types + 0 },
 };
 
 DLL_HIDDEN const struct wl_interface wl_drm_interface = {
-       "wl_drm", 2,
-       4, wl_drm_requests,
-       4, wl_drm_events,
+    "wl_drm", 2,
+    4, wl_drm_requests,
+    4, wl_drm_events,
 };
 

++++++ libva-2.6.1.tar.bz2.sha1sum -> libva-2.7.0.tar.bz2.sha1sum ++++++
--- /work/SRC/openSUSE:Factory/libva/libva-2.6.1.tar.bz2.sha1sum        
2020-03-06 21:26:24.345519330 +0100
+++ /work/SRC/openSUSE:Factory/.libva.new.2738/libva-2.7.0.tar.bz2.sha1sum      
2020-04-14 16:23:34.431703937 +0200
@@ -1 +1 @@
-6b218e5622174a37fd0cfd8777b10717c95bd20e  libva-2.6.1.tar.bz2
+e0119fdfbc225e47d5723e38d35e914dd5eb8d2f  libva-2.7.0.tar.bz2


Reply via email to