Files
multimedia_video_processing…/framework/BUILD.gn
T
pxh123456 5eead0ce60 vpe ani code
Signed-off-by: pxh123456 <pengxiaohang@huawei.com>
2026-01-23 16:15:25 +08:00

537 lines
16 KiB
Plaintext

# Copyright (c) 2025 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//build/ohos.gni")
import("//build/config/components/idl_tool/idl.gni")
import("//foundation/multimedia/video_processing_engine/config.gni")
config("export_config") {
include_dirs = [
"$AIHDR_ENHANCER_DIR/include",
"$INTERFACES_INNER_API_DIR",
"$DFX_DIR/include",
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR/services/include",
"$DETAIL_ENHANCER_DIR/include",
"$COLORSPACE_CONVERTER_DIR/include",
"$METADATA_GENERATOR_DIR/include",
"$INTERFACES_INNER_API_DIR/native/colorspace",
"$COLORSPACE_CONVERTER_DISPLAY_DIR/include",
"$VIDEO_REFRESHRATE_PREDICTION_DIR/include",
"$ALGORITHM_DIR/common/include",
"$CONTRAST_ENHANCER_DIR/include",
"$METADATA_GENERATOR_VIDEO_DIR/include",
"$ALGORITHM_EXTENSION_MANAGER_DIR/include",
"$ALGORITHM_EXTENSION_SKIA_DIR/include",
]
}
config("video_process_config") {
cflags = [
"-std=c++17",
"-fno-rtti",
"-fno-exceptions",
"-Wall",
"-fno-common",
"-fstack-protector-strong",
"-Wshadow",
"-FPIC",
"-FS",
"-O2",
"-D_FORTIFY_SOURCE=2",
"-Wformat=2",
# "-Wfloat-equal",
"-Wdate-time",
"-Werror",
"-Wextra",
"-Wimplicit-fallthrough",
"-Wsign-compare",
"-Wunused-parameter",
]
include_dirs = [
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR",
"$FRAMEWORK_DIR",
"$FRAMEWORK_DIR/common/include",
"$AIHDR_ENHANCER_DIR/include",
"$AIHDR_ENHANCER_VIDEO_DIR/include",
"$ALGORITHM_DIR/common/include",
"$ALGORITHM_DIR/extension_manager/include",
"$COLORSPACE_CONVERTER_DIR/include",
"$COLORSPACE_CONVERTER_DISPLAY_DIR/include",
"$COLORSPACE_CONVERTER_VIDEO_DIR/include",
"$CONTRAST_ENHANCER_DIR/include",
"$METADATA_GENERATOR_DIR/include",
"$METADATA_GENERATOR_VIDEO_DIR/include",
"$DETAIL_ENHANCER_VIDEO_DIR/include",
"$VIDEO_REFRESHRATE_PREDICTION_DIR/include",
"$DETAIL_ENHANCER_DIR/include",
"$DFX_DIR/include",
"$FRAMEWORK_DIR/plugin",
"$FRAMEWORK_DIR/module",
"$INTERFACES_INNER_API_DIR",
"$INTERFACES_INNER_API_DIR/module",
"$INTERFACES_DIR/plugin",
"$SERVICES_DIR/include",
"$SERVICES_DIR/utils/include",
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR/services/include",
"${target_gen_dir}/../services/",
]
}
if (defined(global_parts_info) &&
defined(global_parts_info.multimedia_video_processing_engine_ext)) {
ohos_prebuilt_shared_library("extream_vision_engine") {
if (is_asan && use_hwasan) {
source = "//binary/artifacts/display/AIPQ20/asan/libextream_vision_engine.so"
} else {
source = "//binary/artifacts/display/AIPQ20/libextream_vision_engine.so"
}
module_install_dir = "lib64/"
output = "libextream_vision_engine.so"
install_images = [ "system" ]
subsystem_name = "multimedia"
part_name = "video_processing_engine"
install_enable = true
}
ohos_prebuilt_shared_library("ai_super_resolution") {
if (is_asan && use_hwasan) {
source = "//binary/artifacts/display/AIPQ20/asan/libdisplay_aipq_imagesr.so"
} else {
source = "//binary/artifacts/display/AIPQ20/libdisplay_aipq_imagesr.so"
}
module_install_dir = "lib64/"
output = "libdisplay_aipq_imagesr.so"
install_images = [ "system" ]
subsystem_name = "multimedia"
part_name = "video_processing_engine"
install_enable = true
}
ohos_prebuilt_shared_library("aihdr_engine") {
if (is_asan && use_hwasan) {
source = "//binary/artifacts/display/AIPQ20/asan/libaihdr_engine.so"
} else {
source = "//binary/artifacts/display/AIPQ20/libaihdr_engine.so"
}
module_install_dir = "lib64/"
output = "libaihdr_engine.so"
install_images = [ "system" ]
subsystem_name = "multimedia"
part_name = "video_processing_engine"
install_enable = true
}
} else {
group("extream_vision_engine") {
}
group("ai_super_resolution") {
}
group("aihdr_engine") {
}
}
ohos_shared_library("videoprocessingengine") {
branch_protector_ret = "pac_ret"
install_enable = true
sanitize = {
boundary_sanitize = true
cfi = true
cfi_cross_dso = true
integer_overflow = true
ubsan = true
debug = false
}
configs = [ ":video_process_config" ]
public_configs = [ ":export_config" ]
include_dirs = [
"$DFX_DIR/include",
"$METADATA_GENERATOR_DIR/include",
"$METADATA_GENERATOR_VIDEO_DIR/include",
"$VIDEO_REFRESHRATE_PREDICTION_DIR/include",
"$ALGORITHM_DIR/common/include",
"$ALGORITHM_DIR/extension_manager/include",
"$COLORSPACE_CONVERTER_DIR/include",
"$COLORSPACE_CONVERTER_VIDEO_DIR/include",
]
sources = [
"$AIHDR_ENHANCER_DIR/aihdr_enhancer_fwk.cpp",
"$AIHDR_ENHANCER_VIDEO_DIR/aihdr_enhancer_video_impl.cpp",
"$ALGORITHM_DIR/common/algorithm_common.cpp",
"$ALGORITHM_DIR/common/algorithm_utils.cpp",
"$ALGORITHM_DIR/common/algorithm_video.cpp",
"$ALGORITHM_DIR/common/algorithm_video_common.cpp",
"$ALGORITHM_DIR/common/algorithm_video_impl.cpp",
"$ALGORITHM_DIR/common/frame_info.cpp",
"$ALGORITHM_DIR/extension_manager/extension_manager.cpp",
"$ALGORITHM_DIR/extension_manager/utils.cpp",
"$COLORSPACE_CONVERTER_DIR/colorspace_converter_fwk.cpp",
"$COLORSPACE_CONVERTER_VIDEO_DIR/colorspace_converter_video_impl.cpp",
"$COLORSPACE_CONVERTER_DISPLAY_DIR/colorspace_converter_display_fwk.cpp",
"$METADATA_GENERATOR_DIR/metadata_generator_fwk.cpp",
"$METADATA_GENERATOR_VIDEO_DIR/metadata_generator_video_impl.cpp",
"$DETAIL_ENHANCER_DIR/detail_enhancer_image_fwk.cpp",
"$DETAIL_ENHANCER_VIDEO_DIR/detail_enhancer_video_fwk.cpp",
"$DETAIL_ENHANCER_VIDEO_DIR/detail_enhancer_video_impl.cpp",
"$VIDEO_REFRESHRATE_PREDICTION_DIR/video_refreshrate_prediction_fwk.cpp",
"$CONTRAST_ENHANCER_DIR/contrast_enhancer_image_fwk.cpp",
"$DFX_DIR/vpe_trace.cpp",
"$DFX_DIR/vpe_log.cpp",
#client
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR/services/src/video_processing_client.cpp",
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR/services/src/video_processing_load_callback.cpp",
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR/services/utils/surface_buffer_info.cpp",
"${target_gen_dir}/../services/video_processing_service_manager_proxy.cpp",
"${target_gen_dir}/../services/video_processing_service_manager_stub.cpp",
"$ALGORITHM_COMMON_DIR/image_opencl_wrapper.cpp",
"$ALGORITHM_COMMON_DIR/image_openclsetup.cpp"
]
deps = [
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR/services:videoprocessingservice_interface",
":aihdr_engine",
":ai_super_resolution",
":extream_vision_engine",
]
if (has_skia) {
defines += [ "SKIA_ENABLE" ]
deps += [ "//third_party/skia:skia_ohos" ]
include_dirs += [ "$ALGORITHM_EXTENSION_SKIA_DIR/include" ]
sources += [ "$ALGORITHM_EXTENSION_SKIA_DIR/skia_impl.cpp" ]
}
external_deps = [
"c_utils:utils",
"drivers_interface_display:libdisplay_commontype_proxy_2.1",
"graphic_2d:2d_graphics",
"graphic_2d:EGL",
"graphic_2d:GLESv3",
"graphic_surface:surface",
"graphic_surface:sync_fence",
"hdf_core:libhdf_host",
"hdf_core:libhdf_ipc_adapter",
"hdf_core:libhdf_utils",
"hdf_core:libhdi",
"hilog:libhilog",
"hitrace:hitrace_meter",
"image_framework:image_native",
"init:libbegetutil",
"ipc:ipc_single",
"media_foundation:media_foundation",
"safwk:system_ability_fwk",
"samgr:samgr_proxy",
"skia:skia_canvaskit",
"opencl-headers:libcl",
"bounds_checking_function:libsec_static",
]
subsystem_name = "multimedia"
part_name = "video_processing_engine"
}
config("vpe_capi_config") {
cflags = [
"-fno-exceptions",
"-Wall",
"-fno-common",
"-fstack-protector-all",
"-Wshadow",
"-FPIC",
"-FS",
"-O2",
"-D_FORTIFY_SOURCE=2",
"-Wformat=2",
"-Wdate-time",
]
cflags_cc = [
"-std=c++17",
"-fno-rtti",
]
}
config("vpe_capi_public_config") {
include_dirs = [
"$INTERFACES_CAPI_DIR",
"$INTERFACES_INNER_API_DIR",
]
}
ohos_shared_library("image_processing") {
stack_protector_ret = true
install_enable = true
sanitize = {
boundary_sanitize = true
cfi = true
cfi_cross_dso = true
integer_overflow = true
ubsan = true
debug = false
}
configs = [ ":vpe_capi_config" ]
public_configs = [ ":vpe_capi_public_config" ]
cflags = [
"-ffunction-sections",
"-fdata-sections",
"-DIMAGE_COLORSPACE_FLAG",
]
include_dirs = [
#Interface
"$INTERFACES_CAPI_DIR",
"$INTERFACES_INNER_API_DIR",
#Common
"$DFX_DIR/include",
"$ALGORITHM_COMMON_DIR/include",
"$SERVICES_DIR/utils/include",
#CAPI implementation
"$CAPI_IMAGE_DIR/include",
"$CAPI_IMAGE_DETAIL_ENHANCER_DIR/include",
"$CAPI_COLORSPACE_CONVERTER_DIR/include",
"$CAPI_METADATA_GENERATOR_DIR/include",
"$DETAIL_ENHANCER_DIR/include",
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR/services/include",
"${target_gen_dir}/../services/",
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR/framework/algorithm/common/include",
]
sources = [
"$CAPI_IMAGE_DIR/image_environment_native.cpp",
"$CAPI_IMAGE_DIR/image_processing.cpp",
"$CAPI_IMAGE_DIR/image_processing_factory.cpp",
"$CAPI_IMAGE_DIR/image_processing_impl.cpp",
"$CAPI_IMAGE_DIR/image_processing_native_base.cpp",
"$CAPI_IMAGE_DIR/image_processing_utils.cpp",
"$CAPI_IMAGE_DIR/image_processing_capi_capability.cpp",
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR/framework/algorithm/common/vpe_utils_common.cpp",
"$CAPI_IMAGE_DETAIL_ENHANCER_DIR/detail_enhancer_image_native.cpp",
"$CAPI_COLORSPACE_CONVERTER_DIR/colorspace_converter_image_native.cpp",
"$CAPI_METADATA_GENERATOR_DIR/metadata_generator_image_native.cpp",
]
defines = []
deps = [
":videoprocessingengine",
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR/services:videoprocessingservice_interface",
]
external_deps = [
"c_utils:utils",
"drivers_interface_display:display_commontype_idl_headers",
"graphic_surface:surface",
"graphic_2d:2d_graphics",
"hilog:libhilog",
"hitrace:hitrace_meter",
"image_framework:image_native",
"drivers_interface_display:libdisplay_commontype_proxy_2.1",
"ipc:ipc_single",
"image_framework:pixelmap",
"media_foundation:media_foundation",
"safwk:system_ability_fwk",
"samgr:samgr_proxy",
]
innerapi_tags = [ "ndk" ]
output_extension = "so"
subsystem_name = "multimedia"
part_name = "video_processing_engine"
}
ohos_shared_library("video_processing") {
stack_protector_ret = true
install_enable = true
sanitize = {
boundary_sanitize = true
cfi = true
cfi_cross_dso = true
integer_overflow = true
ubsan = true
debug = false
}
configs = [ ":vpe_capi_config" ]
public_configs = [ ":vpe_capi_public_config" ]
include_dirs = [
#Interface
"$INTERFACES_CAPI_DIR",
"$INTERFACES_INNER_API_DIR",
#Common
"$DFX_DIR/include",
"$ALGORITHM_COMMON_DIR/include",
"$SERVICES_DIR/utils/include",
#CAPI implementation
"$CAPI_VIDEO_DIR/include",
"$CAPI_VIDEO_DIR/aihdr_enhancer/include",
"$CAPI_VIDEO_DETAIL_ENHANCER_DIR/include",
"$CAPI_VIDEO_COLORSPACE_CONVERTER_DIR/include/",
"$CAPI_VIDEO_METADATA_GENERATOR_DIR/include/",
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR/services/include",
"${target_gen_dir}/../services/",
]
sources = [
#CAPI common
"$CAPI_VIDEO_DIR/video_environment_native.cpp",
"$CAPI_VIDEO_DIR/video_processing_callback_impl.cpp",
"$CAPI_VIDEO_DIR/video_processing_callback_native.cpp",
"$CAPI_VIDEO_DIR/video_processing.cpp",
"$CAPI_VIDEO_DIR/video_processing_capi_capability.cpp",
"$CAPI_VIDEO_DIR/video_processing_factory.cpp",
"$CAPI_VIDEO_DIR/video_processing_impl.cpp",
"$CAPI_VIDEO_DIR/video_processing_native_base.cpp",
"$CAPI_VIDEO_DIR/video_processing_utils.cpp",
#CAPI - features
#CAPI - detail enhancement
"$CAPI_VIDEO_DETAIL_ENHANCER_DIR/detail_enhancer_video_native.cpp",
"$CAPI_VIDEO_COLORSPACE_CONVERTER_DIR/colorSpace_converter_video_native.cpp",
"$CAPI_VIDEO_METADATA_GENERATOR_DIR/metadata_generator_video_native.cpp",
"$CAPI_VIDEO_DIR/aihdr_enhancer/aihdr_enhancer_video_native.cpp"
]
defines = []
deps = [
":videoprocessingengine",
"$VIDEO_PROCESSING_ENGINE_ROOT_DIR/services:videoprocessingservice_interface",
]
external_deps = [
"c_utils:utils",
"graphic_surface:surface",
"hilog:libhilog",
"hitrace:hitrace_meter",
"ipc:ipc_single",
"media_foundation:media_foundation",
"drivers_interface_display:libdisplay_commontype_proxy_2.1",
"graphic_2d:libgraphic_utils",
"graphic_2d:librender_service_client",
"ipc:ipc_single",
"safwk:system_ability_fwk",
"samgr:samgr_proxy",
]
innerapi_tags = [ "ndk" ]
output_extension = "so"
subsystem_name = "multimedia"
part_name = "video_processing_engine"
}
ohos_shared_library("detailEnhancer") {
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
}
defines = [ "IMAGE_COLORSPACE_FLAG" ]
include_dirs = [
"$DFX_DIR/include",
"//foundation/multimedia/video_processing_engine/interfaces/kits/js",
"//foundation/multimedia/video_processing_engine/interfaces/inner_api",
"//foundation/multimedia/video_processing_engine/framework/capi/image_processing/include/",
]
sources = [
"//foundation/multimedia/video_processing_engine/framework/capi/image_processing/detail_enhance_napi.cpp",
]
deps = [
":videoprocessingengine",
]
cflags = VIDEO_PROCESSING_ENGINE_CFLAGS
external_deps = [
"c_utils:utils",
"graphic_surface:surface",
"hilog:libhilog",
"hitrace:hitrace_meter",
"ipc:ipc_napi",
"media_foundation:native_media_core",
"napi:ace_napi",
"image_framework:image_utils",
"image_framework:image_native",
"image_framework:pixelmap",
"image_framework:image",
"drivers_interface_display:libdisplay_commontype_proxy_2.1",
]
output_name = "libdetailenhancer_napi"
subsystem_name = "multimedia"
relative_install_dir = "module/multimedia"
part_name = "video_processing_engine"
}
ohos_shared_library("videoprocessingenginenapi") {
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
}
defines = [ "IMAGE_COLORSPACE_FLAG" ]
include_dirs = [
"$DFX_DIR/include",
"$INTERFACES_DIR/kits/js",
"$INTERFACES_INNER_API_DIR",
"$CAPI_DIR/image_processing/include/",
"$ALGORITHM_COMMON_DIR/include/",
"$INTERFACES_CAPI_DIR",
]
sources = [
"$CAPI_DIR/image_processing/detail_enhance_napi_formal.cpp",
"$INTERFACES_DIR/kits/js/native_module_ohos_imageprocessing.cpp",
]
deps = [
":videoprocessingengine",
]
cflags = VIDEO_PROCESSING_ENGINE_CFLAGS
external_deps = [
"c_utils:utils",
"drivers_interface_display:libdisplay_commontype_proxy_2.1",
"graphic_surface:surface",
"hilog:libhilog",
"hitrace:hitrace_meter",
"image_framework:image_utils",
"image_framework:image_native",
"image_framework:pixelmap",
"image_framework:image",
"ipc:ipc_napi",
"media_foundation:native_media_core",
"media_foundation:media_foundation",
"napi:ace_napi",
]
output_name = "libvideoprocessingengine_napi"
subsystem_name = "multimedia"
relative_install_dir = "module/multimedia"
part_name = "video_processing_engine"
}