xref: /aosp_15_r20/external/webrtc/logging/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# 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
9import("../webrtc.gni")
10if (rtc_enable_protobuf) {
11  import("//third_party/protobuf/proto_library.gni")
12}
13if (is_android) {
14  import("//build/config/android/config.gni")
15  import("//build/config/android/rules.gni")
16}
17
18group("logging") {
19  deps = [
20    ":rtc_event_audio",
21    ":rtc_event_begin_end",
22    ":rtc_event_bwe",
23    ":rtc_event_log_impl_encoder",
24    ":rtc_event_pacing",
25    ":rtc_event_rtp_rtcp",
26    ":rtc_event_video",
27  ]
28}
29
30rtc_source_set("rtc_event_log_api") {
31  sources = [ "rtc_event_log/encoder/rtc_event_log_encoder.h" ]
32
33  deps = [ "../api/rtc_event_log" ]
34}
35
36rtc_library("rtc_event_field") {
37  sources = [
38    "rtc_event_log/events/fixed_length_encoding_parameters_v3.cc",
39    "rtc_event_log/events/fixed_length_encoding_parameters_v3.h",
40    "rtc_event_log/events/rtc_event_definition.h",
41    "rtc_event_log/events/rtc_event_field_encoding.cc",
42    "rtc_event_log/events/rtc_event_field_encoding.h",
43    "rtc_event_log/events/rtc_event_field_encoding_parser.cc",
44    "rtc_event_log/events/rtc_event_field_encoding_parser.h",
45    "rtc_event_log/events/rtc_event_field_extraction.cc",
46    "rtc_event_log/events/rtc_event_field_extraction.h",
47  ]
48
49  deps = [
50    ":rtc_event_number_encodings",
51    "../api:array_view",
52    "../api/rtc_event_log",
53    "../api/units:timestamp",
54    "../rtc_base:bitstream_reader",
55    "../rtc_base:checks",
56    "../rtc_base:logging",
57  ]
58  absl_deps = [
59    "//third_party/abseil-cpp/absl/strings",
60    "//third_party/abseil-cpp/absl/types:optional",
61  ]
62}
63
64rtc_library("rtc_stream_config") {
65  sources = [
66    "rtc_event_log/rtc_stream_config.cc",
67    "rtc_event_log/rtc_stream_config.h",
68  ]
69
70  deps = [
71    "../api:rtp_headers",
72    "../api:rtp_parameters",
73  ]
74  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
75}
76
77rtc_library("rtc_event_pacing") {
78  sources = [
79    "rtc_event_log/events/rtc_event_alr_state.cc",
80    "rtc_event_log/events/rtc_event_alr_state.h",
81  ]
82
83  deps = [
84    ":rtc_event_field",
85    "../api/rtc_event_log",
86    "../api/units:timestamp",
87  ]
88  absl_deps = [
89    "//third_party/abseil-cpp/absl/memory",
90    "//third_party/abseil-cpp/absl/strings",
91  ]
92}
93
94rtc_library("rtc_event_audio") {
95  sources = [
96    "rtc_event_log/events/rtc_event_audio_network_adaptation.cc",
97    "rtc_event_log/events/rtc_event_audio_network_adaptation.h",
98    "rtc_event_log/events/rtc_event_audio_playout.cc",
99    "rtc_event_log/events/rtc_event_audio_playout.h",
100    "rtc_event_log/events/rtc_event_audio_receive_stream_config.cc",
101    "rtc_event_log/events/rtc_event_audio_receive_stream_config.h",
102    "rtc_event_log/events/rtc_event_audio_send_stream_config.cc",
103    "rtc_event_log/events/rtc_event_audio_send_stream_config.h",
104  ]
105
106  deps = [
107    ":rtc_event_field",
108    ":rtc_stream_config",
109    "../api/rtc_event_log",
110    "../api/units:timestamp",
111    "../modules/audio_coding:audio_network_adaptor_config",
112    "../rtc_base:checks",
113  ]
114  absl_deps = [
115    "//third_party/abseil-cpp/absl/memory",
116    "//third_party/abseil-cpp/absl/strings",
117  ]
118}
119
120rtc_library("rtc_event_begin_end") {
121  sources = [
122    "rtc_event_log/events/rtc_event_begin_log.cc",
123    "rtc_event_log/events/rtc_event_begin_log.h",
124    "rtc_event_log/events/rtc_event_end_log.cc",
125    "rtc_event_log/events/rtc_event_end_log.h",
126  ]
127  deps = [
128    ":rtc_event_field",
129    "../api:array_view",
130    "../api/rtc_event_log",
131    "../api/units:timestamp",
132  ]
133  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
134}
135
136rtc_library("rtc_event_bwe") {
137  sources = [
138    "rtc_event_log/events/rtc_event_bwe_update_delay_based.cc",
139    "rtc_event_log/events/rtc_event_bwe_update_delay_based.h",
140    "rtc_event_log/events/rtc_event_bwe_update_loss_based.cc",
141    "rtc_event_log/events/rtc_event_bwe_update_loss_based.h",
142    "rtc_event_log/events/rtc_event_probe_cluster_created.cc",
143    "rtc_event_log/events/rtc_event_probe_cluster_created.h",
144    "rtc_event_log/events/rtc_event_probe_result_failure.cc",
145    "rtc_event_log/events/rtc_event_probe_result_failure.h",
146    "rtc_event_log/events/rtc_event_probe_result_success.cc",
147    "rtc_event_log/events/rtc_event_probe_result_success.h",
148    "rtc_event_log/events/rtc_event_remote_estimate.h",
149    "rtc_event_log/events/rtc_event_route_change.cc",
150    "rtc_event_log/events/rtc_event_route_change.h",
151  ]
152
153  deps = [
154    ":rtc_event_field",
155    "../api:network_state_predictor_api",
156    "../api/rtc_event_log",
157    "../api/units:data_rate",
158    "../api/units:timestamp",
159  ]
160  absl_deps = [
161    "//third_party/abseil-cpp/absl/memory",
162    "//third_party/abseil-cpp/absl/strings",
163    "//third_party/abseil-cpp/absl/types:optional",
164  ]
165}
166
167rtc_library("rtc_event_frame_events") {
168  sources = [
169    "rtc_event_log/events/rtc_event_frame_decoded.cc",
170    "rtc_event_log/events/rtc_event_frame_decoded.h",
171  ]
172  deps = [
173    ":rtc_event_field",
174    "../api/rtc_event_log",
175    "../api/units:timestamp",
176    "../api/video:video_frame",
177    "../rtc_base:timeutils",
178  ]
179  absl_deps = [
180    "//third_party/abseil-cpp/absl/memory",
181    "//third_party/abseil-cpp/absl/strings",
182    "//third_party/abseil-cpp/absl/types:optional",
183  ]
184}
185
186rtc_library("rtc_event_generic_packet_events") {
187  visibility = [ "*" ]
188  sources = [
189    "rtc_event_log/events/rtc_event_generic_ack_received.cc",
190    "rtc_event_log/events/rtc_event_generic_ack_received.h",
191    "rtc_event_log/events/rtc_event_generic_packet_received.cc",
192    "rtc_event_log/events/rtc_event_generic_packet_received.h",
193    "rtc_event_log/events/rtc_event_generic_packet_sent.cc",
194    "rtc_event_log/events/rtc_event_generic_packet_sent.h",
195  ]
196  deps = [
197    ":rtc_event_field",
198    "../api/rtc_event_log",
199    "../api/units:timestamp",
200    "../rtc_base:timeutils",
201  ]
202  absl_deps = [
203    "//third_party/abseil-cpp/absl/memory",
204    "//third_party/abseil-cpp/absl/strings",
205    "//third_party/abseil-cpp/absl/types:optional",
206  ]
207}
208
209rtc_library("rtc_event_rtp_rtcp") {
210  sources = [
211    "rtc_event_log/events/logged_rtp_rtcp.h",
212    "rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc",
213    "rtc_event_log/events/rtc_event_rtcp_packet_incoming.h",
214    "rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc",
215    "rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h",
216    "rtc_event_log/events/rtc_event_rtp_packet_incoming.cc",
217    "rtc_event_log/events/rtc_event_rtp_packet_incoming.h",
218    "rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc",
219    "rtc_event_log/events/rtc_event_rtp_packet_outgoing.h",
220  ]
221
222  deps = [
223    ":rtc_event_field",
224    "../api:array_view",
225    "../api:rtp_headers",
226    "../api/rtc_event_log",
227    "../api/units:timestamp",
228    "../modules/rtp_rtcp:rtp_rtcp_format",
229    "../rtc_base:buffer",
230    "../rtc_base:checks",
231  ]
232  absl_deps = [
233    "//third_party/abseil-cpp/absl/memory",
234    "//third_party/abseil-cpp/absl/strings",
235  ]
236}
237
238rtc_library("rtc_event_video") {
239  sources = [
240    "rtc_event_log/events/rtc_event_video_receive_stream_config.cc",
241    "rtc_event_log/events/rtc_event_video_receive_stream_config.h",
242    "rtc_event_log/events/rtc_event_video_send_stream_config.cc",
243    "rtc_event_log/events/rtc_event_video_send_stream_config.h",
244  ]
245
246  deps = [
247    ":rtc_event_field",
248    ":rtc_stream_config",
249    "../api/rtc_event_log",
250    "../api/units:timestamp",
251    "../rtc_base:checks",
252  ]
253  absl_deps = [
254    "//third_party/abseil-cpp/absl/memory",
255    "//third_party/abseil-cpp/absl/strings",
256  ]
257}
258
259rtc_library("rtc_event_number_encodings") {
260  sources = [
261    "rtc_event_log/encoder/bit_writer.cc",
262    "rtc_event_log/encoder/bit_writer.h",
263    "rtc_event_log/encoder/rtc_event_log_encoder_common.cc",
264    "rtc_event_log/encoder/rtc_event_log_encoder_common.h",
265    "rtc_event_log/encoder/var_int.cc",
266    "rtc_event_log/encoder/var_int.h",
267  ]
268
269  defines = []
270
271  deps = [
272    "../rtc_base:bit_buffer",
273    "../rtc_base:bitstream_reader",
274    "../rtc_base:checks",
275    "../rtc_base:ignore_wundef",
276    "../rtc_base:macromagic",
277  ]
278  absl_deps = [
279    "//third_party/abseil-cpp/absl/memory",
280    "//third_party/abseil-cpp/absl/strings",
281    "//third_party/abseil-cpp/absl/types:optional",
282  ]
283}
284
285# TODO(eladalon): Break down into (1) encoder and (2) decoder; we don't need
286# the decoder code in the WebRTC library, only in unit tests and tools.
287rtc_library("rtc_event_log_impl_encoder") {
288  sources = [
289    "rtc_event_log/encoder/blob_encoding.cc",
290    "rtc_event_log/encoder/blob_encoding.h",
291    "rtc_event_log/encoder/delta_encoding.cc",
292    "rtc_event_log/encoder/delta_encoding.h",
293  ]
294
295  defines = []
296
297  deps = [
298    ":rtc_event_number_encodings",
299    "../api:rtp_headers",
300    "../api:rtp_parameters",
301    "../api/transport:network_control",
302    "../rtc_base:bit_buffer",
303    "../rtc_base:bitstream_reader",
304    "../rtc_base:buffer",
305    "../rtc_base:checks",
306    "../rtc_base:ignore_wundef",
307    "../rtc_base:logging",
308    "../rtc_base:safe_conversions",
309  ]
310  absl_deps = [
311    "//third_party/abseil-cpp/absl/memory",
312    "//third_party/abseil-cpp/absl/strings",
313    "//third_party/abseil-cpp/absl/types:optional",
314  ]
315
316  if (rtc_enable_protobuf) {
317    deps += [
318      ":ice_log",
319      ":rtc_event_audio",
320      ":rtc_event_begin_end",
321      ":rtc_event_bwe",
322      ":rtc_event_field",
323      ":rtc_event_frame_events",
324      ":rtc_event_generic_packet_events",
325      ":rtc_event_log2_proto",
326      ":rtc_event_log_api",
327      ":rtc_event_log_proto",
328      ":rtc_event_pacing",
329      ":rtc_event_rtp_rtcp",
330      ":rtc_event_video",
331      ":rtc_stream_config",
332      "../api:array_view",
333      "../api:network_state_predictor_api",
334      "../modules/audio_coding:audio_network_adaptor",
335      "../modules/rtp_rtcp:rtp_rtcp_format",
336    ]
337    sources += [
338      "rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc",
339      "rtc_event_log/encoder/rtc_event_log_encoder_legacy.h",
340      "rtc_event_log/encoder/rtc_event_log_encoder_new_format.cc",
341      "rtc_event_log/encoder/rtc_event_log_encoder_new_format.h",
342      "rtc_event_log/encoder/rtc_event_log_encoder_v3.cc",
343      "rtc_event_log/encoder/rtc_event_log_encoder_v3.h",
344    ]
345  }
346}
347
348# TODO(bugs.webrtc.org/6463): For backwards compatibility; delete as
349# soon as downstream dependencies are updated.
350rtc_source_set("rtc_event_log_impl_output") {
351  sources = [ "rtc_event_log/output/rtc_event_log_output_file.h" ]
352  deps = [ "../api:rtc_event_log_output_file" ]
353}
354
355if (rtc_enable_protobuf) {
356  rtc_library("rtc_event_log_impl") {
357    visibility = [ "../api/rtc_event_log:rtc_event_log_factory" ]
358    sources = [
359      "rtc_event_log/rtc_event_log_impl.cc",
360      "rtc_event_log/rtc_event_log_impl.h",
361    ]
362    deps = [
363      ":ice_log",
364      ":rtc_event_log_api",
365      ":rtc_event_log_impl_encoder",
366      "../api:libjingle_logging_api",
367      "../api:sequence_checker",
368      "../api/rtc_event_log",
369      "../api/task_queue",
370      "../api/units:time_delta",
371      "../rtc_base:checks",
372      "../rtc_base:logging",
373      "../rtc_base:macromagic",
374      "../rtc_base:rtc_event",
375      "../rtc_base:rtc_task_queue",
376      "../rtc_base:safe_conversions",
377      "../rtc_base:safe_minmax",
378      "../rtc_base:timeutils",
379      "../rtc_base/system:no_unique_address",
380    ]
381    absl_deps = [
382      "//third_party/abseil-cpp/absl/strings",
383      "//third_party/abseil-cpp/absl/types:optional",
384    ]
385  }
386}
387
388rtc_library("fake_rtc_event_log") {
389  testonly = true
390  sources = [
391    "rtc_event_log/fake_rtc_event_log.cc",
392    "rtc_event_log/fake_rtc_event_log.h",
393    "rtc_event_log/fake_rtc_event_log_factory.cc",
394    "rtc_event_log/fake_rtc_event_log_factory.h",
395  ]
396
397  deps = [
398    "../api/rtc_event_log",
399    "../rtc_base",
400    "../rtc_base:macromagic",
401    "../rtc_base/synchronization:mutex",
402  ]
403}
404
405if (rtc_enable_protobuf) {
406  proto_library("rtc_event_log_proto") {
407    visibility = [ "*" ]
408    sources = [ "rtc_event_log/rtc_event_log.proto" ]
409    proto_out_dir = "logging/rtc_event_log"
410  }
411
412  proto_library("rtc_event_log2_proto") {
413    visibility = [ "*" ]
414    sources = [ "rtc_event_log/rtc_event_log2.proto" ]
415    proto_out_dir = "logging/rtc_event_log"
416  }
417
418  rtc_library("rtc_event_log_parser") {
419    visibility = [ "*" ]
420    sources = [
421      "rtc_event_log/logged_events.h",
422      "rtc_event_log/rtc_event_log_parser.cc",
423      "rtc_event_log/rtc_event_log_parser.h",
424      "rtc_event_log/rtc_event_processor.cc",
425      "rtc_event_log/rtc_event_processor.h",
426    ]
427
428    deps = [
429      ":ice_log",
430      ":rtc_event_audio",
431      ":rtc_event_begin_end",
432      ":rtc_event_bwe",
433      ":rtc_event_frame_events",
434      ":rtc_event_generic_packet_events",
435      ":rtc_event_log2_proto",
436      ":rtc_event_log_impl_encoder",
437      ":rtc_event_log_proto",
438      ":rtc_event_number_encodings",
439      ":rtc_event_pacing",
440      ":rtc_event_rtp_rtcp",
441      ":rtc_event_video",
442      ":rtc_stream_config",
443      "../api:function_view",
444      "../api:network_state_predictor_api",
445      "../api:rtp_headers",
446      "../api:rtp_parameters",
447      "../api/rtc_event_log",
448      "../api/units:data_rate",
449      "../api/units:time_delta",
450      "../api/units:timestamp",
451      "../api/video:video_frame",
452      "../call:video_stream_api",
453      "../modules:module_api_public",
454      "../modules/audio_coding:audio_network_adaptor",
455      "../modules/rtp_rtcp:rtp_rtcp_format",
456      "../rtc_base:checks",
457      "../rtc_base:copy_on_write_buffer",
458      "../rtc_base:ignore_wundef",
459      "../rtc_base:logging",
460      "../rtc_base:protobuf_utils",
461      "../rtc_base:rtc_numerics",
462      "../rtc_base:safe_conversions",
463      "../rtc_base/system:file_wrapper",
464    ]
465    absl_deps = [
466      "//third_party/abseil-cpp/absl/base:core_headers",
467      "//third_party/abseil-cpp/absl/memory",
468      "//third_party/abseil-cpp/absl/strings",
469      "//third_party/abseil-cpp/absl/types:optional",
470    ]
471  }
472
473  if (rtc_include_tests) {
474    rtc_library("rtc_event_log_tests") {
475      testonly = true
476      assert(rtc_enable_protobuf)
477      sources = [
478        "rtc_event_log/encoder/blob_encoding_unittest.cc",
479        "rtc_event_log/encoder/delta_encoding_unittest.cc",
480        "rtc_event_log/encoder/rtc_event_log_encoder_common_unittest.cc",
481        "rtc_event_log/encoder/rtc_event_log_encoder_unittest.cc",
482        "rtc_event_log/events/rtc_event_field_encoding_unittest.cc",
483        "rtc_event_log/events/rtc_event_field_extraction_unittest.cc",
484        "rtc_event_log/rtc_event_log_unittest.cc",
485        "rtc_event_log/rtc_event_log_unittest_helper.cc",
486        "rtc_event_log/rtc_event_log_unittest_helper.h",
487        "rtc_event_log/rtc_event_processor_unittest.cc",
488      ]
489      deps = [
490        ":ice_log",
491        ":rtc_event_audio",
492        ":rtc_event_bwe",
493        ":rtc_event_field",
494        ":rtc_event_frame_events",
495        ":rtc_event_generic_packet_events",
496        ":rtc_event_log2_proto",
497        ":rtc_event_log_impl_encoder",
498        ":rtc_event_log_parser",
499        ":rtc_event_log_proto",
500        ":rtc_event_number_encodings",
501        ":rtc_event_pacing",
502        ":rtc_event_rtp_rtcp",
503        ":rtc_event_video",
504        ":rtc_stream_config",
505        "../api:array_view",
506        "../api:network_state_predictor_api",
507        "../api:rtc_event_log_output_file",
508        "../api:rtp_headers",
509        "../api:rtp_parameters",
510        "../api/rtc_event_log",
511        "../api/rtc_event_log:rtc_event_log_factory",
512        "../api/task_queue:default_task_queue_factory",
513        "../api/units:time_delta",
514        "../api/units:timestamp",
515        "../call",
516        "../call:call_interfaces",
517        "../modules/audio_coding:audio_network_adaptor",
518        "../modules/rtp_rtcp:rtp_rtcp_format",
519        "../rtc_base:buffer",
520        "../rtc_base:checks",
521        "../rtc_base:macromagic",
522        "../rtc_base:random",
523        "../rtc_base:rtc_base_tests_utils",
524        "../rtc_base:timeutils",
525        "../system_wrappers",
526        "../test:fileutils",
527        "../test:test_support",
528        "../test/logging:log_writer",
529        "//testing/gtest",
530      ]
531      absl_deps = [
532        "//third_party/abseil-cpp/absl/memory",
533        "//third_party/abseil-cpp/absl/strings",
534        "//third_party/abseil-cpp/absl/types:optional",
535      ]
536    }
537
538    if (!build_with_chromium) {
539      rtc_executable("rtc_event_log_rtp_dump") {
540        testonly = true
541        sources = [ "rtc_event_log/rtc_event_log2rtp_dump.cc" ]
542        deps = [
543          ":rtc_event_log_parser",
544          "../api:array_view",
545          "../api:rtp_headers",
546          "../api/rtc_event_log",
547          "../modules/rtp_rtcp",
548          "../modules/rtp_rtcp:rtp_rtcp_format",
549          "../rtc_base:checks",
550          "../rtc_base:protobuf_utils",
551          "../test:rtp_test_utils",
552          "//third_party/abseil-cpp/absl/flags:flag",
553          "//third_party/abseil-cpp/absl/flags:parse",
554          "//third_party/abseil-cpp/absl/flags:usage",
555          "//third_party/abseil-cpp/absl/memory",
556          "//third_party/abseil-cpp/absl/strings",
557          "//third_party/abseil-cpp/absl/types:optional",
558        ]
559      }
560    }
561  }
562}
563
564rtc_library("ice_log") {
565  sources = [
566    "rtc_event_log/events/rtc_event_dtls_transport_state.cc",
567    "rtc_event_log/events/rtc_event_dtls_transport_state.h",
568    "rtc_event_log/events/rtc_event_dtls_writable_state.cc",
569    "rtc_event_log/events/rtc_event_dtls_writable_state.h",
570    "rtc_event_log/events/rtc_event_ice_candidate_pair.cc",
571    "rtc_event_log/events/rtc_event_ice_candidate_pair.h",
572    "rtc_event_log/events/rtc_event_ice_candidate_pair_config.cc",
573    "rtc_event_log/events/rtc_event_ice_candidate_pair_config.h",
574    "rtc_event_log/ice_logger.cc",
575    "rtc_event_log/ice_logger.h",
576  ]
577
578  deps = [
579    ":rtc_event_field",
580    "../api:dtls_transport_interface",
581    "../api:libjingle_logging_api",
582    "../api/rtc_event_log",
583    "../api/units:timestamp",
584  ]
585  absl_deps = [
586    "//third_party/abseil-cpp/absl/memory",
587    "//third_party/abseil-cpp/absl/strings",
588  ]
589}
590
591if (rtc_include_tests) {
592  rtc_library("mocks") {
593    testonly = true
594    sources = [
595      "rtc_event_log/mock/mock_rtc_event_log.cc",
596      "rtc_event_log/mock/mock_rtc_event_log.h",
597    ]
598    deps = [
599      "../api/rtc_event_log",
600      "../test:test_support",
601    ]
602  }
603}
604