• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2024 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/player_framework/config.gni")
16import("./../../../multimedia_player_framework_aafwk.gni")
17
18ohos_shared_library("video_editor") {
19  version_script = "video_editor.versionscript"
20  stack_protector_ret = true
21  sanitize = {
22    integer_overflow = true
23    ubsan = true
24    boundary_sanitize = true
25    cfi = true
26    cfi_cross_dso = true
27    debug = false
28  }
29
30  install_enable = true
31  sources = [
32    "./codec/audio/decoder/audio_decoder.cpp",
33    "./codec/audio/encoder/audio_encoder.cpp",
34    "./codec/audio/pcm_buffer_queue.cpp",
35    "./codec/common/codec_decoder.cpp",
36    "./codec/common/codec_encoder.cpp",
37    "./codec/util/codec_util.cpp",
38    "./codec/video/decoder/video_decoder.cpp",
39    "./codec/video/decoder/video_decoder_engine.cpp",
40    "./codec/video/decoder/video_decoder_engine_impl.cpp",
41    "./codec/video/decoder/video_demuxer.cpp",
42    "./codec/video/encoder/video_encoder.cpp",
43    "./codec/video/encoder/video_encoder_engine.cpp",
44    "./codec/video/encoder/video_encoder_engine_impl.cpp",
45    "./codec/video/encoder/video_muxer.cpp",
46    "./composite_engine/impl/composite_engine.cpp",
47    "./composite_engine/impl/video_composite_engine.cpp",
48    "./data_center/asset/asset.cpp",
49    "./data_center/asset/asset_factory.cpp",
50    "./data_center/asset/video_asset.cpp",
51    "./data_center/effect/effect.cpp",
52    "./data_center/effect/effect_factory.cpp",
53    "./data_center/effect/effect_image_effect.cpp",
54    "./data_center/impl/data_center_impl.cpp",
55    "./render/graphics/base/gl_utils.cpp",
56    "./render/graphics/base/render_attribute.cpp",
57    "./render/graphics/base/render_context.cpp",
58    "./render/graphics/base/render_surface.cpp",
59    "./render/graphics/base/render_texture.cpp",
60    "./render/graphics/base/shader_pass/render_general_program.cpp",
61    "./render/graphics/base/shader_pass/render_mesh.cpp",
62    "./render/graphics/base/shader_pass/render_program.cpp",
63    "./render/graphics/base/shader_pass/shader_pass.cpp",
64    "./render/graphics/base/shader_pass/shader_pass_on_screen.cpp",
65    "./render/graphics/base/shader_pass/shader_pass_program.cpp",
66    "./render/graphics/base/shader_pass/shader_pass_rotate.cpp",
67    "./render/graphics/base/shader_pass/shader_pass_surface.cpp",
68    "./render/graphics/base/surface_texture.cpp",
69    "./render/graphics/effect/image_effect_render.cpp",
70    "./render/graphics/render_engine/graphics_render_engine.cpp",
71    "./render/graphics/render_engine/graphics_render_engine_impl.cpp",
72    "./util/task/task_manager.cpp",
73    "./video_editor_impl.cpp",
74    "./video_editor_manager.cpp",
75  ]
76
77  include_dirs = [
78    "./",
79    "${multimedia_player_framework_path}/interfaces/inner_api/native/video_editor/include",
80    "${multimedia_player_framework_path}/services/utils/include",
81  ]
82
83  deps = []
84
85  external_deps = [
86    "av_codec:av_codec_client",
87    "av_codec:native_media_acodec",
88    "av_codec:native_media_adec",
89    "av_codec:native_media_aenc",
90    "av_codec:native_media_avcencinfo",
91    "av_codec:native_media_avdemuxer",
92    "av_codec:native_media_avmuxer",
93    "av_codec:native_media_avsource",
94    "av_codec:native_media_codecbase",
95    "av_codec:native_media_vdec",
96    "av_codec:native_media_venc",
97    "ffrt:libffrt",
98    "graphic_2d:EGL",
99    "graphic_2d:GLESv3",
100    "graphic_2d:libnative_image",
101    "graphic_surface:surface",
102    "hilog:libhilog",
103    "media_foundation:native_media_core",
104    "skia:skia_canvaskit",
105  ]
106
107  defines = []
108
109  if (defined(global_parts_info) &&
110      defined(global_parts_info.multimedia_image_effect) &&
111      global_parts_info.multimedia_image_effect) {
112    defines += [ "IMAGE_EFFECT_SUPPORT" ]
113    external_deps += [ "image_effect:image_effect" ]
114  }
115
116  cflags = [
117    "-fno-exceptions",
118    "-Wall",
119    "-Werror",
120    "-fno-common",
121    "-fstack-protector-strong",
122    "-FPIC",
123    "-FS",
124    "-D_FORTIFY_SOURCE=2",
125    "-fvisibility=hidden",
126    "-fdata-sections",
127    "-ffunction-sections",
128    "-fno-asynchronous-unwind-tables",
129    "-fno-unwind-tables",
130    "-O2",
131  ]
132
133  cflags_cc = cflags
134
135  cflags_cc += [
136    "-std=c++17",
137    "-fno-rtti",
138    "-fvisibility-inlines-hidden",
139    "-Wunused-private-field",
140    "-Wunused-but-set-parameter",
141    "-Wunused-but-set-variable",
142    "-Wunused-const-variable",
143    "-Wunused-function",
144    "-Wunused-label",
145    "-Wunused-local-typedefs",
146    "-Wunused-macros",
147    "-Wunused-parameter",
148    "-Wunused-result",
149    "-Wunused-value",
150    "-Wunused-variable",
151    "-Wunreachable-code",
152  ]
153
154  public_configs = []
155
156  innerapi_tags = [ "platformsdk" ]
157  subsystem_name = "multimedia"
158  part_name = "player_framework"
159}
160