• 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
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