# Copyright (C) 2021 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("//build/ohos.gni") import("//build/ohos/ace/ace.gni") import("//foundation/multimedia/player_framework/config.gni") import("./../../../multimedia_player_framework_aafwk.gni") group("napi_packages") { deps = [] if (player_framework_support_jsapi) { deps += [ "./../../../frameworks/js/audio_haptic:audiohaptic_napi", "./../../../frameworks/js/system_sound_manager:systemsoundmanager", "//foundation/multimedia/player_framework/interfaces/kits/js:media", "//foundation/multimedia/player_framework/interfaces/kits/js:media_js", ] } } js_declaration("media_js") { part_name = "player_framework" sources = [ "./@ohos.multimedia.media.d.ts" ] } ohos_copy("media_declaration") { sources = [ "./@ohos.multimedia.media.d.ts" ] outputs = [ target_out_dir + "/$target_name/" ] module_source_dir = target_out_dir + "/$target_name" module_install_name = "" } ohos_shared_library("media") { stack_protector_ret = true sanitize = { integer_overflow = true ubsan = true boundary_sanitize = true cfi = true cfi_cross_dso = true debug = false } include_dirs = [ "//foundation/multimedia/player_framework/interfaces/kits/js", "//foundation/multimedia/player_framework/frameworks/js/avplayer", "//foundation/multimedia/player_framework/frameworks/js/avrecorder", "${multimedia_player_framework_path}/frameworks/js/avtranscoder", "//foundation/multimedia/player_framework/frameworks/js/player", "//foundation/multimedia/player_framework/frameworks/js/recorder", "//foundation/multimedia/player_framework/frameworks/js/media", "${multimedia_player_framework_path}/frameworks/js/mediasource", "//foundation/multimedia/player_framework/frameworks/js/common", "${multimedia_player_framework_path}/frameworks/js/avscreen_capture", "//foundation/multimedia/player_framework/services/utils/include", "${multimedia_player_framework_path}/frameworks/js/soundpool/include", "${multimedia_player_framework_path}/frameworks/js/metadatahelper", "${multimedia_player_framework_path}/interfaces/inner_api/native/soundpool/include", "//foundation/multimedia/player_framework/interfaces/inner_api/native/", ] sources = [ "${multimedia_player_framework_path}/frameworks/js/mediasource/media_source_napi.cpp", "//foundation/multimedia/player_framework/frameworks/js/common/common_napi.cpp", "//foundation/multimedia/player_framework/frameworks/js/media/media_enum_napi.cpp", "//foundation/multimedia/player_framework/frameworks/js/media/native_module_ohos_media.cpp", ] if (player_framework_support_player) { sources += [ "//foundation/multimedia/player_framework/frameworks/js/player/audio_player_napi.cpp", "//foundation/multimedia/player_framework/frameworks/js/player/player_callback_napi.cpp", ] if (player_framework_support_video) { sources += [ "//foundation/multimedia/player_framework/frameworks/js/player/video_callback_napi.cpp", "//foundation/multimedia/player_framework/frameworks/js/player/video_player_napi.cpp", ] } } if (player_framework_support_recorder) { sources += [ "//foundation/multimedia/player_framework/frameworks/js/recorder/audio_recorder_napi.cpp", "//foundation/multimedia/player_framework/frameworks/js/recorder/recorder_callback_napi.cpp", "//foundation/multimedia/player_framework/frameworks/js/recorder/recorder_napi_utils.cpp", "//foundation/multimedia/player_framework/frameworks/js/recorder/video_recorder_napi.cpp", ] } if (player_framework_support_recorder_js_api9) { sources += [ "//foundation/multimedia/player_framework/frameworks/js/avrecorder/avrecorder_callback.cpp", "//foundation/multimedia/player_framework/frameworks/js/avrecorder/avrecorder_napi.cpp", ] } if (player_framework_support_metadata) { sources += [ "${multimedia_player_framework_path}/frameworks/js/metadatahelper/avimagegenerator_napi.cpp", "${multimedia_player_framework_path}/frameworks/js/metadatahelper/avmetadataextractor_napi.cpp", "${multimedia_player_framework_path}/frameworks/js/metadatahelper/avmetadatahelper_callback.cpp", "${multimedia_player_framework_path}/frameworks/js/metadatahelper/helper_data_source_callback.cpp", ] } if (player_framework_support_screen_capture) { sources += [ "${multimedia_player_framework_path}/frameworks/js/avscreen_capture/avscreen_capture_callback.cpp", "${multimedia_player_framework_path}/frameworks/js/avscreen_capture/avscreen_capture_napi.cpp", ] } if (player_framework_support_transcoder) { sources += [ "${multimedia_player_framework_path}/frameworks/js/avtranscoder/avtranscoder_callback.cpp", "${multimedia_player_framework_path}/frameworks/js/avtranscoder/avtranscoder_napi.cpp", ] } cflags = [ "-std=c++17", "-fno-rtti", "-fno-exceptions", "-Wall", "-fno-common", "-fstack-protector-strong", "-Wshadow", "-FPIC", "-FS", "-O2", "-D_FORTIFY_SOURCE=2", "-fvisibility=hidden", "-Wformat=2", "-Wfloat-equal", "-Wdate-time", "-Werror", "-Wextra", "-Wimplicit-fallthrough", "-Wsign-compare", "-Wunused-parameter", ] deps = [ "//foundation/multimedia/player_framework/interfaces/inner_api/native:media_client", "//foundation/multimedia/player_framework/services/utils:media_service_utils", ] if (player_framework_support_jssoundpool) { deps += [ "${multimedia_player_framework_path}/frameworks/js/soundpool:media_soundpool", "${multimedia_player_framework_path}/frameworks/native/soundpool:soundpool_client", ] } external_deps = [ "access_token:libaccesstoken_sdk", "access_token:libtokenid_sdk", "audio_framework:audio_client", "audio_framework:audio_renderer", "av_codec:av_codec_client", "c_utils:utils", "hilog:libhilog", "image_framework:image", "image_framework:image_native", "ipc:ipc_core", "ipc:ipc_single", "libuv:uv", "media_foundation:media_foundation", "napi:ace_napi", "qos_manager:qos", "window_manager:libdm", ] if (player_framework_support_auto_create_file) { external_deps += [ "media_library:medialibrary_nutils" ] } if (player_framework_support_player_js_api9) { deps += [ "../../../../../../foundation/multimedia/player_framework/frameworks/js/avplayer:media_avplayer" ] external_deps += [ "bounds_checking_function:libsec_shared" ] } if (player_framework_support_video) { external_deps += [ "graphic_surface:surface" ] } if (player_framework_support_jsstack) { external_deps += [ "hiview:libxpower_event_js" ] } defines = [] defines += player_framework_defines if (is_arkui_x) { defines += [ "CROSS_PLATFORM" ] } relative_install_dir = "module/multimedia" part_name = "player_framework" subsystem_name = "multimedia" }