Hello community, here is the log from the commit of package libva for openSUSE:Factory checked in at 2018-11-06 15:24:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libva (Old) and /work/SRC/openSUSE:Factory/.libva.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libva" Tue Nov 6 15:24:44 2018 rev:44 rq:645625 version:2.3.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libva/libva-gl.changes 2018-07-22 23:38:08.144198818 +0200 +++ /work/SRC/openSUSE:Factory/.libva.new/libva-gl.changes 2018-11-06 15:24:49.912572555 +0100 @@ -1,0 +2,14 @@ +Tue Oct 30 23:03:07 UTC 2018 - ch...@computersalat.de + +- Update to 2.3.0 + * Bump VA-API version to 1.3.0 and libva to 2.3.0 + * Add max frame size parameters for multiple pass case in legacy mode + * Add new BRC mode AVBR + * Add new interface for High Dynamic Range tone mapping + * Add missing enum to string conversions + * Add hevc subsets parameters structure + * Add Customized Noise Reduction (HVS) interfaces + * Add new BRC mode definition QVBR + * Add more complete colour properties for use in VPP + +------------------------------------------------------------------- libva.changes: same change Old: ---- libva-2.2.0.tar.bz2 libva-2.2.0.tar.bz2.sha1sum New: ---- libva-2.3.0.tar.bz2 libva-2.3.0.tar.bz2.sha1sum ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libva-gl.spec ++++++ --- /var/tmp/diff_new_pack.kyXyZ6/_old 2018-11-06 15:24:50.704571351 +0100 +++ /var/tmp/diff_new_pack.kyXyZ6/_new 2018-11-06 15:24:50.708571346 +0100 @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -29,7 +29,7 @@ Name: libva-gl %define _name libva -Version: 2.2.0 +Version: 2.3.0 Release: 0 Summary: Video Acceleration (VA) API License: MIT ++++++ libva.spec ++++++ --- /var/tmp/diff_new_pack.kyXyZ6/_old 2018-11-06 15:24:50.720571327 +0100 +++ /var/tmp/diff_new_pack.kyXyZ6/_new 2018-11-06 15:24:50.728571315 +0100 @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -29,7 +29,7 @@ Name: libva %define _name libva -Version: 2.2.0 +Version: 2.3.0 Release: 0 Summary: Video Acceleration (VA) API License: MIT ++++++ libva-2.2.0.tar.bz2 -> libva-2.3.0.tar.bz2 ++++++ ++++ 3544 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libva-2.2.0/NEWS new/libva-2.3.0/NEWS --- old/libva-2.2.0/NEWS 2018-07-11 09:55:37.000000000 +0200 +++ new/libva-2.3.0/NEWS 2018-10-23 15:52:41.000000000 +0200 @@ -1,7 +1,18 @@ -libva NEWS -- summary of user visible changes. 2018-07-11 +libva NEWS -- summary of user visible changes. 2018-09-30 Copyright (C) 2009-2018 Intel Corporation -Version 2.2.0 - 11.July.2018 +version 2.3.0 - 30.Sep.2018 +* Bump VA-API version to 1.3.0 and libva to 2.3.0 +* Add max frame size parameters for multiple pass case in legacy mode +* Add new BRC mode AVBR +* Add new interface for High Dynamic Range tone mapping +* Add missing enum to string conversions +* Add hevc subsets parameters structure +* Add Customized Noise Reduction (HVS) interfaces +* Add new BRC mode definition QVBR +* Add more complete colour properties for use in VPP + +Version 2.2.0 - DD.July.2018 * Bump VA-API version to 1.2.0 and libva to 2.2.0 * Add support for hevc range extension decoding * Add support for fast intra prediction in HEVC FEI diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libva-2.2.0/config.h.in new/libva-2.3.0/config.h.in --- old/libva-2.2.0/config.h.in 2018-07-11 09:55:46.000000000 +0200 +++ new/libva-2.3.0/config.h.in 2018-10-23 15:52:54.000000000 +0200 @@ -1,5 +1,8 @@ /* config.h.in. Generated from configure.ac by autoheader. */ +/* Define if SSP C support is enabled. */ +#undef ENABLE_SSP_CC + /* Defined to 1 if va messaging is needed */ #undef ENABLE_VA_MESSAGING diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libva-2.2.0/configure.ac new/libva-2.3.0/configure.ac --- old/libva-2.2.0/configure.ac 2018-07-11 09:55:37.000000000 +0200 +++ new/libva-2.3.0/configure.ac 2018-10-23 15:52:41.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], [2]) +m4_define([va_api_minor_version], [3]) m4_define([va_api_micro_version], [0]) m4_define([va_api_version], @@ -209,6 +209,22 @@ [Defined to 1 if GCC visibility attribute is supported]) fi +# Check for -fstack-protector +ssp_cc=yes +if test "X$CC-cc" != "X"; then + AC_MSG_CHECKING([whether ${CC-cc} accepts -fstack-protector]) + ssp_old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -fstack-protector" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[alloca(100);]])], [], [ssp_cc=no]) + AC_MSG_RESULT([$ssp_cc]) + if test "X$ssp_cc" = "Xno"; then + CFLAGS="$ssp_old_cflags" + else + AC_DEFINE([ENABLE_SSP_CC], 1, [Define if SSP C support is enabled.]) + fi +fi +AM_CONDITIONAL(USE_SSP, test "$ssp_cc" = "yes") + # Check for DRM (mandatory) LIBDRM_VERSION=libdrm_version PKG_CHECK_MODULES([DRM], [libdrm >= $LIBDRM_VERSION]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libva-2.2.0/va/Makefile.am new/libva-2.3.0/va/Makefile.am --- old/libva-2.2.0/va/Makefile.am 2018-07-11 09:55:37.000000000 +0200 +++ new/libva-2.3.0/va/Makefile.am 2018-10-23 15:50:59.000000000 +0200 @@ -77,9 +77,12 @@ libva_cflags = \ -Wall \ - -fstack-protector \ $(NULL) +if USE_SSP +libva_cflags += -fstack-protector +endif + lib_LTLIBRARIES = libva.la libvaincludedir = ${includedir}/va libvainclude_HEADERS = $(libva_source_h) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libva-2.2.0/va/va.c new/libva-2.3.0/va/va.c --- old/libva-2.2.0/va/va.c 2018-07-11 09:55:37.000000000 +0200 +++ new/libva-2.3.0/va/va.c 2018-10-23 15:50:59.000000000 +0200 @@ -402,6 +402,7 @@ int minor; } compatible_versions[] = { { VA_MAJOR_VERSION, VA_MINOR_VERSION }, + { VA_MAJOR_VERSION, 2 }, { VA_MAJOR_VERSION, 1 }, { VA_MAJOR_VERSION, 0 }, { -1, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libva-2.2.0/va/va.h new/libva-2.3.0/va/va.h --- old/libva-2.2.0/va/va.h 2018-07-11 09:55:37.000000000 +0200 +++ new/libva-2.3.0/va/va.h 2018-10-23 15:50:59.000000000 +0200 @@ -820,6 +820,23 @@ * simultaneously. And BRC would adjust accordingly. This is so called * Parallel BRC. */ #define VA_RC_PARALLEL 0x00000200 +/** \brief Quality defined VBR + * Use Quality factor to determine the good enough QP for each MB such that + * good enough quality can be obtained without waste of bits + * for this BRC mode, you must set all legacy VBR parameters + * and reuse quality_factor in \c VAEncMiscParameterRateControl + * */ +#define VA_RC_QVBR 0x00000400 +/** \brief Average VBR + * Average variable bitrate control algorithm focuses on overall encoding + * quality while meeting the specified target bitrate, within the accuracy + * range, after a convergence period. + * bits_per_second in VAEncMiscParameterRateControl is target bitrate for AVBR. + * Convergence is specified in the unit of frame. + * window_size in VAEncMiscParameterRateControl is equal to convergence for AVBR. + * Accuracy is in the range of [1,100], 1 means one percent, and so on. + * target_percentage in VAEncMiscParameterRateControl is equal to accuracy for AVBR. */ +#define VA_RC_AVBR 0x00000800 /**@}*/ @@ -1633,6 +1650,19 @@ /** decode stream out buffer, intermedia data of decode, it may include MV, MB mode etc. * it can be used to detect motion and analyze the frame contain */ VADecodeStreamoutBufferType = 56, + + /** \brief HEVC Decoding Subset Parameter buffer type + * + * The subsets parameter buffer is concatenation with one or multiple + * subset entry point offsets. All the offset values are layed out one + * by one according to slice order with first slice segment first, second + * slice segment second, etc... The entry number is indicated by parameter + * \ref num_entry_point_offsets. And the first entry position of the entry + * point offsets for any slice segment is indicated by parameter + * entry_offset_to_subset_array in VAPictureParameterBufferHEVC data structure. + */ + VASubsetsParameterBufferType = 57, + VABufferTypeMax } VABufferType; @@ -1718,6 +1748,8 @@ VAEncMiscParameterTypeSkipFrame = 9, /** \brief Buffer type used for region-of-interest (ROI) parameters. */ VAEncMiscParameterTypeROI = 10, + /** \brief Buffer type used to express a maximum frame size (in bytes) settings for multiple pass. */ + VAEncMiscParameterTypeMultiPassFrameSize = 11, /** \brief Buffer type used for temporal layer structure */ VAEncMiscParameterTypeTemporalLayerStructure = 12, /** \brief Buffer type used for dirty region-of-interest (ROI) parameters. */ @@ -1907,6 +1939,7 @@ /** Initial quality factor used in ICQ mode. * * This value must be between 1 and 51. + * this value will be deprecated in future, to use quality_factor instead of it. */ uint32_t ICQ_quality_factor; /** Maximum quantiser value to use. @@ -1915,8 +1948,13 @@ * may exceed the target. Ignored if set to zero. */ uint32_t max_qp; + /** Quality factor + * + * the range will be different for different codec + */ + uint32_t quality_factor; /** Reserved bytes for future use, must be zero. */ - uint32_t va_reserved[VA_PADDING_MEDIUM - 2]; + uint32_t va_reserved[VA_PADDING_MEDIUM - 3]; } VAEncMiscParameterRateControl; /** Encode framerate parameters. @@ -2080,6 +2118,31 @@ } VAEncMiscParameterBufferMaxFrameSize; /** + * \brief Maximum frame size (in bytes) settings for multiple pass. + * + * This misc parameter buffer defines the maximum size of a frame (in + * bytes) settings for multiple pass. currently only AVC encoder can + * support this settings in multiple pass case. If the frame size exceeds + * this size, the encoder will do more pak passes to adjust the QP value + * to control the frame size. + */ +typedef struct _VAEncMiscParameterBufferMultiPassFrameSize { + /** \brief Type. Shall be set to #VAEncMiscParameterTypeMultiPassMaxFrameSize. */ + VAEncMiscParameterType type; + /** \brief Maximum size of a frame (in byte) */ + uint32_t max_frame_size; + /** \brief Reserved bytes for future use, must be zero */ + uint32_t reserved; + /** \brief number of passes, every pass has different QP, currently AVC encoder can support up to 4 passes */ + uint8_t num_passes; + /** \brief delta QP list for every pass */ + uint8_t *delta_qp; + + /** \brief Reserved bytes for future use, must be zero */ + unsigned long va_reserved[VA_PADDING_LOW]; +} VAEncMiscParameterBufferMultiPassFrameSize; + +/** * \brief Encoding quality level. * * The encoding quality could be set through this structure, if the implementation diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libva-2.2.0/va/va_dec_hevc.h new/libva-2.3.0/va/va_dec_hevc.h --- old/libva-2.2.0/va/va_dec_hevc.h 2018-07-11 09:55:37.000000000 +0200 +++ new/libva-2.3.0/va/va_dec_hevc.h 2018-10-23 15:50:59.000000000 +0200 @@ -481,10 +481,14 @@ int8_t ChromaOffsetL1[15][2]; /** HEVC syntax element. */ uint8_t five_minus_max_num_merge_cand; + /** HEVC syntax element. */ + uint16_t num_entry_point_offsets; + /** HEVC syntax element. */ + uint16_t entry_offset_to_subset_array; /**@}*/ /** \brief Reserved bytes for future use, must be zero */ - uint32_t va_reserved[VA_PADDING_LOW]; + uint32_t va_reserved[VA_PADDING_LOW - 1]; } VASliceParameterBufferHEVC; /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libva-2.2.0/va/va_str.c new/libva-2.3.0/va/va_str.c --- old/libva-2.2.0/va/va_str.c 2018-07-11 09:55:37.000000000 +0200 +++ new/libva-2.3.0/va/va_str.c 2018-10-23 15:50:59.000000000 +0200 @@ -171,6 +171,7 @@ TOSTR(VAStatsMVPredictorBufferType); TOSTR(VAEncFEICTBCmdBufferType); TOSTR(VAEncFEICURecordBufferType); + TOSTR(VASubsetsParameterBufferType); case VABufferTypeMax: break; } return "<unknown buffer type>"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libva-2.2.0/va/va_trace.c new/libva-2.3.0/va/va_trace.c --- old/libva-2.2.0/va/va_trace.c 2018-07-11 09:55:37.000000000 +0200 +++ new/libva-2.3.0/va/va_trace.c 2018-10-23 15:50:59.000000000 +0200 @@ -3241,6 +3241,18 @@ va_TraceMsg(trace_ctx, "\tmax_frame_size = %d\n", p->max_frame_size); break; } + case VAEncMiscParameterTypeMultiPassFrameSize: + { + int i; + VAEncMiscParameterBufferMultiPassFrameSize *p = (VAEncMiscParameterBufferMultiPassFrameSize *)tmp->data; + + va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterTypeMultiPassFrameSize\n"); + va_TraceMsg(trace_ctx, "\tmax_frame_size = %d\n", p->max_frame_size); + va_TraceMsg(trace_ctx, "\tnum_passes = %d\n", p->num_passes); + for(i = 0; i<p->num_passes; ++i) + va_TraceMsg(trace_ctx, "\tdelta_qp[%d] = %d\n", i, p->delta_qp[i]); + break; + } case VAEncMiscParameterTypeQualityLevel: { VAEncMiscParameterBufferQualityLevel *p = (VAEncMiscParameterBufferQualityLevel *)tmp->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libva-2.2.0/va/va_version.h new/libva-2.3.0/va/va_version.h --- old/libva-2.2.0/va/va_version.h 2018-07-11 09:55:45.000000000 +0200 +++ new/libva-2.3.0/va/va_version.h 2018-10-23 15:52:51.000000000 +0200 @@ -37,7 +37,7 @@ * * The minor version of VA-API (2, if %VA_VERSION is 1.2.3) */ -#define VA_MINOR_VERSION 2 +#define VA_MINOR_VERSION 3 /** * VA_MICRO_VERSION: @@ -51,7 +51,7 @@ * * The full version of VA-API, like 1.2.3 */ -#define VA_VERSION 1.2.0 +#define VA_VERSION 1.3.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.2.0" +#define VA_VERSION_S "1.3.0" /** * VA_VERSION_HEX: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libva-2.2.0/va/va_vpp.h new/libva-2.3.0/va/va_vpp.h --- old/libva-2.2.0/va/va_vpp.h 2018-07-11 09:55:37.000000000 +0200 +++ new/libva-2.3.0/va/va_vpp.h 2018-10-23 15:50:59.000000000 +0200 @@ -249,6 +249,10 @@ VAProcFilterSkinToneEnhancement, /** \brief Total Color Correction. */ VAProcFilterTotalColorCorrection, + /** \brief Human Vision System(HVS) Noise reduction filter. */ + VAProcFilterHVSNoiseReduction, + /** \brief High Dynamic Range Tone Mapping. */ + VAProcFilterHighDynamicRangeToneMapping, /** \brief Number of video filters. */ VAProcFilterCount } VAProcFilterType; @@ -289,33 +293,122 @@ VAProcColorBalanceCount } VAProcColorBalanceType; -/** \brief Color standard types. */ +/** \brief Color standard types. + * + * These define a set of color properties corresponding to particular + * video standards. + * + * Where matrix_coefficients is specified, it applies only to YUV data - + * RGB data always use the identity matrix (matrix_coefficients = 0). + */ typedef enum _VAProcColorStandardType { VAProcColorStandardNone = 0, - /** \brief ITU-R BT.601. */ + /** \brief ITU-R BT.601. + * + * It is unspecified whether this will use 525-line or 625-line values; + * specify the colour primaries and matrix coefficients explicitly if + * it is known which one is required. + * + * Equivalent to: + * colour_primaries = 5 or 6 + * transfer_characteristics = 6 + * matrix_coefficients = 5 or 6 + */ VAProcColorStandardBT601, - /** \brief ITU-R BT.709. */ + /** \brief ITU-R BT.709. + * + * Equivalent to: + * colour_primaries = 1 + * transfer_characteristics = 1 + * matrix_coefficients = 1 + */ VAProcColorStandardBT709, - /** \brief ITU-R BT.470-2 System M. */ + /** \brief ITU-R BT.470-2 System M. + * + * Equivalent to: + * colour_primaries = 4 + * transfer_characteristics = 4 + * matrix_coefficients = 4 + */ VAProcColorStandardBT470M, - /** \brief ITU-R BT.470-2 System B, G. */ + /** \brief ITU-R BT.470-2 System B, G. + * + * Equivalent to: + * colour_primaries = 5 + * transfer_characteristics = 5 + * matrix_coefficients = 5 + */ VAProcColorStandardBT470BG, - /** \brief SMPTE-170M. */ + /** \brief SMPTE-170M. + * + * Equivalent to: + * colour_primaries = 6 + * transfer_characteristics = 6 + * matrix_coefficients = 6 + */ VAProcColorStandardSMPTE170M, - /** \brief SMPTE-240M. */ + /** \brief SMPTE-240M. + * + * Equivalent to: + * colour_primaries = 7 + * transfer_characteristics = 7 + * matrix_coefficients = 7 + */ VAProcColorStandardSMPTE240M, - /** \brief Generic film. */ + /** \brief Generic film. + * + * Equivalent to: + * colour_primaries = 8 + * transfer_characteristics = 1 + * matrix_coefficients = 1 + */ VAProcColorStandardGenericFilm, - /** \brief sRGB. */ + /** \brief sRGB. + * + * Equivalent to: + * colour_primaries = 1 + * transfer_characteristics = 13 + * matrix_coefficients = 0 + */ VAProcColorStandardSRGB, - /** \brief stRGB. */ + /** \brief stRGB. + * + * ??? + */ VAProcColorStandardSTRGB, - /** \brief xvYCC601. */ + /** \brief xvYCC601. + * + * Equivalent to: + * colour_primaries = 1 + * transfer_characteristics = 11 + * matrix_coefficients = 5 + */ VAProcColorStandardXVYCC601, - /** \brief xvYCC709. */ + /** \brief xvYCC709. + * + * Equivalent to: + * colour_primaries = 1 + * transfer_characteristics = 11 + * matrix_coefficients = 1 + */ VAProcColorStandardXVYCC709, - /** \brief ITU-R BT.2020. */ + /** \brief ITU-R BT.2020. + * + * Equivalent to: + * colour_primaries = 9 + * transfer_characteristics = 14 + * matrix_coefficients = 9 + */ VAProcColorStandardBT2020, + /** \brief Explicitly specified color properties. + * + * Use corresponding color properties section. + * For example, HDR10 content: + * colour_primaries = 9 (BT2020) + * transfer_characteristics = 16 (SMPTE ST2084) + * matrix_coefficients = 9 + */ + VAProcColorStandardExplicit, /** \brief Number of color standards. */ VAProcColorStandardCount } VAProcColorStandardType; @@ -338,6 +431,34 @@ /** \brief Number of color correction attributes. */ VAProcTotalColorCorrectionCount } VAProcTotalColorCorrectionType; + +/** \brief High Dynamic Range Metadata types. */ +typedef enum _VAProcHighDynamicRangeMetadataType { + VAProcHighDynamicRangeMetadataNone = 0, + /** \brief Metadata type for HDR10. */ + VAProcHighDynamicRangeMetadataHDR10 +} VAProcHighDynamicRangeMetadataType; + +/** \brief Video Processing Mode. */ +typedef enum _VAProcMode { + /** + * \brief Default Mode. + * In this mode, pipeline is decided in driver to the appropriate mode. + * e.g. a mode that's a balance between power and performance. + */ + VAProcDefaultMode = 0, + /** + * \brief Power Saving Mode. + * In this mode, pipeline is optimized for power saving. + */ + VAProcPowerSavingMode, + /** + * \brief Performance Mode. + * In this mode, pipeline is optimized for performance. + */ + VAProcPerformanceMode +} VAProcMode; + /** @name Video blending flags */ /**@{*/ /** \brief Global alpha blending. */ @@ -435,6 +556,18 @@ #define VA_SOURCE_RANGE_REDUCED 1 #define VA_SOURCE_RANGE_FULL 2 +/** @name Tone Mapping flags multiple HDR mode*/ +/**@{*/ +/** \brief Tone Mapping from HDR content to HDR display. */ +#define VA_TONE_MAPPING_HDR_TO_HDR 0x0001 +/** \brief Tone Mapping from HDR content to SDR display. */ +#define VA_TONE_MAPPING_HDR_TO_SDR 0x0002 +/** \brief Tone Mapping from HDR content to EDR display. */ +#define VA_TONE_MAPPING_HDR_TO_EDR 0x0004 +/** \brief Tone Mapping from SDR content to HDR display. */ +#define VA_TONE_MAPPING_SDR_TO_HDR 0x0008 +/**@}*/ + /** \brief Video processing pipeline capabilities. */ typedef struct _VAProcPipelineCaps { /** \brief Pipeline flags. See VAProcPipelineParameterBuffer::pipeline_flags. */ @@ -522,9 +655,9 @@ uint32_t min_output_height; /** \brief Reserved bytes for future use, must be zero */ #if defined(__AMD64__) || defined(__x86_64__) || defined(__amd64__) || defined(__LP64__) - uint32_t va_reserved[VA_PADDING_HIGH - 2]; + uint32_t va_reserved[VA_PADDING_HIGH - 2]; #else - uint32_t va_reserved[VA_PADDING_HIGH]; + uint32_t va_reserved[VA_PADDING_HIGH]; #endif } VAProcPipelineCaps; @@ -540,7 +673,7 @@ float step; /** \brief Reserved bytes for future use, must be zero */ - uint32_t va_reserved[VA_PADDING_LOW]; + uint32_t va_reserved[VA_PADDING_LOW]; } VAProcFilterValueRange; typedef struct _VAProcColorProperties { @@ -548,9 +681,124 @@ uint8_t chroma_sample_location; /** Chroma sample location. \c VA_SOURCE_RANGE_XXX*/ uint8_t color_range; - uint8_t reserved[6]; + /** Colour primaries. + * + * See ISO/IEC 23001-8 or ITU H.273, section 8.1 and table 2. + * Only used if the color standard in use is \c VAColorStandardExplicit. + */ + uint8_t colour_primaries; + /** Transfer characteristics. + * + * See ISO/IEC 23001-8 or ITU H.273, section 8.2 and table 3. + * Only used if the color standard in use is \c VAColorStandardExplicit. + */ + uint8_t transfer_characteristics; + /** Matrix coefficients. + * + * See ISO/IEC 23001-8 or ITU H.273, section 8.3 and table 4. + * Only used if the color standard in use is \c VAColorStandardExplicit. + */ + uint8_t matrix_coefficients; + /** Reserved bytes for future use, must be zero. */ + uint8_t reserved[3]; } VAProcColorProperties; +/** \berief Describes High Dynamic Range Meta Data for HDR10. */ +typedef struct _VAHdrMetaDataHDR10 +{ + /** + * \brief X chromaticity coordinate of the mastering display. + * + * Index value c equal to 0 should correspond to the green primary. + * Index value c equal to 1 should correspond to the blue primary. + * Index value c equal to 2 should correspond to the red primary. + * The value for display_primaries_x shall be in the range of 0 to 50000 inclusive. + */ + uint16_t display_primaries_x[3]; + /** + * \brief Y chromaticity coordinate of the mastering display. + * + * Index value c equal to 0 should correspond to the green primary. + * Index value c equal to 1 should correspond to the blue primary. + * Index value c equal to 2 should correspond to the red primary. + * The value for display_primaries_y shall be in the range of 0 to 50000 inclusive. + */ + uint16_t display_primaries_y[3]; + /** + * \brief X chromaticity coordinate of the white point of the mastering display. + * + * The value for white_point_x shall be in the range of 0 to 50000 inclusive. + */ + uint16_t white_point_x; + /** + * \brief Y chromaticity coordinate of the white point of the mastering display. + * + * The value for white_point_y shall be in the range of 0 to 50000 inclusive. + */ + uint16_t white_point_y; + /** + * \brief The maximum display luminance of the mastering display. + * + * The value is in units of 0.0001 candelas per square metre. + */ + uint32_t max_display_mastering_luminance; + /** + * \brief The minumum display luminance of the mastering display. + * + * The value is in units of 0.0001 candelas per square metre. + */ + uint32_t min_display_mastering_luminance; + /** + * \brief The maximum content light level. + * + * The value is in units of 0.0001 candelas per square metre. + */ + uint16_t max_content_light_level; + /** + * \brief The maximum picture average light level. + * + * The value is in units of 0.0001 candelas per square metre. + */ + uint16_t max_pic_average_light_level; + /** Resevered */ + uint16_t reserved[VA_PADDING_HIGH]; +} VAHdrMetaDataHDR10; + +/** \brief Capabilities specification for the High Dynamic Range filter. */ +typedef struct _VAProcFilterCapHighDynamicRange { + /** \brief high dynamic range type. */ + VAProcHighDynamicRangeMetadataType metadata_type; + /** + * \brief flag for high dynamic range tone mapping + * + * The flag is the combination of VA_TONE_MAPPING_XXX_TO_XXX. + * It could be VA_TONE_MAPPING_HDR_TO_HDR | VA_TONE_MAPPING_HDR_TO_SDR. + * SDR content to SDR display is always supported by default since it is legacy path. + */ + uint16_t caps_flag; + /** \brief Reserved bytes for future use, must be zero */ + uint16_t va_reserved[VA_PADDING_HIGH]; +} VAProcFilterCapHighDynamicRange; + +/** \brief High Dynamic Range Meta Data. */ +typedef struct _VAHdrMetaData +{ + /** \brief high dynamic range metadata type, HDR10 etc. */ + VAProcHighDynamicRangeMetadataType metadata_type; + /** + * \brief Pointer to high dynamic range metadata. + * + * The pointer could point to VAHdrMetaDataHDR10 or other HDR meta data. + */ + void* metadata; + /** + * \brief Size of high dynamic range metadata. + */ + uint32_t metadata_size; + /** \brief Reserved bytes for future use, must be zero */ + uint32_t reserved[VA_PADDING_LOW]; +} VAHdrMetaData; + /** * \brief Video processing pipeline configuration. * @@ -597,12 +845,15 @@ */ const VARectangle *surface_region; /** - * \brief Requested input color primaries. + * \brief Requested input color standard. * - * Color primaries are implicitly converted throughout the processing + * Color properties are implicitly converted throughout the processing * pipeline. The video processor chooses the best moment to apply - * this conversion. The set of supported color primaries primaries - * for input shall be queried with vaQueryVideoProcPipelineCaps(). + * this conversion. The set of supported color standards for input shall + * be queried with vaQueryVideoProcPipelineCaps(). + * + * If this is set to VAProcColorStandardExplicit, the color properties + * are specified explicitly in surface_color_properties instead. */ VAProcColorStandardType surface_color_standard; /** @@ -610,7 +861,7 @@ * * Pointer to a #VARectangle defining the region within the output * surface that receives the processed pixels. If NULL, \c output_region - * implies the whole surface. + * implies the whole surface. * * Note that any pixels residing outside the specified region will * be filled in with the \ref output_background_color. @@ -633,7 +884,10 @@ */ uint32_t output_background_color; /** - * \brief Requested output color primaries. + * \brief Requested output color standard. + * + * If this is set to VAProcColorStandardExplicit, the color properties + * are specified explicitly in output_color_properties instead. */ VAProcColorStandardType output_color_standard; /** @@ -656,7 +910,7 @@ * \c VA_BOTTOM_FIELD. Note that any deinterlacing filter * (#VAProcFilterDeinterlacing) will override those flags. * - Color space conversion: \c VA_SRC_BT601, \c VA_SRC_BT709, - * \c VA_SRC_SMPTE_240. + * \c VA_SRC_SMPTE_240. * - Scaling: \c VA_FILTER_SCALING_DEFAULT, \c VA_FILTER_SCALING_FAST, * \c VA_FILTER_SCALING_HQ, \c VA_FILTER_SCALING_NL_ANAMORPHIC. */ @@ -675,15 +929,15 @@ */ VABufferID *filters; /** \brief Actual number of filters. */ - uint32_t num_filters; + uint32_t num_filters; /** \brief Array of forward reference frames. */ VASurfaceID *forward_references; /** \brief Number of forward reference frames that were supplied. */ - uint32_t num_forward_references; + uint32_t num_forward_references; /** \brief Array of backward reference frames. */ VASurfaceID *backward_references; /** \brief Number of backward reference frames that were supplied. */ - uint32_t num_backward_references; + uint32_t num_backward_references; /** * \brief Rotation state. See rotation angles. * @@ -754,16 +1008,30 @@ * bit 1~31 for future */ uint32_t output_surface_flag; - + /** + * \brief Input Color Properties. See "VAProcColorProperties". + */ VAProcColorProperties input_color_properties; - + /** + * \brief Output Color Properties. See "VAProcColorProperties". + */ VAProcColorProperties output_color_properties; + /** + * \brief Processing mode. See "VAProcMode". + */ + VAProcMode processing_mode; + /** + * \brief Output High Dynamic Metadata. + * + * If output_metadata is NULL, then output default to SDR. + */ + VAHdrMetaData *output_hdr_metadata; /** \brief Reserved bytes for future use, must be zero */ #if defined(__AMD64__) || defined(__x86_64__) || defined(__amd64__)|| defined(__LP64__) - uint32_t va_reserved[VA_PADDING_LARGE - 13]; + uint32_t va_reserved[VA_PADDING_LARGE - 16]; #else - uint32_t va_reserved[VA_PADDING_LARGE - 11]; + uint32_t va_reserved[VA_PADDING_LARGE - 13]; #endif } VAProcPipelineParameterBuffer; @@ -929,6 +1197,26 @@ /** \brief Color correction value. */ float value; } VAProcFilterParameterBufferTotalColorCorrection; + +/** \brief Human Vision System(HVS) Noise reduction filter parametrization. */ +typedef struct _VAProcFilterParameterBufferHVSNoiseReduction { + /** \brief Filter type. Shall be set to #VAProcFilterHVSNoiseReduction. */ + VAProcFilterType type; + /** \brief QP for encoding, used for HVS Denoise */ + uint16_t qp; + /** + * \brief QP to Noise Reduction Strength Mode, used for Human Vision System Based Noise Reduction. + * Controls Noise Reduction strength of conservative and aggressive mode. + * It is an integer from [0-16]. + * Value 0 means completely turn off Noise Reduction; + * Value 16 means the most aggressive mode of Noise Reduction; + * Value 10 is the default value. + */ + uint16_t strength; + /** \brief Reserved bytes for future use, must be zero */ + uint16_t va_reserved[VA_PADDING_HIGH]; +} VAProcFilterParameterBufferHVSNoiseReduction; + /** * \brief Default filter cap specification (single range value). * ++++++ libva-2.2.0.tar.bz2.sha1sum -> libva-2.3.0.tar.bz2.sha1sum ++++++ --- /work/SRC/openSUSE:Factory/libva/libva-2.2.0.tar.bz2.sha1sum 2018-07-22 23:38:08.128198824 +0200 +++ /work/SRC/openSUSE:Factory/.libva.new/libva-2.3.0.tar.bz2.sha1sum 2018-11-06 15:24:48.772574288 +0100 @@ -1 +1 @@ -5b19d2fbf532f14e24c3bedb4074238a1d7f1686 libva-2.2.0.tar.bz2 +e1138529355cce78fa2edc7c5b1c5aeb40dd0ce5 libva-2.3.0.tar.bz2