Hello community, here is the log from the commit of package libva for openSUSE:Factory checked in at 2020-08-28 21:13:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libva (Old) and /work/SRC/openSUSE:Factory/.libva.new.3399 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libva" Fri Aug 28 21:13:24 2020 rev:54 rq:829060 version:2.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libva/libva.changes 2020-04-14 16:23:34.483703985 +0200 +++ /work/SRC/openSUSE:Factory/.libva.new.3399/libva.changes 2020-08-28 21:13:40.876100532 +0200 @@ -1,0 +2,27 @@ +Sat Aug 15 21:11:17 UTC 2020 - Dirk Mueller <dmuel...@suse.com> + +- update to 2.8.0: + * trace: enable return value trace for successful function call + * trace: divide va_TraceEndPicture to two seperate function + * trace: add support for VAProfileHEVCSccMain444_10 + * fix:Fixes file descriptor leak + * add fourcc code for P012 format + * travis: Add a test that code files don't have the exec bit set + * Remove the execute bit from all source code files + * meson: Allow for libdir and includedir to be absolute paths + * trace: Fix format string warnings + * fix:Fix clang warning (reading garbage) + * add definition to enforce both reflist not empty + * trace: List correct field names in va_TraceVAPictureParameterBufferHEVC + * change the return value to be UNIMPLEMENTED when the function pointer is NULL + * remove check of vaPutSurface implementation + * Add new slice structure flag for CAPS reporting + * VA/X11: VAAPI driver mapping for iris DRI driver + * VA/X11: enable driver candidate selection for DRI2 + * Add SCC flags to enable/disable features + * fix: Fix HDR10 MaxCLL and MaxFALL documentation + * Add VAProfileHEVCSccMain444_10 for HEVC + * change the compatible list to be dynamic one + * trace:Convert VAProfileAV1Profile0 VAProfileAV1Profile1 to string + +------------------------------------------------------------------- Old: ---- libva-2.7.0.tar.bz2 libva-2.7.0.tar.bz2.sha1sum New: ---- libva-2.8.0.tar.bz2 libva-2.8.0.tar.bz2.sha1sum ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libva-gl.spec ++++++ --- /var/tmp/diff_new_pack.rjDYv9/_old 2020-08-28 21:13:41.848101003 +0200 +++ /var/tmp/diff_new_pack.rjDYv9/_new 2020-08-28 21:13:41.852101005 +0200 @@ -23,7 +23,7 @@ Name: libva-gl %define _name libva -Version: 2.7.0 +Version: 2.8.0 Release: 0 Summary: Video Acceleration (VA) API License: MIT ++++++ libva.spec ++++++ --- /var/tmp/diff_new_pack.rjDYv9/_old 2020-08-28 21:13:41.880101019 +0200 +++ /var/tmp/diff_new_pack.rjDYv9/_new 2020-08-28 21:13:41.884101021 +0200 @@ -23,7 +23,7 @@ Name: libva %define _name libva -Version: 2.7.0 +Version: 2.8.0 Release: 0 Summary: Video Acceleration (VA) API License: MIT ++++++ libva-2.7.0.tar.bz2 -> libva-2.8.0.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/NEWS new/libva-2.8.0/NEWS --- old/libva-2.7.0/NEWS 2020-03-27 15:22:08.000000000 +0100 +++ new/libva-2.8.0/NEWS 2020-06-23 16:57:20.000000000 +0200 @@ -1,6 +1,30 @@ -libva NEWS -- summary of user visible changes. 2020-03-26 +libva NEWS -- summary of user visible changes. 2020-06-18 Copyright (C) 2009-2020 Intel Corporation +version 2.8.0 - 18.Jun.2020 +* trace: enable return value trace for successful function call +* trace: divide va_TraceEndPicture to two seperate function +* trace: add support for VAProfileHEVCSccMain444_10 +* fix:Fixes file descriptor leak +* add fourcc code for P012 format +* travis: Add a test that code files don't have the exec bit set +* Remove the execute bit from all source code files +* meson: Allow for libdir and includedir to be absolute paths +* trace: Fix format string warnings +* fix:Fix clang warning (reading garbage) +* add definition to enforce both reflist not empty +* trace: List correct field names in va_TraceVAPictureParameterBufferHEVC +* change the return value to be UNIMPLEMENTED when the function pointer is NULL +* remove check of vaPutSurface implementation +* Add new slice structure flag for CAPS reporting +* VA/X11: VAAPI driver mapping for iris DRI driver +* VA/X11: enable driver candidate selection for DRI2 +* Add SCC flags to enable/disable features +* fix: Fix HDR10 MaxCLL and MaxFALL documentation +* Add VAProfileHEVCSccMain444_10 for HEVC +* change the compatible list to be dynamic one +* trace:Convert VAProfileAV1Profile0 VAProfileAV1Profile1 to string + version 2.7.0 - 26.Mar.2020 * trace: av1 decode buffers trace * trace: Add HEVC REXT and SCC trace for decoding. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/configure new/libva-2.8.0/configure --- old/libva-2.7.0/configure 2020-04-09 17:48:09.000000000 +0200 +++ new/libva-2.8.0/configure 2020-06-26 01:51:59.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.7.0. +# Generated by GNU Autoconf 2.69 for libva 2.8.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.7.0' -PACKAGE_STRING='libva 2.7.0' +PACKAGE_VERSION='2.8.0' +PACKAGE_STRING='libva 2.8.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.7.0 to adapt to many kinds of systems. +\`configure' configures libva 2.8.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.7.0:";; + short | recursive ) echo "Configuration of libva 2.8.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.7.0 +libva configure 2.8.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.7.0, which was +It was created by libva $as_me 2.8.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.7.0' + VERSION='2.8.0' cat >>confdefs.h <<_ACEOF @@ -3099,26 +3099,26 @@ VA_API_MAJOR_VERSION=1 -VA_API_MINOR_VERSION=7 +VA_API_MINOR_VERSION=8 VA_API_MICRO_VERSION=0 -VA_API_VERSION=1.7.0 +VA_API_VERSION=1.8.0 LIBVA_MAJOR_VERSION=2 -LIBVA_MINOR_VERSION=7 +LIBVA_MINOR_VERSION=8 LIBVA_MICRO_VERSION=0 -LIBVA_VERSION=2.7.0 +LIBVA_VERSION=2.8.0 -LIBVA_LT_CURRENT=702 +LIBVA_LT_CURRENT=802 LIBVA_LT_REV=0 -LIBVA_LT_AGE=700 +LIBVA_LT_AGE=800 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.7.0, which was +This file was extended by libva $as_me 2.8.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.7.0 +libva config.status 2.8.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.7.0/configure.ac new/libva-2.8.0/configure.ac --- old/libva-2.7.0/configure.ac 2020-04-09 17:43:02.000000000 +0200 +++ new/libva-2.8.0/configure.ac 2020-06-26 01:34:38.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], [7]) +m4_define([va_api_minor_version], [8]) m4_define([va_api_micro_version], [0]) m4_define([va_api_version], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/meson.build new/libva-2.8.0/meson.build --- old/libva-2.7.0/meson.build 2020-04-09 17:43:02.000000000 +0200 +++ new/libva-2.8.0/meson.build 2020-06-26 01:34:38.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.7.0', + version : '2.8.0.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 = 7 +va_api_minor_version = 8 va_api_micro_version = 0 va_api_version = '@0@.@1@.@2@'.format(va_api_major_version, @@ -65,7 +65,7 @@ driverdir = get_option('driverdir') if driverdir == '' - driverdir = '@0@/@1@/@2@'.format(get_option('prefix'), get_option('libdir'), 'dri') + driverdir = join_paths(get_option('prefix'), get_option('libdir'), 'dri') endif configinc = include_directories('.') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/pkgconfig/meson.build new/libva-2.8.0/pkgconfig/meson.build --- old/libva-2.7.0/pkgconfig/meson.build 2018-12-26 11:22:41.000000000 +0100 +++ new/libva-2.8.0/pkgconfig/meson.build 2020-06-18 12:51:52.000000000 +0200 @@ -2,8 +2,8 @@ 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('libdir', join_paths(get_option('prefix'), get_option('libdir'))) +pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir'))) pkgconf.set('LIBVA_VERSION', libva_version) pkgconf.set('VA_API_VERSION', va_api_version) pkgconf.set('LIBVA_DRIVERS_PATH', driverdir) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/va/glx/va_glx_impl.c new/libva-2.8.0/va/glx/va_glx_impl.c --- old/libva-2.7.0/va/glx/va_glx_impl.c 2020-03-25 23:08:39.000000000 +0100 +++ new/libva-2.8.0/va/glx/va_glx_impl.c 2020-06-18 12:51:52.000000000 +0200 @@ -939,7 +939,7 @@ vaDestroySurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) { VASurfaceGLXP pSurfaceGLX; - struct OpenGLContextState old_cs, *new_cs; + struct OpenGLContextState old_cs = {0}, *new_cs; INIT_SURFACE(pSurfaceGLX, gl_surface); @@ -1072,7 +1072,7 @@ { VASurfaceGLXP pSurfaceGLX; VAStatus status; - struct OpenGLContextState old_cs; + struct OpenGLContextState old_cs = {0}; INIT_SURFACE(pSurfaceGLX, gl_surface); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/va/va.c new/libva-2.8.0/va/va.c --- old/libva-2.7.0/va/va.c 2020-04-09 17:43:02.000000000 +0200 +++ new/libva-2.8.0/va/va.c 2020-06-26 01:34:38.000000000 +0200 @@ -52,7 +52,7 @@ #define DRIVER_EXTENSION "_drv_video.so" #define ASSERT assert -#define CHECK_VTABLE(s, ctx, func) if (!va_checkVtable(dpy, ctx->vtable->va##func, #func)) s = VA_STATUS_ERROR_UNKNOWN; +#define CHECK_VTABLE(s, ctx, func) if (!va_checkVtable(dpy, ctx->vtable->va##func, #func)) s = VA_STATUS_ERROR_UNIMPLEMENTED; #define CHECK_MAXIMUM(s, ctx, var) if (!va_checkMaximum(dpy, ctx->max_##var, #var)) s = VA_STATUS_ERROR_UNKNOWN; #define CHECK_STRING(s, ctx, var) if (!va_checkString(dpy, ctx->str_##var, #var)) s = VA_STATUS_ERROR_UNKNOWN; @@ -465,20 +465,16 @@ char init_func_s[256]; int i; - static const struct { + struct { int major; 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 }, - { VA_MAJOR_VERSION, 2 }, - { VA_MAJOR_VERSION, 1 }, - { VA_MAJOR_VERSION, 0 }, - { -1, -1} - }; + } compatible_versions[VA_MINOR_VERSION + 2]; + for (i = 0; i <= VA_MINOR_VERSION; i ++) { + compatible_versions[i].major = VA_MAJOR_VERSION; + compatible_versions[i].minor = VA_MINOR_VERSION - i; + } + compatible_versions[i].major = -1; + compatible_versions[i].minor = -1; for (i = 0; compatible_versions[i].major >= 0; i++) { if (va_getDriverInitName(init_func_s, sizeof(init_func_s), @@ -548,7 +544,6 @@ CHECK_VTABLE(vaStatus, ctx, EndPicture); CHECK_VTABLE(vaStatus, ctx, SyncSurface); CHECK_VTABLE(vaStatus, ctx, QuerySurfaceStatus); - CHECK_VTABLE(vaStatus, ctx, PutSurface); CHECK_VTABLE(vaStatus, ctx, QueryImageFormats); CHECK_VTABLE(vaStatus, ctx, CreateImage); CHECK_VTABLE(vaStatus, ctx, DeriveImage); @@ -1617,12 +1612,11 @@ ctx = CTX(dpy); VA_FOOL_FUNC(va_FoolCheckContinuity, dpy); - + VA_TRACE_ALL(va_TraceEndPicture, dpy, context, 0); va_status = ctx->vtable->vaEndPicture( ctx, context ); - - /* dump surface content */ - VA_TRACE_ALL(va_TraceEndPicture, dpy, context, 1); VA_TRACE_RET(dpy, va_status); + /* dump surface content */ + VA_TRACE_ALL(va_TraceEndPictureExt, dpy, context, 1); return va_status; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/va/va.h new/libva-2.8.0/va/va.h --- old/libva-2.7.0/va/va.h 2020-03-25 23:08:39.000000000 +0100 +++ new/libva-2.8.0/va/va.h 2020-06-26 01:34:38.000000000 +0200 @@ -395,7 +395,8 @@ VAProfileHEVCSccMain10 = 30, VAProfileHEVCSccMain444 = 31, VAProfileAV1Profile0 = 32, - VAProfileAV1Profile1 = 33 + VAProfileAV1Profile1 = 33, + VAProfileHEVCSccMain444_10 = 34 } VAProfile; /** @@ -956,12 +957,16 @@ #define VA_ENC_SLICE_STRUCTURE_POWER_OF_TWO_ROWS 0x00000001 /** \brief Driver supports an arbitrary number of macroblocks per slice. */ #define VA_ENC_SLICE_STRUCTURE_ARBITRARY_MACROBLOCKS 0x00000002 -/** \brief Dirver support 1 rows per slice */ +/** \brief Driver support 1 row per slice */ #define VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS 0x00000004 -/** \brief Dirver support max encoded slice size per slice */ +/** \brief Driver support max encoded slice size per slice */ #define VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE 0x00000008 /** \brief Driver supports an arbitrary number of rows per slice. */ #define VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS 0x00000010 +/** \brief Driver supports any number of rows per slice but they must be the same +* for all slices except for the last one, which must be equal or smaller +* to the previous slices. */ +#define VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS 0x00000020 /**@}*/ /** \brief Attribute value for VAConfigAttribMaxFrameSize */ @@ -1019,6 +1024,8 @@ #define VA_PREDICTION_DIRECTION_PREVIOUS 0x00000001 /** \brief Driver support backward prediction frame/slice */ #define VA_PREDICTION_DIRECTION_FUTURE 0x00000002 +/** \brief Dirver require both reference list must be not empty for inter frame */ +#define VA_PREDICTION_DIRECTION_BI_NOT_EMPTY 0x00000004 /**@}*/ /** @name Attribute values for VAConfigAttribEncIntraRefresh */ @@ -3981,6 +3988,12 @@ * The first plane contains Y, the second plane contains U and V in pairs of samples. */ #define VA_FOURCC_P010 0x30313050 +/** P012: two-plane 12-bit YUV 4:2:0. + * + * Each sample is a two-byte little-endian value with the bottom four bits ignored. + * The first plane contains Y, the second plane contains U and V in pairs of samples. + */ +#define VA_FOURCC_P012 0x32313050 /** P016: two-plane 16-bit YUV 4:2:0. * * Each sample is a two-byte little-endian value. The first plane contains Y, the second diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/va/va_enc_hevc.h new/libva-2.8.0/va/va_enc_hevc.h --- old/libva-2.7.0/va/va_enc_hevc.h 2020-03-25 23:08:39.000000000 +0100 +++ new/libva-2.8.0/va/va_enc_hevc.h 2020-06-09 22:56:35.000000000 +0200 @@ -327,8 +327,19 @@ uint8_t max_bytes_per_pic_denom; /** \brief Same as the HEVC bitstream syntax element. */ uint8_t max_bits_per_min_cu_denom; + + /** \brief SCC flags to enable/disable features, including IBC and palette mode at present.*/ + union { + struct { + /** \brief Same as the HEVC bitstream syntax element. */ + uint32_t palette_mode_enabled_flag : 1; + /** \brief Reserved bits for future use, must be zero */ + uint32_t reserved : 31; + } bits; + uint32_t value; + } scc_fields; /** \brief Reserved bytes for future use, must be zero */ - uint32_t va_reserved[VA_PADDING_MEDIUM]; + uint32_t va_reserved[VA_PADDING_MEDIUM - 1]; /**@}*/ } VAEncSequenceParameterBufferHEVC; @@ -538,7 +549,17 @@ */ uint8_t hierarchical_level_plus1; /** \brief Reserved bytes for future use, must be zero */ - uint8_t va_byte_reserved[3]; + uint8_t va_byte_reserved; + /** \brief SCC flags to enable/disable feature, only IBC at present.*/ + union { + struct { + /** \brief Same as the HEVC bitstream syntax element. */ + uint16_t pps_curr_pic_ref_enabled_flag : 1; + /** \brief Reserved bits for future use, must be zero */ + uint16_t reserved : 15; + } bits; + uint16_t value; + } scc_fields; /** \brief Reserved bytes for future use, must be zero */ uint32_t va_reserved[VA_PADDING_HIGH - 1]; } VAEncPictureParameterBufferHEVC; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/va/va_str.c new/libva-2.8.0/va/va_str.c --- old/libva-2.7.0/va/va_str.c 2020-04-09 17:43:02.000000000 +0200 +++ new/libva-2.8.0/va/va_str.c 2020-06-09 22:56:35.000000000 +0200 @@ -61,6 +61,9 @@ TOSTR(VAProfileHEVCSccMain); TOSTR(VAProfileHEVCSccMain10); TOSTR(VAProfileHEVCSccMain444); + TOSTR(VAProfileAV1Profile0); + TOSTR(VAProfileAV1Profile1); + TOSTR(VAProfileHEVCSccMain444_10); default: break; } return "<unknown profile>"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/va/va_trace.c new/libva-2.8.0/va/va_trace.c --- old/libva-2.7.0/va/va_trace.c 2020-03-25 23:08:39.000000000 +0100 +++ new/libva-2.8.0/va/va_trace.c 2020-06-26 01:34:38.000000000 +0200 @@ -989,7 +989,7 @@ vaUnlockSurface(dpy, trace_ctx->trace_rendertarget); return; } - va_TraceMsg(trace_ctx, "\tbuffer location = 0x%08x\n", buffer); + va_TraceMsg(trace_ctx, "\tbuffer location = 0x%p\n", buffer); va_TraceMsg(trace_ctx, NULL); Y_data = (unsigned char*)buffer; @@ -1661,7 +1661,7 @@ va_TraceMsg(trace_ctx, "\t bit_offset = %u\n", buf_list->bit_offset); va_TraceMsg(trace_ctx, "\t status = 0x%08x\n", buf_list->status); va_TraceMsg(trace_ctx, "\t reserved = 0x%08x\n", buf_list->reserved); - va_TraceMsg(trace_ctx, "\t buf = 0x%08x\n", buf_list->buf); + va_TraceMsg(trace_ctx, "\t buf = 0x%p\n", buf_list->buf); if (trace_ctx->trace_fp_codedbuf) { va_TraceMsg(trace_ctx, "\tDump the content to file\n"); @@ -1773,10 +1773,10 @@ va_TraceMsg(trace_ctx,"\tload_non_intra_quantiser_matrix = %d\n", p->load_non_intra_quantiser_matrix); va_TraceMsg(trace_ctx,"\tload_chroma_intra_quantiser_matrix = %d\n", p->load_chroma_intra_quantiser_matrix); va_TraceMsg(trace_ctx,"\tload_chroma_non_intra_quantiser_matrix = %d\n", p->load_chroma_non_intra_quantiser_matrix); - va_TraceMsg(trace_ctx,"\tintra_quantiser_matrix = %d\n", p->intra_quantiser_matrix); - va_TraceMsg(trace_ctx,"\tnon_intra_quantiser_matrix = %d\n", p->non_intra_quantiser_matrix); - va_TraceMsg(trace_ctx,"\tchroma_intra_quantiser_matrix = %d\n", p->chroma_intra_quantiser_matrix); - va_TraceMsg(trace_ctx,"\tchroma_non_intra_quantiser_matrix = %d\n", p->chroma_non_intra_quantiser_matrix); + va_TraceMsg(trace_ctx,"\tintra_quantiser_matrix = %p\n", p->intra_quantiser_matrix); + va_TraceMsg(trace_ctx,"\tnon_intra_quantiser_matrix = %p\n", p->non_intra_quantiser_matrix); + va_TraceMsg(trace_ctx,"\tchroma_intra_quantiser_matrix = %p\n", p->chroma_intra_quantiser_matrix); + va_TraceMsg(trace_ctx,"\tchroma_non_intra_quantiser_matrix = %p\n", p->chroma_non_intra_quantiser_matrix); va_TraceMsg(trace_ctx, NULL); return; @@ -2047,7 +2047,7 @@ va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period); va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second); - va_TraceMsg(trace_ctx, "\tframe_rate = %d\n", p->frame_rate); + va_TraceMsg(trace_ctx, "\tframe_rate = %f\n", p->frame_rate); va_TraceMsg(trace_ctx, "\tvbv_buffer_size = %d\n", p->vbv_buffer_size); va_TraceMsg(trace_ctx, NULL); @@ -2170,7 +2170,8 @@ trace_ctx->trace_profile == VAProfileHEVCMain444_12 || \ trace_ctx->trace_profile == VAProfileHEVCSccMain || \ trace_ctx->trace_profile == VAProfileHEVCSccMain10 || \ - trace_ctx->trace_profile == VAProfileHEVCSccMain444 \ + trace_ctx->trace_profile == VAProfileHEVCSccMain444 || \ + trace_ctx->trace_profile == VAProfileHEVCSccMain444_10 \ ); } @@ -2185,7 +2186,8 @@ *isScc = (\ trace_ctx->trace_profile == VAProfileHEVCSccMain || \ trace_ctx->trace_profile == VAProfileHEVCSccMain10 || \ - trace_ctx->trace_profile == VAProfileHEVCSccMain444 \ + trace_ctx->trace_profile == VAProfileHEVCSccMain444 || \ + trace_ctx->trace_profile == VAProfileHEVCSccMain444_10 \ ); } @@ -2225,7 +2227,7 @@ va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.pic_order_cnt); va_TraceMsg(trace_ctx, "\tCurrPic.flags = %d\n", p->CurrPic.flags); - va_TraceMsg(trace_ctx, "\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags:\n"); + va_TraceMsg(trace_ctx, "\tReferenceFrames (picture_id-pic_order_cnt-flags:\n"); for (i = 0; i < 15; i++) { if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) && @@ -5362,6 +5364,7 @@ case VAProfileHEVCSccMain: case VAProfileHEVCSccMain10: case VAProfileHEVCSccMain444: + case VAProfileHEVCSccMain444_10: for (j=0; j<num_elements; j++) { va_TraceMsg(trace_ctx, "\telement[%d] = ", j); @@ -5402,14 +5405,23 @@ int endpic_done ) { - int encode, decode, jpeg; DPY2TRACECTX(dpy, context, VA_INVALID_ID); TRACE_FUNCNAME(idx); va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", context); va_TraceMsg(trace_ctx, "\trender_targets = 0x%08x\n", trace_ctx->trace_rendertarget); + va_TraceMsg(trace_ctx, NULL); +} +void va_TraceEndPictureExt( + VADisplay dpy, + VAContextID context, + int endpic_done +) +{ + int encode, decode, jpeg; + DPY2TRACECTX(dpy, context, VA_INVALID_ID); /* avoid to create so many empty files */ encode = (trace_ctx->trace_entrypoint == VAEntrypointEncSlice); decode = (trace_ctx->trace_entrypoint == VAEntrypointVLD); @@ -5425,9 +5437,7 @@ vaSyncSurface(dpy, trace_ctx->trace_rendertarget); va_TraceSurface(dpy, context); } - - va_TraceMsg(trace_ctx, NULL); -} + } void va_TraceSyncSurface( @@ -5632,7 +5642,7 @@ TRACE_FUNCNAME(idx); va_TraceMsg(trace_ctx, "\tsurface = 0x%08x\n", surface); - va_TraceMsg(trace_ctx, "\tdraw = 0x%08x\n", draw); + va_TraceMsg(trace_ctx, "\tdraw = 0x%p\n", draw); va_TraceMsg(trace_ctx, "\tsrcx = %d\n", srcx); va_TraceMsg(trace_ctx, "\tsrcy = %d\n", srcy); va_TraceMsg(trace_ctx, "\tsrcw = %d\n", srcw); @@ -5641,7 +5651,7 @@ va_TraceMsg(trace_ctx, "\tdesty = %d\n", desty); va_TraceMsg(trace_ctx, "\tdestw = %d\n", destw); va_TraceMsg(trace_ctx, "\tdesth = %d\n", desth); - va_TraceMsg(trace_ctx, "\tcliprects = 0x%08x\n", cliprects); + va_TraceMsg(trace_ctx, "\tcliprects = 0x%p\n", cliprects); va_TraceMsg(trace_ctx, "\tnumber_cliprects = %d\n", number_cliprects); va_TraceMsg(trace_ctx, "\tflags = 0x%08x\n", flags); va_TraceMsg(trace_ctx, NULL); @@ -5651,9 +5661,6 @@ void va_TraceStatus(VADisplay dpy, const char * funcName, VAStatus status) { - if(status == VA_STATUS_SUCCESS) - return; - DPY2TRACE_VIRCTX(dpy); va_TraceMsg(trace_ctx, "=========%s ret = %s, %s \n",funcName, vaStatusStr(status), vaErrorStr(status)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/va/va_trace.h new/libva-2.8.0/va/va_trace.h --- old/libva-2.7.0/va/va_trace.h 2020-03-25 23:08:39.000000000 +0100 +++ new/libva-2.8.0/va/va_trace.h 2020-06-26 01:34:38.000000000 +0200 @@ -200,6 +200,13 @@ ); DLL_HIDDEN +void va_TraceEndPictureExt( + VADisplay dpy, + VAContextID context, + int endpic_done +); + +DLL_HIDDEN void va_TraceSyncSurface( VADisplay dpy, VASurfaceID render_target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/va/va_version.h new/libva-2.8.0/va/va_version.h --- old/libva-2.7.0/va/va_version.h 2020-04-09 17:48:12.000000000 +0200 +++ new/libva-2.8.0/va/va_version.h 2020-06-26 01:52:02.000000000 +0200 @@ -37,7 +37,7 @@ * * The minor version of VA-API (2, if %VA_VERSION is 1.2.3) */ -#define VA_MINOR_VERSION 7 +#define VA_MINOR_VERSION 8 /** * VA_MICRO_VERSION: @@ -51,7 +51,7 @@ * * The full version of VA-API, like 1.2.3 */ -#define VA_VERSION 1.7.0 +#define VA_VERSION 1.8.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.7.0" +#define VA_VERSION_S "1.8.0" /** * VA_VERSION_HEX: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/va/va_vpp.h new/libva-2.8.0/va/va_vpp.h --- old/libva-2.7.0/va/va_vpp.h 2020-03-25 23:08:39.000000000 +0100 +++ new/libva-2.8.0/va/va_vpp.h 2020-06-18 12:51:52.000000000 +0200 @@ -805,15 +805,15 @@ */ uint32_t min_display_mastering_luminance; /** - * \brief The maximum content light level. + * \brief The maximum content light level (MaxCLL). * - * The value is in units of 0.0001 candelas per square metre. + * The value is in units of 1 candelas per square metre. */ uint16_t max_content_light_level; /** - * \brief The maximum picture average light level. + * \brief The maximum picture average light level (MaxFALL). * - * The value is in units of 0.0001 candelas per square metre. + * The value is in units of 1 candelas per square metre. */ uint16_t max_pic_average_light_level; /** Resevered */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/va/x11/dri2_util.c new/libva-2.8.0/va/x11/dri2_util.c --- old/libva-2.7.0/va/x11/dri2_util.c 2020-03-25 23:08:39.000000000 +0100 +++ new/libva-2.8.0/va/x11/dri2_util.c 2020-06-18 12:51:52.000000000 +0200 @@ -182,8 +182,7 @@ char *device_name = NULL; drm_magic_t magic; *driver_name = NULL; - dri_state->base.fd = -1; - dri_state->base.auth_type = VA_NONE; + if (!VA_DRI2QueryExtension(ctx->native_dpy, &event_base, &error_base)) goto err_out; @@ -195,6 +194,9 @@ driver_name, &device_name)) goto err_out; + if ((dri_state->base.fd != -1) && (dri_state->base.auth_type != VA_NONE)) + goto success_out; + dri_state->base.fd = open(device_name, O_RDWR); if (dri_state->base.fd < 0) @@ -215,6 +217,7 @@ dri_state->close = dri2Close; gsDRI2SwapAvailable = (minor >= 2); +success_out: Xfree(device_name); return True; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.7.0/va/x11/va_x11.c new/libva-2.8.0/va/x11/va_x11.c --- old/libva-2.7.0/va/x11/va_x11.c 2020-03-25 23:08:39.000000000 +0100 +++ new/libva-2.8.0/va/x11/va_x11.c 2020-06-18 12:51:52.000000000 +0200 @@ -44,6 +44,20 @@ #include <fcntl.h> #include <errno.h> +struct driver_name_map { + const char *key; + int key_len; + const char *name; +}; + +static const struct driver_name_map g_dri2_driver_name_map[] = { + { "i965", 4, "iHD" }, // Intel iHD VAAPI driver with i965 DRI driver + { "i965", 4, "i965" }, // Intel i965 VAAPI driver with i965 DRI driver + { "iris", 4, "iHD" }, // Intel iHD VAAPI driver with iris DRI driver + { "iris", 4, "i965" }, // Intel i965 VAAPI driver with iris DRI driver + { NULL, 0, NULL } +}; + static int va_DisplayContextIsValid ( VADisplayContextP pDisplayContext ) @@ -73,29 +87,93 @@ free(pDisplayContext); } +static VAStatus va_DRI2_GetNumCandidates ( + VADisplayContextP pDisplayContext, + int *num_candidates +) +{ + char *driver_name = NULL; + const struct driver_name_map *m = NULL; + VADriverContextP ctx = pDisplayContext->pDriverContext; + + *num_candidates = 0; + + if (!(va_isDRI2Connected(ctx, &driver_name) && driver_name)) + return VA_STATUS_ERROR_UNKNOWN; + + for (m = g_dri2_driver_name_map; m->key != NULL; m++) { + if (strlen(driver_name) >= m->key_len && + strncmp(driver_name, m->key, m->key_len) == 0) { + (*num_candidates)++; + } + } + + free(driver_name); + + /* + * If the dri2 driver name does not have a mapped vaapi driver name, then + * assume they have the same name. + */ + if (*num_candidates == 0) + *num_candidates = 1; -static VAStatus va_DRI2GetDriverName ( + return VA_STATUS_SUCCESS; +} + +static VAStatus va_DRI2_GetDriverName ( VADisplayContextP pDisplayContext, - char **driver_name + char **driver_name_ptr, + int candidate_index ) { + const struct driver_name_map *m = NULL; + int current_index = 0; VADriverContextP ctx = pDisplayContext->pDriverContext; - if (!va_isDRI2Connected(ctx, driver_name)) + *driver_name_ptr = NULL; + + if (!(va_isDRI2Connected(ctx, driver_name_ptr) && *driver_name_ptr)) return VA_STATUS_ERROR_UNKNOWN; + for (m = g_dri2_driver_name_map; m->key != NULL; m++) { + if (strlen(*driver_name_ptr) >= m->key_len && + strncmp(*driver_name_ptr, m->key, m->key_len) == 0) { + if (current_index == candidate_index) { + break; + } + current_index++; + } + } + + /* + * If the dri2 driver name does not have a mapped vaapi driver name, then + * assume they have the same name. + */ + if (!m->name) + return VA_STATUS_SUCCESS; + + /* Use the mapped vaapi driver name */ + free(*driver_name_ptr); + *driver_name_ptr = strdup(m->name); + if (!*driver_name_ptr) + return VA_STATUS_ERROR_ALLOCATION_FAILED; + return VA_STATUS_SUCCESS; } static VAStatus va_NVCTRL_GetDriverName ( VADisplayContextP pDisplayContext, - char **driver_name + char **driver_name, + int candidate_index ) { VADriverContextP ctx = pDisplayContext->pDriverContext; int direct_capable, driver_major, driver_minor, driver_patch; Bool result; + if (candidate_index != 0) + return VA_STATUS_ERROR_INVALID_PARAMETER; + result = VA_NVCTRLQueryDirectRenderingCapable(ctx->native_dpy, ctx->x11_screen, &direct_capable); if (!result || !direct_capable) @@ -112,13 +190,17 @@ static VAStatus va_FGLRX_GetDriverName ( VADisplayContextP pDisplayContext, - char **driver_name + char **driver_name, + int candidate_index ) { VADriverContextP ctx = pDisplayContext->pDriverContext; int driver_major, driver_minor, driver_patch; Bool result; + if (candidate_index != 0) + return VA_STATUS_ERROR_INVALID_PARAMETER; + result = VA_FGLRXGetClientDriverName(ctx->native_dpy, ctx->x11_screen, &driver_major, &driver_minor, &driver_patch, driver_name); @@ -130,24 +212,43 @@ static VAStatus va_DisplayContextGetDriverName ( VADisplayContextP pDisplayContext, - char **driver_name + char **driver_name, int candidate_index ) { VAStatus vaStatus; if (driver_name) - *driver_name = NULL; + *driver_name = NULL; else return VA_STATUS_ERROR_UNKNOWN; - - vaStatus = va_DRI2GetDriverName(pDisplayContext, driver_name); + + vaStatus = va_DRI2_GetDriverName(pDisplayContext, driver_name, candidate_index); if (vaStatus != VA_STATUS_SUCCESS) - vaStatus = va_NVCTRL_GetDriverName(pDisplayContext, driver_name); + vaStatus = va_NVCTRL_GetDriverName(pDisplayContext, driver_name, candidate_index); if (vaStatus != VA_STATUS_SUCCESS) - vaStatus = va_FGLRX_GetDriverName(pDisplayContext, driver_name); + vaStatus = va_FGLRX_GetDriverName(pDisplayContext, driver_name, candidate_index); + return vaStatus; } +static VAStatus va_DisplayContextGetNumCandidates ( + VADisplayContextP pDisplayContext, + int *num_candidates +) +{ + VAStatus vaStatus; + + vaStatus = va_DRI2_GetNumCandidates(pDisplayContext, num_candidates); + + /* A call to va_DisplayContextGetDriverName will fallback to other + * methods (i.e. NVCTRL, FGLRX) when DRI2 is unsuccessful. All of those + * fallbacks only have 1 candidate driver. + */ + if (vaStatus != VA_STATUS_SUCCESS) + *num_candidates = 1; + + return VA_STATUS_SUCCESS; +} VADisplay vaGetDisplay ( Display *native_dpy /* implementation specific */ @@ -166,7 +267,8 @@ pDisplayContext->vaIsValid = va_DisplayContextIsValid; pDisplayContext->vaDestroy = va_DisplayContextDestroy; - pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName; + pDisplayContext->vaGetNumCandidates = va_DisplayContextGetNumCandidates; + pDisplayContext->vaGetDriverNameByIndex = va_DisplayContextGetDriverName; pDriverContext = va_newDriverContext(pDisplayContext); if (!pDriverContext) { @@ -185,12 +287,14 @@ return NULL; } + dri_state->base.fd = -1; + dri_state->base.auth_type = VA_NONE; + pDriverContext->drm_state = dri_state; return (VADisplay)pDisplayContext; } - void va_TracePutSurface ( VADisplay dpy, VASurfaceID surface, @@ -208,7 +312,6 @@ unsigned int flags /* de-interlacing flags */ ); - VAStatus vaPutSurface ( VADisplay dpy, VASurfaceID surface, ++++++ libva-2.7.0.tar.bz2.sha1sum -> libva-2.8.0.tar.bz2.sha1sum ++++++ --- /work/SRC/openSUSE:Factory/libva/libva-2.7.0.tar.bz2.sha1sum 2020-04-14 16:23:34.431703937 +0200 +++ /work/SRC/openSUSE:Factory/.libva.new.3399/libva-2.8.0.tar.bz2.sha1sum 2020-08-28 21:13:39.740099980 +0200 @@ -1 +1 @@ -e0119fdfbc225e47d5723e38d35e914dd5eb8d2f libva-2.7.0.tar.bz2 +9fb5df0e511c4aa918f9e8cd2be072cb3bb5040c libva-2.8.0.tar.bz2