• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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