diff --git a/.gitignore b/.gitignore index ea9d355b..8be4ceb5 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,7 @@ ltmain.sh /m4 missing stamp-h1 -/va/va_version.h +#/va/va_version.h /va/wayland/wayland-drm-client-protocol-export.c /va/wayland/wayland-drm-client-protocol.* /doc/Doxyfile diff --git a/va/Android.mk b/va/Android.mk index 0066558a..cf08e726 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/:/system/lib +LIBVA_DRIVERS_PATH_64 := /vendor/lib64/:/system/lib64 include $(CLEAR_VARS) @@ -56,6 +56,37 @@ LOCAL_CFLAGS := \ -DLOG_TAG=\"libva\" LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. +LOCAL_COPY_HEADERS := \ + va.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_backend.h \ + va_drmcommon.h \ + va_vpp.h \ + va_backend_vpp.h \ + va_enc_mpeg2.h \ + sysdeps.h \ + va_compat.h \ + va_egl.h \ + va_enc_vp9.h \ + va_fei.h \ + va_fei_h264.h \ + va_fei_hevc.h \ + va_fool.h \ + va_internal.h \ + va_str.h \ + va_tpi.h \ + va_trace.h \ + va_dec_av1.h \ + +LOCAL_COPY_HEADERS_TO := libva/va LOCAL_MODULE_TAGS := optional LOCAL_MODULE := libva @@ -63,6 +94,9 @@ 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) @@ -70,13 +104,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 @@ -95,10 +122,19 @@ LOCAL_CFLAGS += \ LOCAL_C_INCLUDES += \ $(LOCAL_PATH)/drm +LOCAL_COPY_HEADERS_TO := libva/va + +LOCAL_COPY_HEADERS := va_android.h + 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.c b/va/va.c index 5562d2fe..27319759 100644 --- a/va/va.c +++ b/va/va.c @@ -71,7 +71,11 @@ int va_parseConfig(char *env, char *env_value) if (env == NULL) return 1; +#ifdef ANDROID + fp = fopen("/etc/libva.conf", "r"); +#else fp = fopen(SYSCONFDIR "/libva.conf", "r"); +#endif while (fp && (fgets(oneline, 1024, fp) != NULL)) { if (strlen(oneline) == 1) continue; diff --git a/va/va_version.h b/va/va_version.h new file mode 100644 index 00000000..c086984d --- /dev/null +++ b/va/va_version.h @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2021 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 1 + +/** + * VA_MINOR_VERSION: + * + * The minor version of VA-API (2, if %VA_VERSION is 1.2.3) + */ +#define VA_MINOR_VERSION 10 + +/** + * 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 1.10.0 + +/** + * VA_VERSION_S: + * + * The full version of VA-API, in string form (suited for string + * concatenation) + */ +#define VA_VERSION_S "1.10.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 */