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