Hello community, here is the log from the commit of package libva for openSUSE:Factory checked in at 2019-08-28 16:00:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libva (Old) and /work/SRC/openSUSE:Factory/.libva.new.7948 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libva" Wed Aug 28 16:00:31 2019 rev:47 rq:725396 version:2.5.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libva/libva-gl.changes 2019-07-22 12:14:59.731750868 +0200 +++ /work/SRC/openSUSE:Factory/.libva.new.7948/libva-gl.changes 2019-08-28 16:00:33.218808876 +0200 @@ -1,0 +2,27 @@ +Wed Aug 21 21:55:43 UTC 2019 - Aaron Stern <ukbeas...@protonmail.com> + +- Update to version 2.5.0: + * Correct the comment of color_range. + * Add VA_FOURCC_A2B10G10R10 for format a2b10g10r10. + * Adjust VAEncMiscParameterQuantization structure to be align with VAEncMiscParameterBuffer(possible to impact BC) + * Add attribute for max frame size + * Add va_footer.html into distribution build + * va_trace: hevc profiles added + * Add new definition for input/output surface flag + * va/va_trace: add trace support for VAEncMiscParameterTypeSkipFrame structure. + * va/va_trace: add MPEG2 trace support for MiscParam and SequenceParam + * va_openDriver: check strdup return value + * Mark some duplicated field as deprecated + * Add return value into logs + * va/va_trace: add trace support for VAEncMiscParameterEncQuality structure. + * Add newformat foucc defination + * va_backend: remove unneeded linux/videodev2.h include + * va_trace: add missing <sys/time.h> include + * configure: don't build glx if VA/X11 isn't built + * va/va_trace: unbreak with C89 after b369467 + * [common] Add A2RGB10 fourcc definition + * build: meson: enables va messaging and visibility + * va/va_trace: add trace support for RIR(rolling intra refresh). + * va/va_trace: add trace support for ROI(region of interest) + +------------------------------------------------------------------- --- /work/SRC/openSUSE:Factory/libva/libva.changes 2019-07-22 12:14:59.763750859 +0200 +++ /work/SRC/openSUSE:Factory/.libva.new.7948/libva.changes 2019-08-28 16:00:33.254808870 +0200 @@ -1,0 +2,27 @@ +Wed Aug 21 22:07:32 UTC 2019 - Aaron Stern <ukbeas...@protonmail.com> + +- Update to version 2.5.0: + * Correct the comment of color_range. + * Add VA_FOURCC_A2B10G10R10 for format a2b10g10r10. + * Adjust VAEncMiscParameterQuantization structure to be align with VAEncMiscParameterBuffer(possible to impact BC) + * Add attribute for max frame size + * Add va_footer.html into distribution build + * va_trace: hevc profiles added + * Add new definition for input/output surface flag + * va/va_trace: add trace support for VAEncMiscParameterTypeSkipFrame structure. + * va/va_trace: add MPEG2 trace support for MiscParam and SequenceParam + * va_openDriver: check strdup return value + * Mark some duplicated field as deprecated + * Add return value into logs + * va/va_trace: add trace support for VAEncMiscParameterEncQuality structure. + * Add newformat foucc defination + * va_backend: remove unneeded linux/videodev2.h include + * va_trace: add missing <sys/time.h> include + * configure: don't build glx if VA/X11 isn't built + * va/va_trace: unbreak with C89 after b369467 + * [common] Add A2RGB10 fourcc definition + * build: meson: enables va messaging and visibility + * va/va_trace: add trace support for RIR(rolling intra refresh). + * va/va_trace: add trace support for ROI(region of interest) + +------------------------------------------------------------------- Old: ---- libva-2.4.1.tar.bz2 libva-2.4.1.tar.bz2.sha1sum New: ---- libva-2.5.0.tar.bz2 libva-2.5.0.tar.bz2.sha1sum ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libva-gl.spec ++++++ --- /var/tmp/diff_new_pack.7egNLg/_old 2019-08-28 16:00:33.726808800 +0200 +++ /var/tmp/diff_new_pack.7egNLg/_new 2019-08-28 16:00:33.726808800 +0200 @@ -29,7 +29,7 @@ Name: libva-gl %define _name libva -Version: 2.4.1 +Version: 2.5.0 Release: 0 Summary: Video Acceleration (VA) API License: MIT ++++++ libva.spec ++++++ --- /var/tmp/diff_new_pack.7egNLg/_old 2019-08-28 16:00:33.746808796 +0200 +++ /var/tmp/diff_new_pack.7egNLg/_new 2019-08-28 16:00:33.750808796 +0200 @@ -29,7 +29,7 @@ Name: libva %define _name libva -Version: 2.4.1 +Version: 2.5.0 Release: 0 Summary: Video Acceleration (VA) API License: MIT ++++++ libva-2.4.1.tar.bz2 -> libva-2.5.0.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/Makefile.am new/libva-2.5.0/Makefile.am --- old/libva-2.4.1/Makefile.am 2018-12-26 11:22:45.000000000 +0100 +++ new/libva-2.5.0/Makefile.am 2019-06-17 12:35:14.000000000 +0200 @@ -30,6 +30,7 @@ SUBDIRS += doc endif +EXTRA_DIST=doc/va_footer.html # Extra clean files so that maintainer-clean removes *everything* MAINTAINERCLEANFILES = \ aclocal.m4 compile config.guess config.sub \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/Makefile.in new/libva-2.5.0/Makefile.in --- old/libva-2.4.1/Makefile.in 2019-05-22 15:36:27.000000000 +0200 +++ new/libva-2.5.0/Makefile.in 2019-07-05 16:14:46.000000000 +0200 @@ -380,7 +380,7 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} AUTOMAKE_OPTIONS = foreign SUBDIRS = va pkgconfig $(am__append_1) - +EXTRA_DIST = doc/va_footer.html # Extra clean files so that maintainer-clean removes *everything* MAINTAINERCLEANFILES = \ aclocal.m4 compile config.guess config.sub \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/NEWS new/libva-2.5.0/NEWS --- old/libva-2.4.1/NEWS 2019-05-09 17:16:31.000000000 +0200 +++ new/libva-2.5.0/NEWS 2019-07-05 15:08:40.000000000 +0200 @@ -1,6 +1,30 @@ -libva NEWS -- summary of user visible changes. 2019-01-25 +libva NEWS -- summary of user visible changes. 2019-07-05 Copyright (C) 2009-2019 Intel Corporation +version 2.5.0 - 05.Jul.2019 +* Correct the comment of color_range. +* Add VA_FOURCC_A2B10G10R10 for format a2b10g10r10. +* Adjust VAEncMiscParameterQuantization structure to be align with VAEncMiscParameterBuffer(possible to impact BC) +* Add attribute for max frame size +* Add va_footer.html into distribution build +* va_trace: hevc profiles added +* Add new definition for input/output surface flag +* va/va_trace: add trace support for VAEncMiscParameterTypeSkipFrame structure. +* va/va_trace: add MPEG2 trace support for MiscParam and SequenceParam +* va_openDriver: check strdup return value +* Mark some duplicated field as deprecated +* Add return value into logs +* va/va_trace: add trace support for VAEncMiscParameterEncQuality structure. +* Add newformat foucc defination +* va_backend: remove unneeded linux/videodev2.h include +* va_trace: add missing <sys/time.h> include +* configure: don't build glx if VA/X11 isn't built +* va/va_trace: unbreak with C89 after b3694671c784 +* [common] Add A2RGB10 fourcc definition +* build: meson: enables va messaging and visibility +* va/va_trace: add trace support for RIR(rolling intra refresh). +* va/va_trace: add trace support for ROI(region of interest). + version 2.4.0 - 25.Jan.2019 * va_TraceSurface support for VA_FOURCC_P010 * Add pointer to struct wl_interface for driver to use diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/configure new/libva-2.5.0/configure --- old/libva-2.4.1/configure 2019-05-22 15:36:28.000000000 +0200 +++ new/libva-2.5.0/configure 2019-07-05 16:14:46.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.4.1. +# Generated by GNU Autoconf 2.69 for libva 2.5.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.4.1' -PACKAGE_STRING='libva 2.4.1' +PACKAGE_VERSION='2.5.0' +PACKAGE_STRING='libva 2.5.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.4.1 to adapt to many kinds of systems. +\`configure' configures libva 2.5.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.4.1:";; + short | recursive ) echo "Configuration of libva 2.5.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.4.1 +libva configure 2.5.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.4.1, which was +It was created by libva $as_me 2.5.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.4.1' + VERSION='2.5.0' cat >>confdefs.h <<_ACEOF @@ -3099,26 +3099,26 @@ VA_API_MAJOR_VERSION=1 -VA_API_MINOR_VERSION=4 -VA_API_MICRO_VERSION=1 -VA_API_VERSION=1.4.1 +VA_API_MINOR_VERSION=5 +VA_API_MICRO_VERSION=0 +VA_API_VERSION=1.5.0 LIBVA_MAJOR_VERSION=2 -LIBVA_MINOR_VERSION=4 -LIBVA_MICRO_VERSION=1 -LIBVA_VERSION=2.4.1 +LIBVA_MINOR_VERSION=5 +LIBVA_MICRO_VERSION=0 +LIBVA_VERSION=2.5.0 -LIBVA_LT_CURRENT=403 +LIBVA_LT_CURRENT=502 LIBVA_LT_REV=0 -LIBVA_LT_AGE=401 +LIBVA_LT_AGE=500 LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE" LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION" @@ -17653,7 +17653,7 @@ as_fn_error $? "VA/GLX explicitly enabled, but VA/X11 isn't built" "$LINENO" 5 fi -if test "$USE_X11:$enable_glx" != "yes:no"; then +if test "$USE_X11" == "yes" -a "$enable_glx" != "no"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLX" >&5 @@ -18522,7 +18522,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libva $as_me 2.4.1, which was +This file was extended by libva $as_me 2.5.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.4.1 +libva config.status 2.5.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.4.1/configure.ac new/libva-2.5.0/configure.ac --- old/libva-2.4.1/configure.ac 2019-05-22 15:35:15.000000000 +0200 +++ new/libva-2.5.0/configure.ac 2019-07-05 15:11:21.000000000 +0200 @@ -27,8 +27,8 @@ # - 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], [4]) -m4_define([va_api_micro_version], [1]) +m4_define([va_api_minor_version], [5]) +m4_define([va_api_micro_version], [0]) m4_define([va_api_version], [va_api_major_version.va_api_minor_version.va_api_micro_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], @@ -259,7 +259,7 @@ AC_MSG_ERROR([VA/GLX explicitly enabled, but VA/X11 isn't built]) fi -if test "$USE_X11:$enable_glx" != "yes:no"; then +if test "$USE_X11" == "yes" -a "$enable_glx" != "no"; then PKG_CHECK_MODULES([GLX], [gl x11], [USE_GLX="yes"], [:]) saved_CPPFLAGS="$CPPFLAGS" saved_LIBS="$LIBS" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/doc/va_footer.html new/libva-2.5.0/doc/va_footer.html --- old/libva-2.4.1/doc/va_footer.html 1970-01-01 01:00:00.000000000 +0100 +++ new/libva-2.5.0/doc/va_footer.html 2018-12-26 11:22:45.000000000 +0100 @@ -0,0 +1,4 @@ +<hr class="footer"/><address class="footer"><small> +Generated for $projectname by <a href="http://www.doxygen.org/index.html"><img class="footer" src="$relpath$doxygen.png" alt="doxygen"/></a> $doxygenversion</small></address> +</body> +</html> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/va/va.c new/libva-2.5.0/va/va.c --- old/libva-2.4.1/va/va.c 2019-05-22 15:35:15.000000000 +0200 +++ new/libva-2.5.0/va/va.c 2019-06-17 12:35:14.000000000 +0200 @@ -381,6 +381,11 @@ search_path = VA_DRIVERS_PATH; search_path = strdup((const char *)search_path); + if (!search_path) { + va_errorMessage(dpy, "%s L%d Out of memory\n", + __FUNCTION__, __LINE__); + return VA_STATUS_ERROR_ALLOCATION_FAILED; + } driver_dir = strtok_r(search_path, ":", &saveptr); while (driver_dir) { void *handle = NULL; @@ -412,6 +417,7 @@ int minor; } compatible_versions[] = { { VA_MAJOR_VERSION, VA_MINOR_VERSION }, + { VA_MAJOR_VERSION, 4 }, { VA_MAJOR_VERSION, 3 }, { VA_MAJOR_VERSION, 2 }, { VA_MAJOR_VERSION, 1 }, @@ -711,7 +717,7 @@ free(driver_name); VA_TRACE_LOG(va_TraceInitialize, dpy, major_version, minor_version); - + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -746,6 +752,7 @@ } VA_TRACE_LOG(va_TraceTerminate, dpy); + VA_TRACE_RET(dpy, vaStatus); va_TraceEnd(dpy); @@ -818,10 +825,13 @@ ) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); - return ctx->vtable->vaQueryConfigEntrypoints ( ctx, profile, entrypoints, num_entrypoints); + vaStatus = ctx->vtable->vaQueryConfigEntrypoints ( ctx, profile, entrypoints, num_entrypoints); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } VAStatus vaGetConfigAttributes ( @@ -833,10 +843,13 @@ ) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); - return ctx->vtable->vaGetConfigAttributes ( ctx, profile, entrypoint, attrib_list, num_attribs ); + vaStatus = ctx->vtable->vaGetConfigAttributes ( ctx, profile, entrypoint, attrib_list, num_attribs ); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } VAStatus vaQueryConfigProfiles ( @@ -846,10 +859,13 @@ ) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); - return ctx->vtable->vaQueryConfigProfiles ( ctx, profile_list, num_profiles ); + vaStatus = ctx->vtable->vaQueryConfigProfiles ( ctx, profile_list, num_profiles ); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } VAStatus vaCreateConfig ( @@ -872,7 +888,7 @@ /* record the current entrypoint for further trace/fool determination */ VA_TRACE_ALL(va_TraceCreateConfig, dpy, profile, entrypoint, attrib_list, num_attribs, config_id); VA_FOOL_FUNC(va_FoolCreateConfig, dpy, profile, entrypoint, attrib_list, num_attribs, config_id); - + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -890,6 +906,7 @@ vaStatus = ctx->vtable->vaDestroyConfig ( ctx, config_id ); VA_TRACE_ALL(va_TraceDestroyConfig, dpy, config_id); + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -904,10 +921,13 @@ ) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); - return ctx->vtable->vaQueryConfigAttributes( ctx, config_id, profile, entrypoint, attrib_list, num_attribs); + vaStatus = ctx->vtable->vaQueryConfigAttributes( ctx, config_id, profile, entrypoint, attrib_list, num_attribs); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } VAStatus vaQueryProcessingRate ( @@ -918,11 +938,15 @@ ) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); if(!ctx->vtable->vaQueryProcessingRate) - return VA_STATUS_ERROR_UNIMPLEMENTED; - return ctx->vtable->vaQueryProcessingRate( ctx, config_id, proc_buf, processing_rate); + vaStatus = VA_STATUS_ERROR_UNIMPLEMENTED; + else + vaStatus = ctx->vtable->vaQueryProcessingRate( ctx, config_id, proc_buf, processing_rate); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } /* XXX: this is a slow implementation that will be removed */ @@ -1085,6 +1109,7 @@ attrib_list, num_attribs); VA_TRACE_LOG(va_TraceQuerySurfaceAttributes, dpy, config, attrib_list, num_attribs); + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -1121,6 +1146,7 @@ VA_TRACE_LOG(va_TraceCreateSurfaces, dpy, width, height, format, num_surfaces, surfaces, attrib_list, num_attribs); + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -1142,6 +1168,7 @@ dpy, surface_list, num_surfaces); vaStatus = ctx->vtable->vaDestroySurfaces( ctx, surface_list, num_surfaces ); + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -1168,6 +1195,7 @@ /* keep current encode/decode resoluton */ VA_TRACE_ALL(va_TraceCreateContext, dpy, config_id, picture_width, picture_height, flag, render_targets, num_render_targets, context); + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -1186,6 +1214,7 @@ vaStatus = ctx->vtable->vaDestroyContext( ctx, context ); VA_TRACE_ALL(va_TraceDestroyContext, dpy, context); + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -1208,6 +1237,7 @@ VA_TRACE_ALL(va_TraceCreateMFContext, dpy, mf_context); } + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -1231,6 +1261,7 @@ VA_TRACE_ALL(va_TraceMFAddContext, dpy, context, mf_context); } + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -1252,6 +1283,7 @@ vaStatus = ctx->vtable->vaMFReleaseContext( ctx, context, mf_context); VA_TRACE_ALL(va_TraceMFReleaseContext, dpy, context, mf_context); } + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -1276,6 +1308,7 @@ vaStatus = ctx->vtable->vaMFSubmit( ctx, mf_context, contexts, num_contexts); VA_TRACE_ALL(va_TraceMFSubmit, dpy, mf_context, contexts, num_contexts); } + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -1303,6 +1336,7 @@ VA_TRACE_LOG(va_TraceCreateBuffer, dpy, context, type, size, num_elements, data, buf_id); + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -1329,6 +1363,7 @@ VA_TRACE_LOG(va_TraceCreateBuffer, dpy, context, type, *pitch, height, NULL, buf_id); + VA_TRACE_RET(dpy, vaStatus); return vaStatus; } @@ -1340,12 +1375,15 @@ ) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); VA_FOOL_FUNC(va_FoolCheckContinuity, dpy); - return ctx->vtable->vaBufferSetNumElements( ctx, buf_id, num_elements ); + vaStatus = ctx->vtable->vaBufferSetNumElements( ctx, buf_id, num_elements ); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } @@ -1366,6 +1404,7 @@ va_status = ctx->vtable->vaMapBuffer( ctx, buf_id, pbuf ); VA_TRACE_ALL(va_TraceMapBuffer, dpy, buf_id, pbuf); + VA_TRACE_RET(dpy, va_status); return va_status; } @@ -1376,12 +1415,15 @@ ) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); VA_FOOL_FUNC(va_FoolCheckContinuity, dpy); - return ctx->vtable->vaUnmapBuffer( ctx, buf_id ); + vaStatus = ctx->vtable->vaUnmapBuffer( ctx, buf_id ); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } VAStatus vaDestroyBuffer ( @@ -1390,6 +1432,7 @@ ) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); @@ -1398,7 +1441,9 @@ VA_TRACE_LOG(va_TraceDestroyBuffer, dpy, buffer_id); - return ctx->vtable->vaDestroyBuffer( ctx, buffer_id ); + vaStatus = ctx->vtable->vaDestroyBuffer( ctx, buffer_id ); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } VAStatus vaBufferInfo ( @@ -1411,13 +1456,16 @@ ) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); VA_FOOL_FUNC(va_FoolBufferInfo, dpy, buf_id, type, size, num_elements); - return ctx->vtable->vaBufferInfo( ctx, buf_id, type, size, num_elements ); + vaStatus = ctx->vtable->vaBufferInfo( ctx, buf_id, type, size, num_elements ); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } /* Locks buffer for external API usage */ @@ -1425,13 +1473,17 @@ vaAcquireBufferHandle(VADisplay dpy, VABufferID buf_id, VABufferInfo *buf_info) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); if (!ctx->vtable->vaAcquireBufferHandle) - return VA_STATUS_ERROR_UNIMPLEMENTED; - return ctx->vtable->vaAcquireBufferHandle(ctx, buf_id, buf_info); + vaStatus = VA_STATUS_ERROR_UNIMPLEMENTED; + else + vaStatus = ctx->vtable->vaAcquireBufferHandle(ctx, buf_id, buf_info); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } /* Unlocks buffer after usage from external API */ @@ -1439,13 +1491,17 @@ vaReleaseBufferHandle(VADisplay dpy, VABufferID buf_id) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); if (!ctx->vtable->vaReleaseBufferHandle) - return VA_STATUS_ERROR_UNIMPLEMENTED; - return ctx->vtable->vaReleaseBufferHandle(ctx, buf_id); + vaStatus = VA_STATUS_ERROR_UNIMPLEMENTED; + else + vaStatus = ctx->vtable->vaReleaseBufferHandle(ctx, buf_id); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } VAStatus @@ -1454,15 +1510,19 @@ void *descriptor) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); if (!ctx->vtable->vaExportSurfaceHandle) - return VA_STATUS_ERROR_UNIMPLEMENTED; - return ctx->vtable->vaExportSurfaceHandle(ctx, surface_id, + vaStatus = VA_STATUS_ERROR_UNIMPLEMENTED; + else + vaStatus = ctx->vtable->vaExportSurfaceHandle(ctx, surface_id, mem_type, flags, descriptor); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } VAStatus vaBeginPicture ( @@ -1481,6 +1541,7 @@ VA_FOOL_FUNC(va_FoolCheckContinuity, dpy); va_status = ctx->vtable->vaBeginPicture( ctx, context, render_target ); + VA_TRACE_RET(dpy, va_status); return va_status; } @@ -1493,6 +1554,7 @@ ) { VADriverContextP ctx; + VAStatus vaStatus = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); @@ -1500,7 +1562,9 @@ VA_TRACE_LOG(va_TraceRenderPicture, dpy, context, buffers, num_buffers); VA_FOOL_FUNC(va_FoolCheckContinuity, dpy); - return ctx->vtable->vaRenderPicture( ctx, context, buffers, num_buffers ); + vaStatus = ctx->vtable->vaRenderPicture( ctx, context, buffers, num_buffers ); + VA_TRACE_RET(dpy, vaStatus); + return vaStatus; } VAStatus vaEndPicture ( @@ -1520,6 +1584,7 @@ /* dump surface content */ VA_TRACE_ALL(va_TraceEndPicture, dpy, context, 1); + VA_TRACE_RET(dpy, va_status); return va_status; } @@ -1537,6 +1602,7 @@ va_status = ctx->vtable->vaSyncSurface( ctx, render_target ); VA_TRACE_LOG(va_TraceSyncSurface, dpy, render_target); + VA_TRACE_RET(dpy, va_status); return va_status; } @@ -1555,6 +1621,7 @@ va_status = ctx->vtable->vaQuerySurfaceStatus( ctx, render_target, status ); VA_TRACE_LOG(va_TraceQuerySurfaceStatus, dpy, render_target, status); + VA_TRACE_RET(dpy, va_status); return va_status; } @@ -1574,6 +1641,7 @@ va_status = ctx->vtable->vaQuerySurfaceError( ctx, surface, error_status, error_info ); VA_TRACE_LOG(va_TraceQuerySurfaceError, dpy, surface, error_status, error_info); + VA_TRACE_RET(dpy, va_status); return va_status; } @@ -1619,10 +1687,13 @@ ) { VADriverContextP ctx; + VAStatus va_status = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); - return ctx->vtable->vaCreateImage ( ctx, format, width, height, image); + va_status = ctx->vtable->vaCreateImage ( ctx, format, width, height, image); + VA_TRACE_RET(dpy, va_status); + return va_status; } /* @@ -1634,10 +1705,13 @@ ) { VADriverContextP ctx; + VAStatus va_status = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); - return ctx->vtable->vaDestroyImage ( ctx, image); + va_status = ctx->vtable->vaDestroyImage ( ctx, image); + VA_TRACE_RET(dpy, va_status); + return va_status; } VAStatus vaSetImagePalette ( @@ -1647,10 +1721,13 @@ ) { VADriverContextP ctx; + VAStatus va_status = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); - return ctx->vtable->vaSetImagePalette ( ctx, image, palette); + va_status = ctx->vtable->vaSetImagePalette ( ctx, image, palette); + VA_TRACE_RET(dpy, va_status); + return va_status; } /* @@ -1668,10 +1745,13 @@ ) { VADriverContextP ctx; + VAStatus va_status = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); - return ctx->vtable->vaGetImage ( ctx, surface, x, y, width, height, image); + va_status = ctx->vtable->vaGetImage ( ctx, surface, x, y, width, height, image); + VA_TRACE_RET(dpy, va_status); + return va_status; } /* @@ -1693,10 +1773,13 @@ ) { VADriverContextP ctx; + VAStatus va_status = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); - return ctx->vtable->vaPutImage ( ctx, surface, image, src_x, src_y, src_width, src_height, dest_x, dest_y, dest_width, dest_height ); + va_status = ctx->vtable->vaPutImage ( ctx, surface, image, src_x, src_y, src_width, src_height, dest_x, dest_y, dest_width, dest_height ); + VA_TRACE_RET(dpy, va_status); + return va_status; } /* @@ -1737,10 +1820,13 @@ ) { VADriverContextP ctx; + VAStatus va_status = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); - return ctx->vtable->vaDeriveImage ( ctx, surface, image ); + va_status = ctx->vtable->vaDeriveImage ( ctx, surface, image ); + VA_TRACE_RET(dpy, va_status); + return va_status; } @@ -1949,6 +2035,7 @@ va_status = ctx->vtable->vaQueryDisplayAttributes ( ctx, attr_list, num_attributes ); VA_TRACE_LOG(va_TraceQueryDisplayAttributes, dpy, attr_list, num_attributes); + VA_TRACE_RET(dpy, va_status); return va_status; @@ -1974,6 +2061,7 @@ va_status = ctx->vtable->vaGetDisplayAttributes ( ctx, attr_list, num_attributes ); VA_TRACE_LOG(va_TraceGetDisplayAttributes, dpy, attr_list, num_attributes); + VA_TRACE_RET(dpy, va_status); return va_status; } @@ -1997,6 +2085,7 @@ va_status = ctx->vtable->vaSetDisplayAttributes ( ctx, attr_list, num_attributes ); VA_TRACE_LOG(va_TraceSetDisplayAttributes, dpy, attr_list, num_attributes); + VA_TRACE_RET(dpy, va_status); return va_status; } @@ -2015,10 +2104,14 @@ ) { VADriverContextP ctx; + VAStatus va_status = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); - return ctx->vtable->vaLockSurface( ctx, surface, fourcc, luma_stride, chroma_u_stride, chroma_v_stride, luma_offset, chroma_u_offset, chroma_v_offset, buffer_name, buffer); + va_status = ctx->vtable->vaLockSurface( ctx, surface, fourcc, luma_stride, chroma_u_stride, chroma_v_stride, luma_offset, chroma_u_offset, chroma_v_offset, buffer_name, buffer); + VA_TRACE_RET(dpy, va_status); + + return va_status; } @@ -2027,10 +2120,14 @@ ) { VADriverContextP ctx; + VAStatus va_status = VA_STATUS_SUCCESS; CHECK_DISPLAY(dpy); ctx = CTX(dpy); - return ctx->vtable->vaUnlockSurface( ctx, surface ); + va_status = ctx->vtable->vaUnlockSurface( ctx, surface ); + VA_TRACE_RET(dpy, va_status); + + return va_status; } /* Video Processing */ @@ -2064,6 +2161,8 @@ QueryVideoProcFilters, (ctx, context, filters, num_filters) ); + VA_TRACE_RET(dpy, status); + return status; } @@ -2085,6 +2184,7 @@ QueryVideoProcFilterCaps, (ctx, context, type, filter_caps, num_filter_caps) ); + VA_TRACE_RET(dpy, status); return status; } @@ -2106,5 +2206,6 @@ QueryVideoProcPipelineCaps, (ctx, context, filters, num_filters, pipeline_caps) ); + VA_TRACE_RET(dpy, status); return status; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/va/va.h new/libva-2.5.0/va/va.h --- old/libva-2.4.1/va/va.h 2019-05-22 15:35:15.000000000 +0200 +++ new/libva-2.5.0/va/va.h 2019-06-28 16:38:52.000000000 +0200 @@ -214,10 +214,18 @@ #define VA_STATUS_ERROR_NOT_ENOUGH_BUFFER 0x00000025 #define VA_STATUS_ERROR_UNKNOWN 0xFFFFFFFF -/** De-interlacing flags for vaPutSurface() */ +/** + * 1. De-interlacing flags for vaPutSurface() + * 2. Surface sample type for input/output surface flag + * - Progressive: VA_FRAME_PICTURE + * - Interleaved: VA_TOP_FIELD_FIRST, VA_BOTTOM_FIELD_FIRST + * - Field: VA_TOP_FIELD, VA_BOTTOM_FIELD +*/ #define VA_FRAME_PICTURE 0x00000000 #define VA_TOP_FIELD 0x00000001 #define VA_BOTTOM_FIELD 0x00000002 +#define VA_TOP_FIELD_FIRST 0x00000004 +#define VA_BOTTOM_FIELD_FIRST 0x00000008 /** * Enabled the positioning/cropping/blending feature: @@ -748,6 +756,11 @@ * support for QP info for buffer #VAEncQpBuffer. */ VAConfigAttribQPBlockSize = 37, + /** + * \brief encode max frame size attribute. Read-only + * attribute value \c VAConfigAttribValMaxFrameSize represent max frame size support + */ + VAConfigAttribMaxFrameSize = 38, /**@}*/ VAConfigAttribTypeMax } VAConfigAttribType; @@ -933,6 +946,23 @@ #define VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS 0x00000010 /**@}*/ +/** \brief Attribute value for VAConfigAttribMaxFrameSize */ +typedef union _VAConfigAttribValMaxFrameSize { + struct { + /** \brief support max frame size + * if max_frame_size == 1, VAEncMiscParameterTypeMaxFrameSize/VAEncMiscParameterBufferMaxFrameSize + * could be used to set the frame size, if multiple_pass also equal 1, VAEncMiscParameterTypeMultiPassFrameSize + * VAEncMiscParameterBufferMultiPassFrameSize could be used to set frame size and pass information + */ + uint32_t max_frame_size : 1; + /** \brief multiple_pass support */ + uint32_t multiple_pass : 1; + /** \brief reserved bits for future, must be zero*/ + uint32_t reserved :30; + } bits; + uint32_t value; +} VAConfigAttribValMaxFrameSize; + /** \brief Attribute value for VAConfigAttribEncJPEG */ typedef union _VAConfigAttribValEncJPEG { struct { @@ -2114,7 +2144,8 @@ */ typedef struct _VAEncMiscParameterBufferMaxFrameSize { /** \brief Type. Shall be set to #VAEncMiscParameterTypeMaxFrameSize. */ - VAEncMiscParameterType type; + /** duplicated with VAEncMiscParameterBuffer, should be deprecated*/ + va_deprecated VAEncMiscParameterType type; /** \brief Maximum size of a frame (in bits). */ uint32_t max_frame_size; @@ -2133,7 +2164,8 @@ */ typedef struct _VAEncMiscParameterBufferMultiPassFrameSize { /** \brief Type. Shall be set to #VAEncMiscParameterTypeMultiPassMaxFrameSize. */ - VAEncMiscParameterType type; + /** duplicated with VAEncMiscParameterBuffer, should be deprecated*/ + va_deprecated VAEncMiscParameterType type; /** \brief Maximum size of a frame (in byte) */ uint32_t max_frame_size; /** \brief Reserved bytes for future use, must be zero */ @@ -2182,17 +2214,18 @@ struct { /* \brief disable trellis for all frames/fields */ - uint64_t disable_trellis : 1; + uint32_t disable_trellis : 1; /* \brief enable trellis for I frames/fields */ - uint64_t enable_trellis_I : 1; + uint32_t enable_trellis_I : 1; /* \brief enable trellis for P frames/fields */ - uint64_t enable_trellis_P : 1; + uint32_t enable_trellis_P : 1; /* \brief enable trellis for B frames/fields */ - uint64_t enable_trellis_B : 1; - uint64_t reserved : 28; + uint32_t enable_trellis_B : 1; + uint32_t reserved : 28; } bits; - uint64_t value; + uint32_t value; } quantization_flags; + uint32_t va_reserved; } VAEncMiscParameterQuantization; /** @@ -3925,6 +3958,41 @@ * 10-bit Pixel RGB formats. */ #define VA_FOURCC_A2R10G10B10 0x30335241 /* VA_FOURCC('A','R','3','0') */ +/** + * 10-bit Pixel BGR formats. + */ +#define VA_FOURCC_A2B10G10R10 0x30334241 /* VA_FOURCC('A','B','3','0') */ + +/** Y8: 8-bit greyscale. + * + * Only a single sample, 8 bit Y plane for monochrome images + */ +#define VA_FOURCC_Y8 0x20203859 +/** Y16: 16-bit greyscale. + * + * Only a single sample, 16 bit Y plane for monochrome images + */ +#define VA_FOURCC_Y16 0x20363159 +/** VYUV: packed 8-bit YUV 4:2:2. + * + * Four bytes per pair of pixels: V, Y, U, V. + */ +#define VA_FOURCC_VYUY 0x59555956 +/** YVYU: packed 8-bit YUV 4:2:2. + * + * Four bytes per pair of pixels: Y, V, Y, U. + */ +#define VA_FOURCC_YVYU 0x55595659 +/** AGRB64: three-plane 16-bit ARGB 16:16:16:16 + * + * The four planes contain: alpha, red, green, blue respectively. + */ +#define VA_FOURCC_ARGB64 0x34475241 +/** ABGR64: three-plane 16-bit ABGR 16:16:16:16 + * + * The four planes contain: alpha, blue, green, red respectively. + */ +#define VA_FOURCC_ABGR64 0x34474241 /* byte order */ #define VA_LSB_FIRST 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/va/va_backend.h new/libva-2.5.0/va/va_backend.h --- old/libva-2.4.1/va/va_backend.h 2019-05-22 15:35:15.000000000 +0200 +++ new/libva-2.5.0/va/va_backend.h 2019-06-17 12:35:14.000000000 +0200 @@ -30,7 +30,6 @@ #define _VA_BACKEND_H_ #include <va/va.h> -#include <linux/videodev2.h> typedef struct VADriverContext *VADriverContextP; typedef struct VADisplayContext *VADisplayContextP; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/va/va_str.c new/libva-2.5.0/va/va_str.c --- old/libva-2.4.1/va/va_str.c 2019-05-22 15:35:15.000000000 +0200 +++ new/libva-2.5.0/va/va_str.c 2019-06-28 16:38:52.000000000 +0200 @@ -123,6 +123,7 @@ TOSTR(VAConfigAttribCustomRoundingControl); TOSTR(VAConfigAttribQPBlockSize); TOSTR(VAConfigAttribStats); + TOSTR(VAConfigAttribMaxFrameSize); case VAConfigAttribTypeMax: break; } return "<unknown config attribute type>"; @@ -177,4 +178,44 @@ return "<unknown buffer type>"; } +const char *vaStatusStr(VAStatus status) +{ + switch(status){ + TOSTR(VA_STATUS_SUCCESS); + TOSTR(VA_STATUS_ERROR_OPERATION_FAILED); + TOSTR(VA_STATUS_ERROR_ALLOCATION_FAILED); + TOSTR(VA_STATUS_ERROR_INVALID_DISPLAY); + TOSTR(VA_STATUS_ERROR_INVALID_CONFIG); + TOSTR(VA_STATUS_ERROR_INVALID_CONTEXT); + TOSTR(VA_STATUS_ERROR_INVALID_SURFACE); + TOSTR(VA_STATUS_ERROR_INVALID_BUFFER); + TOSTR(VA_STATUS_ERROR_INVALID_IMAGE); + TOSTR(VA_STATUS_ERROR_INVALID_SUBPICTURE); + TOSTR(VA_STATUS_ERROR_ATTR_NOT_SUPPORTED); + TOSTR(VA_STATUS_ERROR_MAX_NUM_EXCEEDED); + TOSTR(VA_STATUS_ERROR_UNSUPPORTED_PROFILE); + TOSTR(VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT); + TOSTR(VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT); + TOSTR(VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE); + TOSTR(VA_STATUS_ERROR_SURFACE_BUSY); + TOSTR(VA_STATUS_ERROR_FLAG_NOT_SUPPORTED); + TOSTR(VA_STATUS_ERROR_INVALID_PARAMETER); + TOSTR(VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED); + TOSTR(VA_STATUS_ERROR_UNIMPLEMENTED); + TOSTR(VA_STATUS_ERROR_SURFACE_IN_DISPLAYING); + TOSTR(VA_STATUS_ERROR_INVALID_IMAGE_FORMAT); + TOSTR(VA_STATUS_ERROR_DECODING_ERROR); + TOSTR(VA_STATUS_ERROR_ENCODING_ERROR); + TOSTR(VA_STATUS_ERROR_INVALID_VALUE); + TOSTR(VA_STATUS_ERROR_UNSUPPORTED_FILTER); + TOSTR(VA_STATUS_ERROR_INVALID_FILTER_CHAIN); + TOSTR(VA_STATUS_ERROR_HW_BUSY); + TOSTR(VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE); + TOSTR(VA_STATUS_ERROR_NOT_ENOUGH_BUFFER); + TOSTR(VA_STATUS_ERROR_UNKNOWN); + default: break; + } + return "unknown return value"; +} + #undef TOSTR diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/va/va_str.h new/libva-2.5.0/va/va_str.h --- old/libva-2.4.1/va/va_str.h 2019-05-22 15:35:15.000000000 +0200 +++ new/libva-2.5.0/va/va_str.h 2019-06-17 12:35:14.000000000 +0200 @@ -40,6 +40,8 @@ const char *vaBufferTypeStr(VABufferType bufferType); +const char *vaStatusStr(VAStatus status); + #ifdef __cplusplus } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/va/va_trace.c new/libva-2.5.0/va/va_trace.c --- old/libva-2.4.1/va/va_trace.c 2019-05-22 15:35:15.000000000 +0200 +++ new/libva-2.5.0/va/va_trace.c 2019-06-26 12:21:11.000000000 +0200 @@ -51,7 +51,7 @@ #include <sys/syscall.h> #include <pthread.h> #include <unistd.h> -#include <time.h> +#include <sys/time.h> #include <errno.h> /* @@ -2038,6 +2038,29 @@ return; } +static void va_TraceVAEncSequenceParameterBufferMPEG2( + VADisplay dpy, + VAContextID context, + VABufferID buffer, + VABufferType type, + unsigned int size, + unsigned int num_elements, + void *data) +{ + VAEncSequenceParameterBufferMPEG2 *p = (VAEncSequenceParameterBufferMPEG2 *)data; + DPY2TRACECTX(dpy, context, VA_INVALID_ID); + + va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferMPEG2\n"); + + 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, "\tvbv_buffer_size = %d\n", p->vbv_buffer_size); + va_TraceMsg(trace_ctx, NULL); + + return; +} + static void va_TraceVAEncSequenceParameterBufferMPEG4( VADisplay dpy, VAContextID context, @@ -3271,6 +3294,7 @@ } case VAEncMiscParameterTypeROI: { + int i; VAEncMiscParameterBufferROI *p = (VAEncMiscParameterBufferROI *)tmp->data; va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterBufferROI\n"); @@ -3278,7 +3302,7 @@ va_TraceMsg(trace_ctx, "\tmax_delta_qp = %d\n", p->max_delta_qp); va_TraceMsg(trace_ctx, "\tmin_delta_qp = %d\n", p->min_delta_qp); va_TraceMsg(trace_ctx, "\troi_flags.bits.roi_value_is_qp_delta = %d\n", p->roi_flags.bits.roi_value_is_qp_delta); - for (int i = 0; i < p->num_roi; i++) { + for (i = 0; i < p->num_roi; i++) { va_TraceMsg(trace_ctx, "\troi[%d].roi_rectangle.x = %d\n", i, p->roi[i].roi_rectangle.x); va_TraceMsg(trace_ctx, "\troi[%d].roi_rectangle.y = %d\n", i, p->roi[i].roi_rectangle.y); va_TraceMsg(trace_ctx, "\troi[%d].roi_rectangle.width = %d\n", i, p->roi[i].roi_rectangle.width); @@ -3299,6 +3323,56 @@ va_TraceMsg(trace_ctx, "\tqp_delta_for_inserted_intra = %d\n", p->qp_delta_for_inserted_intra); break; } + case VAEncMiscParameterTypeEncQuality: + { + int i; + VAEncMiscParameterEncQuality *p = (VAEncMiscParameterEncQuality *)tmp->data; + + va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterEncQuality\n"); + va_TraceMsg(trace_ctx, "\tuseRawPicForRef = %d\n",p->useRawPicForRef); + va_TraceMsg(trace_ctx, "\tskipCheckDisable = %d\n",p->skipCheckDisable); + va_TraceMsg(trace_ctx, "\tFTQOverride = %d\n",p->FTQOverride); + va_TraceMsg(trace_ctx, "\tFTQEnable = %d\n",p->FTQEnable); + va_TraceMsg(trace_ctx, "\tFTQSkipThresholdLUTInput = %d\n",p->FTQSkipThresholdLUTInput); + va_TraceMsg(trace_ctx, "\tNonFTQSkipThresholdLUTInput = %d\n",p->NonFTQSkipThresholdLUTInput); + va_TraceMsg(trace_ctx, "\tReservedBit = %d\n",p->ReservedBit); + va_TraceMsg(trace_ctx, "\tdirectBiasAdjustmentEnable = %d\n",p->directBiasAdjustmentEnable); + va_TraceMsg(trace_ctx, "\tglobalMotionBiasAdjustmentEnable = %d\n",p->globalMotionBiasAdjustmentEnable); + va_TraceMsg(trace_ctx, "\tHMEMVCostScalingFactor = %d\n",p->HMEMVCostScalingFactor); + va_TraceMsg(trace_ctx, "\tHMEDisable = %d\n",p->HMEDisable); + va_TraceMsg(trace_ctx, "\tSuperHMEDisable = %d\n",p->SuperHMEDisable); + va_TraceMsg(trace_ctx, "\tUltraHMEDisable = %d\n",p->UltraHMEDisable); + va_TraceMsg(trace_ctx, "\tPanicModeDisable = %d\n",p->PanicModeDisable); + va_TraceMsg(trace_ctx, "\tForceRepartitionCheck = %d\n",p->ForceRepartitionCheck); + if (p->FTQSkipThresholdLUTInput) { + va_TraceMsg(trace_ctx, "\tFTQSkipThresholdLUT[52]=\n"); + for (i = 0; i < 52; i++) { + va_TraceMsg(trace_ctx, "\t%d", p->FTQSkipThresholdLUT[i]); + if ((i + 1) % 8 == 0) + TRACE_NEWLINE(); + } + va_TracePrint(trace_ctx, "\n"); + } + if (p->NonFTQSkipThresholdLUTInput) { + va_TraceMsg(trace_ctx, "\tNonFTQSkipThresholdLUT[52]=\n"); + for (i = 0; i < 52; i++) { + va_TraceMsg(trace_ctx, "\t%d", p->NonFTQSkipThresholdLUT[i]); + if ((i + 1) % 8 == 0) + TRACE_NEWLINE(); + } + va_TracePrint(trace_ctx, "\n"); + } + break; + } + case VAEncMiscParameterTypeSkipFrame: + { + VAEncMiscParameterSkipFrame *p = (VAEncMiscParameterSkipFrame *)tmp->data; + va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterSkipFrame\n"); + va_TraceMsg(trace_ctx, "\tskip_frame_flag = %d\n", p->skip_frame_flag); + va_TraceMsg(trace_ctx, "\tnum_skip_frames = %d\n", p->num_skip_frames); + va_TraceMsg(trace_ctx, "\tsize_skip_frames = %d\n", p->size_skip_frames); + break; + } default: va_TraceMsg(trace_ctx, "Unknown VAEncMiscParameterBuffer(type = %d):\n", tmp->type); va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data); @@ -3995,11 +4069,15 @@ case VAEncCodedBufferType: break; case VAEncSequenceParameterBufferType: + va_TraceVAEncSequenceParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf); break; case VAEncPictureParameterBufferType: break; case VAEncSliceParameterBufferType: break; + case VAEncMiscParameterBufferType: + va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf); + break; default: break; } @@ -4156,7 +4234,7 @@ va_TraceMsg(trace_ctx, "\trestart_interval = 0x%04x\n", p->restart_interval); va_TraceMsg(trace_ctx, "\tnum_components = 0x%08x\n", p->num_components); for (i=0; i<4; i++) { - va_TraceMsg(trace_ctx, "\tcomponents[%i] =\n "); + va_TraceMsg(trace_ctx, "\tcomponents[%i] =\n ", i); va_TraceMsg(trace_ctx, "\t\tcomponent_selector = %d\n", p->components[i].component_selector); va_TraceMsg(trace_ctx, "\t\tdc_table_selector = %d\n", p->components[i].dc_table_selector); va_TraceMsg(trace_ctx, "\t\tac_table_selector = %d\n", p->components[i].ac_table_selector); @@ -4933,6 +5011,12 @@ } break; + case VAProfileHEVCMain12: + case VAProfileHEVCMain422_10: + case VAProfileHEVCMain422_12: + case VAProfileHEVCMain444: + case VAProfileHEVCMain444_10: + case VAProfileHEVCMain444_12: case VAProfileHEVCMain: case VAProfileHEVCMain10: for (j=0; j<num_elements; j++) { @@ -5210,3 +5294,14 @@ DPY2TRACE_VIRCTX_EXIT(pva_trace); } + +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)); + DPY2TRACE_VIRCTX_EXIT(pva_trace); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/va/va_trace.h new/libva-2.5.0/va/va_trace.h --- old/libva-2.4.1/va/va_trace.h 2019-05-22 15:35:15.000000000 +0200 +++ new/libva-2.5.0/va/va_trace.h 2019-06-17 12:35:14.000000000 +0200 @@ -49,6 +49,10 @@ if (va_trace_flag) { \ trace_func(__VA_ARGS__); \ } +#define VA_TRACE_RET(dpy,ret) \ + if (va_trace_flag){ \ + va_TraceStatus(dpy, __func__, ret); \ + } DLL_HIDDEN void va_TraceInit(VADisplay dpy); @@ -270,6 +274,8 @@ unsigned int flags /* de-interlacing flags */ ); +void va_TraceStatus(VADisplay dpy, const char * funcName, VAStatus status); + #ifdef __cplusplus } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/va/va_version.h new/libva-2.5.0/va/va_version.h --- old/libva-2.4.1/va/va_version.h 2019-05-22 15:36:32.000000000 +0200 +++ new/libva-2.5.0/va/va_version.h 2019-07-05 16:14:49.000000000 +0200 @@ -37,21 +37,21 @@ * * The minor version of VA-API (2, if %VA_VERSION is 1.2.3) */ -#define VA_MINOR_VERSION 4 +#define VA_MINOR_VERSION 5 /** * VA_MICRO_VERSION: * * The micro version of VA-API (3, if %VA_VERSION is 1.2.3) */ -#define VA_MICRO_VERSION 1 +#define VA_MICRO_VERSION 0 /** * VA_VERSION: * * The full version of VA-API, like 1.2.3 */ -#define VA_VERSION 1.4.1 +#define VA_VERSION 1.5.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.4.1" +#define VA_VERSION_S "1.5.0" /** * VA_VERSION_HEX: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.4.1/va/va_vpp.h new/libva-2.5.0/va/va_vpp.h --- old/libva-2.4.1/va/va_vpp.h 2019-05-22 15:35:15.000000000 +0200 +++ new/libva-2.5.0/va/va_vpp.h 2019-06-26 13:06:02.000000000 +0200 @@ -681,7 +681,7 @@ typedef struct _VAProcColorProperties { /** Chroma sample location.\c VA_CHROMA_SITING_VERTICAL_XXX | VA_CHROMA_SITING_HORIZONTAL_XXX */ uint8_t chroma_sample_location; - /** Chroma sample location. \c VA_SOURCE_RANGE_XXX*/ + /** Color range. \c VA_SOURCE_RANGE_XXX*/ uint8_t color_range; /** Colour primaries. * @@ -705,7 +705,7 @@ uint8_t reserved[3]; } VAProcColorProperties; -/** \berief Describes High Dynamic Range Meta Data for HDR10. +/** \brief Describes High Dynamic Range Meta Data for HDR10. * * Specifies the colour volume(the colour primaries, white point and luminance range) of * a display considered to be the mastering display for the associated video content -e.g., @@ -1012,15 +1012,56 @@ /** * \brief Flag to indicate the input surface flag * - * bit0: 0 non-protected 1: protected - * bit 1~31 for future + * bit0~3: Surface sample type + * - 0000: Progressive --> VA_FRAME_PICTURE + * - 0001: Single Top Field --> VA_TOP_FIELD + * - 0010: Single Bottom Field --> VA_BOTTOM_FIELD + * - 0100: Interleaved Top Field First --> VA_TOP_FIELD_FIRST + * - 1000: Interleaved Bottom Field First --> VA_BOTTOM_FIELD_FIRST + * + * For interlaced scaling, examples as follow: + * - 1. Interleaved to Interleaved (Suppose input is top field first) + * -- set input_surface_flag as VA_TOP_FIELD_FIRST + * -- set output_surface_flag as VA_TOP_FIELD_FIRST + * - 2. Interleaved to Field (Suppose input is top field first) + * An interleaved frame need to be passed twice. + * First cycle to get the first field: + * -- set input_surface_flag as VA_TOP_FIELD_FIRST + * -- set output_surface_flag as VA_TOP_FIELD + * Second cycle to get the second field: + * -- set input_surface_flag as VA_TOP_FIELD_FIRST + * -- set output_surface_flag as VA_BOTTOM_FIELD + * - 3. Field to Interleaved (Suppose first field is top field) + * -- create two surfaces, one for top field, the other for bottom field + * -- set surface with the first field surface id + * -- set backward_reference with the second field surface id + * -- set input_surface_flag as VA_TOP_FIELD + * -- set output_surface_flag as VA_TOP_FIELD_FIRST + * - 4. Field to Field: + * -- set flag according to each frame. + * + * bit31: Surface encryption + * - 0: non-protected + * - 1: protected + * + * bit4~30 for future */ uint32_t input_surface_flag; /** * \brief Flag to indicate the output surface flag * - * bit0: 0 non-protected 1: protected - * bit 1~31 for future + * bit0~3: Surface sample type + * - 0000: Progressive --> VA_FRAME_PICTURE + * - 0001: Top Field --> VA_TOP_FIELD + * - 0010: Bottom Field --> VA_BOTTOM_FIELD + * - 0100: Top Field First --> VA_TOP_FIELD_FIRST + * - 1000: Bottom Field First --> VA_BOTTOM_FIELD_FIRST + * + * bit31: Surface encryption + * - 0: non-protected + * - 1: protected + * + * bit4~30 for future */ uint32_t output_surface_flag; /** ++++++ libva-2.4.1.tar.bz2.sha1sum -> libva-2.5.0.tar.bz2.sha1sum ++++++ --- /work/SRC/openSUSE:Factory/libva/libva-2.4.1.tar.bz2.sha1sum 2019-07-22 12:14:59.715750873 +0200 +++ /work/SRC/openSUSE:Factory/.libva.new.7948/libva-2.5.0.tar.bz2.sha1sum 2019-08-28 16:00:33.206808877 +0200 @@ -1 +1 @@ -5aeffc9929b4a9a5ebbed94adf065d08fc50bcf9 libva-2.4.1.tar.bz2 +5bd2b0bc9d1e49cf1e21d9a63696f13a1483bd86 libva-2.5.0.tar.bz2