1fa7767c5Sopenharmony_ci# Copyright (c) 2024 Huawei Device Co., Ltd. 2fa7767c5Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3fa7767c5Sopenharmony_ci# you may not use this file except in compliance with the License. 4fa7767c5Sopenharmony_ci# You may obtain a copy of the License at 5fa7767c5Sopenharmony_ci# 6fa7767c5Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7fa7767c5Sopenharmony_ci# 8fa7767c5Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9fa7767c5Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10fa7767c5Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11fa7767c5Sopenharmony_ci# See the License for the specific language governing permissions and 12fa7767c5Sopenharmony_ci# limitations under the License. 13fa7767c5Sopenharmony_ci 14fa7767c5Sopenharmony_ciimport("//foundation/multimedia/media_foundation/config.gni") 15fa7767c5Sopenharmony_ciimport("$histreamer_root_dir/video_processing_engine/config.gni") 16fa7767c5Sopenharmony_ci 17fa7767c5Sopenharmony_ciif (hst_is_standard_sys) { 18fa7767c5Sopenharmony_ci config("vpe_capi_config") { 19fa7767c5Sopenharmony_ci cflags = [ 20fa7767c5Sopenharmony_ci "-fno-exceptions", 21fa7767c5Sopenharmony_ci "-Wall", 22fa7767c5Sopenharmony_ci "-fno-common", 23fa7767c5Sopenharmony_ci "-fstack-protector-all", 24fa7767c5Sopenharmony_ci "-Wshadow", 25fa7767c5Sopenharmony_ci "-FPIC", 26fa7767c5Sopenharmony_ci "-FS", 27fa7767c5Sopenharmony_ci "-O2", 28fa7767c5Sopenharmony_ci "-D_FORTIFY_SOURCE=2", 29fa7767c5Sopenharmony_ci "-Wformat=2", 30fa7767c5Sopenharmony_ci "-Wdate-time", 31fa7767c5Sopenharmony_ci ] 32fa7767c5Sopenharmony_ci 33fa7767c5Sopenharmony_ci cflags_cc = [ 34fa7767c5Sopenharmony_ci "-std=c++17", 35fa7767c5Sopenharmony_ci "-fno-rtti", 36fa7767c5Sopenharmony_ci ] 37fa7767c5Sopenharmony_ci } 38fa7767c5Sopenharmony_ci 39fa7767c5Sopenharmony_ci config("vpe_capi_public_config") { 40fa7767c5Sopenharmony_ci include_dirs = [ 41fa7767c5Sopenharmony_ci "$vpe_interface_capi_dir", 42fa7767c5Sopenharmony_ci "$vpe_interface_inner_dir", 43fa7767c5Sopenharmony_ci ] 44fa7767c5Sopenharmony_ci } 45fa7767c5Sopenharmony_ci 46fa7767c5Sopenharmony_ci ohos_shared_library("image_processing") { 47fa7767c5Sopenharmony_ci stack_protector_ret = true 48fa7767c5Sopenharmony_ci install_enable = true 49fa7767c5Sopenharmony_ci 50fa7767c5Sopenharmony_ci sanitize = { 51fa7767c5Sopenharmony_ci boundary_sanitize = true 52fa7767c5Sopenharmony_ci cfi = true 53fa7767c5Sopenharmony_ci cfi_cross_dso = true 54fa7767c5Sopenharmony_ci integer_overflow = true 55fa7767c5Sopenharmony_ci ubsan = true 56fa7767c5Sopenharmony_ci debug = false 57fa7767c5Sopenharmony_ci } 58fa7767c5Sopenharmony_ci 59fa7767c5Sopenharmony_ci configs = [ ":vpe_capi_config" ] 60fa7767c5Sopenharmony_ci public_configs = [ ":vpe_capi_public_config" ] 61fa7767c5Sopenharmony_ci 62fa7767c5Sopenharmony_ci include_dirs = [ 63fa7767c5Sopenharmony_ci "$vpe_interface_capi_dir", 64fa7767c5Sopenharmony_ci "$vpe_interface_inner_dir", 65fa7767c5Sopenharmony_ci "$vpe_dfx_dir/include", 66fa7767c5Sopenharmony_ci "$vpe_capi_image_dir/include", 67fa7767c5Sopenharmony_ci "$vpe_capi_image_dir/detail_enhancer/include", 68fa7767c5Sopenharmony_ci "$vpe_algorithm_dir/include", 69fa7767c5Sopenharmony_ci "$vpe_algorithm_dir/detail_enhancer/include", 70fa7767c5Sopenharmony_ci ] 71fa7767c5Sopenharmony_ci 72fa7767c5Sopenharmony_ci sources = [ 73fa7767c5Sopenharmony_ci "$vpe_algorithm_dir/detail_enhancer/detail_enhancer.cpp", 74fa7767c5Sopenharmony_ci "$vpe_capi_image_dir/detail_enhancer/detail_enhancer_image_native.cpp", 75fa7767c5Sopenharmony_ci "$vpe_capi_image_dir/image_processing.cpp", 76fa7767c5Sopenharmony_ci "$vpe_capi_image_dir/image_processing_capability.cpp", 77fa7767c5Sopenharmony_ci "$vpe_capi_image_dir/image_processing_impl.cpp", 78fa7767c5Sopenharmony_ci "$vpe_capi_image_dir/image_processing_loader.cpp", 79fa7767c5Sopenharmony_ci "$vpe_capi_image_dir/image_processing_native.cpp", 80fa7767c5Sopenharmony_ci ] 81fa7767c5Sopenharmony_ci 82fa7767c5Sopenharmony_ci defines = [] 83fa7767c5Sopenharmony_ci 84fa7767c5Sopenharmony_ci deps = [ "$vpe_base_root_dir/src:media_foundation" ] 85fa7767c5Sopenharmony_ci 86fa7767c5Sopenharmony_ci external_deps = [ 87fa7767c5Sopenharmony_ci "c_utils:utils", 88fa7767c5Sopenharmony_ci "graphic_2d:2d_graphics", 89fa7767c5Sopenharmony_ci "hilog:libhilog", 90fa7767c5Sopenharmony_ci "hitrace:hitrace_meter", 91fa7767c5Sopenharmony_ci "image_framework:image_native", 92fa7767c5Sopenharmony_ci "image_framework:pixelmap", 93fa7767c5Sopenharmony_ci "ipc:ipc_single", 94fa7767c5Sopenharmony_ci ] 95fa7767c5Sopenharmony_ci 96fa7767c5Sopenharmony_ci if (has_skia) { 97fa7767c5Sopenharmony_ci defines += [ "SKIA_ENABLE" ] 98fa7767c5Sopenharmony_ci external_deps += [ "skia:skia_canvaskit" ] 99fa7767c5Sopenharmony_ci include_dirs += [ "$vpe_algorithm_dir/detail_enhancer/skia/include" ] 100fa7767c5Sopenharmony_ci sources += [ "$vpe_algorithm_dir/detail_enhancer/skia/skia_impl.cpp" ] 101fa7767c5Sopenharmony_ci } 102fa7767c5Sopenharmony_ci 103fa7767c5Sopenharmony_ci innerapi_tags = [ "ndk" ] 104fa7767c5Sopenharmony_ci output_extension = "so" 105fa7767c5Sopenharmony_ci subsystem_name = "multimedia" 106fa7767c5Sopenharmony_ci part_name = "media_foundation" 107fa7767c5Sopenharmony_ci } 108fa7767c5Sopenharmony_ci 109fa7767c5Sopenharmony_ci ohos_shared_library("video_processing") { 110fa7767c5Sopenharmony_ci stack_protector_ret = true 111fa7767c5Sopenharmony_ci install_enable = true 112fa7767c5Sopenharmony_ci 113fa7767c5Sopenharmony_ci sanitize = { 114fa7767c5Sopenharmony_ci boundary_sanitize = true 115fa7767c5Sopenharmony_ci cfi = true 116fa7767c5Sopenharmony_ci cfi_cross_dso = true 117fa7767c5Sopenharmony_ci integer_overflow = true 118fa7767c5Sopenharmony_ci ubsan = true 119fa7767c5Sopenharmony_ci debug = false 120fa7767c5Sopenharmony_ci } 121fa7767c5Sopenharmony_ci 122fa7767c5Sopenharmony_ci configs = [ ":vpe_capi_config" ] 123fa7767c5Sopenharmony_ci public_configs = [ ":vpe_capi_public_config" ] 124fa7767c5Sopenharmony_ci 125fa7767c5Sopenharmony_ci include_dirs = [ 126fa7767c5Sopenharmony_ci "$vpe_interface_capi_dir", 127fa7767c5Sopenharmony_ci "$vpe_interface_inner_dir", 128fa7767c5Sopenharmony_ci "$vpe_dfx_dir/include", 129fa7767c5Sopenharmony_ci "$vpe_capi_video_dir/include", 130fa7767c5Sopenharmony_ci "$vpe_capi_video_dir/detail_enhancer/include", 131fa7767c5Sopenharmony_ci "$vpe_algorithm_dir/include", 132fa7767c5Sopenharmony_ci "$vpe_algorithm_dir/detail_enhancer/include", 133fa7767c5Sopenharmony_ci ] 134fa7767c5Sopenharmony_ci 135fa7767c5Sopenharmony_ci sources = [ 136fa7767c5Sopenharmony_ci "$vpe_algorithm_dir/detail_enhancer/detail_enhancer.cpp", 137fa7767c5Sopenharmony_ci "$vpe_capi_video_dir/detail_enhancer/detail_enhancer_video_native.cpp", 138fa7767c5Sopenharmony_ci "$vpe_capi_video_dir/video_processing.cpp", 139fa7767c5Sopenharmony_ci "$vpe_capi_video_dir/video_processing_callback_impl.cpp", 140fa7767c5Sopenharmony_ci "$vpe_capi_video_dir/video_processing_callback_native.cpp", 141fa7767c5Sopenharmony_ci "$vpe_capi_video_dir/video_processing_capability.cpp", 142fa7767c5Sopenharmony_ci "$vpe_capi_video_dir/video_processing_impl.cpp", 143fa7767c5Sopenharmony_ci "$vpe_capi_video_dir/video_processing_loader.cpp", 144fa7767c5Sopenharmony_ci "$vpe_capi_video_dir/video_processing_native.cpp", 145fa7767c5Sopenharmony_ci ] 146fa7767c5Sopenharmony_ci 147fa7767c5Sopenharmony_ci defines = [] 148fa7767c5Sopenharmony_ci 149fa7767c5Sopenharmony_ci deps = [ "$vpe_base_root_dir/src:media_foundation" ] 150fa7767c5Sopenharmony_ci 151fa7767c5Sopenharmony_ci external_deps = [ 152fa7767c5Sopenharmony_ci "c_utils:utils", 153fa7767c5Sopenharmony_ci "graphic_surface:surface", 154fa7767c5Sopenharmony_ci "hilog:libhilog", 155fa7767c5Sopenharmony_ci "hitrace:hitrace_meter", 156fa7767c5Sopenharmony_ci "ipc:ipc_single", 157fa7767c5Sopenharmony_ci ] 158fa7767c5Sopenharmony_ci 159fa7767c5Sopenharmony_ci if (has_skia) { 160fa7767c5Sopenharmony_ci defines += [ "SKIA_ENABLE" ] 161fa7767c5Sopenharmony_ci external_deps += [ "skia:skia_canvaskit" ] 162fa7767c5Sopenharmony_ci include_dirs += [ "$vpe_algorithm_dir/detail_enhancer/skia/include" ] 163fa7767c5Sopenharmony_ci sources += [ "$vpe_algorithm_dir/detail_enhancer/skia/skia_impl.cpp" ] 164fa7767c5Sopenharmony_ci } 165fa7767c5Sopenharmony_ci 166fa7767c5Sopenharmony_ci innerapi_tags = [ "ndk" ] 167fa7767c5Sopenharmony_ci output_extension = "so" 168fa7767c5Sopenharmony_ci subsystem_name = "multimedia" 169fa7767c5Sopenharmony_ci part_name = "media_foundation" 170fa7767c5Sopenharmony_ci } 171fa7767c5Sopenharmony_ci} else { 172fa7767c5Sopenharmony_ci group("image_processing") { 173fa7767c5Sopenharmony_ci } 174fa7767c5Sopenharmony_ci group("video_processing") { 175fa7767c5Sopenharmony_ci } 176fa7767c5Sopenharmony_ci} 177