• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2023 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/av_codec/config.gni")
16
17config("ffmpeg_adapter_config") {
18  defines = [
19    "HST_ANY_WITH_NO_RTTI",
20    "MEDIA_OHOS",
21  ]
22
23  cflags = [
24    "-fno-exceptions",
25    "-Wall",
26    "-fno-common",
27    "-fstack-protector-all",
28    "-Wshadow",
29    "-FPIC",
30    "-FS",
31    "-O2",
32    "-D_FORTIFY_SOURCE=2",
33    "-Wformat=2",
34    "-Wdate-time",
35  ]
36
37  cflags_cc = [
38    "-std=c++17",
39    "-fno-rtti",
40  ]
41
42  include_dirs = [
43    "$av_codec_root_dir/interfaces",
44    "$av_codec_root_dir/services/media_engine/plugins/ffmpeg_adapter",
45    "$av_codec_root_dir/services/media_engine/plugins/ffmpeg_adapter/muxer",
46    "$av_codec_root_dir/services/media_engine/plugins/ffmpeg_adapter/common",
47    "$media_foundation_root_dir/interface/inner_api",
48    "//third_party/ffmpeg",
49  ]
50}
51
52ohos_shared_library("media_plugin_FFmpegMuxer") {
53  install_enable = true
54
55  sanitize = av_codec_sanitize
56
57  configs = [
58    ":ffmpeg_adapter_config",
59    "$av_codec_root_dir/services/dfx:av_codec_service_log_dfx_public_config",
60  ]
61
62  sources = [
63    "common/ffmpeg_utils.cpp",
64    "common/hevc_parser_manager.cpp",
65    "muxer/ffmpeg_muxer_plugin.cpp",
66  ]
67
68  public_deps = [ "//third_party/ffmpeg:libohosffmpeg" ]
69
70  external_deps = [
71    "c_utils:utils",
72    "hilog:libhilog",
73    "media_foundation:media_foundation",
74  ]
75
76  relative_install_dir = "media/media_plugins"
77  subsystem_name = "multimedia"
78  part_name = "av_codec"
79}
80
81ohos_shared_library("media_plugin_FFmpegDemuxer") {
82  install_enable = true
83
84  sanitize = av_codec_sanitize
85
86  configs = [
87    ":ffmpeg_adapter_config",
88    "$av_codec_root_dir/services/dfx:av_codec_service_log_dfx_public_config",
89  ]
90
91  sources = [
92    "common/ffmpeg_converter.cpp",
93    "common/ffmpeg_utils.cpp",
94    "common/hevc_parser_manager.cpp",
95    "demuxer/block_queue_pool.cpp",
96    "demuxer/ffmpeg_demuxer_plugin.cpp",
97    "demuxer/ffmpeg_format_helper.cpp",
98  ]
99
100  deps = [ "$av_codec_root_dir/services/dfx:av_codec_service_dfx" ]
101
102  public_deps = [ "//third_party/ffmpeg:libohosffmpeg" ]
103
104  external_deps = [
105    "c_utils:utils",
106    "hilog:libhilog",
107    "media_foundation:media_foundation",
108  ]
109
110  relative_install_dir = "media/media_plugins"
111  subsystem_name = "multimedia"
112  part_name = "av_codec"
113}
114