1# Copyright (c) 2021-2021 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#
14
15import("//foundation/multimedia/media_foundation/config.gni")
16
17print("histreamer plugin: ffmpeg_adapter =",
18      media_foundation_enable_plugin_ffmpeg_adapter)
19print("histreamer plugin: wav_demuxer =",
20      media_foundation_enable_plugin_wav_demuxer)
21print("histreamer plugin: hdi_adapter =",
22      media_foundation_enable_plugin_hdi_adapter)
23print("histreamer plugin: file_source =",
24      media_foundation_enable_plugin_file_source)
25print("histreamer plugin: file_fd_source =",
26      media_foundation_enable_plugin_file_fd_source)
27print("histreamer plugin: std_stream_source =",
28      media_foundation_enable_plugin_std_stream_source)
29print("histreamer plugin: http_source =",
30      media_foundation_enable_plugin_http_source)
31print("histreamer plugin: stream_source =",
32      media_foundation_enable_plugin_stream_source)
33print("histreamer plugin: audio_server_sink =",
34      media_foundation_enable_plugin_audio_server_sink)
35print("histreamer plugin: lite_aac_decoder =",
36      media_foundation_enable_plugin_lite_aac_decoder)
37print("histreamer plugin: std_video_surface_sink =",
38      media_foundation_enable_plugin_std_video_surface_sink)
39print("histreamer plugin: std_video_capture =",
40      media_foundation_enable_plugin_std_video_capture)
41print("histreamer plugin: file_fd_sink =",
42      media_foundation_enable_plugin_file_fd_sink)
43print("histreamer plugin: codec_adapter =",
44      media_foundation_enable_plugin_codec_adapter)
45
46group("histreamer_plugin_store") {
47  deps = []
48  if (media_foundation_enable_plugin_ffmpeg_adapter) {
49    deps += [ "ffmpeg_adapter:plugin_ffmpeg_adapter" ]
50  }
51
52  if (media_foundation_enable_plugin_minimp3_adapter) {
53    deps += [ "minimp3_adapter:plugin_minimp3_adapter" ]
54  }
55
56  if (media_foundation_enable_plugin_minimp4_demuxer) {
57    deps += [ "demuxer/minimp4_demuxer:plugin_minimp4_demuxer" ]
58  }
59
60  if (media_foundation_enable_plugin_aac_demuxer) {
61    deps += [ "demuxer/aac_demuxer:plugin_aac_demuxer" ]
62  }
63
64  if (media_foundation_enable_plugin_lite_aac_decoder) {
65    deps += [ "lite_aac_decoder:plugin_lite_aac_decoder_adapter" ]
66  }
67
68  if (media_foundation_enable_plugin_file_source) {
69    deps += [ "source/file_source:plugin_file_source" ]
70  }
71
72  if (media_foundation_enable_plugin_file_fd_source) {
73    deps += [ "source/file_source:plugin_file_fd_source" ]
74  }
75
76  if (media_foundation_enable_plugin_std_stream_source) {
77    deps += [ "source/std_stream_source:plugin_std_stream_source" ]
78  }
79
80  if (media_foundation_enable_plugin_http_source) {
81    deps += [ "source/http_source:plugin_http_source" ]
82  }
83
84  if (media_foundation_enable_plugin_hdi_adapter) {
85    deps += [ "hdi_adapter:plugin_hdi_adapter" ]
86  }
87
88  if (media_foundation_enable_plugin_stream_source) {
89    deps += [ "source/stream_source:plugin_stream_source" ]
90  }
91
92  if (media_foundation_enable_plugin_http_lite_source) {
93    deps += [ "source/http_lite_source:plugin_http_lite_source" ]
94  }
95
96  if (media_foundation_enable_plugin_std_audio_capture) {
97    deps += [ "source/audio_capture:plugin_standard_audio_capture" ]
98  }
99
100  if (media_foundation_enable_plugin_audio_server_sink) {
101    deps += [ "sink/audio_server_sink:plugin_audio_server_sink" ]
102  }
103
104  if (media_foundation_enable_plugin_file_fd_sink) {
105    deps += [ "sink/file_sink:plugin_file_fd_sink" ]
106  }
107
108  if (media_foundation_enable_plugin_std_video_surface_sink) {
109    deps += [ "sink/video_surface_sink:plugin_standard_video_surface_sink" ]
110  }
111
112  if (media_foundation_enable_plugin_std_video_capture) {
113    deps += [ "source/video_capture:plugin_standard_video_capture" ]
114  }
115
116  if (media_foundation_enable_plugin_wav_demuxer) {
117    deps += [ "demuxer/wav_demuxer:plugin_wav_demuxer" ]
118  }
119
120  if (media_foundation_enable_plugin_codec_adapter) {
121    deps += [ "codec_adapter:plugin_codec_adapter" ]
122  }
123}
124
125config("gen_plugin_static_header_config") {
126  include_dirs = [ "${target_gen_dir}/include/" ]
127}
128
129action("gen_plugin_static_header") {
130  script = "//foundation/multimedia/media_foundation/engine/plugin/plugins/plugin_config.py"
131
132  args = [
133    rebase_path(
134        "//foundation/multimedia/media_foundation/engine/plugin/plugins",
135        root_build_dir),
136    rebase_path("${target_gen_dir}/include/", root_build_dir),
137  ]
138
139  if (hst_is_mini_sys) {
140    if (media_foundation_enable_plugin_ffmpeg_adapter) {
141      args += [
142        "FFmpegDemuxer",
143        "FFmpegAudioDecoders",
144      ]
145    }
146
147    if (media_foundation_enable_plugin_wav_demuxer) {
148      args += [ "WavDemuxer" ]
149    }
150
151    if (media_foundation_enable_plugin_minimp3_adapter) {
152      args += [
153        "Minimp3Demuxer",
154        "Minimp3Decoder",
155      ]
156    }
157
158    if (media_foundation_enable_plugin_minimp4_demuxer) {
159      args += [ "MiniMP4Demuxer" ]
160    }
161
162    if (media_foundation_enable_plugin_lite_aac_decoder) {
163      args += [ "LiteAACDecoder" ]
164    }
165
166    if (media_foundation_enable_plugin_aac_demuxer) {
167      args += [ "AACDemuxer" ]
168    }
169
170    if (media_foundation_enable_plugin_file_source) {
171      args += [ "FileSource" ]
172    }
173
174    if (media_foundation_enable_plugin_file_fd_source) {
175      args += [ "FileFdSource" ]
176    }
177
178    if (media_foundation_enable_plugin_http_source) {
179      args += [ "HttpSource" ]
180    }
181
182    if (media_foundation_enable_plugin_hdi_adapter) {
183      args += [ "HdiAuSink" ]
184    }
185
186    if (media_foundation_enable_plugin_stream_source) {
187      args += [ "StreamSource" ]
188    }
189
190    if (media_foundation_enable_plugin_http_lite_source) {
191      args += [ "HttpLiteSource" ]
192    }
193
194    if (media_foundation_enable_plugin_file_fd_sink) {
195      args += [ "FileFdSink" ]
196    }
197  }
198
199  outputs = [ "${target_gen_dir}/include/all_plugin_static.h" ]
200
201  public_configs = [ ":gen_plugin_static_header_config" ]
202}
203