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 "graphic_surface:surface", 117 "media_foundation:media_foundation", 118 ] 119 120 external_deps = [ 121 "c_utils:utils", 122 "graphic_surface:surface", 123 "hilog:libhilog", 124 "media_foundation:media_foundation", 125 "media_foundation:native_media_core", 126 ] 127 output_extension = "so" 128 subsystem_name = "multimedia" 129 part_name = "av_codec" 130} 131 132ohos_shared_library("native_media_avdemuxer") { 133 install_enable = true 134 sources = [ 135 "$av_codec_root_dir/frameworks/native/capi/avdemuxer/native_avdemuxer.cpp", 136 ] 137 138 public_configs = [ ":av_codec_capi_config" ] 139 140 public_external_deps = [ 141 "graphic_surface:surface", 142 "media_foundation:media_foundation", 143 ] 144 145 deps = [ "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client" ] 146 147 external_deps = [ 148 "c_utils:utils", 149 "graphic_surface:surface", 150 "hilog:libhilog", 151 "media_foundation:media_foundation", 152 "media_foundation:native_media_core", 153 ] 154 output_extension = "so" 155 subsystem_name = "multimedia" 156 part_name = "av_codec" 157} 158 159ohos_shared_library("native_media_avsource") { 160 install_enable = true 161 sources = [ 162 "$av_codec_root_dir/frameworks/native/capi/avsource/native_avsource.cpp", 163 ] 164 165 public_configs = [ ":av_codec_capi_config" ] 166 167 public_external_deps = [ 168 "graphic_surface:surface", 169 "media_foundation:media_foundation", 170 ] 171 172 deps = [ "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client" ] 173 174 external_deps = [ 175 "c_utils:utils", 176 "graphic_surface:surface", 177 "hilog:libhilog", 178 "media_foundation:media_foundation", 179 "media_foundation:native_media_core", 180 ] 181 output_extension = "so" 182 subsystem_name = "multimedia" 183 part_name = "av_codec" 184} 185 186ohos_shared_library("native_media_codecbase") { 187 install_enable = true 188 sources = [ 189 "$av_codec_root_dir/frameworks/native/capi/avcodec/native_avcodec_base.cpp", 190 ] 191 if (av_codec_support_codeclist) { 192 sources += [ "$av_codec_root_dir/frameworks/native/capi/common/native_avcapability.cpp" ] 193 } 194 195 public_configs = [ ":av_codec_capi_config" ] 196 197 public_external_deps = [ 198 "graphic_surface:surface", 199 "media_foundation:media_foundation", 200 ] 201 202 deps = [ 203 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 204 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 205 ] 206 external_deps = [ 207 "c_utils:utils", 208 "graphic_surface:surface", 209 "hilog:libhilog", 210 "media_foundation:media_foundation", 211 "media_foundation:native_media_core", 212 ] 213 output_extension = "so" 214 subsystem_name = "multimedia" 215 part_name = "av_codec" 216} 217 218ohos_shared_library("native_media_acodec") { 219 install_enable = true 220 sources = [ 221 "$av_codec_root_dir/frameworks/native/capi/avcodec/native_audio_codec.cpp", 222 ] 223 224 public_configs = [ ":av_codec_capi_config" ] 225 226 public_external_deps = [ 227 "graphic_surface:surface", 228 "media_foundation:media_foundation", 229 ] 230 231 deps = [ 232 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 233 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 234 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 235 ] 236 237 external_deps = [ 238 "c_utils:utils", 239 "graphic_surface:surface", 240 "hilog:libhilog", 241 "media_foundation:media_foundation", 242 "media_foundation:native_media_core", 243 ] 244 if (av_codec_support_drm) { 245 external_deps += [ 246 "drm_framework:drm_framework", 247 "drm_framework:native_drm", 248 ] 249 } 250 innerapi_tags = [ "ndk" ] 251 output_extension = "so" 252 subsystem_name = "multimedia" 253 part_name = "av_codec" 254} 255 256ohos_shared_library("native_media_adec") { 257 install_enable = true 258 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_audio_decoder.cpp" ] 259 260 public_configs = [ ":av_codec_capi_config" ] 261 262 public_external_deps = [ 263 "graphic_surface:surface", 264 "media_foundation:media_foundation", 265 ] 266 267 deps = [ 268 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 269 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 270 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 271 ] 272 273 external_deps = [ 274 "c_utils:utils", 275 "hilog:libhilog", 276 "media_foundation:media_foundation", 277 "media_foundation:native_media_core", 278 ] 279 output_extension = "so" 280 subsystem_name = "multimedia" 281 part_name = "av_codec" 282} 283 284ohos_shared_library("native_media_aenc") { 285 install_enable = true 286 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_audio_encoder.cpp" ] 287 288 public_configs = [ ":av_codec_capi_config" ] 289 290 public_external_deps = [ 291 "graphic_surface:surface", 292 "media_foundation:media_foundation", 293 ] 294 295 deps = [ 296 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 297 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 298 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 299 ] 300 301 external_deps = [ 302 "c_utils:utils", 303 "hilog:libhilog", 304 "media_foundation:media_foundation", 305 "media_foundation:native_media_core", 306 ] 307 output_extension = "so" 308 subsystem_name = "multimedia" 309 part_name = "av_codec" 310} 311 312ohos_shared_library("native_media_vdec") { 313 install_enable = true 314 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_video_decoder.cpp" ] 315 316 public_configs = [ ":av_codec_capi_config" ] 317 318 public_external_deps = [ 319 "graphic_surface:surface", 320 "media_foundation:media_foundation", 321 ] 322 323 deps = [ 324 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 325 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 326 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 327 ] 328 329 external_deps = [ 330 "c_utils:utils", 331 "graphic_surface:surface", 332 "hilog:libhilog", 333 "media_foundation:media_foundation", 334 "media_foundation:native_media_core", 335 ] 336 337 if (av_codec_support_drm) { 338 external_deps += [ 339 "drm_framework:drm_framework", 340 "drm_framework:native_drm", 341 ] 342 } 343 output_extension = "so" 344 subsystem_name = "multimedia" 345 part_name = "av_codec" 346} 347 348ohos_shared_library("native_media_venc") { 349 install_enable = true 350 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_video_encoder.cpp" ] 351 352 public_configs = [ ":av_codec_capi_config" ] 353 354 public_external_deps = [ 355 "graphic_surface:surface", 356 "media_foundation:media_foundation", 357 ] 358 359 deps = [ 360 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 361 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 362 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 363 ] 364 365 external_deps = [ 366 "c_utils:utils", 367 "graphic_surface:surface", 368 "hilog:libhilog", 369 "media_foundation:media_foundation", 370 "media_foundation:native_media_core", 371 ] 372 output_extension = "so" 373 subsystem_name = "multimedia" 374 part_name = "av_codec" 375} 376 377ohos_shared_library("native_media_avcencinfo") { 378 install_enable = true 379 sources = [ 380 "$av_codec_root_dir/frameworks/native/capi/avcencinfo/native_cencinfo.cpp", 381 ] 382 383 sanitize = av_codec_sanitize 384 385 public_configs = [ ":av_cenc_info_capi_config" ] 386 387 public_external_deps = [ "media_foundation:media_foundation" ] 388 389 deps = [ 390 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 391 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 392 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 393 ] 394 395 external_deps = [ 396 "c_utils:utils", 397 "hilog:libhilog", 398 "media_foundation:media_foundation", 399 "media_foundation:native_media_core", 400 ] 401 output_extension = "so" 402 innerapi_tags = [ "ndk" ] 403 subsystem_name = "multimedia" 404 part_name = "av_codec" 405} 406