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 17group("capi_packages") { 18 deps = [] 19 if (av_codec_support_capi) { 20 deps += [ 21 "$av_codec_root_dir/interfaces/kits/c:native_media_acodec", 22 "$av_codec_root_dir/interfaces/kits/c:native_media_adec", 23 "$av_codec_root_dir/interfaces/kits/c:native_media_aenc", 24 "$av_codec_root_dir/interfaces/kits/c:native_media_avcencinfo", 25 "$av_codec_root_dir/interfaces/kits/c:native_media_avdemuxer", 26 "$av_codec_root_dir/interfaces/kits/c:native_media_avmuxer", 27 "$av_codec_root_dir/interfaces/kits/c:native_media_avsource", 28 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 29 "$av_codec_root_dir/interfaces/kits/c:native_media_vdec", 30 "$av_codec_root_dir/interfaces/kits/c:native_media_venc", 31 ] 32 } 33} 34 35config("av_codec_capi_config") { 36 include_dirs = [ 37 "$av_codec_root_dir/frameworks/native/capi/common", 38 "$av_codec_root_dir/interfaces/inner_api/native", 39 "$av_codec_root_dir/interfaces/kits/c", 40 "$av_codec_root_dir/services/dfx/include", 41 "$av_codec_root_dir/services/utils/include", 42 "$drm_framework_root_dir/interfaces/kits/c/drm_capi", 43 "$drm_framework_root_dir/interfaces/kits/c/drm_capi/common", 44 "$drm_framework_root_dir/interfaces/kits/c/drm_capi/include", 45 ] 46 47 cflags = [ 48 "-fno-exceptions", 49 "-Wall", 50 "-fno-common", 51 "-fstack-protector-all", 52 "-Wshadow", 53 "-FPIC", 54 "-FS", 55 "-O2", 56 "-D_FORTIFY_SOURCE=2", 57 "-Wformat=2", 58 "-Wdate-time", 59 ] 60 61 cflags_cc = [ 62 "-std=c++17", 63 "-fno-rtti", 64 ] 65 66 defines = [] 67 if (av_codec_support_drm) { 68 defines += [ "SUPPORT_DRM" ] 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 81 cflags = [ 82 "-fno-exceptions", 83 "-Wall", 84 "-fno-common", 85 "-fstack-protector-all", 86 "-Wshadow", 87 "-FPIC", 88 "-FS", 89 "-O2", 90 "-D_FORTIFY_SOURCE=2", 91 "-Wformat=2", 92 "-Wdate-time", 93 ] 94 95 cflags_cc = [ 96 "-std=c++17", 97 "-fno-rtti", 98 ] 99 100 defines = [] 101} 102 103ohos_shared_library("native_media_avmuxer") { 104 install_enable = true 105 sources = 106 [ "$av_codec_root_dir/frameworks/native/capi/avmuxer/native_avmuxer.cpp" ] 107 108 public_configs = [ ":av_codec_capi_config" ] 109 110 deps = [ 111 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 112 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 113 ] 114 115 public_external_deps = [ 116 "drm_framework:native_drm", 117 "graphic_surface:surface", 118 "media_foundation:media_foundation", 119 ] 120 121 external_deps = [ 122 "c_utils:utils", 123 "graphic_surface:surface", 124 "hilog:libhilog", 125 "media_foundation:media_foundation", 126 "media_foundation:native_media_core", 127 ] 128 output_extension = "so" 129 subsystem_name = "multimedia" 130 part_name = "av_codec" 131} 132 133ohos_shared_library("native_media_avdemuxer") { 134 install_enable = true 135 sources = [ 136 "$av_codec_root_dir/frameworks/native/capi/avdemuxer/native_avdemuxer.cpp", 137 ] 138 139 public_configs = [ ":av_codec_capi_config" ] 140 141 public_external_deps = [ 142 "drm_framework:native_drm", 143 "graphic_surface:surface", 144 "media_foundation:media_foundation", 145 ] 146 147 deps = [ "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client" ] 148 149 external_deps = [ 150 "c_utils:utils", 151 "graphic_surface:surface", 152 "hilog:libhilog", 153 "media_foundation:media_foundation", 154 "media_foundation:native_media_core", 155 ] 156 output_extension = "so" 157 subsystem_name = "multimedia" 158 part_name = "av_codec" 159} 160 161ohos_shared_library("native_media_avsource") { 162 install_enable = true 163 sources = [ 164 "$av_codec_root_dir/frameworks/native/capi/avsource/native_avsource.cpp", 165 ] 166 167 public_configs = [ ":av_codec_capi_config" ] 168 169 public_external_deps = [ 170 "drm_framework:native_drm", 171 "graphic_surface:surface", 172 "media_foundation:media_foundation", 173 ] 174 175 deps = [ "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client" ] 176 177 external_deps = [ 178 "c_utils:utils", 179 "graphic_surface:surface", 180 "hilog:libhilog", 181 "media_foundation:media_foundation", 182 "media_foundation:native_media_core", 183 ] 184 output_extension = "so" 185 subsystem_name = "multimedia" 186 part_name = "av_codec" 187} 188 189ohos_shared_library("native_media_codecbase") { 190 install_enable = true 191 sources = [ 192 "$av_codec_root_dir/frameworks/native/capi/avcodec/native_avcodec_base.cpp", 193 ] 194 if (av_codec_support_codeclist) { 195 sources += [ "$av_codec_root_dir/frameworks/native/capi/common/native_avcapability.cpp" ] 196 } 197 198 public_configs = [ ":av_codec_capi_config" ] 199 200 public_external_deps = [ 201 "drm_framework:native_drm", 202 "graphic_surface:surface", 203 "media_foundation:media_foundation", 204 ] 205 206 deps = [ 207 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 208 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 209 ] 210 external_deps = [ 211 "c_utils:utils", 212 "graphic_surface:surface", 213 "hilog:libhilog", 214 "media_foundation:media_foundation", 215 "media_foundation:native_media_core", 216 ] 217 output_extension = "so" 218 subsystem_name = "multimedia" 219 part_name = "av_codec" 220} 221 222ohos_shared_library("native_media_acodec") { 223 install_enable = true 224 sources = [ 225 "$av_codec_root_dir/frameworks/native/capi/avcodec/native_audio_codec.cpp", 226 ] 227 228 public_configs = [ ":av_codec_capi_config" ] 229 230 public_external_deps = [ 231 "drm_framework:native_drm", 232 "graphic_surface:surface", 233 "media_foundation:media_foundation", 234 ] 235 236 deps = [ 237 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 238 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 239 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 240 ] 241 242 external_deps = [ 243 "c_utils:utils", 244 "graphic_surface:surface", 245 "hilog:libhilog", 246 "media_foundation:media_foundation", 247 "media_foundation:native_media_core", 248 ] 249 if (av_codec_support_drm) { 250 external_deps += [ 251 "drm_framework:drm_framework", 252 "drm_framework:native_drm", 253 ] 254 } 255 innerapi_tags = [ "ndk" ] 256 output_extension = "so" 257 subsystem_name = "multimedia" 258 part_name = "av_codec" 259} 260 261ohos_shared_library("native_media_adec") { 262 install_enable = true 263 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_audio_decoder.cpp" ] 264 265 public_configs = [ ":av_codec_capi_config" ] 266 267 public_external_deps = [ 268 "drm_framework:native_drm", 269 "graphic_surface:surface", 270 "media_foundation:media_foundation", 271 ] 272 273 deps = [ 274 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 275 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 276 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 277 ] 278 279 external_deps = [ 280 "c_utils:utils", 281 "hilog:libhilog", 282 "media_foundation:media_foundation", 283 "media_foundation:native_media_core", 284 ] 285 output_extension = "so" 286 subsystem_name = "multimedia" 287 part_name = "av_codec" 288} 289 290ohos_shared_library("native_media_aenc") { 291 install_enable = true 292 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_audio_encoder.cpp" ] 293 294 public_configs = [ ":av_codec_capi_config" ] 295 296 public_external_deps = [ 297 "drm_framework:native_drm", 298 "graphic_surface:surface", 299 "media_foundation:media_foundation", 300 ] 301 302 deps = [ 303 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 304 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 305 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 306 ] 307 308 external_deps = [ 309 "c_utils:utils", 310 "hilog:libhilog", 311 "media_foundation:media_foundation", 312 "media_foundation:native_media_core", 313 ] 314 output_extension = "so" 315 subsystem_name = "multimedia" 316 part_name = "av_codec" 317} 318 319ohos_shared_library("native_media_vdec") { 320 install_enable = true 321 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_video_decoder.cpp" ] 322 323 public_configs = [ ":av_codec_capi_config" ] 324 325 public_external_deps = [ 326 "drm_framework:native_drm", 327 "graphic_surface:surface", 328 "media_foundation:media_foundation", 329 ] 330 331 deps = [ 332 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 333 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 334 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 335 ] 336 337 external_deps = [ 338 "c_utils:utils", 339 "graphic_surface:surface", 340 "hilog:libhilog", 341 "media_foundation:media_foundation", 342 "media_foundation:native_media_core", 343 ] 344 345 if (av_codec_support_drm) { 346 external_deps += [ 347 "drm_framework:drm_framework", 348 "drm_framework:native_drm", 349 ] 350 } 351 output_extension = "so" 352 subsystem_name = "multimedia" 353 part_name = "av_codec" 354} 355 356ohos_shared_library("native_media_venc") { 357 install_enable = true 358 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_video_encoder.cpp" ] 359 360 public_configs = [ ":av_codec_capi_config" ] 361 362 public_external_deps = [ 363 "drm_framework:native_drm", 364 "graphic_surface:surface", 365 "media_foundation:media_foundation", 366 ] 367 368 deps = [ 369 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 370 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 371 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 372 ] 373 374 external_deps = [ 375 "c_utils:utils", 376 "graphic_surface:surface", 377 "hilog:libhilog", 378 "media_foundation:media_foundation", 379 "media_foundation:native_media_core", 380 ] 381 output_extension = "so" 382 subsystem_name = "multimedia" 383 part_name = "av_codec" 384} 385 386ohos_shared_library("native_media_avcencinfo") { 387 install_enable = true 388 sources = [ 389 "$av_codec_root_dir/frameworks/native/capi/avcencinfo/native_cencinfo.cpp", 390 ] 391 392 sanitize = av_codec_sanitize 393 394 public_configs = [ ":av_cenc_info_capi_config" ] 395 396 public_external_deps = [ "media_foundation:media_foundation" ] 397 398 deps = [ 399 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 400 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 401 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 402 ] 403 404 external_deps = [ 405 "c_utils:utils", 406 "hilog:libhilog", 407 "media_foundation:media_foundation", 408 "media_foundation:native_media_core", 409 ] 410 output_extension = "so" 411 innerapi_tags = [ "ndk" ] 412 subsystem_name = "multimedia" 413 part_name = "av_codec" 414} 415