# Copyright (C) 2023 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("//foundation/multimedia/media_foundation/config.gni") if (hst_is_standard_sys) { config("media_foundation_public_config") { include_dirs = [ "$histreamer_root_dir/interface/kits/c", "$histreamer_root_dir/interface/inner_api", "$histreamer_root_dir/interface/inner_api/buffer", "$histreamer_root_dir/interface/inner_api/common", "$histreamer_root_dir/interface/inner_api/meta", ] } config("media_foundation_config") { defines = [ "HST_ANY_WITH_NO_RTTI", "MEDIA_OHOS", ] include_dirs = [ "$histreamer_root_dir/osal/base", "$histreamer_root_dir/plugin", "$histreamer_root_dir/src/buffer/avbuffer/include", "$histreamer_root_dir/src/buffer/avbuffer_queue/include", "$histreamer_root_dir/src/capi/common", ] cflags = [ "-O2", "-fPIC", "-Wall", "-fexceptions", "-fno-rtti", "-Wno-unused-but-set-variable", "-Wno-format", ] cflags_cc = cflags } ohos_shared_library("media_foundation") { branch_protector_ret = "pac_ret" install_enable = true public_configs = [ ":media_foundation_public_config" ] configs = [ ":media_foundation_config" ] defines = [ "HST_ANY_WITH_NO_RTTI", "MEDIA_OHOS", "DYNAMIC_PLUGINS", ] sanitize = { ubsan = true boundary_sanitize = true cfi = true cfi_cross_dso = true debug = false integer_overflow = true } sources = [ "$histreamer_root_dir/src/buffer/avbuffer/av_hardware_memory.cpp", "$histreamer_root_dir/src/buffer/avbuffer/av_shared_memory_ext.cpp", "$histreamer_root_dir/src/buffer/avbuffer/av_surface_memory.cpp", "$histreamer_root_dir/src/buffer/avbuffer/av_virtual_memory.cpp", "$histreamer_root_dir/src/buffer/avbuffer/avbuffer.cpp", "$histreamer_root_dir/src/buffer/avbuffer/avbuffer_common.cpp", "$histreamer_root_dir/src/buffer/avbuffer/avbuffer_utils.cpp", "$histreamer_root_dir/src/buffer/avbuffer/avmemory.cpp", ] sources += [ "$histreamer_root_dir/src/buffer/avbuffer_queue/avbuffer_queue.cpp", "$histreamer_root_dir/src/buffer/avbuffer_queue/avbuffer_queue_consumer.cpp", "$histreamer_root_dir/src/buffer/avbuffer_queue/avbuffer_queue_producer.cpp", "$histreamer_root_dir/src/buffer/avbuffer_queue/avbuffer_queue_producer_proxy.cpp", "$histreamer_root_dir/src/buffer/avbuffer_queue/avbuffer_queue_producer_stub.cpp", ] sources += [ "$histreamer_root_dir/src/buffer/avsharedmemory/avsharedmemorybase.cpp", ] sources += [ "$histreamer_root_dir/src/common/avsharedmemorypool.cpp" ] sources += [ "$histreamer_root_dir/src/meta/any.cpp", "$histreamer_root_dir/src/meta/format.cpp", "$histreamer_root_dir/src/meta/media_source.cpp", "$histreamer_root_dir/src/meta/meta.cpp", ] sources += [ "$histreamer_root_dir/src/capi/common/native_mfmagic.cpp" ] sources += [ "$histreamer_root_dir/src/osal/filesystem/file_system.cpp", "$histreamer_root_dir/src/osal/task/pthread/autolock.cpp", "$histreamer_root_dir/src/osal/task/pthread/condition_variable.cpp", "$histreamer_root_dir/src/osal/task/pthread/jobutils.cpp", "$histreamer_root_dir/src/osal/task/pthread/mutex.cpp", "$histreamer_root_dir/src/osal/task/pthread/pipeline_threadpool.cpp", "$histreamer_root_dir/src/osal/task/pthread/taskInner.cpp", "$histreamer_root_dir/src/osal/task/pthread/thread.cpp", "$histreamer_root_dir/src/osal/task/task.cpp", "$histreamer_root_dir/src/osal/utils/dump_buffer.cpp", "$histreamer_root_dir/src/osal/utils/steady_clock.cpp", "$histreamer_root_dir/src/osal/utils/util.cpp", ] sources += [ "$histreamer_root_dir/src/filter/filter.cpp", "$histreamer_root_dir/src/filter/filter_factory.cpp", "$histreamer_root_dir/src/pipeline/pipeline.cpp", ] sources += [ "$histreamer_root_dir/src/plugin/cached_plugin_package.cpp", "$histreamer_root_dir/src/plugin/plugin_buffer.cpp", "$histreamer_root_dir/src/plugin/plugin_list.cpp", "$histreamer_root_dir/src/plugin/plugin_manager_v2.cpp", "$histreamer_root_dir/src/plugin/plugin_package.cpp", ] public_deps = [] external_deps = [ "bounds_checking_function:libsec_static", "c_utils:utils", "ffmpeg:libohosffmpeg", "graphic_2d:libgraphic_utils", "graphic_surface:sync_fence", "hilog:libhilog", "hitrace:hitrace_meter", "init:libbegetutil", "ipc:ipc_core", ] public_external_deps = [ "graphic_surface:surface" ] innerapi_tags = [ "platformsdk", "sasdk", ] if (target_cpu == "arm64" || is_emulator) { hst_plugin_path = "\"/system/lib64/media/media_plugins\"" } else { hst_plugin_path = "\"/system/lib/media/media_plugins\"" } defines += [ "HST_PLUGIN_PATH=${hst_plugin_path}", "HST_PLUGIN_FILE_TAIL=\".z.so\"", ] subsystem_name = "multimedia" part_name = "media_foundation" } } else { group("media_foundation") { } }