tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

BUILD.gn (46491B)


      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 
      9 import("../webrtc.gni")
     10 if (is_android) {
     11   import("//chromium/build/config/android/config.gni")
     12   import("//chromium/build/config/android/rules.gni")
     13 }
     14 
     15 group("api") {
     16   visibility = [ "*" ]
     17   deps = []
     18 
     19   if (!build_with_mozilla) {
     20     deps += [ ":libjingle_peerconnection_api" ]
     21   }
     22 }
     23 
     24 rtc_source_set("call_api") {
     25   visibility = [ "*" ]
     26   sources = [ "call/audio_sink.h" ]
     27 }
     28 
     29 rtc_library("enable_media") {
     30   visibility = [ "*" ]
     31   sources = [
     32     "enable_media.cc",
     33     "enable_media.h",
     34   ]
     35   deps = [
     36     ":libjingle_peerconnection_api",
     37     ":scoped_refptr",
     38     "../call",
     39     "../call:call_interfaces",
     40     "../media:media_engine",
     41     "../media:rtc_audio_video",
     42     "../pc:media_factory",
     43     "../rtc_base/system:rtc_export",
     44     "environment",
     45     "//third_party/abseil-cpp/absl/base:nullability",
     46   ]
     47   if (build_with_mozilla) {
     48     deps -= [ "../pc:media_factory" ]
     49   }
     50 }
     51 
     52 rtc_library("enable_media_with_defaults") {
     53   visibility = [ "*" ]
     54   allow_poison = [
     55     "audio_codecs",
     56     "environment_construction",
     57     "software_video_codecs",
     58   ]
     59   sources = [
     60     "enable_media_with_defaults.cc",
     61     "enable_media_with_defaults.h",
     62   ]
     63   deps = [
     64     ":enable_media",
     65     ":libjingle_peerconnection_api",
     66     ":scoped_refptr",
     67     "../rtc_base/system:rtc_export",
     68     "audio:builtin_audio_processing_builder",
     69     "audio_codecs:builtin_audio_decoder_factory",
     70     "audio_codecs:builtin_audio_encoder_factory",
     71     "video_codecs:builtin_video_decoder_factory",
     72     "video_codecs:builtin_video_encoder_factory",
     73   ]
     74 }
     75 
     76 rtc_library("create_modular_peer_connection_factory") {
     77   visibility = [ "*" ]
     78   allow_poison = [ "environment_construction" ]
     79   sources = [
     80     "create_modular_peer_connection_factory.cc",
     81     "create_modular_peer_connection_factory.h",
     82   ]
     83   deps = [
     84     ":libjingle_peerconnection_api",
     85     ":scoped_refptr",
     86     ":sequence_checker",
     87     "../pc:peer_connection_factory",
     88     "../pc:peer_connection_factory_proxy",
     89     "../rtc_base:threading",
     90     "../rtc_base/system:rtc_export",
     91     "../stats:rtc_stats",
     92   ]
     93 }
     94 
     95 if (!build_with_chromium && !build_with_mozilla) {
     96   rtc_library("create_peerconnection_factory") {
     97     visibility = [ "*" ]
     98     allow_poison = [ "environment_construction" ]
     99     sources = [
    100       "create_peerconnection_factory.cc",
    101       "create_peerconnection_factory.h",
    102     ]
    103     deps = [
    104       ":create_modular_peer_connection_factory",
    105       ":enable_media",
    106       ":field_trials_view",
    107       ":libjingle_peerconnection_api",
    108       ":scoped_refptr",
    109       "../rtc_base:threading",
    110       "../rtc_base/system:rtc_export",
    111       "audio:audio_device",
    112       "audio:audio_mixer_api",
    113       "audio:audio_processing",
    114       "audio:builtin_audio_processing_builder",
    115       "audio_codecs:audio_codecs_api",
    116       "environment:environment_factory",
    117       "rtc_event_log:rtc_event_log_factory",
    118       "video_codecs:video_codecs_api",
    119     ]
    120   }
    121 }
    122 
    123 rtc_library("location") {
    124   visibility = [ "*" ]
    125   deps = [ "../rtc_base/system:rtc_export" ]
    126   if (build_with_chromium) {
    127     sources = [ "../../webrtc_overrides/api/location.h" ]
    128     deps += [ "//base" ]
    129   } else {
    130     sources = [ "location.h" ]
    131   }
    132 }
    133 
    134 rtc_library("rtp_headers") {
    135   visibility = [ "*" ]
    136   sources = [
    137     "rtp_headers.cc",
    138     "rtp_headers.h",
    139   ]
    140   deps = [
    141     ":array_view",
    142     "../rtc_base:checks",
    143     "../rtc_base/system:rtc_export",
    144     "units:timestamp",
    145     "video:video_rtp_headers",
    146   ]
    147 }
    148 
    149 rtc_library("rtp_packet_info") {
    150   visibility = [ "*" ]
    151   sources = [
    152     "rtp_packet_info.cc",
    153     "rtp_packet_info.h",
    154     "rtp_packet_infos.h",
    155   ]
    156   deps = [
    157     ":array_view",
    158     ":make_ref_counted",
    159     ":refcountedbase",
    160     ":rtp_headers",
    161     ":scoped_refptr",
    162     "../rtc_base/system:rtc_export",
    163     "units:time_delta",
    164     "units:timestamp",
    165   ]
    166 }
    167 
    168 rtc_source_set("video_track_source_constraints") {
    169   visibility = [ "*" ]
    170   sources = [ "video_track_source_constraints.h" ]
    171 }
    172 
    173 rtc_library("media_stream_interface") {
    174   visibility = [ "*" ]
    175   sources = [
    176     "media_stream_interface.cc",
    177     "media_stream_interface.h",
    178     "media_stream_track.h",
    179     "notifier.h",
    180   ]
    181   deps = [
    182     ":audio_options_api",
    183     ":make_ref_counted",
    184     ":ref_count",
    185     ":rtp_parameters",
    186     ":scoped_refptr",
    187     ":sequence_checker",
    188     ":video_track_source_constraints",
    189     "../rtc_base:checks",
    190     "../rtc_base:macromagic",
    191     "../rtc_base/system:no_unique_address",
    192     "../rtc_base/system:rtc_export",
    193     "audio:audio_processing_statistics",
    194     "video:recordable_encoded_frame",
    195     "video:video_frame",
    196     "//third_party/abseil-cpp/absl/strings:string_view",
    197   ]
    198 }
    199 
    200 rtc_library("candidate") {
    201   visibility = [ "*" ]
    202 
    203   sources = [
    204     "candidate.cc",
    205     "candidate.h",
    206   ]
    207   deps = [
    208     "../p2p:p2p_constants",
    209     "../rtc_base:checks",
    210     "../rtc_base:crc32",
    211     "../rtc_base:crypto_random",
    212     "../rtc_base:ip_address",
    213     "../rtc_base:logging",
    214     "../rtc_base:network_constants",
    215     "../rtc_base:socket_address",
    216     "../rtc_base:stringutils",
    217     "../rtc_base/system:rtc_export",
    218     "//third_party/abseil-cpp/absl/base:core_headers",
    219     "//third_party/abseil-cpp/absl/strings",
    220     "//third_party/abseil-cpp/absl/strings:string_view",
    221   ]
    222 }
    223 
    224 rtc_source_set("turn_customizer") {
    225   visibility = [ "*" ]
    226   sources = [ "turn_customizer.h" ]
    227   deps = [
    228     "../p2p:port_interface",
    229     "transport:stun_types",
    230   ]
    231 }
    232 
    233 rtc_source_set("ice_transport_interface") {
    234   visibility = [ "*" ]
    235 
    236   sources = [ "ice_transport_interface.h" ]
    237   deps = [
    238     ":async_dns_resolver",
    239     ":local_network_access_permission",
    240     ":packet_socket_factory",
    241     ":ref_count",
    242     ":rtc_error",
    243     ":scoped_refptr",
    244     "environment",
    245     "rtc_event_log",
    246   ]
    247 }
    248 
    249 rtc_library("dtls_transport_interface") {
    250 # Previously, Mozilla has tried to limit including this dep, but as
    251 # upstream changes, it requires whack-a-mole.  Making it an empty
    252 # definition has the same effect, but only requires one change.
    253 if (!build_with_mozilla) {
    254   visibility = [ "*" ]
    255 
    256   sources = [
    257     "dtls_transport_interface.cc",
    258     "dtls_transport_interface.h",
    259   ]
    260   deps = [
    261     ":ice_transport_interface",
    262     ":ref_count",
    263     ":rtc_error",
    264     ":scoped_refptr",
    265     "../rtc_base:ssl",
    266     "../rtc_base/system:rtc_export",
    267     "//third_party/abseil-cpp/absl/base:core_headers",
    268   ]
    269 }
    270 }
    271 
    272 rtc_library("dtmf_sender_interface") {
    273   visibility = [ "*" ]
    274 
    275   sources = [ "dtmf_sender_interface.h" ]
    276   deps = [
    277     ":media_stream_interface",
    278     ":ref_count",
    279   ]
    280 }
    281 
    282 rtc_library("rtp_sender_interface") {
    283 # Previously, Mozilla has tried to limit including this dep, but as
    284 # upstream changes, it requires whack-a-mole.  Making it an empty
    285 # definition has the same effect, but only requires one change.
    286 if (!build_with_mozilla) {
    287   visibility = [ "*" ]
    288 
    289   sources = [
    290     "rtp_sender_interface.cc",
    291     "rtp_sender_interface.h",
    292   ]
    293   deps = [
    294     ":dtls_transport_interface",
    295     ":dtmf_sender_interface",
    296     ":frame_transformer_interface",
    297     ":media_stream_interface",
    298     ":ref_count",
    299     ":rtc_error",
    300     ":rtp_parameters",
    301     ":rtp_sender_setparameters_callback",
    302     ":scoped_refptr",
    303     "../rtc_base:checks",
    304     "../rtc_base/system:rtc_export",
    305     "crypto:frame_encryptor_interface",
    306     "video_codecs:video_codecs_api",
    307     "//third_party/abseil-cpp/absl/functional:any_invocable",
    308   ]
    309 }
    310 }
    311 
    312 rtc_library("rtp_sender_setparameters_callback") {
    313   visibility = [ "*" ]
    314 
    315   sources = [
    316     "rtp_sender_setparameters_callback.cc",
    317     "rtp_sender_setparameters_callback.h",
    318   ]
    319   deps = [
    320     ":rtc_error",
    321     "//third_party/abseil-cpp/absl/functional:any_invocable",
    322   ]
    323 }
    324 
    325 rtc_library("libjingle_peerconnection_api") {
    326 if (!build_with_mozilla) {
    327   visibility = [ "*" ]
    328   cflags = []
    329   sources = [
    330     "data_channel_interface.cc",
    331     "data_channel_interface.h",
    332     "jsep.cc",
    333     "jsep.h",
    334     "jsep_ice_candidate.cc",
    335     "jsep_ice_candidate.h",
    336     "jsep_session_description.h",
    337     "legacy_stats_types.cc",
    338     "legacy_stats_types.h",
    339     "peer_connection_interface.cc",
    340     "peer_connection_interface.h",
    341     "rtp_receiver_interface.cc",
    342     "rtp_receiver_interface.h",
    343     "rtp_transceiver_interface.cc",
    344     "rtp_transceiver_interface.h",
    345     "sctp_transport_interface.cc",
    346     "sctp_transport_interface.h",
    347     "set_local_description_observer_interface.h",
    348     "set_remote_description_observer_interface.h",
    349     "uma_metrics.h",
    350     "video_track_source_proxy_factory.h",
    351 
    352     # Remove when downstream has been updated
    353     "dtmf_sender_interface.h",
    354     "rtp_sender_interface.h",
    355   ]
    356   public_deps += [  # no-presubmit-check TODO(webrtc:8603)
    357     # Remove when downstream has been updated
    358     ":dtmf_sender_interface",
    359     ":rtp_sender_interface",
    360   ]
    361   deps = [
    362     ":array_view",
    363     ":async_dns_resolver",
    364     ":audio_options_api",
    365     ":candidate",
    366     ":data_channel_event_observer_interface",
    367     ":dtls_transport_interface",
    368     ":fec_controller_api",
    369     ":field_trials_view",
    370     ":frame_transformer_interface",
    371     ":ice_transport_interface",
    372     ":libjingle_logging_api",
    373     ":local_network_access_permission",
    374     ":make_ref_counted",
    375     ":media_stream_interface",
    376     ":network_state_predictor_api",
    377     ":packet_socket_factory",
    378     ":priority",
    379     ":ref_count",
    380     ":rtc_error",
    381     ":rtc_stats_api",
    382     ":rtp_packet_info",
    383     ":rtp_parameters",
    384     ":rtp_sender_interface",
    385     ":rtp_transceiver_direction",
    386     ":scoped_refptr",
    387     ":sequence_checker",
    388     ":turn_customizer",
    389     "../call:rtp_interfaces",
    390     "../media:media_engine",
    391     "../p2p:connection",
    392     "../p2p:port",
    393     "../p2p:port_allocator",
    394     "../pc:media_factory",
    395     "../rtc_base:copy_on_write_buffer",
    396     "../rtc_base:logging",
    397     "../rtc_base:macromagic",
    398     "../rtc_base:network",
    399     "../rtc_base:network_constants",
    400     "../rtc_base:rtc_certificate_generator",
    401     "../rtc_base:socket_factory",
    402     "../rtc_base:ssl",
    403     "../rtc_base:ssl_adapter",
    404     "../rtc_base:stringutils",
    405     "../rtc_base/system:no_unique_address",
    406     "adaptation:resource_adaptation_api",
    407     "audio:audio_device",
    408     "audio:audio_frame_processor",
    409     "audio:audio_mixer_api",
    410     "audio:audio_processing",
    411     "audio_codecs:audio_codecs_api",
    412     "crypto:frame_decryptor_interface",
    413     "crypto:frame_encryptor_interface",
    414     "crypto:options",
    415     "environment",
    416     "metronome",
    417     "neteq:neteq_api",
    418     "rtc_event_log:rtc_event_log_factory_interface",
    419     "task_queue",
    420     "transport:bandwidth_estimation_settings",
    421     "transport:bitrate_settings",
    422     "transport:enums",
    423     "transport:network_control",
    424     "transport:sctp_transport_factory_interface",
    425     "transport/rtp:rtp_source",
    426     "units:data_rate",
    427     "units:time_delta",
    428     "units:timestamp",
    429     "video:encoded_image",
    430     "video:video_bitrate_allocator_factory",
    431     "video:video_frame",
    432     "video:video_rtp_headers",
    433     "video_codecs:video_codecs_api",
    434     "//third_party/abseil-cpp/absl/algorithm:container",
    435     "//third_party/abseil-cpp/absl/base:core_headers",
    436     "//third_party/abseil-cpp/absl/base:nullability",
    437     "//third_party/abseil-cpp/absl/functional:any_invocable",
    438     "//third_party/abseil-cpp/absl/memory",
    439     "//third_party/abseil-cpp/absl/strings",
    440     "//third_party/abseil-cpp/absl/strings:str_format",
    441     "//third_party/abseil-cpp/absl/strings:string_view",
    442 
    443     # Basically, don't add stuff here. You might break sensitive downstream
    444     # targets like pnacl. API should not depend on anything outside of this
    445     # file, really. All these should arguably go away in time.
    446     "../media:rtc_media_config",
    447     "../rtc_base:checks",
    448     "../rtc_base:ip_address",
    449     "../rtc_base:socket_address",
    450     "../rtc_base:threading",
    451     "../rtc_base/system:rtc_export",
    452   ]
    453 }
    454 }
    455 
    456 rtc_library("frame_transformer_interface") {
    457   visibility = [ "*" ]
    458   sources = [
    459     "frame_transformer_interface.cc",
    460     "frame_transformer_interface.h",
    461   ]
    462   deps = [
    463     ":array_view",
    464     ":make_ref_counted",
    465     ":ref_count",
    466     ":scoped_refptr",
    467     "../rtc_base:checks",
    468     "../rtc_base:refcount",
    469     "../rtc_base/system:rtc_export",
    470     "units:time_delta",
    471     "units:timestamp",
    472     "video:encoded_frame",
    473     "video:video_frame_metadata",
    474   ]
    475 }
    476 
    477 rtc_library("rtc_error") {
    478   visibility = [ "*" ]
    479   sources = [
    480     "rtc_error.cc",
    481     "rtc_error.h",
    482   ]
    483   deps = [
    484     "../rtc_base:checks",
    485     "../rtc_base:logging",
    486     "../rtc_base/system:rtc_export",
    487     "//third_party/abseil-cpp/absl/meta:type_traits",
    488     "//third_party/abseil-cpp/absl/strings",
    489     "//third_party/abseil-cpp/absl/strings:str_format",
    490     "//third_party/abseil-cpp/absl/strings:string_view",
    491   ]
    492 }
    493 
    494 rtc_source_set("rtc_error_matchers") {
    495   testonly = true
    496   sources = [ "test/rtc_error_matchers.h" ]
    497   deps = [
    498     ":rtc_error",
    499     "../test:test_support",
    500     "//third_party/abseil-cpp/absl/strings",
    501   ]
    502 }
    503 
    504 rtc_source_set("packet_socket_factory") {
    505   visibility = [ "*" ]
    506   sources = [ "packet_socket_factory.h" ]
    507   deps = [
    508     ":async_dns_resolver",
    509     "../rtc_base:async_packet_socket",
    510     "../rtc_base:checks",
    511     "../rtc_base:socket_address",
    512     "../rtc_base:ssl",
    513     "../rtc_base/system:rtc_export",
    514     "environment",
    515     "//third_party/abseil-cpp/absl/memory",
    516   ]
    517 }
    518 
    519 rtc_source_set("async_dns_resolver") {
    520   visibility = [ "*" ]
    521   sources = [ "async_dns_resolver.h" ]
    522   deps = [
    523     "../rtc_base:checks",
    524     "../rtc_base:socket_address",
    525     "../rtc_base/system:rtc_export",
    526     "//third_party/abseil-cpp/absl/functional:any_invocable",
    527   ]
    528 }
    529 
    530 rtc_source_set("local_network_access_permission") {
    531   visibility = [ "*" ]
    532   sources = [ "local_network_access_permission.h" ]
    533   deps = [
    534     "../rtc_base:checks",
    535     "../rtc_base:socket_address",
    536     "../rtc_base/system:rtc_export",
    537     "//third_party/abseil-cpp/absl/functional:any_invocable",
    538   ]
    539 }
    540 
    541 rtc_source_set("ref_count") {
    542   visibility = [ "*" ]
    543   sources = [ "ref_count.h" ]
    544 }
    545 
    546 rtc_source_set("scoped_refptr") {
    547   visibility = [ "*" ]
    548   sources = [ "scoped_refptr.h" ]
    549   deps = [ "//third_party/abseil-cpp/absl/base:nullability" ]
    550 }
    551 
    552 rtc_source_set("make_ref_counted") {
    553   visibility = [ "*" ]
    554   sources = [ "make_ref_counted.h" ]
    555   deps = [
    556     ":ref_count",
    557     ":scoped_refptr",
    558     "../rtc_base:refcount",
    559     "//third_party/abseil-cpp/absl/base:nullability",
    560   ]
    561 }
    562 
    563 rtc_source_set("video_quality_analyzer_api") {
    564   visibility = [ "*" ]
    565   testonly = true
    566   sources = [ "test/video_quality_analyzer_interface.h" ]
    567 
    568   deps = [
    569     ":array_view",
    570     ":rtc_stats_api",
    571     ":scoped_refptr",
    572     ":stats_observer_interface",
    573     "../rtc_base:checks",
    574     "video:encoded_image",
    575     "video:video_frame",
    576     "video:video_rtp_headers",
    577     "video_codecs:video_codecs_api",
    578     "//third_party/abseil-cpp/absl/strings:string_view",
    579   ]
    580 }
    581 
    582 rtc_source_set("track_id_stream_info_map") {
    583   visibility = [ "*" ]
    584   sources = [ "test/track_id_stream_info_map.h" ]
    585   deps = [ "//third_party/abseil-cpp/absl/strings:string_view" ]
    586 }
    587 
    588 rtc_source_set("rtp_transceiver_direction") {
    589   visibility = [ "*" ]
    590   sources = [ "rtp_transceiver_direction.h" ]
    591 }
    592 
    593 rtc_library("priority") {
    594   visibility = [ "*" ]
    595   sources = [
    596     "priority.cc",
    597     "priority.h",
    598   ]
    599   deps = [
    600     "../rtc_base:checks",
    601     "../rtc_base:strong_alias",
    602     "../rtc_base/system:rtc_export",
    603   ]
    604 }
    605 
    606 rtc_library("rtp_parameters") {
    607   visibility = [ "*" ]
    608   sources = [
    609     "media_types.cc",
    610     "media_types.h",
    611     "rtp_parameters.cc",
    612     "rtp_parameters.h",
    613   ]
    614   deps = [
    615     ":array_view",
    616     ":priority",
    617     ":rtp_transceiver_direction",
    618     "../media:media_constants",
    619     "../rtc_base:checks",
    620     "../rtc_base:stringutils",
    621     "../rtc_base/system:rtc_export",
    622     "video:resolution",
    623     "video_codecs:scalability_mode",
    624     "//third_party/abseil-cpp/absl/base:core_headers",
    625     "//third_party/abseil-cpp/absl/container:inlined_vector",
    626     "//third_party/abseil-cpp/absl/strings:str_format",
    627     "//third_party/abseil-cpp/absl/strings:string_view",
    628   ]
    629 }
    630 
    631 if (is_android) {
    632   java_cpp_enum("priority_enums") {
    633     sources = [ "priority.h" ]
    634   }
    635 }
    636 
    637 rtc_source_set("audio_quality_analyzer_api") {
    638   visibility = [ "*" ]
    639   testonly = true
    640   sources = [ "test/audio_quality_analyzer_interface.h" ]
    641 
    642   deps = [
    643     ":stats_observer_interface",
    644     ":track_id_stream_info_map",
    645   ]
    646 }
    647 
    648 rtc_library("rtp_packet_sender") {
    649   visibility = [ "*" ]
    650   sources = [ "rtp_packet_sender.h" ]
    651 }
    652 
    653 rtc_source_set("stats_observer_interface") {
    654   visibility = [ "*" ]
    655   testonly = true
    656   sources = [ "test/stats_observer_interface.h" ]
    657 
    658   deps = [
    659     ":rtc_stats_api",
    660     ":scoped_refptr",
    661     "//third_party/abseil-cpp/absl/strings:string_view",
    662   ]
    663 }
    664 
    665 rtc_source_set("peer_network_dependencies") {
    666   visibility = [ "*" ]
    667   sources = [ "test/peer_network_dependencies.h" ]
    668   deps = [
    669     "../rtc_base:network",
    670     "../rtc_base:socket_factory",
    671     "../rtc_base:threading",
    672     "//third_party/abseil-cpp/absl/base:nullability",
    673   ]
    674 }
    675 
    676 rtc_source_set("peer_connection_quality_test_fixture_api") {
    677 if (!build_with_mozilla) {
    678   visibility = [ "*" ]
    679   testonly = true
    680   sources = [ "test/peerconnection_quality_test_fixture.h" ]
    681 
    682   deps = [
    683     ":array_view",
    684     ":audio_quality_analyzer_api",
    685     ":fec_controller_api",
    686     ":frame_generator_api",
    687     ":function_view",
    688     ":libjingle_peerconnection_api",
    689     ":media_stream_interface",
    690     ":network_state_predictor_api",
    691     ":packet_socket_factory",
    692     ":rtp_parameters",
    693     ":simulated_network_api",
    694     ":stats_observer_interface",
    695     ":track_id_stream_info_map",
    696     ":video_quality_analyzer_api",
    697     "../media:media_constants",
    698     "../rtc_base:checks",
    699     "../rtc_base:network",
    700     "../rtc_base:rtc_certificate_generator",
    701     "../rtc_base:ssl",
    702     "../rtc_base:stringutils",
    703     "../rtc_base:threading",
    704     "../test:fileutils",
    705     "audio:audio_mixer_api",
    706     "audio:audio_processing",
    707     "rtc_event_log",
    708     "task_queue",
    709     "test/pclf:media_configuration",
    710     "test/pclf:media_quality_test_params",
    711     "test/pclf:peer_configurer",
    712     "test/video:video_frame_writer",
    713     "transport:network_control",
    714     "units:time_delta",
    715     "video:video_frame",
    716     "video_codecs:video_codecs_api",
    717     "//third_party/abseil-cpp/absl/base:core_headers",
    718     "//third_party/abseil-cpp/absl/memory",
    719     "//third_party/abseil-cpp/absl/strings:string_view",
    720   ]
    721 }
    722 }
    723 
    724 rtc_library("frame_generator_api") {
    725   visibility = [ "*" ]
    726   sources = [
    727     "test/frame_generator_interface.cc",
    728     "test/frame_generator_interface.h",
    729   ]
    730 
    731   deps = [
    732     ":scoped_refptr",
    733     "../rtc_base:checks",
    734     "video:video_frame",
    735   ]
    736 }
    737 
    738 if (rtc_include_tests) {
    739   # TODO(srte): Move to network_emulation sub directory.
    740   rtc_library("create_network_emulation_manager") {
    741     visibility = [ "*" ]
    742     testonly = true
    743     sources = [
    744       "test/create_network_emulation_manager.cc",
    745       "test/create_network_emulation_manager.h",
    746     ]
    747     deps = [
    748       ":field_trials_view",
    749       ":network_emulation_manager_api",
    750       "../test/network:emulated_network",
    751     ]
    752   }
    753 
    754   if (!build_with_chromium) {
    755     rtc_source_set("video_quality_test_fixture_api") {
    756       visibility = [ "*" ]
    757       testonly = true
    758       sources = [ "test/video_quality_test_fixture.h" ]
    759       deps = [
    760         ":fec_controller_api",
    761         ":libjingle_peerconnection_api",
    762         ":network_state_predictor_api",
    763         ":rtp_parameters",
    764         ":simulated_network_api",
    765         "../call:fake_network",
    766         "../call:rtp_interfaces",
    767         "../test:test_common",
    768         "../test:video_test_common",
    769         "../video/config:encoder_config",
    770         "transport:bitrate_settings",
    771         "transport:network_control",
    772         "video_codecs:video_codecs_api",
    773       ]
    774     }
    775 
    776     rtc_library("create_video_quality_test_fixture_api") {
    777       visibility = [ "*" ]
    778       testonly = true
    779       sources = [
    780         "test/create_video_quality_test_fixture.cc",
    781         "test/create_video_quality_test_fixture.h",
    782       ]
    783       deps = [
    784         ":video_quality_test_fixture_api",
    785         "../video:video_quality_test",
    786       ]
    787     }
    788 
    789     rtc_library("create_peerconnection_quality_test_fixture") {
    790       visibility = [ "*" ]
    791       testonly = true
    792       sources = [
    793         "test/create_peerconnection_quality_test_fixture.cc",
    794         "test/create_peerconnection_quality_test_fixture.h",
    795       ]
    796 
    797       deps = [
    798         ":audio_quality_analyzer_api",
    799         ":peer_connection_quality_test_fixture_api",
    800         ":time_controller",
    801         ":video_quality_analyzer_api",
    802         "../test/pc/e2e:peerconnection_quality_test",
    803         "test/metrics:global_metrics_logger_and_exporter",
    804       ]
    805     }
    806   }
    807 }
    808 
    809 rtc_library("create_frame_generator") {
    810   visibility = [ "*" ]
    811   testonly = true
    812   sources = [
    813     "test/create_frame_generator.cc",
    814     "test/create_frame_generator.h",
    815   ]
    816   deps = [
    817     ":frame_generator_api",
    818     "../rtc_base:checks",
    819     "../system_wrappers",
    820     "../test:frame_generator_impl",
    821     "environment",
    822     "environment:environment_factory",
    823     "//third_party/abseil-cpp/absl/base:nullability",
    824     "//third_party/abseil-cpp/absl/strings:string_view",
    825   ]
    826 }
    827 
    828 if (!build_with_mozilla) {
    829 rtc_library("create_peer_connection_quality_test_frame_generator") {
    830   visibility = [ "*" ]
    831   testonly = true
    832   sources = [
    833     "test/create_peer_connection_quality_test_frame_generator.cc",
    834     "test/create_peer_connection_quality_test_frame_generator.h",
    835   ]
    836   deps = [
    837     ":create_frame_generator",
    838     ":frame_generator_api",
    839     "../rtc_base:checks",
    840     "../system_wrappers",
    841     "../test:fileutils",
    842     "test/pclf:media_configuration",
    843     "units:time_delta",
    844   ]
    845 }
    846 }
    847 
    848 rtc_source_set("data_channel_event_observer_interface") {
    849   visibility = [ "*" ]
    850   sources = [ "data_channel_event_observer_interface.h" ]
    851   deps = [
    852     ":array_view",
    853     "//third_party/abseil-cpp/absl/strings:string_view",
    854   ]
    855 }
    856 
    857 rtc_source_set("libjingle_logging_api") {
    858   visibility = [ "*" ]
    859   sources = [ "rtc_event_log_output.h" ]
    860   deps = [ "//third_party/abseil-cpp/absl/strings:string_view" ]
    861 }
    862 
    863 rtc_library("rtc_event_log_output_file") {
    864   visibility = [ "*" ]
    865   sources = [
    866     "rtc_event_log_output_file.cc",
    867     "rtc_event_log_output_file.h",
    868   ]
    869 
    870   deps = [
    871     ":libjingle_logging_api",
    872     "../rtc_base:checks",
    873     "../rtc_base:logging",
    874     "../rtc_base/system:file_wrapper",
    875     "rtc_event_log",
    876     "//third_party/abseil-cpp/absl/strings:string_view",
    877   ]
    878 }
    879 
    880 rtc_source_set("rtc_stats_api") {
    881   visibility = [ "*" ]
    882   cflags = []
    883   sources = [
    884     "stats/attribute.h",
    885     "stats/rtc_stats.h",
    886     "stats/rtc_stats_collector_callback.h",
    887     "stats/rtc_stats_report.h",
    888     "stats/rtcstats_objects.h",
    889   ]
    890 
    891   deps = [
    892     ":make_ref_counted",
    893     ":ref_count",
    894     ":scoped_refptr",
    895     "../api:refcountedbase",
    896     "../rtc_base:checks",
    897     "../rtc_base:refcount",
    898     "../rtc_base/system:rtc_export",
    899     "units:timestamp",
    900   ]
    901 }
    902 
    903 rtc_library("audio_options_api") {
    904   visibility = [ "*" ]
    905   sources = [
    906     "audio_options.cc",
    907     "audio_options.h",
    908   ]
    909 
    910   deps = [
    911     ":array_view",
    912     "../rtc_base:stringutils",
    913     "../rtc_base/system:rtc_export",
    914   ]
    915 }
    916 
    917 rtc_library("transport_api") {
    918   visibility = [ "*" ]
    919   sources = [
    920     "call/transport.cc",
    921     "call/transport.h",
    922   ]
    923   deps = [
    924     ":array_view",
    925     ":refcountedbase",
    926     ":scoped_refptr",
    927   ]
    928 }
    929 
    930 rtc_source_set("bitrate_allocation") {
    931   visibility = [ "*" ]
    932   sources = [ "call/bitrate_allocation.h" ]
    933   deps = [
    934     "units:data_rate",
    935     "units:time_delta",
    936   ]
    937 }
    938 
    939 # TODO(srte): Move to network_emulation sub directory.
    940 rtc_source_set("simulated_network_api") {
    941   visibility = [ "*" ]
    942   sources = [ "test/simulated_network.h" ]
    943   deps = [
    944     "../rtc_base:random",
    945     "transport:ecn_marking",
    946     "units:data_rate",
    947     "units:data_size",
    948     "units:timestamp",
    949     "//third_party/abseil-cpp/absl/functional:any_invocable",
    950   ]
    951 }
    952 
    953 # TODO(srte): Move to network_emulation sub directory.
    954 rtc_library("network_emulation_manager_api") {
    955   visibility = [ "*" ]
    956   sources = [
    957     "test/network_emulation_manager.cc",
    958     "test/network_emulation_manager.h",
    959   ]
    960   deps = [
    961     ":array_view",
    962     ":field_trials_view",
    963     ":packet_socket_factory",
    964     ":peer_network_dependencies",
    965     ":simulated_network_api",
    966     ":time_controller",
    967     "../rtc_base:checks",
    968     "../rtc_base:ip_address",
    969     "../rtc_base:network",
    970     "../rtc_base:network_constants",
    971     "../rtc_base:socket_address",
    972     "../test/network:simulated_network",
    973     "test/network_emulation",
    974     "test/network_emulation:network_queue",
    975     "units:data_rate",
    976     "//third_party/abseil-cpp/absl/base:nullability",
    977     "//third_party/abseil-cpp/absl/strings:string_view",
    978   ]
    979 }
    980 
    981 rtc_library("time_controller") {
    982   visibility = [ "*" ]
    983   sources = [
    984     "test/time_controller.cc",
    985     "test/time_controller.h",
    986   ]
    987 
    988   deps = [
    989     "../rtc_base:socket_server",
    990     "../rtc_base:threading",
    991     "../rtc_base/synchronization:yield_policy",
    992     "../system_wrappers",
    993     "task_queue",
    994     "units:time_delta",
    995     "units:timestamp",
    996     "//third_party/abseil-cpp/absl/strings:string_view",
    997   ]
    998 }
    999 
   1000 rtc_source_set("fec_controller_api") {
   1001   visibility = [ "*" ]
   1002   sources = [
   1003     "fec_controller.h",
   1004     "fec_controller_override.h",
   1005   ]
   1006 
   1007   deps = [
   1008     "../modules:module_fec_api",
   1009     "environment",
   1010     "video:video_frame_type",
   1011   ]
   1012 }
   1013 
   1014 rtc_source_set("network_state_predictor_api") {
   1015   visibility = [ "*" ]
   1016   sources = [ "network_state_predictor.h" ]
   1017   deps = [ "transport:bandwidth_usage" ]
   1018 }
   1019 
   1020 rtc_source_set("array_view") {
   1021   visibility = [ "*" ]
   1022   sources = [ "array_view.h" ]
   1023   deps = [
   1024     "../rtc_base:checks",
   1025     "../rtc_base:type_traits",
   1026   ]
   1027 }
   1028 
   1029 rtc_source_set("refcountedbase") {
   1030   visibility = [ "*" ]
   1031   sources = [ "ref_counted_base.h" ]
   1032   deps = [
   1033     ":ref_count",
   1034     "../rtc_base:refcount",
   1035   ]
   1036 }
   1037 
   1038 rtc_library("ice_transport_factory") {
   1039 if (!build_with_mozilla) {
   1040   visibility = [ "*" ]
   1041   sources = [
   1042     "ice_transport_factory.cc",
   1043     "ice_transport_factory.h",
   1044   ]
   1045   deps = [
   1046     ":ice_transport_interface",
   1047     ":libjingle_peerconnection_api",
   1048     ":make_ref_counted",
   1049     ":packet_socket_factory",
   1050     ":scoped_refptr",
   1051     ":sequence_checker",
   1052     "../p2p:connection",
   1053     "../p2p:ice_transport_internal",
   1054     "../p2p:p2p_constants",
   1055     "../p2p:p2p_transport_channel",
   1056     "../p2p:port_allocator",
   1057     "../rtc_base:macromagic",
   1058     "../rtc_base:threading",
   1059     "../rtc_base/system:rtc_export",
   1060     "rtc_event_log",
   1061   ]
   1062 }
   1063 }
   1064 
   1065 rtc_library("neteq_simulator_api") {
   1066   visibility = [ "*" ]
   1067   sources = [
   1068     "test/neteq_simulator.cc",
   1069     "test/neteq_simulator.h",
   1070   ]
   1071   deps = [ "neteq:neteq_api" ]
   1072 }
   1073 
   1074 rtc_source_set("function_view") {
   1075   visibility = [ "*" ]
   1076   sources = [ "function_view.h" ]
   1077   deps = [ "../rtc_base:checks" ]
   1078 }
   1079 
   1080 rtc_source_set("sequence_checker") {
   1081   visibility = [ "*" ]
   1082   sources = [ "sequence_checker.h" ]
   1083   deps = [
   1084     "../rtc_base:checks",
   1085     "../rtc_base:macromagic",
   1086     "../rtc_base/synchronization:sequence_checker_internal",
   1087     "task_queue",
   1088   ]
   1089 }
   1090 
   1091 rtc_library("datagram_connection") {
   1092   visibility = [ "*" ]
   1093   sources = [ "datagram_connection.h" ]
   1094   deps = [
   1095     ":array_view",
   1096     ":candidate",
   1097     ":ref_count",
   1098     "../p2p:transport_description",
   1099     "../rtc_base:macromagic",
   1100     "../rtc_base/system:rtc_export",
   1101     "environment",
   1102     "//third_party/abseil-cpp/absl/functional:any_invocable",
   1103   ]
   1104 }
   1105 
   1106 rtc_library("datagram_connection_factory") {
   1107   visibility = [ "*" ]
   1108   sources = [
   1109     "datagram_connection_factory.cc",
   1110     "datagram_connection_factory.h",
   1111   ]
   1112   deps = [
   1113     ":datagram_connection",
   1114     ":ref_count",
   1115     "../p2p:port_allocator",
   1116     "../pc:datagram_connection_internal",
   1117     "../rtc_base:macromagic",
   1118     "../rtc_base/system:rtc_export",
   1119     "environment",
   1120   ]
   1121 }
   1122 
   1123 if (rtc_include_tests) {
   1124   if (rtc_enable_protobuf && !build_with_chromium) {
   1125     rtc_library("audioproc_f_api") {
   1126       visibility = [ "*" ]
   1127       testonly = true
   1128       sources = [
   1129         "test/audioproc_float.cc",
   1130         "test/audioproc_float.h",
   1131       ]
   1132 
   1133       deps = [
   1134         ":scoped_refptr",
   1135         "../modules/audio_processing",
   1136         "../modules/audio_processing:audioproc_f_impl",
   1137         "audio:audio_processing",
   1138         "audio:builtin_audio_processing_builder",
   1139         "//third_party/abseil-cpp/absl/base:nullability",
   1140       ]
   1141     }
   1142 
   1143     rtc_library("neteq_simulator_factory") {
   1144       visibility = [ "*" ]
   1145       testonly = true
   1146       sources = [
   1147         "test/neteq_simulator_factory.cc",
   1148         "test/neteq_simulator_factory.h",
   1149       ]
   1150       deps = [
   1151         ":neteq_simulator_api",
   1152         "../modules/audio_coding:neteq_test_factory",
   1153         "../rtc_base:checks",
   1154         "neteq:neteq_api",
   1155         "//third_party/abseil-cpp/absl/flags:flag",
   1156         "//third_party/abseil-cpp/absl/flags:parse",
   1157         "//third_party/abseil-cpp/absl/strings:string_view",
   1158       ]
   1159     }
   1160   }
   1161 
   1162   rtc_source_set("simulcast_test_fixture_api") {
   1163     visibility = [ "*" ]
   1164     testonly = true
   1165     sources = [ "test/simulcast_test_fixture.h" ]
   1166   }
   1167 
   1168   rtc_library("create_simulcast_test_fixture_api") {
   1169     visibility = [ "*" ]
   1170     testonly = true
   1171     sources = [
   1172       "test/create_simulcast_test_fixture.cc",
   1173       "test/create_simulcast_test_fixture.h",
   1174     ]
   1175     deps = [
   1176       ":simulcast_test_fixture_api",
   1177       "../modules/video_coding:simulcast_test_fixture_impl",
   1178       "video_codecs:video_codecs_api",
   1179     ]
   1180   }
   1181 
   1182   rtc_library("videocodec_test_stats_api") {
   1183     visibility = [ "*" ]
   1184     testonly = true
   1185     sources = [
   1186       "test/videocodec_test_stats.cc",
   1187       "test/videocodec_test_stats.h",
   1188     ]
   1189     deps = [
   1190       "../api/units:data_rate",
   1191       "../api/units:frequency",
   1192       "../rtc_base:stringutils",
   1193       "video:video_frame_type",
   1194     ]
   1195   }
   1196 
   1197   rtc_library("videocodec_test_fixture_api") {
   1198     visibility = [ "*" ]
   1199     testonly = true
   1200     sources = [ "test/videocodec_test_fixture.h" ]
   1201     deps = [
   1202       ":field_trials",
   1203       ":videocodec_test_stats_api",
   1204       "../modules/video_coding:codec_globals_headers",
   1205       "../modules/video_coding:video_codec_interface",
   1206       "video:encoded_image",
   1207       "video:video_frame",
   1208       "video_codecs:video_codecs_api",
   1209     ]
   1210   }
   1211 
   1212   rtc_library("create_videocodec_test_fixture_api") {
   1213     visibility = [ "*" ]
   1214     testonly = true
   1215     sources = [
   1216       "test/create_videocodec_test_fixture.cc",
   1217       "test/create_videocodec_test_fixture.h",
   1218     ]
   1219     deps = [
   1220       ":videocodec_test_fixture_api",
   1221       "../modules/video_coding:video_codecs_test_framework",
   1222       "../modules/video_coding:videocodec_test_impl",
   1223       "video_codecs:video_codecs_api",
   1224     ]
   1225   }
   1226 
   1227   rtc_source_set("mock_audio_mixer") {
   1228     visibility = [ "*" ]
   1229     testonly = true
   1230     sources = [ "test/mock_audio_mixer.h" ]
   1231 
   1232     deps = [
   1233       "../test:test_support",
   1234       "audio:audio_frame_api",
   1235       "audio:audio_mixer_api",
   1236     ]
   1237   }
   1238 
   1239   rtc_source_set("mock_audio_sink") {
   1240     visibility = [ "*" ]
   1241     testonly = true
   1242     sources = [ "test/mock_audio_sink.h" ]
   1243 
   1244     deps = [
   1245       "../api:media_stream_interface",
   1246       "../test:test_support",
   1247     ]
   1248   }
   1249 
   1250   rtc_source_set("mock_data_channel") {
   1251     visibility = [ "*" ]
   1252     testonly = true
   1253     sources = [ "test/mock_data_channel.h" ]
   1254 
   1255     deps = [
   1256       ":libjingle_peerconnection_api",
   1257       ":priority",
   1258       ":rtc_error",
   1259       ":scoped_refptr",
   1260       "../rtc_base:refcount",
   1261       "../test:test_support",
   1262       "//third_party/abseil-cpp/absl/functional:any_invocable",
   1263     ]
   1264   }
   1265 
   1266   rtc_source_set("mock_dtmf_sender") {
   1267     visibility = [ "*" ]
   1268     testonly = true
   1269     sources = [ "test/mock_dtmf_sender.h" ]
   1270 
   1271     deps = [
   1272       ":dtmf_sender_interface",
   1273       ":libjingle_peerconnection_api",
   1274       ":make_ref_counted",
   1275       ":scoped_refptr",
   1276       "../rtc_base:refcount",
   1277       "../test:test_support",
   1278     ]
   1279   }
   1280 
   1281   rtc_source_set("mock_fec_controller_override") {
   1282     visibility = [ "*" ]
   1283     testonly = true
   1284     sources = [ "test/mock_fec_controller_override.h" ]
   1285     deps = [
   1286       ":fec_controller_api",
   1287       "../test:test_support",
   1288     ]
   1289   }
   1290 
   1291   rtc_library("mock_frame_encryptor") {
   1292     visibility = [ "*" ]
   1293     testonly = true
   1294     sources = [ "test/mock_frame_encryptor.h" ]
   1295     deps = [
   1296       ":array_view",
   1297       ":rtp_parameters",
   1298 
   1299       # For api/crypto/frame_encryptor_interface.h
   1300       ":libjingle_peerconnection_api",
   1301       "../test:test_support",
   1302       "crypto:frame_encryptor_interface",
   1303     ]
   1304   }
   1305 
   1306   rtc_library("mock_frame_decryptor") {
   1307     visibility = [ "*" ]
   1308     testonly = true
   1309     sources = [ "test/mock_frame_decryptor.h" ]
   1310     deps = [
   1311       ":array_view",
   1312       ":libjingle_peerconnection_api",
   1313       ":rtp_parameters",
   1314       "../test:test_support",
   1315       "crypto:frame_decryptor_interface",
   1316     ]
   1317   }
   1318 
   1319   rtc_library("mock_frame_transformer") {
   1320     visibility = [ "*" ]
   1321     testonly = true
   1322     sources = [ "test/mock_frame_transformer.h" ]
   1323     deps = [
   1324       ":frame_transformer_interface",
   1325       ":scoped_refptr",
   1326       "../test:test_support",
   1327     ]
   1328   }
   1329 
   1330   rtc_library("mock_encoder_selector") {
   1331     visibility = [ "*" ]
   1332     testonly = true
   1333     sources = [ "test/mock_encoder_selector.h" ]
   1334     deps = [
   1335       ":libjingle_peerconnection_api",
   1336       "../api/video_codecs:video_codecs_api",
   1337       "../test:test_support",
   1338       "units:data_rate",
   1339       "video:render_resolution",
   1340     ]
   1341   }
   1342 
   1343   rtc_library("fake_frame_encryptor") {
   1344     visibility = [ "*" ]
   1345     testonly = true
   1346     sources = [
   1347       "test/fake_frame_encryptor.cc",
   1348       "test/fake_frame_encryptor.h",
   1349     ]
   1350     deps = [
   1351       ":array_view",
   1352       ":libjingle_peerconnection_api",
   1353       ":make_ref_counted",
   1354       ":ref_count",
   1355       ":rtp_parameters",
   1356       "../rtc_base:checks",
   1357       "../rtc_base:refcount",
   1358       "crypto:frame_encryptor_interface",
   1359     ]
   1360   }
   1361 
   1362   rtc_library("fake_frame_decryptor") {
   1363     visibility = [ "*" ]
   1364     testonly = true
   1365     sources = [
   1366       "test/fake_frame_decryptor.cc",
   1367       "test/fake_frame_decryptor.h",
   1368     ]
   1369     deps = [
   1370       ":array_view",
   1371       ":libjingle_peerconnection_api",
   1372       ":make_ref_counted",
   1373       ":rtp_parameters",
   1374       "../rtc_base:checks",
   1375       "crypto:frame_decryptor_interface",
   1376     ]
   1377   }
   1378 
   1379   rtc_source_set("mock_media_stream_interface") {
   1380     visibility = [ "*" ]
   1381     testonly = true
   1382     sources = [ "test/mock_media_stream_interface.h" ]
   1383 
   1384     deps = [
   1385       ":audio_options_api",
   1386       ":media_stream_interface",
   1387       ":scoped_refptr",
   1388       "../rtc_base:refcount",
   1389       "../test:test_support",
   1390     ]
   1391   }
   1392 
   1393   rtc_source_set("mock_packet_socket_factory") {
   1394     visibility = [ "*" ]
   1395     testonly = true
   1396     sources = [ "test/mock_packet_socket_factory.h" ]
   1397 
   1398     deps = [
   1399       ":async_dns_resolver",
   1400       ":packet_socket_factory",
   1401       "../rtc_base:async_packet_socket",
   1402       "../rtc_base:socket_address",
   1403       "../test:test_support",
   1404       "environment",
   1405     ]
   1406   }
   1407 
   1408   rtc_source_set("mock_peerconnectioninterface") {
   1409     visibility = [ "*" ]
   1410     testonly = true
   1411     sources = [ "test/mock_peerconnectioninterface.h" ]
   1412 
   1413     deps = [
   1414       ":candidate",
   1415       ":data_channel_event_observer_interface",
   1416       ":dtls_transport_interface",
   1417       ":libjingle_logging_api",
   1418       ":libjingle_peerconnection_api",
   1419       ":make_ref_counted",
   1420       ":media_stream_interface",
   1421       ":ref_count",
   1422       ":rtc_error",
   1423       ":rtc_stats_api",
   1424       ":rtp_parameters",
   1425       "../api:scoped_refptr",
   1426       "../rtc_base:refcount",
   1427       "../rtc_base:threading",
   1428       "../test:test_support",
   1429       "adaptation:resource_adaptation_api",
   1430       "transport:bandwidth_estimation_settings",
   1431       "transport:bitrate_settings",
   1432       "transport:network_control",
   1433     ]
   1434   }
   1435 
   1436   rtc_source_set("mock_peer_connection_factory_interface") {
   1437     visibility = [ "*" ]
   1438     testonly = true
   1439     sources = [ "test/mock_peer_connection_factory_interface.h" ]
   1440 
   1441     deps = [
   1442       ":audio_options_api",
   1443       ":libjingle_peerconnection_api",
   1444       ":media_stream_interface",
   1445       ":rtc_error",
   1446       ":rtp_parameters",
   1447       ":scoped_refptr",
   1448       "../rtc_base:refcount",
   1449       "../test:test_support",
   1450       "//third_party/abseil-cpp/absl/strings:string_view",
   1451     ]
   1452   }
   1453 
   1454   rtc_source_set("mock_transformable_frame") {
   1455     visibility = [ "*" ]
   1456     testonly = true
   1457     sources = [ "test/mock_transformable_frame.h" ]
   1458     deps = [
   1459       ":array_view",
   1460       ":frame_transformer_interface",
   1461       "../test:test_support",
   1462       "units:time_delta",
   1463       "units:timestamp",
   1464     ]
   1465   }
   1466 
   1467   rtc_source_set("mock_async_dns_resolver") {
   1468     visibility = [ "*" ]
   1469     testonly = true
   1470     sources = [ "test/mock_async_dns_resolver.h" ]
   1471     deps = [
   1472       ":async_dns_resolver",
   1473       "../rtc_base:socket_address",
   1474       "../test:test_support",
   1475       "//third_party/abseil-cpp/absl/functional:any_invocable",
   1476     ]
   1477   }
   1478 
   1479   rtc_library("mock_local_network_access_permission") {
   1480     visibility = [ "*" ]
   1481     testonly = true
   1482     sources = [
   1483       "test/mock_local_network_access_permission.cc",
   1484       "test/mock_local_network_access_permission.h",
   1485     ]
   1486     deps = [
   1487       ":local_network_access_permission",
   1488       "../rtc_base:socket_address",
   1489       "../rtc_base:threading",
   1490       "../test:test_support",
   1491       "//third_party/abseil-cpp/absl/functional:any_invocable",
   1492     ]
   1493   }
   1494 
   1495   rtc_source_set("mock_rtp") {
   1496     visibility = [ "*" ]
   1497     testonly = true
   1498     sources = [
   1499       "test/mock_rtp_transceiver.h",
   1500       "test/mock_rtpreceiver.h",
   1501       "test/mock_rtpsender.h",
   1502     ]
   1503 
   1504     deps = [
   1505       ":array_view",
   1506       ":dtls_transport_interface",
   1507       ":frame_transformer_interface",
   1508       ":libjingle_peerconnection_api",
   1509       ":make_ref_counted",
   1510       ":media_stream_interface",
   1511       ":rtc_error",
   1512       ":rtp_parameters",
   1513       ":rtp_sender_interface",
   1514       ":rtp_transceiver_direction",
   1515       ":scoped_refptr",
   1516       "../api/crypto:frame_decryptor_interface",
   1517       "../rtc_base:refcount",
   1518       "../test:test_support",
   1519       "crypto:frame_encryptor_interface",
   1520       "transport/rtp:rtp_source",
   1521       "video_codecs:video_codecs_api",
   1522     ]
   1523   }
   1524 
   1525   rtc_source_set("mock_transformable_audio_frame") {
   1526     visibility = [ "*" ]
   1527     testonly = true
   1528     sources = [ "test/mock_transformable_audio_frame.h" ]
   1529 
   1530     deps = [
   1531       ":array_view",
   1532       ":frame_transformer_interface",
   1533       "../api/units:timestamp",
   1534       "../test:test_support",
   1535       "units:time_delta",
   1536     ]
   1537   }
   1538 
   1539   rtc_source_set("mock_transformable_video_frame") {
   1540     visibility = [ "*" ]
   1541     testonly = true
   1542     sources = [ "test/mock_transformable_video_frame.h" ]
   1543 
   1544     deps = [
   1545       ":array_view",
   1546       ":frame_transformer_interface",
   1547       "../test:test_support",
   1548       "units:time_delta",
   1549       "units:timestamp",
   1550       "video:video_frame_metadata",
   1551     ]
   1552   }
   1553 
   1554   rtc_source_set("mock_video_bitrate_allocator") {
   1555     visibility = [ "*" ]
   1556     testonly = true
   1557     sources = [ "test/mock_video_bitrate_allocator.h" ]
   1558 
   1559     deps = [
   1560       "../api/video:video_bitrate_allocator",
   1561       "../test:test_support",
   1562       "video:video_bitrate_allocation",
   1563     ]
   1564   }
   1565 
   1566   rtc_source_set("mock_video_bitrate_allocator_factory") {
   1567     visibility = [ "*" ]
   1568     testonly = true
   1569     sources = [ "test/mock_video_bitrate_allocator_factory.h" ]
   1570 
   1571     deps = [
   1572       "../api/video:video_bitrate_allocator_factory",
   1573       "../test:test_support",
   1574       "environment",
   1575       "video:video_bitrate_allocator",
   1576       "video_codecs:video_codecs_api",
   1577     ]
   1578   }
   1579 
   1580   rtc_source_set("mock_video_codec_factory") {
   1581     visibility = [ "*" ]
   1582     testonly = true
   1583     sources = [
   1584       "test/mock_video_decoder_factory.h",
   1585       "test/mock_video_encoder_factory.h",
   1586     ]
   1587 
   1588     deps = [
   1589       "../api/video_codecs:video_codecs_api",
   1590       "../test:test_support",
   1591       "environment",
   1592     ]
   1593   }
   1594 
   1595   rtc_library("mock_video_decoder") {
   1596     visibility = [ "*" ]
   1597     testonly = true
   1598     sources = [ "test/mock_video_decoder.h" ]
   1599 
   1600     deps = [
   1601       "../api/video_codecs:video_codecs_api",
   1602       "../test:test_support",
   1603       "video:encoded_image",
   1604       "video:video_frame",
   1605     ]
   1606   }
   1607 
   1608   rtc_library("mock_video_encoder") {
   1609     visibility = [ "*" ]
   1610     testonly = true
   1611     sources = [ "test/mock_video_encoder.h" ]
   1612 
   1613     deps = [
   1614       ":fec_controller_api",
   1615       "../api/video_codecs:video_codecs_api",
   1616       "../test:test_support",
   1617       "video:encoded_image",
   1618       "video:video_frame",
   1619       "video:video_frame_type",
   1620     ]
   1621   }
   1622 
   1623   rtc_library("mock_video_track") {
   1624     visibility = [ "*" ]
   1625     testonly = true
   1626     sources = [ "test/mock_video_track.h" ]
   1627 
   1628     deps = [
   1629       ":ref_count",
   1630       "../api:media_stream_interface",
   1631       "../api:scoped_refptr",
   1632       "../rtc_base:refcount",
   1633       "../test:test_support",
   1634       "video:video_frame",
   1635     ]
   1636   }
   1637 
   1638   rtc_library("mock_datagram_connection_observer") {
   1639     visibility = [ "*" ]
   1640     testonly = true
   1641     sources = [ "test/mock_datagram_connection_observer.h" ]
   1642     deps = [
   1643       "../api:datagram_connection",
   1644       "//test:test_support",
   1645       "//testing/gmock",
   1646     ]
   1647   }
   1648 
   1649   rtc_library("create_time_controller") {
   1650     visibility = [ "*" ]
   1651     testonly = true
   1652     sources = [
   1653       "test/create_time_controller.cc",
   1654       "test/create_time_controller.h",
   1655     ]
   1656 
   1657     deps = [
   1658       ":time_controller",
   1659       "../test/time_controller",
   1660       "units:timestamp",
   1661     ]
   1662   }
   1663 
   1664   rtc_library("rtc_api_unittests") {
   1665     testonly = true
   1666 
   1667     sources = [
   1668       "array_view_unittest.cc",
   1669       "candidate_unittest.cc",
   1670       "field_trials_unittest.cc",
   1671       "function_view_unittest.cc",
   1672       "jsep_unittest.cc",
   1673       "rtc_error_unittest.cc",
   1674       "rtc_event_log_output_file_unittest.cc",
   1675       "rtp_packet_info_unittest.cc",
   1676       "rtp_packet_infos_unittest.cc",
   1677       "rtp_parameters_unittest.cc",
   1678       "scoped_refptr_unittest.cc",
   1679       "sequence_checker_unittest.cc",
   1680       "test/peerconnection_quality_test_fixture_unittest.cc",
   1681     ]
   1682 
   1683     deps = [
   1684       ":array_view",
   1685       ":candidate",
   1686       ":field_trials",
   1687       ":field_trials_view",
   1688       ":function_view",
   1689       ":libjingle_peerconnection_api",
   1690       ":rtc_error",
   1691       ":rtc_event_log_output_file",
   1692       ":rtp_headers",
   1693       ":rtp_packet_info",
   1694       ":rtp_parameters",
   1695       ":scoped_refptr",
   1696       ":sequence_checker",
   1697       "../p2p:p2p_constants",
   1698       "../rtc_base:buffer",
   1699       "../rtc_base:checks",
   1700       "../rtc_base:logging",
   1701       "../rtc_base:macromagic",
   1702       "../rtc_base:platform_thread",
   1703       "../rtc_base:rtc_event",
   1704       "../rtc_base:socket_address",
   1705       "../rtc_base:task_queue_for_test",
   1706       "../rtc_base/containers:flat_set",
   1707       "../rtc_base/synchronization:sequence_checker_internal",
   1708       "../test:fileutils",
   1709       "../test:test_support",
   1710       "audio_codecs/opus:unittests",
   1711       "environment:environment_unittests",
   1712       "task_queue:task_queue_default_factory_unittests",
   1713       "test/pclf:media_configuration",
   1714       "test/video:video_frame_writer",
   1715       "units:time_delta",
   1716       "units:timestamp",
   1717       "units:units_unittests",
   1718       "video:frame_buffer_unittest",
   1719       "video:rtp_video_frame_assembler_unittests",
   1720       "video:video_frame",
   1721       "video:video_frame_metadata_unittest",
   1722       "video/corruption_detection:frame_instrumentation_data_reader_unittest",
   1723       "video/corruption_detection:frame_instrumentation_data_unittest",
   1724       "video/corruption_detection:frame_instrumentation_evaluation_unittest",
   1725       "video/corruption_detection:frame_instrumentation_generator_unittest",
   1726       "//third_party/abseil-cpp/absl/functional:any_invocable",
   1727       "//third_party/abseil-cpp/absl/strings",
   1728       "//third_party/abseil-cpp/absl/strings:string_view",
   1729     ]
   1730 
   1731     if (rtc_use_h265) {
   1732       deps += [ "video:rtp_video_frame_h265_assembler_unittests" ]
   1733     }
   1734   }
   1735 
   1736   rtc_library("compile_all_headers") {
   1737     testonly = true
   1738 
   1739     sources = [ "test/compile_all_headers.cc" ]
   1740 
   1741     deps = [
   1742       ":fake_frame_decryptor",
   1743       ":fake_frame_encryptor",
   1744       ":mock_async_dns_resolver",
   1745       ":mock_audio_mixer",
   1746       ":mock_audio_sink",
   1747       ":mock_data_channel",
   1748       ":mock_dtmf_sender",
   1749       ":mock_frame_decryptor",
   1750       ":mock_frame_encryptor",
   1751       ":mock_media_stream_interface",
   1752       ":mock_packet_socket_factory",
   1753       ":mock_peer_connection_factory_interface",
   1754       ":mock_peerconnectioninterface",
   1755       ":mock_rtp",
   1756       ":mock_transformable_audio_frame",
   1757       ":mock_transformable_frame",
   1758       ":mock_transformable_video_frame",
   1759       ":mock_video_bitrate_allocator",
   1760       ":mock_video_bitrate_allocator_factory",
   1761       ":mock_video_codec_factory",
   1762       ":mock_video_decoder",
   1763       ":mock_video_encoder",
   1764       ":mock_video_track",
   1765       ":rtc_api_unittests",
   1766       "units:units_unittests",
   1767     ]
   1768   }
   1769 }
   1770 
   1771 rtc_library("field_trials_registry") {
   1772   visibility = [ "*" ]
   1773   sources = [
   1774     "field_trials_registry.cc",
   1775     "field_trials_registry.h",
   1776   ]
   1777   deps = [
   1778     ":field_trials_view",
   1779     "../experiments:registered_field_trials",
   1780     "../rtc_base:checks",
   1781     "../rtc_base:logging",
   1782     "../rtc_base/containers:flat_set",
   1783     "../rtc_base/system:rtc_export",
   1784     "//third_party/abseil-cpp/absl/algorithm:container",
   1785     "//third_party/abseil-cpp/absl/strings:string_view",
   1786   ]
   1787 }
   1788 
   1789 rtc_source_set("field_trials_view") {
   1790   visibility = [ "*" ]
   1791   sources = [ "field_trials_view.h" ]
   1792   deps = [
   1793     "../rtc_base:checks",
   1794     "../rtc_base/system:rtc_export",
   1795     "//third_party/abseil-cpp/absl/strings",
   1796     "//third_party/abseil-cpp/absl/strings:string_view",
   1797   ]
   1798 }
   1799 
   1800 rtc_library("field_trials") {
   1801   visibility = [ "*" ]
   1802 
   1803   # Internally webrtc shouldn't create or modify field trials, and should use
   1804   # FieldTrials through the FieldTrialsView interface that is usually propagated
   1805   # with Environment.
   1806   poisonous = [ "environment_construction" ]
   1807   sources = [
   1808     "field_trials.cc",
   1809     "field_trials.h",
   1810   ]
   1811   deps = [
   1812     ":field_trials_registry",
   1813     ":field_trials_view",
   1814     "../rtc_base:checks",
   1815     "../rtc_base/containers:flat_map",
   1816     "//third_party/abseil-cpp/absl/base:nullability",
   1817     "//third_party/abseil-cpp/absl/memory",
   1818     "//third_party/abseil-cpp/absl/strings:string_view",
   1819   ]
   1820 }
   1821 
   1822 rtc_library("frame_transformer_factory") {
   1823   visibility = [ "*" ]
   1824   sources = [
   1825     "frame_transformer_factory.cc",
   1826     "frame_transformer_factory.h",
   1827   ]
   1828   deps = [
   1829     ":frame_transformer_interface",
   1830     ":ref_count",
   1831     ":scoped_refptr",
   1832     "../audio",
   1833     "../modules/rtp_rtcp",
   1834     "../rtc_base:checks",
   1835     "../rtc_base/system:rtc_export",
   1836     "video:encoded_frame",
   1837     "video:video_frame_metadata",
   1838   ]
   1839 }