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