diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index bb9c16d5..c9d32489 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -14,7 +14,7 @@ jobs: build: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: install prerequisites run: | sudo apt-get update diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml index 69ff1f8e..2c741ffd 100644 --- a/.github/workflows/freebsd.yml +++ b/.github/workflows/freebsd.yml @@ -7,7 +7,7 @@ jobs: runs-on: macos-12 steps: - name: 'Checkout' - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: 'Install prerequisites and build' uses: vmactions/freebsd-vm@v0 with: diff --git a/.github/workflows/ghpages.yml b/.github/workflows/ghpages.yml index 8df60a05..35ca11e6 100644 --- a/.github/workflows/ghpages.yml +++ b/.github/workflows/ghpages.yml @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-22.04 steps: - name: 'Checkout' - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: 'Get latest tag' diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml index 4adafd6e..4865a7b7 100644 --- a/.github/workflows/style.yml +++ b/.github/workflows/style.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-22.04 steps: - name: 'Checkout' - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: 'Install prerequisites' run: | sudo apt-get update diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 5248cd2d..7cfc156f 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -18,7 +18,7 @@ jobs: DISTRO: ${{ matrix.os }} steps: - name: 'Checkout' - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: 'Install toolchain' if: ${{ (matrix.compiler == 'clang-15') }} run: .github/workflows/install-clang.sh 15 diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 2a00a6fe..c3324bbe 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -7,7 +7,7 @@ jobs: runs-on: windows-2022 steps: - name: 'Checkout' - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: 'Setup Python' uses: actions/setup-python@v4 with: @@ -33,7 +33,7 @@ jobs: shell: msys2 {0} steps: - name: 'Checkout' - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: 'Setup MSYS2' uses: msys2/setup-msys2@v2 with: diff --git a/.gitignore b/.gitignore index 18d0234b..e63b8ed0 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,6 @@ ltmain.sh /m4 missing stamp-h1 -/va/va_version.h /va/wayland/wayland-drm-client-protocol.* /doc/Doxyfile /doc/html-out diff --git a/NEWS b/NEWS index 0fb8c8d6..16408842 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,18 @@ -libva NEWS -- summary of user visible changes. 2023-03-19 +libva NEWS -- summary of user visible changes. 2023-07-04 Copyright (C) 2009-2023 Intel Corporation +version 2.19.0 - 04.Jul.2023 +* docs: fix references and descriptions snf focyhrn mstkup +* ci: add build docs test +* win: change default driver search path to bindir +* win: rely on compiler to define link names +* add: Add mono_chrome to VAEncSequenceParameterBufferAV1 +* add: Enable support for license acquisition of multiple protected playbacks +* fix: year for version 2.18.0 in NEWS +* fix: use secure_getenv instead of getenv +* trace: Improve and add VA trace log for AV1 encode +* trace: Unify va log message, replace va_TracePrint with va_TraceMsg. + version 2.18.0 - 19.Mar.2023 * doc: Add build and install libva informatio in home page. * fix: NULL check before calling strncmp. diff --git a/configure.ac b/configure.ac index d68ef8c0..eb82831f 100644 --- a/configure.ac +++ b/configure.ac @@ -43,7 +43,7 @@ m4_define([va_api_version], 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], [0]) -m4_define([libva_pre_version], [1]) +m4_define([libva_pre_version], [0]) m4_define([libva_version], [libva_major_version.libva_minor_version.libva_micro_version]) diff --git a/meson.build b/meson.build index ac6ddde7..011020eb 100644 --- a/meson.build +++ b/meson.build @@ -7,7 +7,7 @@ # - reset micro version to zero when VA-API major or minor version is changed project( 'libva', 'c', - version : '2.19.0.1', + version : '2.19.0', meson_version : '>= 0.53.0', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) diff --git a/va/Android.mk b/va/Android.mk index a8f05f14..983ba57f 100644 --- a/va/Android.mk +++ b/va/Android.mk @@ -25,8 +25,8 @@ LOCAL_PATH:= $(call my-dir) -LIBVA_DRIVERS_PATH_32 := /vendor/lib/dri -LIBVA_DRIVERS_PATH_64 := /vendor/lib64/dri +LIBVA_DRIVERS_PATH_32 := /vendor/lib +LIBVA_DRIVERS_PATH_64 := /vendor/lib64 include $(CLEAR_VARS) @@ -41,7 +41,10 @@ IGNORED_WARNNING = \ LOCAL_SRC_FILES := \ va.c \ va_trace.c \ - va_str.c + va_str.c \ + drm/va_drm.c \ + drm/va_drm_auth.c \ + drm/va_drm_utils.c LOCAL_CFLAGS_32 += \ -DVA_DRIVERS_PATH="\"$(LIBVA_DRIVERS_PATH_32)\"" \ @@ -51,16 +54,56 @@ LOCAL_CFLAGS_64 += \ LOCAL_CFLAGS := \ $(IGNORED_WARNNING) \ - -DLOG_TAG=\"libva\" + -DLOG_TAG=\"libva\" \ + -DSYSCONFDIR='"$(sysconfdir)"' LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. +LOCAL_COPY_HEADERS := \ + va.h \ + va_android.h \ + va_version.h \ + va_dec_hevc.h \ + va_dec_jpeg.h \ + va_dec_vp8.h \ + va_dec_vp9.h \ + va_enc_hevc.h \ + va_enc_h264.h \ + va_enc_jpeg.h \ + va_enc_vp8.h \ + va_enc_av1.h \ + va_backend.h \ + va_drmcommon.h \ + va_vpp.h \ + va_backend_prot.h \ + va_backend_vpp.h \ + va_enc_mpeg2.h \ + sysdeps.h \ + va_compat.h \ + va_egl.h \ + va_prot.h \ + va_enc_vp9.h \ + va_fei.h \ + va_fei_h264.h \ + va_fei_hevc.h \ + va_internal.h \ + va_str.h \ + va_tpi.h \ + va_trace.h \ + va_dec_av1.h \ + drm/va_drm.h + +LOCAL_COPY_HEADERS_TO := libva/va + LOCAL_MODULE_TAGS := optional LOCAL_MODULE := libva LOCAL_MODULE_CLASS := SHARED_LIBRARIES LOCAL_PROPRIETARY_MODULE := true LOCAL_SHARED_LIBRARIES := libdl libdrm libcutils liblog +ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 27; echo $$?), 0) +LOCAL_HEADER_LIBRARIES += libutils_headers +endif intermediates := $(call local-generated-sources-dir) @@ -68,13 +111,6 @@ LOCAL_EXPORT_C_INCLUDE_DIRS := \ $(intermediates) \ $(LOCAL_C_INCLUDES) -GEN := $(intermediates)/va/va_version.h -$(GEN): SCRIPT := $(LOCAL_PATH)/../build/gen_version.sh -$(GEN): PRIVATE_CUSTOM_TOOL = sh $(SCRIPT) $( $@ -$(GEN): $(intermediates)/va/%.h : $(LOCAL_PATH)/%.h.in $(LOCAL_PATH)/../configure.ac - $(transform-generated-source) -LOCAL_GENERATED_SOURCES += $(GEN) - include $(BUILD_SHARED_LIBRARY) # For libva-android @@ -93,10 +129,16 @@ LOCAL_CFLAGS += \ LOCAL_C_INCLUDES += \ $(LOCAL_PATH)/drm +LOCAL_COPY_HEADERS_TO := libva/va LOCAL_MODULE_TAGS := optional LOCAL_MODULE := libva-android LOCAL_PROPRIETARY_MODULE := true LOCAL_SHARED_LIBRARIES := libva libdrm liblog +ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 27; echo $$?), 0) +LOCAL_STATIC_LIBRARIES += libarect +LOCAL_HEADER_LIBRARIES += libnativebase_headers libutils_headers +endif + include $(BUILD_SHARED_LIBRARY) diff --git a/va/va_version.h b/va/va_version.h new file mode 100644 index 00000000..61c53e4f --- /dev/null +++ b/va/va_version.h @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef VA_VERSION_H +#define VA_VERSION_H + +/** + * VA_MAJOR_VERSION: + * + * The major version of VA-API (1, if %VA_VERSION is 1.2.3) + */ +#define VA_MAJOR_VERSION 2 + +/** + * VA_MINOR_VERSION: + * + * The minor version of VA-API (2, if %VA_VERSION is 1.2.3) + */ +#define VA_MINOR_VERSION 19 + +/** + * VA_MICRO_VERSION: + * + * The micro version of VA-API (3, if %VA_VERSION is 1.2.3) + */ +#define VA_MICRO_VERSION 0 + +/** + * VA_VERSION: + * + * The full version of VA-API, like 1.2.3 + */ +#define VA_VERSION 2.19.0 + +/** + * VA_VERSION_S: + * + * The full version of VA-API, in string form (suited for string + * concatenation) + */ +#define VA_VERSION_S "2.19.0" + +/** + * VA_VERSION_HEX: + * + * Numerically encoded version of VA-API, like 0x010203 + */ +#define VA_VERSION_HEX ((VA_MAJOR_VERSION << 24) | \ + (VA_MINOR_VERSION << 16) | \ + (VA_MICRO_VERSION << 8)) + +/** + * VA_CHECK_VERSION: + * @major: major version, like 1 in 1.2.3 + * @minor: minor version, like 2 in 1.2.3 + * @micro: micro version, like 3 in 1.2.3 + * + * Evaluates to %TRUE if the version of VA-API is greater than + * @major, @minor and @micro + */ +#define VA_CHECK_VERSION(major,minor,micro) \ + (VA_MAJOR_VERSION > (major) || \ + (VA_MAJOR_VERSION == (major) && VA_MINOR_VERSION > (minor)) || \ + (VA_MAJOR_VERSION == (major) && VA_MINOR_VERSION == (minor) && VA_MICRO_VERSION >= (micro))) + +#endif /* VA_VERSION_H */