blob: edfef156aa9d37b25244af6e215478cc07d8ca4a [file] [log] [blame]
skvladcc91d282016-10-03 18:31:22 -07001# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS. All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
mbonadei9aa3f0a2017-01-24 06:58:22 -08009import("../webrtc.gni")
Dan Minor9c686132018-01-15 10:20:00 -050010if (!build_with_mozilla) {
11 import("//third_party/protobuf/proto_library.gni")
12}
skvladcc91d282016-10-03 18:31:22 -070013if (is_android) {
14 import("//build/config/android/config.gni")
15 import("//build/config/android/rules.gni")
16}
17
kjellander6ceab082016-10-28 05:44:03 -070018group("logging") {
Mirko Bonadei818d9102017-12-12 12:46:13 +010019 deps = [
Qingsi Wang001546d2018-01-24 16:23:20 -080020 ":rtc_event_audio",
21 ":rtc_event_bwe",
22 ":rtc_event_log_impl_base",
23 ":rtc_event_log_impl_encoder",
24 ":rtc_event_log_impl_output",
25 ":rtc_event_pacing",
26 ":rtc_event_rtp_rtcp",
27 ":rtc_event_video",
kjellander6ceab082016-10-28 05:44:03 -070028 ]
Qingsi Wang001546d2018-01-24 16:23:20 -080029
kjellander6ceab082016-10-28 05:44:03 -070030 if (rtc_enable_protobuf) {
Mirko Bonadei818d9102017-12-12 12:46:13 +010031 deps += [ ":rtc_event_log_parser" ]
kjellander6ceab082016-10-28 05:44:03 -070032 }
33}
34
skvladcc91d282016-10-03 18:31:22 -070035rtc_source_set("rtc_event_log_api") {
36 sources = [
Qingsi Wang001546d2018-01-24 16:23:20 -080037 "rtc_event_log/encoder/rtc_event_log_encoder.h",
Elad Alon652cc842017-10-02 11:27:52 +020038 "rtc_event_log/events/rtc_event.h",
Qingsi Wang001546d2018-01-24 16:23:20 -080039 "rtc_event_log/rtc_event_log.h",
40 "rtc_event_log/rtc_event_log_factory_interface.h",
41 ]
42
43 deps = [
44 "../api:libjingle_logging_api",
45 "../rtc_base:rtc_base_approved",
46 ]
47}
48
49rtc_source_set("rtc_stream_config") {
50 sources = [
51 "rtc_event_log/rtc_stream_config.cc",
52 "rtc_event_log/rtc_stream_config.h",
53 ]
54
55 deps = [
56 ":rtc_event_log_api",
57 "..:webrtc_common",
58 "../api:libjingle_peerconnection_api",
59 ]
60}
61
62rtc_source_set("rtc_event_pacing") {
63 sources = [
Ilya Nikolaevskiya4259f62017-12-05 13:19:45 +010064 "rtc_event_log/events/rtc_event_alr_state.cc",
65 "rtc_event_log/events/rtc_event_alr_state.h",
Qingsi Wang001546d2018-01-24 16:23:20 -080066 ]
67
68 deps = [
69 ":rtc_event_log_api",
70 "../:typedefs",
71 ]
72}
73
74rtc_source_set("rtc_event_audio") {
75 sources = [
Elad Alon652cc842017-10-02 11:27:52 +020076 "rtc_event_log/events/rtc_event_audio_network_adaptation.cc",
77 "rtc_event_log/events/rtc_event_audio_network_adaptation.h",
78 "rtc_event_log/events/rtc_event_audio_playout.cc",
79 "rtc_event_log/events/rtc_event_audio_playout.h",
80 "rtc_event_log/events/rtc_event_audio_receive_stream_config.cc",
81 "rtc_event_log/events/rtc_event_audio_receive_stream_config.h",
82 "rtc_event_log/events/rtc_event_audio_send_stream_config.cc",
83 "rtc_event_log/events/rtc_event_audio_send_stream_config.h",
Qingsi Wang001546d2018-01-24 16:23:20 -080084 ]
85
86 deps = [
87 ":rtc_event_log_api",
88 ":rtc_stream_config",
89 "../modules/audio_coding:audio_network_adaptor_config",
90 ]
91}
92
93rtc_source_set("rtc_event_bwe") {
94 sources = [
Elad Alon652cc842017-10-02 11:27:52 +020095 "rtc_event_log/events/rtc_event_bwe_update_delay_based.cc",
96 "rtc_event_log/events/rtc_event_bwe_update_delay_based.h",
97 "rtc_event_log/events/rtc_event_bwe_update_loss_based.cc",
98 "rtc_event_log/events/rtc_event_bwe_update_loss_based.h",
Elad Alon652cc842017-10-02 11:27:52 +020099 "rtc_event_log/events/rtc_event_probe_cluster_created.cc",
100 "rtc_event_log/events/rtc_event_probe_cluster_created.h",
101 "rtc_event_log/events/rtc_event_probe_result_failure.cc",
102 "rtc_event_log/events/rtc_event_probe_result_failure.h",
103 "rtc_event_log/events/rtc_event_probe_result_success.cc",
104 "rtc_event_log/events/rtc_event_probe_result_success.h",
Qingsi Wang001546d2018-01-24 16:23:20 -0800105 ]
106
107 deps = [
108 ":rtc_event_log_api",
109 "../modules/remote_bitrate_estimator:remote_bitrate_estimator",
110 ]
111}
112
113rtc_source_set("rtc_event_rtp_rtcp") {
114 sources = [
Elad Alon652cc842017-10-02 11:27:52 +0200115 "rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc",
116 "rtc_event_log/events/rtc_event_rtcp_packet_incoming.h",
117 "rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc",
118 "rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h",
119 "rtc_event_log/events/rtc_event_rtp_packet_incoming.cc",
120 "rtc_event_log/events/rtc_event_rtp_packet_incoming.h",
121 "rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc",
122 "rtc_event_log/events/rtc_event_rtp_packet_outgoing.h",
Qingsi Wang001546d2018-01-24 16:23:20 -0800123 ]
124
125 deps = [
126 ":rtc_event_log_api",
127 "../api:array_view",
128 "../modules/rtp_rtcp:rtp_rtcp_format",
129 "../rtc_base:rtc_base_approved",
130 ]
131}
132
133rtc_source_set("rtc_event_video") {
134 sources = [
Elad Alon652cc842017-10-02 11:27:52 +0200135 "rtc_event_log/events/rtc_event_video_receive_stream_config.cc",
136 "rtc_event_log/events/rtc_event_video_receive_stream_config.h",
137 "rtc_event_log/events/rtc_event_video_send_stream_config.cc",
138 "rtc_event_log/events/rtc_event_video_send_stream_config.h",
skvladcc91d282016-10-03 18:31:22 -0700139 ]
Elad Alon83ccca12017-10-04 13:18:26 +0200140
kjellander727ac1d2017-03-08 02:12:11 -0800141 deps = [
Qingsi Wang001546d2018-01-24 16:23:20 -0800142 ":rtc_event_log_api",
143 ":rtc_stream_config",
kjellander727ac1d2017-03-08 02:12:11 -0800144 ]
skvladcc91d282016-10-03 18:31:22 -0700145}
146
Qingsi Wang001546d2018-01-24 16:23:20 -0800147rtc_static_library("rtc_event_log_impl_encoder") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000148 visibility = [ "*" ]
skvladcc91d282016-10-03 18:31:22 -0700149 sources = [
Elad Alon1d87b0e2017-10-03 15:01:03 +0200150 "rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc",
151 "rtc_event_log/encoder/rtc_event_log_encoder_legacy.h",
skvladcc91d282016-10-03 18:31:22 -0700152 ]
153
154 defines = []
155
156 deps = [
Qingsi Wang001546d2018-01-24 16:23:20 -0800157 ":rtc_event_audio",
158 ":rtc_event_bwe",
skvladcc91d282016-10-03 18:31:22 -0700159 ":rtc_event_log_api",
Qingsi Wang001546d2018-01-24 16:23:20 -0800160 ":rtc_event_log_impl_output",
161 ":rtc_event_pacing",
162 ":rtc_event_rtp_rtcp",
163 ":rtc_event_video",
164 ":rtc_stream_config",
minyue4b7c9522017-01-24 04:54:59 -0800165 "../modules/audio_coding:audio_network_adaptor",
michaelt97653702017-04-11 00:49:44 -0700166 "../modules/remote_bitrate_estimator:remote_bitrate_estimator",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100167 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100168 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700169 "../rtc_base:rtc_base_approved",
skvladcc91d282016-10-03 18:31:22 -0700170 ]
171
172 if (rtc_enable_protobuf) {
173 defines += [ "ENABLE_RTC_EVENT_LOG" ]
174 deps += [ ":rtc_event_log_proto" ]
175 }
Elad Alon83ccca12017-10-04 13:18:26 +0200176
177 # TODO(eladalon): Remove this.
kjellandere40a7ee2016-10-16 23:56:12 -0700178 if (!build_with_chromium && is_clang) {
179 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
skvladcc91d282016-10-03 18:31:22 -0700180 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
181 }
182}
183
Qingsi Wang001546d2018-01-24 16:23:20 -0800184rtc_source_set("rtc_event_log_impl_output") {
185 sources = [
186 "rtc_event_log/output/rtc_event_log_output_file.cc",
187 "rtc_event_log/output/rtc_event_log_output_file.h",
188 ]
189
190 deps = [
191 ":rtc_event_log_api",
192 "../api:libjingle_logging_api",
193 "../rtc_base:checks",
194 "../rtc_base:rtc_base_approved",
195 ]
196}
197
198rtc_static_library("rtc_event_log_impl_base") {
199 visibility = [ "*" ]
200 sources = [
201 "rtc_event_log/rtc_event_log_factory.cc",
202 "rtc_event_log/rtc_event_log_factory.h",
203 "rtc_event_log/rtc_event_log_impl.cc",
204 ]
205
206 defines = []
207
208 deps = [
209 ":rtc_event_log_api",
210 ":rtc_event_log_impl_encoder",
211 ":rtc_event_log_impl_output",
212 "../rtc_base:checks",
213 "../rtc_base:rtc_base_approved",
214 "../rtc_base:rtc_task_queue_api",
215 "../rtc_base:sequenced_task_checker",
216 ]
217
218 if (rtc_enable_protobuf) {
219 defines += [ "ENABLE_RTC_EVENT_LOG" ]
220 deps += [ ":rtc_event_log_proto" ]
221 }
222}
223
skvladcc91d282016-10-03 18:31:22 -0700224if (rtc_enable_protobuf) {
225 proto_library("rtc_event_log_proto") {
226 sources = [
227 "rtc_event_log/rtc_event_log.proto",
228 ]
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200229 proto_out_dir = "logging/rtc_event_log"
skvladcc91d282016-10-03 18:31:22 -0700230 }
skvladcc91d282016-10-03 18:31:22 -0700231
Mirko Bonadeib3c210f2017-12-15 17:12:42 +0100232 proto_library("rtc_event_log2_proto") {
233 sources = [
234 "rtc_event_log/rtc_event_log2.proto",
235 ]
236 proto_out_dir = "logging/rtc_event_log"
237 }
238
skvladcc91d282016-10-03 18:31:22 -0700239 rtc_static_library("rtc_event_log_parser") {
240 sources = [
241 "rtc_event_log/rtc_event_log_parser.cc",
242 "rtc_event_log/rtc_event_log_parser.h",
243 ]
244
Mirko Bonadei818d9102017-12-12 12:46:13 +0100245 deps = [
Qingsi Wang001546d2018-01-24 16:23:20 -0800246 ":rtc_event_bwe",
Mirko Bonadeib3c210f2017-12-15 17:12:42 +0100247 ":rtc_event_log2_proto",
kjellander727ac1d2017-03-08 02:12:11 -0800248 ":rtc_event_log_api",
skvladcc91d282016-10-03 18:31:22 -0700249 ":rtc_event_log_proto",
Qingsi Wang001546d2018-01-24 16:23:20 -0800250 ":rtc_stream_config",
skvladcc91d282016-10-03 18:31:22 -0700251 "..:webrtc_common",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100252 "../call:video_stream_api",
michaeltcde46b72017-04-06 05:59:10 -0700253 "../modules/audio_coding:audio_network_adaptor",
michaelt97653702017-04-11 00:49:44 -0700254 "../modules/remote_bitrate_estimator:remote_bitrate_estimator",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100255 "../modules/rtp_rtcp",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100256 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100257 "../rtc_base:checks",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100258 "../rtc_base:protobuf_utils",
259 "../rtc_base:rtc_base_approved",
skvladcc91d282016-10-03 18:31:22 -0700260 ]
261
kjellandere40a7ee2016-10-16 23:56:12 -0700262 if (!build_with_chromium && is_clang) {
263 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
skvladcc91d282016-10-03 18:31:22 -0700264 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
265 }
266 }
ehmaldonado1fd08c12017-01-17 02:37:34 -0800267
268 if (rtc_include_tests) {
269 rtc_source_set("rtc_event_log_tests") {
270 testonly = true
Elad Alon1d87b0e2017-10-03 15:01:03 +0200271 assert(rtc_enable_protobuf)
272 defines = [ "ENABLE_RTC_EVENT_LOG" ]
Elad Alon8233bfe2017-10-05 15:27:29 +0200273 if (rtc_use_memcheck) {
274 defines += [ "WEBRTC_USE_MEMCHECK" ]
275 }
ehmaldonado1fd08c12017-01-17 02:37:34 -0800276 sources = [
Elad Alon1d87b0e2017-10-03 15:01:03 +0200277 "rtc_event_log/encoder/rtc_event_log_encoder_unittest.cc",
Elad Alon83ccca12017-10-04 13:18:26 +0200278 "rtc_event_log/output/rtc_event_log_output_file_unittest.cc",
ehmaldonado1fd08c12017-01-17 02:37:34 -0800279 "rtc_event_log/rtc_event_log_unittest.cc",
280 "rtc_event_log/rtc_event_log_unittest_helper.cc",
eladalonb5c319a2017-08-17 08:32:39 -0700281 "rtc_event_log/rtc_event_log_unittest_helper.h",
ehmaldonado1fd08c12017-01-17 02:37:34 -0800282 ]
283 deps = [
Qingsi Wang001546d2018-01-24 16:23:20 -0800284 ":rtc_event_audio",
285 ":rtc_event_bwe",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100286 ":rtc_event_log_api",
Qingsi Wang001546d2018-01-24 16:23:20 -0800287 ":rtc_event_log_impl_base",
288 ":rtc_event_log_impl_encoder",
289 ":rtc_event_log_impl_output",
ehmaldonado1fd08c12017-01-17 02:37:34 -0800290 ":rtc_event_log_parser",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100291 ":rtc_event_log_proto",
Qingsi Wang001546d2018-01-24 16:23:20 -0800292 ":rtc_event_rtp_rtcp",
293 ":rtc_event_video",
294 ":rtc_stream_config",
Mirko Bonadeia0e1a552017-12-04 10:50:51 +0100295 "../api:libjingle_peerconnection_api",
ehmaldonado1fd08c12017-01-17 02:37:34 -0800296 "../call",
Mirko Bonadeia0e1a552017-12-04 10:50:51 +0100297 "../call:call_interfaces",
michaeltcde46b72017-04-06 05:59:10 -0700298 "../modules/audio_coding:audio_network_adaptor",
michaelt97653702017-04-11 00:49:44 -0700299 "../modules/remote_bitrate_estimator:remote_bitrate_estimator",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100300 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100301 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700302 "../rtc_base:rtc_base_approved",
303 "../rtc_base:rtc_base_tests_utils",
kjellander727ac1d2017-03-08 02:12:11 -0800304 "../test:test_support",
ehmaldonado1fd08c12017-01-17 02:37:34 -0800305 "//testing/gtest",
306 ]
307 if (!build_with_chromium && is_clang) {
308 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
309 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
310 }
311 }
ivoc54b6e982017-02-08 00:28:09 -0800312 rtc_test("rtc_event_log2rtp_dump") {
313 testonly = true
314 sources = [
315 "rtc_event_log/rtc_event_log2rtp_dump.cc",
316 ]
317 deps = [
318 ":rtc_event_log_api",
ivoc54b6e982017-02-08 00:28:09 -0800319 ":rtc_event_log_parser",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100320 "../modules/rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100321 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100322 "../rtc_base:checks",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100323 "../rtc_base:protobuf_utils",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700324 "../rtc_base:rtc_base_approved",
ivoc54b6e982017-02-08 00:28:09 -0800325 "../system_wrappers:field_trial_default",
326 "../system_wrappers:metrics_default",
327 "../test:rtp_test_utils",
ivoc54b6e982017-02-08 00:28:09 -0800328 ]
329 if (!build_with_chromium && is_clang) {
330 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
331 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
332 }
333 }
ehmaldonado1fd08c12017-01-17 02:37:34 -0800334 }
Patrik Höglund731082c2018-01-03 09:08:20 +0100335
tereliusd4ed7f52017-02-08 04:22:53 -0800336 if (rtc_include_tests) {
337 rtc_executable("rtc_event_log2text") {
338 testonly = true
339 sources = [
340 "rtc_event_log/rtc_event_log2text.cc",
341 ]
342 deps = [
343 ":rtc_event_log_api",
tereliusd4ed7f52017-02-08 04:22:53 -0800344 ":rtc_event_log_parser",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100345 "../:webrtc_common",
Stefan Holmer1acbd682017-09-01 15:29:28 +0200346 "../call:video_stream_api",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100347 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100348 "../rtc_base:checks",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100349 "../rtc_base:protobuf_utils",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700350 "../rtc_base:rtc_base_approved",
tereliusbb46b952017-02-08 09:37:30 -0800351
352 # TODO(kwiberg): Remove this dependency.
kwiberg087bd342017-02-10 08:15:44 -0800353 "../api/audio_codecs:audio_codecs_api",
Elad Alona96fd7f2017-09-15 16:13:21 +0200354 "../modules/audio_coding:audio_network_adaptor_config",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100355 "../modules/rtp_rtcp",
tereliusd4ed7f52017-02-08 04:22:53 -0800356 ]
357 if (!build_with_chromium && is_clang) {
358 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
359 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
360 }
361 }
362 }
tereliusee37e862017-04-28 07:48:17 -0700363 if (rtc_include_tests) {
364 rtc_executable("rtc_event_log2stats") {
365 testonly = true
366 sources = [
367 "rtc_event_log/rtc_event_log2stats.cc",
368 ]
369 deps = [
370 ":rtc_event_log_api",
tereliusee37e862017-04-28 07:48:17 -0700371 ":rtc_event_log_proto",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100372 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700373 "../rtc_base:rtc_base_approved",
tereliusee37e862017-04-28 07:48:17 -0700374 ]
375 if (!build_with_chromium && is_clang) {
376 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
377 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
378 }
379 }
380 }
skvladcc91d282016-10-03 18:31:22 -0700381}
Patrik Höglund731082c2018-01-03 09:08:20 +0100382
383if (rtc_include_tests) {
384 rtc_source_set("mocks") {
385 testonly = true
386 sources = [
387 "rtc_event_log/mock/mock_rtc_event_log.h",
388 ]
389 deps = [
390 ":rtc_event_log_api",
391 "../../test:test_support",
392 ]
393 }
394}