libva NEWS -- summary of user visible changes.  2020-09-11
Copyright (C) 2009-2020 Intel Corporation

version 2.9.0 - 11.Sep.2020
* trace: Refine the va_TraceVAPictureParameterBufferAV1.
* doc: Add comments for backward/forward reference to avoid confusion
* doc: Modify comments in av1 decoder interfaces
* doc: Update mailing list
* Add SCC fields trace for HEVC SCC encoding.
* Add FOURCC code for Y212 and Y412 format.
* Add interpolation method for scaling.
* add attributes for context priority setting
* Add vaSyncBuffer for output buffers synchronization
* Add vaSyncSurface2 with timeout

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.
* Add av1 decode interfaces
* Fix crashes on system without supported hardware by PR #369.
* Add 2 FourCC for 10bit RGB(without Alpha) format: X2R10G10B10 and X2B10G10R10.
* Fix android build issue #365 and remove some trailing whitespace
* Adjust call sequence to ensure authenticate operation is executed to fix #355

version 2.6.0 - 15.Dec.2019
* enable the mutiple driver selection logic and enable it for DRM.
* drm: Add iHD to driver_name_map
* Add missed slice parameter 'slice_data_num_emu_prevn_bytes'
* ensure that all meson files are part of the release tarball
* configure: use correct comparison operator
* trace: support VAConfigAttribMultipleFrame in trace
* remove incorrect field of VAConfigAttribValDecJPEG
* va/va_trace: Dump VP9 parameters for profile 1~3
* add multiple frame capability report
* add variable to indicate layer infromation
* trace: fix memory leak on closing the trace
* add prediction direction caps report
* Add comments for colour primaries and transfer characteristics in VAProcColorProperties

version 2.5.0 - 05.Jul.2019
* Correct the comment of color_range.
* Add VA_FOURCC_A2B10G10R10 for format a2b10g10r10.
* 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
* (integrate) va: fix new line symbol in error message
* av: avoid driver path truncation
* Fix compilation warning (uninit and wrong variable types) for Android O MR1
* Allow import of the DRM PRIME 2 memory type
* android: ignore unimportant compile warnnings
* compile: fix sign/unsign compare in va_trace.c
* android: replace utils/Log.h with log/log.h
* High Dynamic Range Tone Mapping: Add a new filter for input metadata and some comments.
* Remove restrictions on vaSetDriverName()

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 - 12.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
* Add 10/12-bit YUV render target formats
* Add fourcc code for Y210/Y216/Y410/Y416/RGB565/BGR565
* Add VA_STATUS_ERROR_NOT_ENOUGH_BUFFER
* Add VA_SURFACE_ATTRIB_USAGE_HINT_EXPORT
* Improve documentation

Version 2.1.0 - 12.Feb.2018
* Bump VA-API version to 1.1.0 and libva to 2.1.0
* Add API for multi-frame processing
* Add entrypoint VAEntrypointStats for Statistics
* Add data structures for HEVC FEI support
* Add new attributes for decoding/encoding/video processing
* Add new VPP filter for Total Color Correction
* Add blending interface in VPP
* Add rotation interface in VPP
* Add mirroring interface in VPP
* Add Chroma siting flags in VPP
* Add new color standard definitions
* Add new interface for exporting surface
* Add message callbacks for drivers to use

Version 2.0.0 - 21.Oct.2017
* Bump VA-API version to 1.0.0 and libva to 2.0.0
* Add new API for H264 FEI support
* Add definition of VA_FOURCC_I420
* Add functions for converting common enums to strings
* Deprecate H.264 baseline profile and FMO support
* Deprecate packed misc packed header flag
* Delete libva-tpi and libva-egl backends
* Refine VASliceParameterBufferHEVC, VAEncMiscParameterBuffer
* Fix errors in VAConfigAttribValEncROI, VAEncMacroblockParameterBufferH264
* Fix race condition in wayland support
* Rename vaMessageCallback to VAMessageCallback
* Make logging callbacks library-safe

Version 1.8.3 - 28.Jun.2017
* Bump libva to 1.8.3
* Fix build issue on Android
* Remove the dummy driver
* Add traces for MB rate control / temporal layer
* Set verbosity level between {0, 1, 2} by setting the variable LIBVA_MESSAGING_LEVEL
  in /etc/libva.conf or by setting the environment variable LIBVA_MESSAGING_LEVEL.

Version 1.8.2 - 22.May.2017
* Bump libva to 1.8.2

Version 1.8.1 - 10.Apr.2017
* Bump libva to 1.8.1

Version 1.8.0 - 31.March.2017
* Bump VA API version to 0.40
* API: Change vaRenderPicture semantics that vaRenderPicture no longer deletes the passed buffer automatically.
* API: Add VA_FOURCC_I010 for 10bit surface
* API: Add vaSetErrorCallback and vaSetInfoCallback for error and info message.
* va/drm: Update the support for Mesa Gallium driver
* va/drm: Fix authentication check for /dev/dri/card0
* Move all utilities and tests to libva-utils (https://github.com/01org/libva-utils)

Version 1.7.3 - DD.Nov.2016
* Bump VA API version to 0.39.4
* API: add support for bitrate control per temporal layer
* API: update the usage for framerate in VAEncMiscParameterFrameRate to support non-integer frame-rate
* Add has_prime_sharing flag in VADriverVTableWayland to indicate if buffer sharing with prime fd can
  be used in the backend driver

Version 1.7.2 - 05.Sep.2016
* Bump VA API version to 0.39.3
* API: add support for ROI
* Add support for VP9 encoder in VA tracer
* Refine test cases
* Fix the issue of not properly terminating the parsed environment values with '\0'
  https://bugs.freedesktop.org/show_bug.cgi?id=96677

Version 1.7.1 - 21.Jun.2016
* Bump VA API version to 0.39.2
* API: add support for VP9 8bit encode
* API: add support for low power/high performance encode
* API: add support for encoding ROI attribute
* API: add support for macroblock based rate control
* Fix VA tracer to support multiple contexts in one instance

Version 1.7.0 - 15.Mar.2016
* Bump VA API version to 0.39
* Add support for VP9 10bit decode API
* Allow libva to load the vaapi driver provided by Mesa Gallium for nouveau and radeon
* Fix libva-glx against OpenGL 3.1 or above

Version 1.6.2 - 15.Dec.2015
* Bump VA API version to 0.38.1
* Add new RT format for 16 bits per channel memory layout(P010,P016): VA_RT_FORMAT_YUV420_10BPP
* Add new fourcc codes: VA_FOURCC_P010, VA_FOURCC_P016, VA_FOURCC_YV16
* Fix crash if user doesn't have right to access the DRI device
* Fix uninitialized x11_screen driver context member for X11 output
  https://bugs.freedesktop.org/show_bug.cgi?id=61603
* Fix the issue of not to use LIBVA_DRIVER_NAME
  https://bugs.freedesktop.org/show_bug.cgi?id=72822
* Fix build issue with wayland
  https://bugs.freedesktop.org/show_bug.cgi?id=79478
* vainfo: Add option '--display'

Version 1.6.1 - 09.Sep.2015
* Add support for VP9 decode and HEVC encode in VA trace module
* Add VP9 profile to vainfo
* Enhance VA trace to dump VP8 encode parameters

Version 1.6.0 - 01.Jul.2015
* Bump VA API version to 0.38
* Add support for HEVC encode API
* Add support for VP9 decode API
* Add API (vaSetDriverName()) to allow the user to specify the loaded backend driver
* Add VAConfigAttribEncSkipFrame and corresponding structures to support
  sending skip frame parameters to the backend driver.
* Add support for querying slice decoding mode supported by the backend driver
* Fix quality issue in the JPEG encode demo

Version 1.5.1 - DD.Mar.2015
* API: correct the comment for num_token_partitions in struct  _VAEncPictureParameterBufferVP8
* VA/x11: fix double Unlocks/SyncHandle to avoid segmentation fault

Version 1.5.0 - 28.Dec.2014
* API: add support for HEVC decoding
* API: extend JPEG encoding data structures and add configuration attribute for JPEG encoding
* Add a unit test for JPEG encoding (Sirisha Muppavarapu)
* Add support for HEVC decoding and JPEG encoding in VA trace utility
* Fix out of tree builds (Emil Velikov)
* VA/X11: fix BadDrawable issue when calling vaTerminate() after the pixmaps have been destroyed (Lionel Landwerlin)

Version 1.4.1 - 24.Oct.2014
* Add support for DRM Render-Nodes (Andrey Larionov)

Version 1.4.0 - 30.Sep.2014
* API: add support for VP8 encoding
* API: add H.264 MVC profiles for decoding and encoding
* API: add buffer export interfaces for interop with 3rdparty APIs (EGL, OCL)
* API: add suppor for encoder quality level
* API: add attribute usage hint flag
* Fix build on 64-bit versions of Android (Qiming Shi)
* Assorted fixes to the VA fool and trace modules (Austin Yuan)

Version 1.3.1 - 09.May.2014
* API: fix VA_ENC_PACKED_HEADER_RAW_DATA value
* API: add STE filter to the VPP pipeline
* Update doxygen tags in libva
* Fix doc/Makefile.am
* A workaround for https://bugs.freedesktop.org/show_bug.cgi?id=76755

Version 1.3.0 - 24.Mar.2014
* API: add support for VP8 decoding
* API: drop VAEntrypointMax enumeration
* Enhancement for VA trace utility

Version 1.2.1 - 27.Jun.2013
* Fix https://bugs.freedesktop.org/show_bug.cgi?id=66221 
* Add back VA_DRIVER_INIT_FUNC definition for testing

Version 1.2.0 - 25.Jun.2013
* API: new H.264 encoding API for Main and High profiles
* API: add support for MPEG-2 encoding
* API: add video processing interfaces
* API: add vaQuerySurfaceAttributes() to query surface attributes supported by the underlying drivers.
* API: new version of vaCreateSurfaces()
* API: add new surface attributes to enable VA surface creation from external buffer
* API: add new RT formats and fourcc codes
* Refine VA trace utility
* Refine H.264 encoding test cases {avcenc, h264enc}
* A new test case for MPEG-2 encoding
* A lot of bug fixes

Version 1.1.1 - 19.Mar.2013
* Support wayland 1.0 protocol (Rob Bradford)
* Automake 1.13 fixups (Armin K)

Version 1.1.0 - 04.Oct.2012
* API: add Wayland support
* API: add raw DRM support for headless pipelines
* Fix generic VA/GLX implementation for newer cluttersink versions
* Fix threading issues in VA objects reference code (+Krzysztof Kotlenga)
* Fix build on Android Ice Cream Sandwich (+Haitao Huang, Daniel Charles)

Version 1.0.16 - 02.Aug.2012
* API: data structures for JPEG Baseline decoding
* API: clarify the definition of slice_data_bit_offset
* Add a simple test case for JPEG decoding

Version 1.0.15 - 28.Oct.2011
* API: make {Top,Bottom}FieldOrderCnt signed (Yi Wang)
* Add auto-generated Debian packaging
* Refine VA trace & VA fool utilities
* Move i965 driver to a specific repository (vaapi/intel-driver)
* Fix DSO link issue in tests
* Fix fglrx driver name detection
* Fix API vs. DSO vs. package versioning

Version 1.0.14 - 28.Jul.2011
* API: rename VA_DECODE_ERROR_TYPE to VADecodeErrorType
* Fix memory leaks (Edgar Hucek)
* Fix VA trace logs (Alexander Osin)
* Fix vaTerminate() with some applications, e.g. GStreamer

Version 1.0.13 - 30.May.2011
* API: fix VA_ROTATION_270 definition
* Add a simple H.264 encoder "avcenc" (Chang Zhou)
* Fix VA tracer (Alexander Osin)
* Fix vaBufferInfo() interface (Alexander Osin)

Version 1.0.12 - 01.Apr.2011
* API: add VARenderMode interface to select overlay or GPU rendering mode
* API: add VARenderDevice interface to allow rendering to an external device
* API: add VADisplayAttribOverlay{ColorKey,AutoPaintColorKey} interface
* Fix build issues on Android 2.3

Changes for older versions can be found in git log or previously
released packages.
