1# Copyright (C) 2023 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//build/ohos.gni") 15import("//foundation/multimedia/av_codec/config.gni") 16 17ohos_shared_headers("capi_packages") { 18 include_dirs = [ "$av_codec_root_dir/interfaces/kits/c" ] 19 deps = [] 20 if (av_codec_support_capi) { 21 deps += [ 22 "$av_codec_root_dir/interfaces/kits/c:native_media_acodec", 23 "$av_codec_root_dir/interfaces/kits/c:native_media_adec", 24 "$av_codec_root_dir/interfaces/kits/c:native_media_aenc", 25 "$av_codec_root_dir/interfaces/kits/c:native_media_avcencinfo", 26 "$av_codec_root_dir/interfaces/kits/c:native_media_avdemuxer", 27 "$av_codec_root_dir/interfaces/kits/c:native_media_avmuxer", 28 "$av_codec_root_dir/interfaces/kits/c:native_media_avsource", 29 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 30 "$av_codec_root_dir/interfaces/kits/c:native_media_vdec", 31 "$av_codec_root_dir/interfaces/kits/c:native_media_venc", 32 ] 33 } 34 subsystem_name = "multimedia" 35 part_name = "av_codec" 36} 37 38config("av_codec_capi_header_config") { 39 include_dirs = [ 40 "$av_codec_root_dir/frameworks/native/capi/common", 41 "$av_codec_root_dir/interfaces/inner_api/native", 42 "$av_codec_root_dir/interfaces/kits/c", 43 "$av_codec_root_dir/services/dfx/include", 44 "$av_codec_root_dir/services/utils/include", 45 ] 46 defines = [] 47 if (av_codec_support_drm) { 48 defines += [ "SUPPORT_DRM" ] 49 } 50 cflags_cc = [ 51 "-fno-rtti", 52 ] 53} 54 55config("av_codec_capi_compile_config") { 56 cflags = [ 57 "-std=c++17", 58 "-fstack-protector-all", 59 "-FPIC", 60 "-FS", 61 "-O2", 62 "-D_FORTIFY_SOURCE=2", 63 "-fno-common", 64 "-fno-exceptions", 65 "-Wall", 66 "-Wdate-time", 67 "-Wformat=2", 68 "-Wshadow", 69 ] 70} 71 72config("av_cenc_info_capi_config") { 73 include_dirs = [ 74 "$av_codec_root_dir/frameworks/native/capi/common", 75 "$av_codec_root_dir/interfaces/inner_api/native", 76 "$av_codec_root_dir/interfaces/kits/c", 77 "$av_codec_root_dir/services/dfx/include", 78 "$av_codec_root_dir/services/utils/include", 79 ] 80 defines = [] 81} 82 83ohos_shared_library("native_media_avmuxer") { 84 install_enable = true 85 sources = 86 [ "$av_codec_root_dir/frameworks/native/capi/avmuxer/native_avmuxer.cpp" ] 87 88 public_configs = [ ":av_codec_capi_header_config" ] 89 configs = [ ":av_codec_capi_compile_config" ] 90 91 deps = [ 92 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 93 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 94 ] 95 96 external_deps = [ 97 "c_utils:utils", 98 "graphic_surface:surface", 99 "hilog:libhilog", 100 "ipc:ipc_single", 101 "media_foundation:media_foundation", 102 "media_foundation:native_media_core", 103 ] 104 output_extension = "so" 105 subsystem_name = "multimedia" 106 part_name = "av_codec" 107} 108 109ohos_shared_library("native_media_avdemuxer") { 110 install_enable = true 111 sources = [ 112 "$av_codec_root_dir/frameworks/native/capi/avdemuxer/native_avdemuxer.cpp", 113 ] 114 115 public_configs = [ ":av_codec_capi_header_config" ] 116 configs = [ ":av_codec_capi_compile_config" ] 117 118 deps = [ "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client" ] 119 120 external_deps = [ 121 "c_utils:utils", 122 "graphic_surface:surface", 123 "hilog:libhilog", 124 "ipc:ipc_single", 125 "media_foundation:media_foundation", 126 "media_foundation:native_media_core", 127 ] 128 129 if (av_codec_support_drm) { 130 external_deps += [ 131 "drm_framework:drm_framework", 132 "drm_framework:native_drm", 133 ] 134 } 135 136 output_extension = "so" 137 subsystem_name = "multimedia" 138 part_name = "av_codec" 139} 140 141ohos_shared_library("native_media_avsource") { 142 install_enable = true 143 sources = [ 144 "$av_codec_root_dir/frameworks/native/capi/avsource/native_avsource.cpp", 145 ] 146 147 public_configs = [ ":av_codec_capi_header_config" ] 148 configs = [ ":av_codec_capi_compile_config" ] 149 150 deps = [ "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client" ] 151 152 external_deps = [ 153 "c_utils:utils", 154 "graphic_surface:surface", 155 "hilog:libhilog", 156 "ipc:ipc_single", 157 "media_foundation:media_foundation", 158 "media_foundation:native_media_core", 159 ] 160 output_extension = "so" 161 subsystem_name = "multimedia" 162 part_name = "av_codec" 163} 164 165ohos_shared_library("native_media_codecbase") { 166 install_enable = true 167 sources = [ 168 "$av_codec_root_dir/frameworks/native/capi/avcodec/native_avcodec_base.cpp", 169 ] 170 if (av_codec_support_codeclist) { 171 sources += [ "$av_codec_root_dir/frameworks/native/capi/common/native_avcapability.cpp" ] 172 } 173 174 public_configs = [ ":av_codec_capi_header_config" ] 175 configs = [ ":av_codec_capi_compile_config" ] 176 177 deps = [ 178 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 179 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 180 ] 181 external_deps = [ 182 "c_utils:utils", 183 "graphic_surface:surface", 184 "hilog:libhilog", 185 "ipc:ipc_single", 186 "media_foundation:media_foundation", 187 "media_foundation:native_media_core", 188 ] 189 output_extension = "so" 190 subsystem_name = "multimedia" 191 part_name = "av_codec" 192} 193 194ohos_shared_library("native_media_acodec") { 195 install_enable = true 196 sources = [ 197 "$av_codec_root_dir/frameworks/native/capi/avcodec/native_audio_codec.cpp", 198 ] 199 200 public_configs = [ ":av_codec_capi_header_config" ] 201 configs = [ ":av_codec_capi_compile_config" ] 202 203 deps = [ 204 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 205 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 206 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 207 ] 208 209 external_deps = [ 210 "c_utils:utils", 211 "graphic_surface:surface", 212 "hilog:libhilog", 213 "ipc:ipc_single", 214 "media_foundation:media_foundation", 215 "media_foundation:native_media_core", 216 ] 217 if (av_codec_support_drm) { 218 external_deps += [ 219 "drm_framework:drm_framework", 220 "drm_framework:native_drm", 221 "hisysevent:libhisysevent", 222 ] 223 } 224 innerapi_tags = [ "ndk" ] 225 output_extension = "so" 226 subsystem_name = "multimedia" 227 part_name = "av_codec" 228} 229 230ohos_shared_library("native_media_adec") { 231 install_enable = true 232 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_audio_decoder.cpp" ] 233 234 public_configs = [ ":av_codec_capi_header_config" ] 235 configs = [ ":av_codec_capi_compile_config" ] 236 237 deps = [ 238 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 239 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 240 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 241 ] 242 243 external_deps = [ 244 "c_utils:utils", 245 "hilog:libhilog", 246 "ipc:ipc_single", 247 "media_foundation:media_foundation", 248 "media_foundation:native_media_core", 249 ] 250 output_extension = "so" 251 subsystem_name = "multimedia" 252 part_name = "av_codec" 253} 254 255ohos_shared_library("native_media_aenc") { 256 install_enable = true 257 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_audio_encoder.cpp" ] 258 259 public_configs = [ ":av_codec_capi_header_config" ] 260 configs = [ ":av_codec_capi_compile_config" ] 261 262 deps = [ 263 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 264 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 265 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 266 ] 267 268 external_deps = [ 269 "c_utils:utils", 270 "hilog:libhilog", 271 "ipc:ipc_single", 272 "media_foundation:media_foundation", 273 "media_foundation:native_media_core", 274 ] 275 output_extension = "so" 276 subsystem_name = "multimedia" 277 part_name = "av_codec" 278} 279 280ohos_shared_library("native_media_vdec") { 281 install_enable = true 282 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_video_decoder.cpp" ] 283 284 public_configs = [ ":av_codec_capi_header_config" ] 285 configs = [ ":av_codec_capi_compile_config" ] 286 287 deps = [ 288 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 289 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 290 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 291 ] 292 293 external_deps = [ 294 "c_utils:utils", 295 "graphic_surface:surface", 296 "hilog:libhilog", 297 "ipc:ipc_single", 298 "media_foundation:media_foundation", 299 "media_foundation:native_media_core", 300 ] 301 if (av_codec_support_drm) { 302 external_deps += [ 303 "drm_framework:drm_framework", 304 "drm_framework:native_drm", 305 "hisysevent:libhisysevent", 306 ] 307 } 308 output_extension = "so" 309 subsystem_name = "multimedia" 310 part_name = "av_codec" 311} 312 313ohos_shared_library("native_media_venc") { 314 install_enable = true 315 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_video_encoder.cpp" ] 316 317 public_configs = [ ":av_codec_capi_header_config" ] 318 configs = [ ":av_codec_capi_compile_config" ] 319 320 deps = [ 321 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 322 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 323 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 324 ] 325 326 external_deps = [ 327 "c_utils:utils", 328 "graphic_surface:surface", 329 "hilog:libhilog", 330 "ipc:ipc_single", 331 "media_foundation:media_foundation", 332 "media_foundation:native_media_core", 333 ] 334 output_extension = "so" 335 subsystem_name = "multimedia" 336 part_name = "av_codec" 337} 338 339ohos_shared_library("native_media_avcencinfo") { 340 install_enable = true 341 sources = [ 342 "$av_codec_root_dir/frameworks/native/capi/avcencinfo/native_cencinfo.cpp", 343 ] 344 345 sanitize = av_codec_sanitize 346 347 public_configs = [ ":av_cenc_info_capi_config" ] 348 configs = [ ":av_codec_capi_compile_config" ] 349 350 deps = [ 351 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 352 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 353 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 354 ] 355 356 external_deps = [ 357 "c_utils:utils", 358 "hilog:libhilog", 359 "ipc:ipc_single", 360 "media_foundation:media_foundation", 361 "media_foundation:native_media_core", 362 ] 363 output_extension = "so" 364 innerapi_tags = [ "ndk" ] 365 subsystem_name = "multimedia" 366 part_name = "av_codec" 367} 368