1fa7767c5Sopenharmony_ci# Copyright (c) 2021-2021 Huawei Device Co., Ltd. 2fa7767c5Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3fa7767c5Sopenharmony_ci# you may not use this file except in compliance with the License. 4fa7767c5Sopenharmony_ci# You may obtain a copy of the License at 5fa7767c5Sopenharmony_ci# 6fa7767c5Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7fa7767c5Sopenharmony_ci# 8fa7767c5Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9fa7767c5Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10fa7767c5Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11fa7767c5Sopenharmony_ci# See the License for the specific language governing permissions and 12fa7767c5Sopenharmony_ci# limitations under the License. 13fa7767c5Sopenharmony_ci# 14fa7767c5Sopenharmony_ci 15fa7767c5Sopenharmony_ci# build plugin interface 16fa7767c5Sopenharmony_ciimport("//foundation/multimedia/media_foundation/config.gni") 17fa7767c5Sopenharmony_ciohos_source_set("histreamer_pipeline_base") { 18fa7767c5Sopenharmony_ci subsystem_name = "multimedia" 19fa7767c5Sopenharmony_ci part_name = "media_foundation" 20fa7767c5Sopenharmony_ci include_dirs = [ "//foundation/multimedia/media_foundation/engine/include" ] 21fa7767c5Sopenharmony_ci sources = [ 22fa7767c5Sopenharmony_ci "core/compatible_check.cpp", 23fa7767c5Sopenharmony_ci "core/error_code.cpp", 24fa7767c5Sopenharmony_ci "core/event.cpp", 25fa7767c5Sopenharmony_ci "core/filter_base.cpp", 26fa7767c5Sopenharmony_ci "core/media_sync_manager.cpp", 27fa7767c5Sopenharmony_ci "core/pipeline_core.cpp", 28fa7767c5Sopenharmony_ci "core/port.cpp", 29fa7767c5Sopenharmony_ci "factory/filter_factory.cpp", 30fa7767c5Sopenharmony_ci "filters/common/plugin_settings.cpp", 31fa7767c5Sopenharmony_ci "filters/common/plugin_utils.cpp", 32fa7767c5Sopenharmony_ci ] 33fa7767c5Sopenharmony_ci public_configs = 34fa7767c5Sopenharmony_ci [ "//foundation/multimedia/media_foundation:histreamer_presets" ] 35fa7767c5Sopenharmony_ci public_deps = [ 36fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/foundation:histreamer_foundation", 37fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/plugin:histreamer_plugin_core", 38fa7767c5Sopenharmony_ci ] 39fa7767c5Sopenharmony_ci if (hst_is_standard_sys) { 40fa7767c5Sopenharmony_ci external_deps = [ 41fa7767c5Sopenharmony_ci "graphic_surface:surface", 42fa7767c5Sopenharmony_ci "hilog:libhilog", 43fa7767c5Sopenharmony_ci "hitrace:hitrace_meter", 44fa7767c5Sopenharmony_ci "ipc:ipc_single", 45fa7767c5Sopenharmony_ci ] 46fa7767c5Sopenharmony_ci } 47fa7767c5Sopenharmony_ci} 48fa7767c5Sopenharmony_ci 49fa7767c5Sopenharmony_ciconfig("histreamer_base_external_config") { 50fa7767c5Sopenharmony_ci include_dirs = [ 51fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/include/pipeline/core", 52fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/include/pipeline/factory", 53fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/include/plugin/common", 54fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/include/plugin/core", 55fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/include/plugin/factory", 56fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/include/plugin/interface", 57fa7767c5Sopenharmony_ci ] 58fa7767c5Sopenharmony_ci} 59fa7767c5Sopenharmony_ci 60fa7767c5Sopenharmony_ciif (hst_is_lite_sys) { 61fa7767c5Sopenharmony_ci import("//build/lite/config/component/lite_component.gni") 62fa7767c5Sopenharmony_ci lite_library("histreamer_base") { 63fa7767c5Sopenharmony_ci if (hst_is_mini_sys) { 64fa7767c5Sopenharmony_ci target_type = "static_library" 65fa7767c5Sopenharmony_ci } else { 66fa7767c5Sopenharmony_ci target_type = "shared_library" 67fa7767c5Sopenharmony_ci } 68fa7767c5Sopenharmony_ci sources = [] 69fa7767c5Sopenharmony_ci deps = [ ":histreamer_pipeline_base" ] 70fa7767c5Sopenharmony_ci } 71fa7767c5Sopenharmony_ci} else { 72fa7767c5Sopenharmony_ci import("//build/ohos.gni") 73fa7767c5Sopenharmony_ci ohos_shared_library("histreamer_base") { 74fa7767c5Sopenharmony_ci subsystem_name = "multimedia" 75fa7767c5Sopenharmony_ci part_name = "media_foundation" 76fa7767c5Sopenharmony_ci public_configs = [ ":histreamer_base_external_config" ] 77fa7767c5Sopenharmony_ci public_external_deps = [ "player_framework:media_client" ] 78fa7767c5Sopenharmony_ci deps = [ ":histreamer_pipeline_base" ] 79fa7767c5Sopenharmony_ci external_deps = [ "hilog:libhilog" ] 80fa7767c5Sopenharmony_ci sanitize = { 81fa7767c5Sopenharmony_ci cfi = true 82fa7767c5Sopenharmony_ci cfi_cross_dso = true 83fa7767c5Sopenharmony_ci debug = false 84fa7767c5Sopenharmony_ci integer_overflow = true 85fa7767c5Sopenharmony_ci } 86fa7767c5Sopenharmony_ci } 87fa7767c5Sopenharmony_ci} 88fa7767c5Sopenharmony_ci 89fa7767c5Sopenharmony_ciconfig("histreamer_codec_filters_external_config") { 90fa7767c5Sopenharmony_ci include_dirs = [ 91fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/scene/standard", 92fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/include/pipeline/filters/codec/audio_decoder", 93fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/include/pipeline/filters/codec/audio_encoder", 94fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/include/pipeline/filters/codec/video_decoder", 95fa7767c5Sopenharmony_ci "//foundation/multimedia/media_foundation/engine/include/pipeline/filters/codec/video_encoder", 96fa7767c5Sopenharmony_ci ] 97fa7767c5Sopenharmony_ci} 98fa7767c5Sopenharmony_ci 99fa7767c5Sopenharmony_ciif (hst_is_lite_sys) { 100fa7767c5Sopenharmony_ci import("//build/lite/config/component/lite_component.gni") 101fa7767c5Sopenharmony_ci lite_library("histreamer_codec_filters") { 102fa7767c5Sopenharmony_ci if (hst_is_mini_sys) { 103fa7767c5Sopenharmony_ci target_type = "static_library" 104fa7767c5Sopenharmony_ci } else { 105fa7767c5Sopenharmony_ci target_type = "shared_library" 106fa7767c5Sopenharmony_ci } 107fa7767c5Sopenharmony_ci sources = [] 108fa7767c5Sopenharmony_ci deps = [ "filters/codec:codec_filters" ] 109fa7767c5Sopenharmony_ci } 110fa7767c5Sopenharmony_ci} else { 111fa7767c5Sopenharmony_ci import("//build/ohos.gni") 112fa7767c5Sopenharmony_ci ohos_shared_library("histreamer_codec_filters") { 113fa7767c5Sopenharmony_ci subsystem_name = "multimedia" 114fa7767c5Sopenharmony_ci part_name = "media_foundation" 115fa7767c5Sopenharmony_ci public_configs = [ ":histreamer_codec_filters_external_config" ] 116fa7767c5Sopenharmony_ci deps = [ "filters/codec:codec_filters" ] 117fa7767c5Sopenharmony_ci external_deps = [ "hilog:libhilog" ] 118fa7767c5Sopenharmony_ci sanitize = { 119fa7767c5Sopenharmony_ci cfi = true 120fa7767c5Sopenharmony_ci cfi_cross_dso = true 121fa7767c5Sopenharmony_ci debug = false 122fa7767c5Sopenharmony_ci integer_overflow = true 123fa7767c5Sopenharmony_ci } 124fa7767c5Sopenharmony_ci } 125fa7767c5Sopenharmony_ci} 126fa7767c5Sopenharmony_ci 127fa7767c5Sopenharmony_ciohos_source_set("histreamer_pipeline") { 128fa7767c5Sopenharmony_ci subsystem_name = "multimedia" 129fa7767c5Sopenharmony_ci part_name = "media_foundation" 130fa7767c5Sopenharmony_ci sources = [] 131fa7767c5Sopenharmony_ci public_configs = 132fa7767c5Sopenharmony_ci [ "//foundation/multimedia/media_foundation:histreamer_presets" ] 133fa7767c5Sopenharmony_ci public_deps = [ 134fa7767c5Sopenharmony_ci ":histreamer_codec_filters", 135fa7767c5Sopenharmony_ci "filters/codec:codec_filters", 136fa7767c5Sopenharmony_ci "filters/demux:demuxer_filter", 137fa7767c5Sopenharmony_ci "filters/muxer:muxer_filter", 138fa7767c5Sopenharmony_ci "filters/sink:audio_sink_filter", 139fa7767c5Sopenharmony_ci "filters/sink:output_sink_filter", 140fa7767c5Sopenharmony_ci "filters/source:audio_capture_filter", 141fa7767c5Sopenharmony_ci "filters/source:media_source_filter", 142fa7767c5Sopenharmony_ci ] 143fa7767c5Sopenharmony_ci if (hst_is_standard_sys) { 144fa7767c5Sopenharmony_ci external_deps = [ "hilog:libhilog" ] 145fa7767c5Sopenharmony_ci } 146fa7767c5Sopenharmony_ci if (media_foundation_enable_video) { 147fa7767c5Sopenharmony_ci public_deps += [ "filters/sink:video_sink_filter" ] 148fa7767c5Sopenharmony_ci if (media_foundation_enable_recorder) { 149fa7767c5Sopenharmony_ci public_deps += [ "filters/source:video_capture_filter" ] 150fa7767c5Sopenharmony_ci } 151fa7767c5Sopenharmony_ci } 152fa7767c5Sopenharmony_ci} 153fa7767c5Sopenharmony_ci 154fa7767c5Sopenharmony_ciif (hst_is_lite_sys) { 155fa7767c5Sopenharmony_ci import("//build/lite/config/component/lite_component.gni") 156fa7767c5Sopenharmony_ci lite_library("histreamer_engine_filters") { 157fa7767c5Sopenharmony_ci if (hst_is_mini_sys) { 158fa7767c5Sopenharmony_ci target_type = "static_library" 159fa7767c5Sopenharmony_ci } else { 160fa7767c5Sopenharmony_ci target_type = "shared_library" 161fa7767c5Sopenharmony_ci } 162fa7767c5Sopenharmony_ci sources = [] 163fa7767c5Sopenharmony_ci deps = [ ":histreamer_pipeline" ] 164fa7767c5Sopenharmony_ci } 165fa7767c5Sopenharmony_ci} else { 166fa7767c5Sopenharmony_ci import("//build/ohos.gni") 167fa7767c5Sopenharmony_ci ohos_shared_library("histreamer_engine_filters") { 168fa7767c5Sopenharmony_ci subsystem_name = "multimedia" 169fa7767c5Sopenharmony_ci part_name = "media_foundation" 170fa7767c5Sopenharmony_ci deps = [ ":histreamer_pipeline" ] 171fa7767c5Sopenharmony_ci external_deps = [ "hilog:libhilog" ] 172fa7767c5Sopenharmony_ci sanitize = { 173fa7767c5Sopenharmony_ci cfi = true 174fa7767c5Sopenharmony_ci cfi_cross_dso = true 175fa7767c5Sopenharmony_ci debug = false 176fa7767c5Sopenharmony_ci integer_overflow = true 177fa7767c5Sopenharmony_ci } 178fa7767c5Sopenharmony_ci } 179fa7767c5Sopenharmony_ci} 180