xref: /aosp_15_r20/external/webrtc/api/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# Copyright (c) 2015 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 (is_android) {
11  import("//build/config/android/config.gni")
12  import("//build/config/android/rules.gni")
13}
14
15group("api") {
16  visibility = [ "*" ]
17  deps = []
18
19  if (!build_with_mozilla) {
20    deps += [ ":libjingle_peerconnection_api" ]
21  }
22}
23
24rtc_source_set("call_api") {
25  visibility = [ "*" ]
26  sources = [ "call/audio_sink.h" ]
27}
28
29rtc_source_set("callfactory_api") {
30  visibility = [ "*" ]
31  sources = [ "call/call_factory_interface.h" ]
32  deps = [
33    "../call:rtp_interfaces",
34    "../rtc_base/system:rtc_export",
35  ]
36}
37
38if (!build_with_chromium) {
39  rtc_library("create_peerconnection_factory") {
40    visibility = [ "*" ]
41    allow_poison = [ "default_task_queue" ]
42    sources = [
43      "create_peerconnection_factory.cc",
44      "create_peerconnection_factory.h",
45    ]
46    deps = [
47      ":callfactory_api",
48      ":libjingle_peerconnection_api",
49      ":scoped_refptr",
50      "../api/rtc_event_log:rtc_event_log_factory",
51      "../media:rtc_audio_video",
52      "../media:rtc_media_base",
53      "../modules/audio_device:audio_device_api",
54      "../modules/audio_processing:api",
55      "../pc:peer_connection_factory",
56      "../pc:webrtc_sdp",
57      "../rtc_base",
58      "../rtc_base:threading",
59      "../stats:rtc_stats",
60      "audio:audio_mixer_api",
61      "audio_codecs:audio_codecs_api",
62      "task_queue:default_task_queue_factory",
63      "transport:field_trial_based_config",
64      "video_codecs:video_codecs_api",
65    ]
66  }
67}
68
69rtc_library("rtp_headers") {
70  visibility = [ "*" ]
71  sources = [
72    "rtp_headers.cc",
73    "rtp_headers.h",
74  ]
75  deps = [
76    ":array_view",
77    "units:timestamp",
78    "video:video_rtp_headers",
79  ]
80  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
81}
82
83rtc_library("rtp_packet_info") {
84  visibility = [ "*" ]
85  sources = [
86    "rtp_packet_info.cc",
87    "rtp_packet_info.h",
88    "rtp_packet_infos.h",
89  ]
90  deps = [
91    ":array_view",
92    ":make_ref_counted",
93    ":refcountedbase",
94    ":rtp_headers",
95    ":scoped_refptr",
96    "../rtc_base/system:rtc_export",
97    "units:time_delta",
98    "units:timestamp",
99  ]
100  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
101}
102
103rtc_source_set("video_track_source_constraints") {
104  visibility = [ "*" ]
105  sources = [ "video_track_source_constraints.h" ]
106  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
107}
108
109rtc_library("media_stream_interface") {
110  visibility = [ "*" ]
111  sources = [
112    "media_stream_interface.cc",
113    "media_stream_interface.h",
114    "media_stream_track.h",
115    "notifier.h",
116  ]
117  deps = [
118    ":audio_options_api",
119    ":make_ref_counted",
120    ":rtp_parameters",
121    ":scoped_refptr",
122    ":sequence_checker",
123    ":video_track_source_constraints",
124    "../modules/audio_processing:audio_processing_statistics",
125    "../rtc_base:checks",
126    "../rtc_base:refcount",
127    "../rtc_base/system:no_unique_address",
128    "../rtc_base/system:rtc_export",
129    "video:recordable_encoded_frame",
130    "video:video_frame",
131  ]
132  absl_deps = [
133    "//third_party/abseil-cpp/absl/strings",
134    "//third_party/abseil-cpp/absl/types:optional",
135  ]
136}
137
138rtc_library("candidate") {
139  visibility = [ "*" ]
140
141  sources = [
142    "candidate.cc",
143    "candidate.h",
144  ]
145  deps = [
146    "../rtc_base",
147    "../rtc_base:checks",
148    "../rtc_base:ip_address",
149    "../rtc_base:logging",
150    "../rtc_base:network_constants",
151    "../rtc_base:socket_address",
152    "../rtc_base:stringutils",
153    "../rtc_base/system:rtc_export",
154  ]
155  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
156}
157
158rtc_source_set("turn_customizer") {
159  visibility = [ "*" ]
160  sources = [ "turn_customizer.h" ]
161  deps = [ "transport:stun_types" ]
162}
163
164rtc_source_set("ice_transport_interface") {
165  visibility = [ "*" ]
166
167  sources = [ "ice_transport_interface.h" ]
168  deps = [
169    ":async_dns_resolver",
170    ":packet_socket_factory",
171    ":rtc_error",
172    ":scoped_refptr",
173    "../rtc_base:refcount",
174    "rtc_event_log:rtc_event_log",
175  ]
176}
177
178rtc_library("dtls_transport_interface") {
179  visibility = [ "*" ]
180
181  sources = [
182    "dtls_transport_interface.cc",
183    "dtls_transport_interface.h",
184  ]
185  deps = [
186    ":ice_transport_interface",
187    ":rtc_error",
188    ":scoped_refptr",
189    "../rtc_base",
190    "../rtc_base:refcount",
191    "../rtc_base/system:rtc_export",
192  ]
193  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
194}
195
196rtc_library("dtmf_sender_interface") {
197  visibility = [ "*" ]
198
199  sources = [ "dtmf_sender_interface.h" ]
200  deps = [
201    ":media_stream_interface",
202    "../rtc_base:refcount",
203  ]
204}
205
206rtc_library("rtp_sender_interface") {
207  visibility = [ "*" ]
208
209  sources = [
210    "rtp_sender_interface.cc",
211    "rtp_sender_interface.h",
212  ]
213  deps = [
214    ":dtls_transport_interface",
215    ":dtmf_sender_interface",
216    ":frame_transformer_interface",
217    ":media_stream_interface",
218    ":rtc_error",
219    ":rtp_parameters",
220    ":scoped_refptr",
221    "../rtc_base:checks",
222    "../rtc_base:refcount",
223    "../rtc_base/system:rtc_export",
224    "crypto:frame_encryptor_interface",
225    "video_codecs:video_codecs_api",
226  ]
227  absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable" ]
228}
229
230rtc_library("libjingle_peerconnection_api") {
231  visibility = [ "*" ]
232  cflags = []
233  sources = [
234    "crypto_params.h",
235    "data_channel_interface.cc",
236    "data_channel_interface.h",
237    "jsep.cc",
238    "jsep.h",
239    "jsep_ice_candidate.cc",
240    "jsep_ice_candidate.h",
241    "jsep_session_description.h",
242    "legacy_stats_types.cc",
243    "legacy_stats_types.h",
244    "peer_connection_interface.cc",
245    "peer_connection_interface.h",
246    "rtp_receiver_interface.cc",
247    "rtp_receiver_interface.h",
248    "rtp_transceiver_interface.cc",
249    "rtp_transceiver_interface.h",
250    "sctp_transport_interface.cc",
251    "sctp_transport_interface.h",
252    "set_local_description_observer_interface.h",
253    "set_remote_description_observer_interface.h",
254    "uma_metrics.h",
255    "video_track_source_proxy_factory.h",
256
257    # Remove when downstream has been updated
258    "dtmf_sender_interface.h",
259    "rtp_sender_interface.h",
260  ]
261  public_deps = [  # no-presubmit-check TODO(webrtc:8603)
262    # Remove when downstream has been updated
263    ":dtmf_sender_interface",
264    ":rtp_sender_interface",
265  ]
266  deps = [
267    ":array_view",
268    ":async_dns_resolver",
269    ":audio_options_api",
270    ":callfactory_api",
271    ":candidate",
272    ":dtls_transport_interface",
273    ":fec_controller_api",
274    ":field_trials",
275    ":field_trials_view",
276    ":frame_transformer_interface",
277    ":ice_transport_interface",
278    ":libjingle_logging_api",
279    ":make_ref_counted",
280    ":media_stream_interface",
281    ":network_state_predictor_api",
282    ":packet_socket_factory",
283    ":priority",
284    ":rtc_error",
285    ":rtc_stats_api",
286    ":rtp_packet_info",
287    ":rtp_parameters",
288    ":rtp_sender_interface",
289    ":rtp_transceiver_direction",
290    ":scoped_refptr",
291    ":sequence_checker",
292    ":turn_customizer",
293    "../call:rtp_interfaces",
294    "../p2p:rtc_p2p",
295    "../rtc_base:copy_on_write_buffer",
296    "../rtc_base:logging",
297    "../rtc_base:network_constants",
298    "../rtc_base:refcount",
299    "../rtc_base:stringutils",
300    "adaptation:resource_adaptation_api",
301    "audio:audio_mixer_api",
302    "audio_codecs:audio_codecs_api",
303    "crypto:frame_decryptor_interface",
304    "crypto:frame_encryptor_interface",
305    "crypto:options",
306    "metronome",
307    "neteq:neteq_api",
308    "rtc_event_log",
309    "task_queue",
310    "transport:bitrate_settings",
311    "transport:enums",
312    "transport:network_control",
313    "transport:sctp_transport_factory_interface",
314    "transport/rtp:rtp_source",
315    "units:data_rate",
316    "units:timestamp",
317    "video:encoded_image",
318    "video:video_bitrate_allocator_factory",
319    "video:video_frame",
320    "video:video_rtp_headers",
321    "video_codecs:video_codecs_api",
322
323    # Basically, don't add stuff here. You might break sensitive downstream
324    # targets like pnacl. API should not depend on anything outside of this
325    # file, really. All these should arguably go away in time.
326    "../media:rtc_media_base",
327    "../media:rtc_media_config",
328    "../modules/audio_processing:audio_processing_statistics",
329    "../rtc_base",
330    "../rtc_base:checks",
331    "../rtc_base:ip_address",
332    "../rtc_base:socket_address",
333    "../rtc_base:threading",
334    "../rtc_base/system:rtc_export",
335  ]
336  absl_deps = [
337    "//third_party/abseil-cpp/absl/algorithm:container",
338    "//third_party/abseil-cpp/absl/base:core_headers",
339    "//third_party/abseil-cpp/absl/functional:any_invocable",
340    "//third_party/abseil-cpp/absl/memory",
341    "//third_party/abseil-cpp/absl/strings",
342    "//third_party/abseil-cpp/absl/types:optional",
343  ]
344}
345
346rtc_source_set("frame_transformer_interface") {
347  visibility = [ "*" ]
348  sources = [ "frame_transformer_interface.h" ]
349  deps = [
350    ":make_ref_counted",
351    ":scoped_refptr",
352    "../rtc_base:refcount",
353    "video:encoded_frame",
354    "video:video_frame_metadata",
355  ]
356}
357
358rtc_library("rtc_error") {
359  visibility = [ "*" ]
360  sources = [
361    "rtc_error.cc",
362    "rtc_error.h",
363  ]
364  deps = [
365    "../rtc_base:checks",
366    "../rtc_base:logging",
367    "../rtc_base:macromagic",
368    "../rtc_base/system:rtc_export",
369  ]
370  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
371}
372
373rtc_source_set("packet_socket_factory") {
374  visibility = [ "*" ]
375  sources = [
376    "async_resolver_factory.h",
377    "packet_socket_factory.h",
378  ]
379  deps = [
380    ":async_dns_resolver",
381    ":wrapping_async_dns_resolver",
382    "../rtc_base:async_resolver_interface",
383    "../rtc_base:rtc_base",
384    "../rtc_base:socket_address",
385    "../rtc_base/system:rtc_export",
386  ]
387}
388
389rtc_source_set("async_dns_resolver") {
390  visibility = [ "*" ]
391  sources = [ "async_dns_resolver.h" ]
392  deps = [
393    "../rtc_base:checks",
394    "../rtc_base:socket_address",
395    "../rtc_base/system:rtc_export",
396  ]
397}
398
399rtc_source_set("wrapping_async_dns_resolver") {
400  visibility = [
401    ":*",
402    "../p2p:rtc_p2p",
403  ]
404  sources = [
405    "wrapping_async_dns_resolver.cc",
406    "wrapping_async_dns_resolver.h",
407  ]
408  deps = [
409    ":async_dns_resolver",
410    ":sequence_checker",
411    "../rtc_base:async_resolver_interface",
412    "../rtc_base:checks",
413    "../rtc_base:macromagic",
414    "../rtc_base:socket_address",
415    "../rtc_base:threading",
416    "../rtc_base/third_party/sigslot",
417  ]
418  absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
419}
420
421rtc_source_set("scoped_refptr") {
422  visibility = [ "*" ]
423  sources = [ "scoped_refptr.h" ]
424}
425
426rtc_source_set("make_ref_counted") {
427  visibility = [ "*" ]
428  sources = [ "make_ref_counted.h" ]
429  deps = [ "../rtc_base:refcount" ]
430}
431
432rtc_source_set("video_quality_test_fixture_api") {
433  visibility = [ "*" ]
434  testonly = true
435  sources = [ "test/video_quality_test_fixture.h" ]
436  deps = [
437    ":fec_controller_api",
438    ":libjingle_peerconnection_api",
439    ":network_state_predictor_api",
440    ":rtp_parameters",
441    ":simulated_network_api",
442    "../call:fake_network",
443    "../call:rtp_interfaces",
444    "../test:test_common",
445    "../test:video_test_common",
446    "../video/config:encoder_config",
447    "transport:bitrate_settings",
448    "transport:network_control",
449    "video_codecs:video_codecs_api",
450  ]
451}
452
453rtc_source_set("video_quality_analyzer_api") {
454  visibility = [ "*" ]
455  testonly = true
456  sources = [ "test/video_quality_analyzer_interface.h" ]
457
458  deps = [
459    ":array_view",
460    ":stats_observer_interface",
461    "video:encoded_image",
462    "video:video_frame",
463    "video:video_rtp_headers",
464    "video_codecs:video_codecs_api",
465  ]
466  absl_deps = [
467    "//third_party/abseil-cpp/absl/strings",
468    "//third_party/abseil-cpp/absl/types:optional",
469  ]
470}
471
472rtc_source_set("track_id_stream_info_map") {
473  visibility = [ "*" ]
474  sources = [ "test/track_id_stream_info_map.h" ]
475  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
476}
477
478rtc_source_set("rtp_transceiver_direction") {
479  visibility = [ "*" ]
480  sources = [ "rtp_transceiver_direction.h" ]
481}
482
483rtc_source_set("priority") {
484  visibility = [ "*" ]
485  sources = [ "priority.h" ]
486}
487
488rtc_library("rtp_parameters") {
489  visibility = [ "*" ]
490  sources = [
491    "media_types.cc",
492    "media_types.h",
493    "rtp_parameters.cc",
494    "rtp_parameters.h",
495  ]
496  deps = [
497    ":array_view",
498    ":priority",
499    ":rtp_transceiver_direction",
500    "../rtc_base:checks",
501    "../rtc_base:stringutils",
502    "../rtc_base/system:rtc_export",
503    "video:resolution",
504    "video_codecs:scalability_mode",
505  ]
506  absl_deps = [
507    "//third_party/abseil-cpp/absl/container:inlined_vector",
508    "//third_party/abseil-cpp/absl/strings",
509    "//third_party/abseil-cpp/absl/types:optional",
510  ]
511}
512
513if (is_android) {
514  java_cpp_enum("priority_enums") {
515    sources = [ "priority.h" ]
516  }
517}
518
519rtc_source_set("audio_quality_analyzer_api") {
520  visibility = [ "*" ]
521  testonly = true
522  sources = [ "test/audio_quality_analyzer_interface.h" ]
523
524  deps = [
525    ":stats_observer_interface",
526    ":track_id_stream_info_map",
527  ]
528}
529
530rtc_source_set("stats_observer_interface") {
531  visibility = [ "*" ]
532  testonly = true
533  sources = [ "test/stats_observer_interface.h" ]
534
535  deps = [ ":rtc_stats_api" ]
536
537  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
538}
539
540rtc_source_set("peer_network_dependencies") {
541  visibility = [ "*" ]
542  sources = [ "test/peer_network_dependencies.h" ]
543  deps = [
544    ":packet_socket_factory",
545    "../rtc_base",
546    "../rtc_base:threading",
547  ]
548}
549
550rtc_source_set("peer_connection_quality_test_fixture_api") {
551  visibility = [ "*" ]
552  testonly = true
553  sources = [ "test/peerconnection_quality_test_fixture.h" ]
554
555  deps = [
556    ":array_view",
557    ":audio_quality_analyzer_api",
558    ":callfactory_api",
559    ":fec_controller_api",
560    ":frame_generator_api",
561    ":function_view",
562    ":libjingle_peerconnection_api",
563    ":media_stream_interface",
564    ":network_state_predictor_api",
565    ":packet_socket_factory",
566    ":peer_network_dependencies",
567    ":rtp_parameters",
568    ":simulated_network_api",
569    ":stats_observer_interface",
570    ":track_id_stream_info_map",
571    ":video_quality_analyzer_api",
572    "../media:rtc_media_base",
573    "../modules/audio_processing:api",
574    "../rtc_base:checks",
575    "../rtc_base:rtc_base",
576    "../rtc_base:stringutils",
577    "../rtc_base:threading",
578    "../test:fileutils",
579    "audio:audio_mixer_api",
580    "rtc_event_log",
581    "task_queue",
582    "test/pclf:media_configuration",
583    "test/pclf:media_quality_test_params",
584    "test/pclf:peer_configurer",
585    "test/video:video_frame_writer",
586    "transport:network_control",
587    "units:time_delta",
588    "video:video_frame",
589    "video_codecs:video_codecs_api",
590  ]
591  absl_deps = [
592    "//third_party/abseil-cpp/absl/base:core_headers",
593    "//third_party/abseil-cpp/absl/memory",
594    "//third_party/abseil-cpp/absl/strings",
595    "//third_party/abseil-cpp/absl/types:optional",
596  ]
597}
598
599rtc_source_set("frame_generator_api") {
600  visibility = [ "*" ]
601  testonly = true
602  sources = [
603    "test/frame_generator_interface.cc",
604    "test/frame_generator_interface.h",
605  ]
606
607  deps = [
608    ":scoped_refptr",
609    "video:video_frame",
610  ]
611  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
612}
613
614rtc_library("test_dependency_factory") {
615  visibility = [ "*" ]
616  testonly = true
617  sources = [
618    "test/test_dependency_factory.cc",
619    "test/test_dependency_factory.h",
620  ]
621  deps = [
622    ":video_quality_test_fixture_api",
623    "../rtc_base:checks",
624    "../rtc_base:platform_thread_types",
625  ]
626}
627
628if (rtc_include_tests) {
629  # TODO(srte): Move to network_emulation sub directory.
630  rtc_library("create_network_emulation_manager") {
631    visibility = [ "*" ]
632    testonly = true
633    sources = [
634      "test/create_network_emulation_manager.cc",
635      "test/create_network_emulation_manager.h",
636    ]
637    deps = [
638      ":network_emulation_manager_api",
639      "../test/network:emulated_network",
640    ]
641  }
642
643  if (!build_with_chromium) {
644    rtc_library("create_video_quality_test_fixture_api") {
645      visibility = [ "*" ]
646      testonly = true
647      sources = [
648        "test/create_video_quality_test_fixture.cc",
649        "test/create_video_quality_test_fixture.h",
650      ]
651      deps = [
652        ":fec_controller_api",
653        ":network_state_predictor_api",
654        ":scoped_refptr",
655        ":video_quality_test_fixture_api",
656        "../video:video_quality_test",
657      ]
658    }
659
660    rtc_library("create_peerconnection_quality_test_fixture") {
661      visibility = [ "*" ]
662      testonly = true
663      sources = [
664        "test/create_peerconnection_quality_test_fixture.cc",
665        "test/create_peerconnection_quality_test_fixture.h",
666      ]
667
668      deps = [
669        ":audio_quality_analyzer_api",
670        ":peer_connection_quality_test_fixture_api",
671        ":time_controller",
672        ":video_quality_analyzer_api",
673        "../test/pc/e2e:peerconnection_quality_test",
674        "test/metrics:global_metrics_logger_and_exporter",
675      ]
676    }
677  }
678}
679
680rtc_library("create_frame_generator") {
681  visibility = [ "*" ]
682  testonly = true
683  sources = [
684    "test/create_frame_generator.cc",
685    "test/create_frame_generator.h",
686  ]
687  deps = [
688    ":frame_generator_api",
689    "../rtc_base:checks",
690    "../system_wrappers",
691    "../test:frame_generator_impl",
692  ]
693  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
694}
695
696rtc_library("create_peer_connection_quality_test_frame_generator") {
697  visibility = [ "*" ]
698  testonly = true
699  sources = [
700    "test/create_peer_connection_quality_test_frame_generator.cc",
701    "test/create_peer_connection_quality_test_frame_generator.h",
702  ]
703  deps = [
704    ":create_frame_generator",
705    ":frame_generator_api",
706    "../rtc_base:checks",
707    "../test:fileutils",
708    "test/pclf:media_configuration",
709  ]
710  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
711}
712
713rtc_source_set("libjingle_logging_api") {
714  visibility = [ "*" ]
715  sources = [ "rtc_event_log_output.h" ]
716  absl_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ]
717}
718
719rtc_library("rtc_event_log_output_file") {
720  visibility = [ "*" ]
721  sources = [
722    "rtc_event_log_output_file.cc",
723    "rtc_event_log_output_file.h",
724  ]
725
726  deps = [
727    ":libjingle_logging_api",
728    "../rtc_base:checks",
729    "../rtc_base:logging",
730    "../rtc_base/system:file_wrapper",
731    "rtc_event_log",
732  ]
733}
734
735rtc_source_set("rtc_stats_api") {
736  visibility = [ "*" ]
737  cflags = []
738  sources = [
739    "stats/rtc_stats.h",
740    "stats/rtc_stats_collector_callback.h",
741    "stats/rtc_stats_report.h",
742    "stats/rtcstats_objects.h",
743  ]
744
745  deps = [
746    ":make_ref_counted",
747    ":scoped_refptr",
748    "../api:refcountedbase",
749    "../rtc_base:checks",
750    "../rtc_base:refcount",
751    "../rtc_base/system:rtc_export",
752    "units:timestamp",
753  ]
754
755  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
756}
757
758rtc_library("audio_options_api") {
759  visibility = [ "*" ]
760  sources = [
761    "audio_options.cc",
762    "audio_options.h",
763  ]
764
765  deps = [
766    ":array_view",
767    "../rtc_base:stringutils",
768    "../rtc_base/system:rtc_export",
769  ]
770  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
771}
772
773rtc_library("transport_api") {
774  visibility = [ "*" ]
775  sources = [
776    "call/transport.cc",
777    "call/transport.h",
778  ]
779  deps = [
780    ":refcountedbase",
781    ":scoped_refptr",
782  ]
783}
784
785rtc_source_set("bitrate_allocation") {
786  visibility = [ "*" ]
787  sources = [ "call/bitrate_allocation.h" ]
788  deps = [
789    "units:data_rate",
790    "units:time_delta",
791  ]
792}
793
794# TODO(srte): Move to network_emulation sub directory.
795rtc_source_set("simulated_network_api") {
796  visibility = [ "*" ]
797  sources = [ "test/simulated_network.h" ]
798  deps = [
799    "../rtc_base",
800    "../rtc_base:macromagic",
801    "../rtc_base:random",
802  ]
803  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
804}
805
806# TODO(srte): Move to network_emulation sub directory.
807rtc_source_set("network_emulation_manager_api") {
808  visibility = [ "*" ]
809  sources = [
810    "test/network_emulation_manager.cc",
811    "test/network_emulation_manager.h",
812  ]
813  deps = [
814    ":array_view",
815    ":packet_socket_factory",
816    ":peer_network_dependencies",
817    ":simulated_network_api",
818    ":time_controller",
819    "../call:simulated_network",
820    "../rtc_base",
821    "../rtc_base:checks",
822    "../rtc_base:network_constants",
823    "../rtc_base:threading",
824    "test/network_emulation",
825    "units:data_rate",
826    "units:data_size",
827    "units:timestamp",
828  ]
829}
830
831rtc_source_set("time_controller") {
832  visibility = [ "*" ]
833  sources = [
834    "test/time_controller.cc",
835    "test/time_controller.h",
836  ]
837
838  deps = [
839    "../rtc_base",
840    "../rtc_base:threading",
841    "../rtc_base/synchronization:yield_policy",
842    "../system_wrappers",
843    "task_queue",
844    "units:time_delta",
845    "units:timestamp",
846  ]
847}
848
849rtc_source_set("fec_controller_api") {
850  visibility = [ "*" ]
851  sources = [
852    "fec_controller.h",
853    "fec_controller_override.h",
854  ]
855
856  deps = [
857    "../modules:module_fec_api",
858    "video:video_frame_type",
859  ]
860}
861
862rtc_source_set("network_state_predictor_api") {
863  visibility = [ "*" ]
864  sources = [ "network_state_predictor.h" ]
865}
866
867rtc_source_set("array_view") {
868  visibility = [ "*" ]
869  sources = [ "array_view.h" ]
870  deps = [
871    "../rtc_base:checks",
872    "../rtc_base:type_traits",
873  ]
874}
875
876rtc_source_set("refcountedbase") {
877  visibility = [ "*" ]
878  sources = [ "ref_counted_base.h" ]
879  deps = [
880    "../rtc_base:macromagic",
881    "../rtc_base:refcount",
882  ]
883}
884
885rtc_library("ice_transport_factory") {
886  visibility = [ "*" ]
887  sources = [
888    "ice_transport_factory.cc",
889    "ice_transport_factory.h",
890  ]
891  deps = [
892    ":ice_transport_interface",
893    ":libjingle_peerconnection_api",
894    ":make_ref_counted",
895    ":packet_socket_factory",
896    ":scoped_refptr",
897    "../p2p:rtc_p2p",
898    "../rtc_base",
899    "../rtc_base:threading",
900    "../rtc_base/system:rtc_export",
901    "rtc_event_log:rtc_event_log",
902  ]
903}
904
905rtc_library("neteq_simulator_api") {
906  visibility = [ "*" ]
907  sources = [
908    "test/neteq_simulator.cc",
909    "test/neteq_simulator.h",
910  ]
911}
912
913rtc_source_set("function_view") {
914  visibility = [ "*" ]
915  sources = [ "function_view.h" ]
916  deps = [ "../rtc_base:checks" ]
917}
918
919rtc_source_set("sequence_checker") {
920  visibility = [ "*" ]
921  sources = [ "sequence_checker.h" ]
922  deps = [
923    "../rtc_base:checks",
924    "../rtc_base:macromagic",
925    "../rtc_base/synchronization:sequence_checker_internal",
926  ]
927}
928
929if (rtc_include_tests) {
930  if (rtc_enable_protobuf && !build_with_chromium) {
931    rtc_library("audioproc_f_api") {
932      visibility = [ "*" ]
933      testonly = true
934      sources = [
935        "test/audioproc_float.cc",
936        "test/audioproc_float.h",
937      ]
938
939      deps = [
940        "../modules/audio_processing",
941        "../modules/audio_processing:api",
942        "../modules/audio_processing:audioproc_f_impl",
943      ]
944    }
945
946    rtc_library("neteq_simulator_factory") {
947      visibility = [ "*" ]
948      testonly = true
949      sources = [
950        "test/neteq_simulator_factory.cc",
951        "test/neteq_simulator_factory.h",
952      ]
953      deps = [
954        ":neteq_simulator_api",
955        "../modules/audio_coding:neteq_test_factory",
956        "../rtc_base:checks",
957        "neteq:neteq_api",
958      ]
959      absl_deps = [
960        "//third_party/abseil-cpp/absl/flags:flag",
961        "//third_party/abseil-cpp/absl/flags:parse",
962        "//third_party/abseil-cpp/absl/strings",
963        "//third_party/abseil-cpp/absl/types:optional",
964      ]
965    }
966  }
967
968  rtc_source_set("simulcast_test_fixture_api") {
969    visibility = [ "*" ]
970    testonly = true
971    sources = [ "test/simulcast_test_fixture.h" ]
972  }
973
974  rtc_library("create_simulcast_test_fixture_api") {
975    visibility = [ "*" ]
976    testonly = true
977    sources = [
978      "test/create_simulcast_test_fixture.cc",
979      "test/create_simulcast_test_fixture.h",
980    ]
981    deps = [
982      ":simulcast_test_fixture_api",
983      "../modules/video_coding:simulcast_test_fixture_impl",
984      "video_codecs:video_codecs_api",
985    ]
986  }
987
988  rtc_library("videocodec_test_fixture_api") {
989    visibility = [ "*" ]
990    testonly = true
991    sources = [
992      "test/videocodec_test_fixture.h",
993      "test/videocodec_test_stats.cc",
994      "test/videocodec_test_stats.h",
995    ]
996    deps = [
997      "../modules/video_coding:video_codec_interface",
998      "../rtc_base:stringutils",
999      "video:video_frame_type",
1000      "video_codecs:video_codecs_api",
1001    ]
1002  }
1003
1004  rtc_library("create_videocodec_test_fixture_api") {
1005    visibility = [ "*" ]
1006    testonly = true
1007    sources = [
1008      "test/create_videocodec_test_fixture.cc",
1009      "test/create_videocodec_test_fixture.h",
1010    ]
1011    deps = [
1012      ":videocodec_test_fixture_api",
1013      "../modules/video_coding:video_codecs_test_framework",
1014      "../modules/video_coding:videocodec_test_impl",
1015      "video_codecs:video_codecs_api",
1016    ]
1017  }
1018
1019  rtc_source_set("mock_audio_mixer") {
1020    visibility = [ "*" ]
1021    testonly = true
1022    sources = [ "test/mock_audio_mixer.h" ]
1023
1024    deps = [
1025      "../test:test_support",
1026      "audio:audio_mixer_api",
1027    ]
1028  }
1029
1030  rtc_source_set("mock_audio_sink") {
1031    visibility = [ "*" ]
1032    testonly = true
1033    sources = [ "test/mock_audio_sink.h" ]
1034
1035    deps = [
1036      "../api:media_stream_interface",
1037      "../test:test_support",
1038    ]
1039    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
1040  }
1041
1042  rtc_source_set("mock_data_channel") {
1043    visibility = [ "*" ]
1044    testonly = true
1045    sources = [ "test/mock_data_channel.h" ]
1046
1047    deps = [
1048      ":libjingle_peerconnection_api",
1049      "../test:test_support",
1050    ]
1051  }
1052
1053  rtc_source_set("mock_dtmf_sender") {
1054    visibility = [ "*" ]
1055    testonly = true
1056    sources = [ "test/mock_dtmf_sender.h" ]
1057
1058    deps = [
1059      ":dtmf_sender_interface",
1060      ":libjingle_peerconnection_api",
1061      "../test:test_support",
1062    ]
1063  }
1064
1065  rtc_source_set("mock_fec_controller_override") {
1066    visibility = [ "*" ]
1067    testonly = true
1068    sources = [ "test/mock_fec_controller_override.h" ]
1069    deps = [
1070      ":fec_controller_api",
1071      "../test:test_support",
1072    ]
1073  }
1074
1075  rtc_library("mock_frame_encryptor") {
1076    visibility = [ "*" ]
1077    testonly = true
1078    sources = [ "test/mock_frame_encryptor.h" ]
1079    deps = [
1080      # For api/crypto/frame_encryptor_interface.h
1081      ":libjingle_peerconnection_api",
1082      "../test:test_support",
1083      "crypto:frame_encryptor_interface",
1084    ]
1085  }
1086
1087  rtc_library("mock_frame_decryptor") {
1088    visibility = [ "*" ]
1089    testonly = true
1090    sources = [ "test/mock_frame_decryptor.h" ]
1091    deps = [
1092      ":libjingle_peerconnection_api",
1093      "../test:test_support",
1094      "crypto:frame_decryptor_interface",
1095    ]
1096  }
1097
1098  rtc_library("mock_encoder_selector") {
1099    visibility = [ "*" ]
1100    testonly = true
1101    sources = [ "test/mock_encoder_selector.h" ]
1102    deps = [
1103      ":libjingle_peerconnection_api",
1104      "../api/video_codecs:video_codecs_api",
1105      "../test:test_support",
1106    ]
1107  }
1108
1109  rtc_library("fake_frame_encryptor") {
1110    visibility = [ "*" ]
1111    testonly = true
1112    sources = [
1113      "test/fake_frame_encryptor.cc",
1114      "test/fake_frame_encryptor.h",
1115    ]
1116    deps = [
1117      ":array_view",
1118      ":libjingle_peerconnection_api",
1119      ":make_ref_counted",
1120      ":rtp_parameters",
1121      "../rtc_base:checks",
1122      "../rtc_base:refcount",
1123      "crypto:frame_encryptor_interface",
1124    ]
1125  }
1126
1127  rtc_library("fake_frame_decryptor") {
1128    visibility = [ "*" ]
1129    testonly = true
1130    sources = [
1131      "test/fake_frame_decryptor.cc",
1132      "test/fake_frame_decryptor.h",
1133    ]
1134    deps = [
1135      ":array_view",
1136      ":libjingle_peerconnection_api",
1137      ":make_ref_counted",
1138      ":rtp_parameters",
1139      "../rtc_base:checks",
1140      "crypto:frame_decryptor_interface",
1141    ]
1142  }
1143
1144  rtc_source_set("mock_media_stream_interface") {
1145    visibility = [ "*" ]
1146    testonly = true
1147    sources = [ "test/mock_media_stream_interface.h" ]
1148
1149    deps = [
1150      ":media_stream_interface",
1151      "../test:test_support",
1152    ]
1153  }
1154
1155  rtc_source_set("mock_packet_socket_factory") {
1156    visibility = [ "*" ]
1157    testonly = true
1158    sources = [ "test/mock_packet_socket_factory.h" ]
1159
1160    deps = [
1161      ":packet_socket_factory",
1162      "../test:test_support",
1163    ]
1164  }
1165
1166  rtc_source_set("mock_peerconnectioninterface") {
1167    visibility = [ "*" ]
1168    testonly = true
1169    sources = [ "test/mock_peerconnectioninterface.h" ]
1170
1171    deps = [
1172      ":libjingle_peerconnection_api",
1173      "../api:scoped_refptr",
1174      "../rtc_base:refcount",
1175      "../test:test_support",
1176    ]
1177  }
1178
1179  rtc_source_set("mock_peer_connection_factory_interface") {
1180    visibility = [ "*" ]
1181    testonly = true
1182    sources = [ "test/mock_peer_connection_factory_interface.h" ]
1183
1184    deps = [
1185      ":libjingle_peerconnection_api",
1186      "../test:test_support",
1187    ]
1188  }
1189
1190  rtc_source_set("mock_session_description_interface") {
1191    visibility = [ "*" ]
1192    testonly = true
1193    sources = [ "test/mock_session_description_interface.h" ]
1194    deps = [
1195      ":libjingle_peerconnection_api",
1196      "../test:test_support",
1197    ]
1198  }
1199
1200  rtc_source_set("mock_async_dns_resolver") {
1201    visibility = [ "*" ]
1202    testonly = true
1203    sources = [ "test/mock_async_dns_resolver.h" ]
1204    deps = [
1205      ":async_dns_resolver",
1206      "../test:test_support",
1207    ]
1208  }
1209
1210  rtc_source_set("mock_rtp") {
1211    visibility = [ "*" ]
1212    testonly = true
1213    sources = [
1214      "test/mock_rtp_transceiver.h",
1215      "test/mock_rtpreceiver.h",
1216      "test/mock_rtpsender.h",
1217    ]
1218
1219    deps = [
1220      ":libjingle_peerconnection_api",
1221      ":rtp_sender_interface",
1222      "../api/crypto:frame_decryptor_interface",
1223      "../test:test_support",
1224    ]
1225  }
1226
1227  rtc_source_set("mock_transformable_video_frame") {
1228    visibility = [ "*" ]
1229    testonly = true
1230    sources = [ "test/mock_transformable_video_frame.h" ]
1231
1232    deps = [
1233      ":frame_transformer_interface",
1234      "../test:test_support",
1235    ]
1236  }
1237
1238  rtc_source_set("mock_video_bitrate_allocator") {
1239    visibility = [ "*" ]
1240    testonly = true
1241    sources = [ "test/mock_video_bitrate_allocator.h" ]
1242
1243    deps = [
1244      "../api/video:video_bitrate_allocator",
1245      "../test:test_support",
1246    ]
1247  }
1248
1249  rtc_source_set("mock_video_bitrate_allocator_factory") {
1250    visibility = [ "*" ]
1251    testonly = true
1252    sources = [ "test/mock_video_bitrate_allocator_factory.h" ]
1253
1254    deps = [
1255      "../api/video:video_bitrate_allocator_factory",
1256      "../test:test_support",
1257    ]
1258  }
1259
1260  rtc_source_set("mock_video_codec_factory") {
1261    visibility = [ "*" ]
1262    testonly = true
1263    sources = [
1264      "test/mock_video_decoder_factory.h",
1265      "test/mock_video_encoder_factory.h",
1266    ]
1267
1268    deps = [
1269      "../api/video_codecs:video_codecs_api",
1270      "../test:test_support",
1271    ]
1272  }
1273
1274  rtc_library("mock_video_decoder") {
1275    visibility = [ "*" ]
1276    testonly = true
1277    sources = [ "test/mock_video_decoder.h" ]
1278
1279    deps = [
1280      "../api/video_codecs:video_codecs_api",
1281      "../test:test_support",
1282    ]
1283  }
1284
1285  rtc_library("mock_video_encoder") {
1286    visibility = [ "*" ]
1287    testonly = true
1288    sources = [ "test/mock_video_encoder.h" ]
1289
1290    deps = [
1291      "../api/video_codecs:video_codecs_api",
1292      "../test:test_support",
1293    ]
1294  }
1295
1296  rtc_library("mock_video_track") {
1297    visibility = [ "*" ]
1298    testonly = true
1299    sources = [ "test/mock_video_track.h" ]
1300
1301    deps = [
1302      "../api:media_stream_interface",
1303      "../api:scoped_refptr",
1304      "../rtc_base:refcount",
1305      "../test:test_support",
1306    ]
1307  }
1308
1309  rtc_library("create_time_controller") {
1310    visibility = [ "*" ]
1311    testonly = true
1312    sources = [
1313      "test/create_time_controller.cc",
1314      "test/create_time_controller.h",
1315    ]
1316
1317    deps = [
1318      ":callfactory_api",
1319      ":time_controller",
1320      "../call",
1321      "../call:call_interfaces",
1322      "../call:rtp_interfaces",
1323      "../test/time_controller",
1324    ]
1325  }
1326
1327  rtc_library("rtc_api_unittests") {
1328    testonly = true
1329
1330    sources = [
1331      "array_view_unittest.cc",
1332      "field_trials_unittest.cc",
1333      "function_view_unittest.cc",
1334      "rtc_error_unittest.cc",
1335      "rtc_event_log_output_file_unittest.cc",
1336      "rtp_packet_info_unittest.cc",
1337      "rtp_packet_infos_unittest.cc",
1338      "rtp_parameters_unittest.cc",
1339      "scoped_refptr_unittest.cc",
1340      "sequence_checker_unittest.cc",
1341      "test/create_time_controller_unittest.cc",
1342      "test/peerconnection_quality_test_fixture_unittest.cc",
1343    ]
1344
1345    deps = [
1346      ":array_view",
1347      ":create_time_controller",
1348      ":field_trials",
1349      ":field_trials_view",
1350      ":function_view",
1351      ":libjingle_peerconnection_api",
1352      ":peer_connection_quality_test_fixture_api",
1353      ":rtc_error",
1354      ":rtc_event_log_output_file",
1355      ":rtp_packet_info",
1356      ":rtp_parameters",
1357      ":scoped_refptr",
1358      ":sequence_checker",
1359      ":time_controller",
1360      "../rtc_base:buffer",
1361      "../rtc_base:checks",
1362      "../rtc_base:gunit_helpers",
1363      "../rtc_base:platform_thread",
1364      "../rtc_base:rtc_event",
1365      "../rtc_base:rtc_task_queue",
1366      "../rtc_base:task_queue_for_test",
1367      "../rtc_base/containers:flat_set",
1368      "../rtc_base/task_utils:repeating_task",
1369      "../system_wrappers:field_trial",
1370      "../test:field_trial",
1371      "../test:fileutils",
1372      "../test:rtc_expect_death",
1373      "../test:test_support",
1374      "task_queue:task_queue_default_factory_unittests",
1375      "test/pclf:media_configuration",
1376      "test/video:video_frame_writer",
1377      "transport:field_trial_based_config",
1378      "units:time_delta",
1379      "units:timestamp",
1380      "units:units_unittests",
1381      "video:frame_buffer_unittest",
1382      "video:rtp_video_frame_assembler_unittests",
1383      "video:video_unittests",
1384    ]
1385    absl_deps = [
1386      "//third_party/abseil-cpp/absl/strings",
1387      "//third_party/abseil-cpp/absl/types:optional",
1388    ]
1389  }
1390
1391  rtc_library("compile_all_headers") {
1392    testonly = true
1393
1394    sources = [ "test/compile_all_headers.cc" ]
1395
1396    deps = [
1397      ":fake_frame_decryptor",
1398      ":fake_frame_encryptor",
1399      ":mock_async_dns_resolver",
1400      ":mock_audio_mixer",
1401      ":mock_audio_sink",
1402      ":mock_data_channel",
1403      ":mock_dtmf_sender",
1404      ":mock_frame_decryptor",
1405      ":mock_frame_encryptor",
1406      ":mock_media_stream_interface",
1407      ":mock_packet_socket_factory",
1408      ":mock_peer_connection_factory_interface",
1409      ":mock_peerconnectioninterface",
1410      ":mock_rtp",
1411      ":mock_session_description_interface",
1412      ":mock_transformable_video_frame",
1413      ":mock_video_bitrate_allocator",
1414      ":mock_video_bitrate_allocator_factory",
1415      ":mock_video_codec_factory",
1416      ":mock_video_decoder",
1417      ":mock_video_encoder",
1418      ":mock_video_track",
1419      ":rtc_api_unittests",
1420      "units:units_unittests",
1421    ]
1422  }
1423}
1424
1425rtc_source_set("field_trials_registry") {
1426  visibility = [ "*" ]
1427  sources = [
1428    "field_trials_registry.cc",
1429    "field_trials_registry.h",
1430  ]
1431  deps = [
1432    ":field_trials_view",
1433    "../experiments:registered_field_trials",
1434    "../rtc_base:checks",
1435    "../rtc_base/containers:flat_set",
1436    "../rtc_base/system:rtc_export",
1437  ]
1438  absl_deps = [
1439    "//third_party/abseil-cpp/absl/algorithm:container",
1440    "//third_party/abseil-cpp/absl/strings",
1441  ]
1442}
1443
1444rtc_source_set("field_trials_view") {
1445  visibility = [ "*" ]
1446  sources = [ "field_trials_view.h" ]
1447  deps = [ "../rtc_base/system:rtc_export" ]
1448  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
1449}
1450
1451rtc_source_set("webrtc_key_value_config") {
1452  visibility = [ "*" ]
1453  sources = [ "webrtc_key_value_config.h" ]
1454  deps = [ ":field_trials_view" ]
1455}
1456
1457rtc_library("field_trials") {
1458  visibility = [ "*" ]
1459  sources = [
1460    "field_trials.cc",
1461    "field_trials.h",
1462  ]
1463  deps = [
1464    ":field_trials_registry",
1465    "../rtc_base:checks",
1466    "../rtc_base/containers:flat_map",
1467    "../system_wrappers:field_trial",
1468  ]
1469  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
1470}
1471
1472rtc_library("frame_transformer_factory") {
1473  visibility = [ "*" ]
1474  sources = [
1475    "frame_transformer_factory.cc",
1476    "frame_transformer_factory.h",
1477  ]
1478  deps = [
1479    ":frame_transformer_interface",
1480    ":scoped_refptr",
1481    "../modules/rtp_rtcp",
1482    "../rtc_base:refcount",
1483    "video:encoded_frame",
1484    "video:video_frame_metadata",
1485  ]
1486}
1487