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