1# Copyright (c) 2020 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#     http://www.apache.org/licenses/LICENSE-2.0
6# Unless required by applicable law or agreed to in writing, software
7# distributed under the License is distributed on an "AS IS" BASIS,
8# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9# See the License for the specific language governing permissions and
10# limitations under the License.
11
12import("//build/lite/config/component/lite_component.gni")
13
14shared_library("player_impl") {
15  sources = [
16    "impl/buffersource/src/buffer_source.cpp",
17    "impl/player_control/decoder/decoder.cpp",
18    "impl/player_control/player/fsm/src/fsm_common.cpp",
19    "impl/player_control/player/fsm/src/hi_fsm.cpp",
20    "impl/player_control/player/fsm/src/hi_state.cpp",
21    "impl/player_control/player/fsm/src/hi_state_machine.cpp",
22    "impl/player_control/player/fsm/src/hi_state_machine_observer.cpp",
23    "impl/player_control/player/fsm/src/message_looper.cpp",
24    "impl/player_control/player/fsm/src/mmessage_pool.cpp",
25    "impl/player_control/player/liteplayer.cpp",
26    "impl/player_control/player/liteplayer_comm.cpp",
27    "impl/player_control/player/liteplayer_state_machine.cpp",
28    "impl/player_control/sink/player_audio_sink.cpp",
29    "impl/player_control/sink/player_sink_manager.cpp",
30    "impl/player_control/sink/player_sync.cpp",
31    "impl/player_control/sink/player_video_sink.cpp",
32    "impl/player_control/source/player_demux.cpp",
33    "impl/player_control/source/player_source.cpp",
34    "impl/player_impl.cpp",
35  ]
36  include_dirs = [
37    "//third_party/bounds_checking_function/include",
38    "//foundation/multimedia/media_utils_lite/hals",
39    "//foundation/multimedia/media_utils_lite/interfaces/kits",
40    "//drivers/peripheral/display/interfaces/include",
41    "//drivers/peripheral/base",
42    "//foundation/multimedia/media_lite/interfaces/innerkits",
43  ]
44  outdir = rebase_path("$root_out_dir")
45  public_configs = [ ":player_impl_external_library_config" ]
46  ldflags = [ "-L$outdir" ]
47  ldflags += [ "-laudio_hw" ]
48  ldflags += [ "-lcodec" ]
49  ldflags += [ "-lformat_hw" ]
50  ldflags += [ "-lhdi_videodisplayer" ]
51  public_deps = [
52    "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared",
53    "//foundation/graphic/surface_lite:surface_lite",
54    "//foundation/multimedia/media_utils_lite:media_common",
55    "//third_party/bounds_checking_function:libsec_shared",
56  ]
57  ldflags += [ "-lstdc++" ]
58  cflags = [
59    "-fPIC",
60    "-Wall",
61    "-Wno-format",
62  ]
63  cflags_cc = cflags
64}
65
66config("player_impl_external_library_config") {
67  include_dirs = [ "//foundation/multimedia/frameworks/player_lite/binder" ]
68  include_dirs +=
69      [ "//foundation/multimedia/media_lite/interfaces/kits/player_lite" ]
70  include_dirs += [ "//foundation/multimedia/media_lite/services/player_lite/impl/buffersource/include" ]
71  include_dirs += [ "//foundation/multimedia/media_lite/services/player_lite/impl/player_control/include" ]
72  include_dirs += [ "//foundation/multimedia/media_lite/services/player_lite/impl/player_control/player" ]
73  include_dirs += [ "//foundation/multimedia/media_utils_lite/interfaces/kits" ]
74  include_dirs += [ "//drivers/peripheral/format/interfaces/include" ]
75  include_dirs += [ "//foundation/multimedia/media_lite/services/player_lite/impl/player_control/player/fsm/src" ]
76  include_dirs += [ "//foundation/multimedia/media_lite/services/player_lite/impl/player_control/player/fsm/include" ]
77  include_dirs += [ "//foundation/multimedia/media_lite/services/player_lite/impl/player_control/source" ]
78  include_dirs += [ "//foundation/multimedia/media_lite/services/player_lite/impl/player_control/sink" ]
79  include_dirs += [ "//drivers/peripheral/codec/interfaces/include" ]
80  include_dirs += [ "//foundation/multimedia/media_lite/services/player_lite/impl/player_control/decoder" ]
81  include_dirs += [ "//drivers/peripheral/audio/interfaces/include" ]
82}
83shared_library("player_server") {
84  sources = [
85    "factory/src/player_factory.cpp",
86    "server/src/player_server.cpp",
87    "server/src/samgr_player_server.cpp",
88  ]
89  include_dirs = [
90    "factory/include",
91    "factory/include",
92    "impl",
93    "//drivers/peripheral/audio/interfaces/include",
94    "//drivers/peripheral/codec/interfaces/include",
95    "//drivers/peripheral/format/interfaces/include",
96    "//drivers/peripheral/display/interfaces/include",
97    "//drivers/peripheral/base",
98    "//foundation/multimedia/media_foundation/interface",
99    "//foundation/multimedia/media_utils_lite/hals",
100    "//foundation/multimedia/media_utils_lite/interfaces/kits",
101    "//foundation/multimedia/media_lite/interfaces/innerkits",
102    "//foundation/multimedia/media_lite/frameworks/player_lite/binder",
103    "//base/startup/init/interfaces/innerkits/include/syspara",
104    "//foundation/systemabilitymgr/samgr_lite/interfaces/kits/registry",
105    "//foundation/systemabilitymgr/samgr_lite/interfaces/kits/samgr",
106    "//foundation/systemabilitymgr/samgr_lite/interfaces/kits/communication/broadcast",
107  ]
108  outdir = rebase_path("$root_out_dir")
109  public_configs = [ ":player_server_external_library_config" ]
110  cflags = [
111    "-fPIC",
112    "-Wall",
113    "-Wno-format",
114  ]
115  cflags_cc = cflags
116  ldflags = [
117    "-L$outdir",
118    "-lstdc++",
119    "-Wl,-rpath-link=$ohos_root_path/$root_out_dir",
120    "-lcodec",
121  ]
122  deps = [
123    "//foundation/graphic/surface_lite:surface_lite",
124    "//foundation/multimedia/media_foundation:media_engine_histreamer",
125    "//foundation/systemabilitymgr/samgr_lite/samgr:samgr",
126  ]
127  public_deps = [
128    "//base/startup/init/interfaces/innerkits:libbegetutil",
129    "//foundation/multimedia/media_lite/services/player_lite:player_impl",
130    "//foundation/multimedia/media_utils_lite:media_common",
131  ]
132}
133
134config("player_server_external_library_config") {
135  include_dirs = [
136    "//foundation/multimedia/media_lite/services/player_lite/server/include",
137  ]
138  include_dirs +=
139      [ "//foundation/multimedia/media_lite/frameworks/player_lite/binder" ]
140}
141