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_avdemuxer", 25 "$av_codec_root_dir/interfaces/kits/c:native_media_avmuxer", 26 "$av_codec_root_dir/interfaces/kits/c:native_media_avsource", 27 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 28 "$av_codec_root_dir/interfaces/kits/c:native_media_vdec", 29 "$av_codec_root_dir/interfaces/kits/c:native_media_venc", 30 ] 31 } 32} 33 34config("av_codec_capi_config") { 35 include_dirs = [ 36 "$av_codec_root_dir/frameworks/native/capi/common", 37 "$av_codec_root_dir/interfaces/inner_api/native", 38 "$av_codec_root_dir/interfaces/kits/c", 39 "$av_codec_root_dir/services/dfx/include", 40 "$av_codec_root_dir/services/utils/include", 41 "$drm_framework_root_dir/interfaces/kits/c/drm_capi", 42 "$drm_framework_root_dir/interfaces/kits/c/drm_capi/common", 43 "$drm_framework_root_dir/interfaces/kits/c/drm_capi/include", 44 "$media_foundation_root_dir/interface/kits/c", 45 "$media_foundation_root_dir/interface/inner_api", 46 "$graphic_2d_root_dir/../graphic_surface/surface/include", 47 ] 48 49 cflags = [ 50 "-fno-exceptions", 51 "-Wall", 52 "-fno-common", 53 "-fstack-protector-all", 54 "-Wshadow", 55 "-FPIC", 56 "-FS", 57 "-O2", 58 "-D_FORTIFY_SOURCE=2", 59 "-Wformat=2", 60 "-Wdate-time", 61 ] 62 63 cflags_cc = [ 64 "-std=c++17", 65 "-fno-rtti", 66 ] 67 68 defines = [] 69 if (av_codec_support_drm) { 70 defines += [ "SUPPORT_DRM" ] 71 } 72} 73 74ohos_shared_library("native_media_avmuxer") { 75 install_enable = true 76 sources = 77 [ "$av_codec_root_dir/frameworks/native/capi/avmuxer/native_avmuxer.cpp" ] 78 79 public_configs = [ ":av_codec_capi_config" ] 80 81 deps = [ 82 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 83 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 84 ] 85 86 external_deps = [ 87 "c_utils:utils", 88 "graphic_surface:surface", 89 "hilog:libhilog", 90 "media_foundation:capi_packages", 91 "media_foundation:media_foundation", 92 ] 93 output_extension = "so" 94 subsystem_name = "multimedia" 95 part_name = "av_codec" 96} 97 98ohos_shared_library("native_media_avdemuxer") { 99 install_enable = true 100 sources = [ 101 "$av_codec_root_dir/frameworks/native/capi/avdemuxer/native_avdemuxer.cpp", 102 ] 103 104 public_configs = [ ":av_codec_capi_config" ] 105 106 deps = [ "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client" ] 107 108 external_deps = [ 109 "c_utils:utils", 110 "graphic_surface:surface", 111 "hilog:libhilog", 112 "media_foundation:capi_packages", 113 "media_foundation:media_foundation", 114 ] 115 output_extension = "so" 116 subsystem_name = "multimedia" 117 part_name = "av_codec" 118} 119 120ohos_shared_library("native_media_avsource") { 121 install_enable = true 122 sources = [ 123 "$av_codec_root_dir/frameworks/native/capi/avsource/native_avsource.cpp", 124 ] 125 126 public_configs = [ ":av_codec_capi_config" ] 127 128 deps = [ "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client" ] 129 130 external_deps = [ 131 "c_utils:utils", 132 "graphic_surface:surface", 133 "hilog:libhilog", 134 "media_foundation:capi_packages", 135 "media_foundation:media_foundation", 136 ] 137 output_extension = "so" 138 subsystem_name = "multimedia" 139 part_name = "av_codec" 140} 141 142ohos_shared_library("native_media_codecbase") { 143 install_enable = true 144 sources = [ 145 "$av_codec_root_dir/frameworks/native/capi/avcodec/native_avcodec_base.cpp", 146 ] 147 if (av_codec_support_codeclist) { 148 sources += [ "$av_codec_root_dir/frameworks/native/capi/common/native_avcapability.cpp" ] 149 } 150 151 public_configs = [ ":av_codec_capi_config" ] 152 153 deps = [ 154 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 155 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 156 ] 157 external_deps = [ 158 "c_utils:utils", 159 "graphic_surface:surface", 160 "hilog:libhilog", 161 "media_foundation:capi_packages", 162 "media_foundation:media_foundation", 163 ] 164 output_extension = "so" 165 subsystem_name = "multimedia" 166 part_name = "av_codec" 167} 168 169ohos_shared_library("native_media_acodec") { 170 install_enable = true 171 sources = [ 172 "$av_codec_root_dir/frameworks/native/capi/avcodec/native_audio_codec.cpp", 173 ] 174 175 public_configs = [ ":av_codec_capi_config" ] 176 177 deps = [ 178 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 179 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 180 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 181 ] 182 183 external_deps = [ 184 "c_utils:utils", 185 "graphic_surface:surface", 186 "hilog:libhilog", 187 "media_foundation:capi_packages", 188 "media_foundation:media_foundation", 189 ] 190 innerapi_tags = [ "ndk" ] 191 output_extension = "so" 192 subsystem_name = "multimedia" 193 part_name = "av_codec" 194} 195 196ohos_shared_library("native_media_adec") { 197 install_enable = true 198 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_audio_decoder.cpp" ] 199 200 public_configs = [ ":av_codec_capi_config" ] 201 202 deps = [ 203 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 204 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 205 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 206 ] 207 208 external_deps = [ 209 "c_utils:utils", 210 "hilog:libhilog", 211 "media_foundation:capi_packages", 212 "media_foundation:media_foundation", 213 ] 214 output_extension = "so" 215 subsystem_name = "multimedia" 216 part_name = "av_codec" 217} 218 219ohos_shared_library("native_media_aenc") { 220 install_enable = true 221 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_audio_encoder.cpp" ] 222 223 public_configs = [ ":av_codec_capi_config" ] 224 225 deps = [ 226 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 227 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 228 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 229 ] 230 231 external_deps = [ 232 "c_utils:utils", 233 "hilog:libhilog", 234 "media_foundation:capi_packages", 235 "media_foundation:media_foundation", 236 ] 237 output_extension = "so" 238 subsystem_name = "multimedia" 239 part_name = "av_codec" 240} 241 242ohos_shared_library("native_media_vdec") { 243 install_enable = true 244 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_video_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 "graphic_surface:surface", 257 "hilog:libhilog", 258 "media_foundation:capi_packages", 259 "media_foundation:media_foundation", 260 ] 261 262 if (av_codec_support_drm) { 263 external_deps += [ 264 "drm_framework:drm_framework", 265 "drm_framework:native_drm", 266 ] 267 } 268 output_extension = "so" 269 subsystem_name = "multimedia" 270 part_name = "av_codec" 271} 272 273ohos_shared_library("native_media_venc") { 274 install_enable = true 275 sources = [ "$av_codec_root_dir/frameworks/native/capi/avcodec/native_video_encoder.cpp" ] 276 277 public_configs = [ ":av_codec_capi_config" ] 278 279 deps = [ 280 "$av_codec_root_dir/interfaces/inner_api/native:av_codec_client", 281 "$av_codec_root_dir/interfaces/kits/c:native_media_codecbase", 282 "$av_codec_root_dir/services/dfx:av_codec_service_dfx", 283 ] 284 285 external_deps = [ 286 "c_utils:utils", 287 "graphic_surface:surface", 288 "hilog:libhilog", 289 "media_foundation:capi_packages", 290 "media_foundation:media_foundation", 291 ] 292 output_extension = "so" 293 subsystem_name = "multimedia" 294 part_name = "av_codec" 295} 296