tor-browser

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

BUILD.gn (45024B)


      1 # Copyright (c) 2014 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("//chromium/build/config/linux/pkg_config.gni")
     10 import("//libwebrtc/third_party/libaom/options.gni")
     11 import("../../webrtc.gni")
     12 
     13 rtc_library("encoded_frame") {
     14   visibility = [ "*" ]
     15   sources = [
     16     "encoded_frame.cc",
     17     "encoded_frame.h",
     18   ]
     19   deps = [
     20     ":codec_globals_headers",
     21     ":video_codec_interface",
     22     "../../api/video:encoded_image",
     23     "../../api/video:video_frame",
     24     "../../api/video:video_frame_type",
     25     "../../api/video:video_rtp_headers",
     26     "../../modules:module_api_public",
     27     "../../modules/rtp_rtcp:rtp_video_header",
     28     "../../rtc_base:checks",
     29     "../../rtc_base/experiments:alr_experiment",
     30     "../../rtc_base/system:rtc_export",
     31     "../../system_wrappers",
     32   ]
     33 }
     34 
     35 rtc_library("chain_diff_calculator") {
     36   sources = [
     37     "chain_diff_calculator.cc",
     38     "chain_diff_calculator.h",
     39   ]
     40 
     41   deps = [
     42     "../../rtc_base:checks",
     43     "../../rtc_base:logging",
     44     "//third_party/abseil-cpp/absl/container:inlined_vector",
     45   ]
     46 }
     47 
     48 rtc_library("frame_dependencies_calculator") {
     49   sources = [
     50     "frame_dependencies_calculator.cc",
     51     "frame_dependencies_calculator.h",
     52   ]
     53 
     54   deps = [
     55     "../../api:array_view",
     56     "../../common_video/generic_frame_descriptor",
     57     "../../rtc_base:checks",
     58     "../../rtc_base:logging",
     59     "//third_party/abseil-cpp/absl/algorithm:container",
     60     "//third_party/abseil-cpp/absl/container:inlined_vector",
     61   ]
     62 }
     63 
     64 rtc_library("nack_requester") {
     65   sources = [
     66     "histogram.cc",
     67     "histogram.h",
     68     "nack_requester.cc",
     69     "nack_requester.h",
     70   ]
     71 
     72   deps = [
     73     "..:module_api",
     74     "../../api:field_trials_view",
     75     "../../api:sequence_checker",
     76     "../../api/task_queue",
     77     "../../api/task_queue:pending_task_safety_flag",
     78     "../../api/units:time_delta",
     79     "../../api/units:timestamp",
     80     "../../rtc_base:checks",
     81     "../../rtc_base:logging",
     82     "../../rtc_base:macromagic",
     83     "../../rtc_base:mod_ops",
     84     "../../rtc_base:rtc_numerics",
     85     "../../rtc_base/experiments:field_trial_parser",
     86     "../../rtc_base/system:no_unique_address",
     87     "../../rtc_base/task_utils:repeating_task",
     88     "../../system_wrappers",
     89   ]
     90 }
     91 
     92 rtc_library("packet_buffer") {
     93   sources = [
     94     "packet_buffer.cc",
     95     "packet_buffer.h",
     96   ]
     97   deps = [
     98     ":codec_globals_headers",
     99     "../../api:array_view",
    100     "../../api:rtp_packet_info",
    101     "../../api/units:timestamp",
    102     "../../api/video:encoded_image",
    103     "../../api/video:video_frame",
    104     "../../api/video:video_frame_type",
    105     "../../common_video",
    106     "../../rtc_base:checks",
    107     "../../rtc_base:copy_on_write_buffer",
    108     "../../rtc_base:logging",
    109     "../../rtc_base:mod_ops",
    110     "../../rtc_base:rtc_numerics",
    111     "../rtp_rtcp:rtp_rtcp_format",
    112     "../rtp_rtcp:rtp_video_header",
    113     "//third_party/abseil-cpp/absl/base:core_headers",
    114   ]
    115 }
    116 
    117 rtc_library("h26x_packet_buffer") {
    118   sources = [
    119     "h26x_packet_buffer.cc",
    120     "h26x_packet_buffer.h",
    121   ]
    122   deps = [
    123     ":codec_globals_headers",
    124     ":h264_sprop_parameter_sets",
    125     ":packet_buffer",
    126     "../../api:array_view",
    127     "../../api:rtp_packet_info",
    128     "../../api/units:timestamp",
    129     "../../api/video:encoded_image",
    130     "../../api/video:video_frame",
    131     "../../api/video:video_frame_type",
    132     "../../common_video",
    133     "../../rtc_base:checks",
    134     "../../rtc_base:copy_on_write_buffer",
    135     "../../rtc_base:logging",
    136     "../../rtc_base:rtc_numerics",
    137     "../rtp_rtcp:rtp_rtcp_format",
    138     "../rtp_rtcp:rtp_video_header",
    139     "//third_party/abseil-cpp/absl/algorithm:container",
    140     "//third_party/abseil-cpp/absl/base:core_headers",
    141   ]
    142 }
    143 
    144 rtc_library("frame_helpers") {
    145   sources = [
    146     "frame_helpers.cc",
    147     "frame_helpers.h",
    148   ]
    149   deps = [
    150     "../../api/units:time_delta",
    151     "../../api/units:timestamp",
    152     "../../api/video:encoded_frame",
    153     "../../api/video:encoded_image",
    154     "../../rtc_base:checks",
    155     "../../rtc_base:logging",
    156     "//third_party/abseil-cpp/absl/container:inlined_vector",
    157   ]
    158 }
    159 
    160 rtc_library("h264_sprop_parameter_sets") {
    161   sources = [
    162     "h264_sprop_parameter_sets.cc",
    163     "h264_sprop_parameter_sets.h",
    164   ]
    165   deps = [
    166     "../../rtc_base:base64",
    167     "../../rtc_base:logging",
    168   ]
    169 }
    170 
    171 rtc_library("video_coding") {
    172   visibility = [ "*" ]
    173   sources = [
    174     "decoder_database.cc",
    175     "decoder_database.h",
    176     "fec_controller_default.cc",
    177     "fec_controller_default.h",
    178     "fec_rate_table.h",
    179     "generic_decoder.cc",
    180     "generic_decoder.h",
    181     "h264_sps_pps_tracker.cc",
    182     "h264_sps_pps_tracker.h",
    183     "include/video_codec_initializer.h",
    184     "internal_defines.h",
    185     "loss_notification_controller.cc",
    186     "loss_notification_controller.h",
    187     "media_opt_util.cc",
    188     "media_opt_util.h",
    189     "rtp_frame_id_only_ref_finder.cc",
    190     "rtp_frame_id_only_ref_finder.h",
    191     "rtp_frame_reference_finder.cc",
    192     "rtp_frame_reference_finder.h",
    193     "rtp_generic_ref_finder.cc",
    194     "rtp_generic_ref_finder.h",
    195     "rtp_seq_num_only_ref_finder.cc",
    196     "rtp_seq_num_only_ref_finder.h",
    197     "rtp_vp8_ref_finder.cc",
    198     "rtp_vp8_ref_finder.h",
    199     "rtp_vp9_ref_finder.cc",
    200     "rtp_vp9_ref_finder.h",
    201     "video_codec_initializer.cc",
    202     "video_receiver2.cc",
    203     "video_receiver2.h",
    204   ]
    205 
    206   deps = [
    207     ":codec_globals_headers",
    208     ":encoded_frame",
    209     ":frame_helpers",
    210     ":h264_sprop_parameter_sets",
    211     ":video_codec_interface",
    212     ":video_coding_utility",
    213     ":webrtc_vp8_scalability",
    214     ":webrtc_vp9_helpers",
    215     "..:module_api",
    216     "..:module_api_public",
    217     "..:module_fec_api",
    218     "../../api:array_view",
    219     "../../api:fec_controller_api",
    220     "../../api:field_trials_view",
    221     "../../api:rtp_headers",
    222     "../../api:rtp_packet_info",
    223     "../../api:scoped_refptr",
    224     "../../api:sequence_checker",
    225     "../../api/environment",
    226     "../../api/task_queue",
    227     "../../api/units:data_rate",
    228     "../../api/units:data_size",
    229     "../../api/units:frequency",
    230     "../../api/units:time_delta",
    231     "../../api/units:timestamp",
    232     "../../api/video:builtin_video_bitrate_allocator_factory",
    233     "../../api/video:encoded_frame",
    234     "../../api/video:encoded_image",
    235     "../../api/video:render_resolution",
    236     "../../api/video:video_adaptation",
    237     "../../api/video:video_adaptation",
    238     "../../api/video:video_bitrate_allocation",
    239     "../../api/video:video_bitrate_allocator",
    240     "../../api/video:video_bitrate_allocator_factory",
    241     "../../api/video:video_codec_constants",
    242     "../../api/video:video_frame",
    243     "../../api/video:video_frame_type",
    244     "../../api/video:video_rtp_headers",
    245     "../../api/video/corruption_detection:frame_instrumentation_data",
    246     "../../api/video/corruption_detection:frame_instrumentation_evaluation",
    247     "../../api/video_codecs:scalability_mode",
    248     "../../api/video_codecs:video_codecs_api",
    249     "../../common_video",
    250     "../../common_video:corruption_score_calculator",
    251     "../../rtc_base:base64",
    252     "../../rtc_base:buffer",
    253     "../../rtc_base:byte_buffer",
    254     "../../rtc_base:checks",
    255     "../../rtc_base:copy_on_write_buffer",
    256     "../../rtc_base:event_tracer",
    257     "../../rtc_base:logging",
    258     "../../rtc_base:macromagic",
    259     "../../rtc_base:mod_ops",
    260     "../../rtc_base:rtc_event",
    261     "../../rtc_base:rtc_numerics",
    262     "../../rtc_base:safe_conversions",
    263     "../../rtc_base:stringutils",
    264     "../../rtc_base:threading",
    265     "../../rtc_base:timeutils",
    266     "../../rtc_base/experiments:alr_experiment",
    267     "../../rtc_base/experiments:field_trial_parser",
    268     "../../rtc_base/experiments:min_video_bitrate_experiment",
    269     "../../rtc_base/experiments:rate_control_settings",
    270     "../../rtc_base/synchronization:mutex",
    271     "../../rtc_base/system:no_unique_address",
    272     "../../rtc_base/task_utils:repeating_task",
    273     "../../system_wrappers",
    274     "../../system_wrappers:metrics",
    275     "../../video/config:encoder_config",
    276     "../rtp_rtcp",
    277     "../rtp_rtcp:rtp_rtcp_format",
    278     "../rtp_rtcp:rtp_video_header",
    279     "codecs/av1:av1_svc_config",
    280     "svc:scalability_mode_util",
    281     "timing:inter_frame_delay_variation_calculator",
    282     "timing:jitter_estimator",
    283     "timing:rtt_filter",
    284     "timing:timing_module",
    285     "//third_party/abseil-cpp/absl/algorithm:container",
    286     "//third_party/abseil-cpp/absl/container:inlined_vector",
    287   ]
    288 }
    289 
    290 rtc_library("video_codec_interface") {
    291   visibility = [ "*" ]
    292   sources = [
    293     "include/video_codec_interface.cc",
    294     "include/video_codec_interface.h",
    295     "include/video_coding_defines.h",
    296     "include/video_error_codes.h",
    297     "include/video_error_codes_utils.cc",
    298     "include/video_error_codes_utils.h",
    299     "video_coding_defines.cc",
    300   ]
    301   deps = [
    302     ":codec_globals_headers",
    303     "../../api/transport/rtp:dependency_descriptor",
    304     "../../api/units:time_delta",
    305     "../../api/video:video_frame",
    306     "../../api/video:video_frame_type",
    307     "../../api/video:video_rtp_headers",
    308     "../../api/video/corruption_detection:frame_instrumentation_data",
    309     "../../api/video_codecs:scalability_mode",
    310     "../../api/video_codecs:video_codecs_api",
    311     "../../common_video",
    312     "../../common_video/generic_frame_descriptor",
    313     "../../rtc_base:checks",
    314     "../../rtc_base/system:rtc_export",
    315   ]
    316 }
    317 
    318 rtc_library("video_coding_legacy") {
    319   visibility = [ ":video_coding_unittests" ]
    320   sources = [
    321     "include/video_coding.h",
    322     "video_coding_impl.cc",
    323     "video_coding_impl.h",
    324     "video_receiver.cc",
    325   ]
    326   deps = [
    327     ":codec_globals_headers",
    328     ":encoded_frame",
    329     ":video_codec_interface",
    330     ":video_coding",
    331     "..:module_api",
    332     "..:module_api_public",
    333     "../../api:field_trials_view",
    334     "../../api:rtp_headers",
    335     "../../api:rtp_packet_info",
    336     "../../api:sequence_checker",
    337     "../../api/environment",
    338     "../../api/units:timestamp",
    339     "../../api/video:encoded_image",
    340     "../../api/video:render_resolution",
    341     "../../api/video:video_frame",
    342     "../../api/video:video_frame_type",
    343     "../../api/video:video_rtp_headers",
    344     "../../api/video_codecs:video_codecs_api",
    345     "../../common_video",
    346     "../../common_video:corruption_score_calculator",
    347     "../../modules/rtp_rtcp:rtp_video_header",
    348     "../../rtc_base:checks",
    349     "../../rtc_base:event_tracer",
    350     "../../rtc_base:logging",
    351     "../../rtc_base:macromagic",
    352     "../../rtc_base:one_time_event",
    353     "../../rtc_base:rtc_event",
    354     "../../rtc_base:safe_conversions",
    355     "../../rtc_base/synchronization:mutex",
    356     "../../system_wrappers",
    357     "../rtp_rtcp:rtp_rtcp_format",
    358     "../rtp_rtcp:rtp_video_header",
    359     "deprecated:deprecated_decoding_state",
    360     "deprecated:deprecated_event_wrapper",
    361     "deprecated:deprecated_frame_buffer",
    362     "deprecated:deprecated_jitter_buffer",
    363     "deprecated:deprecated_jitter_buffer_common",
    364     "deprecated:deprecated_packet",
    365     "deprecated:deprecated_receiver",
    366     "deprecated:deprecated_session_info",
    367     "timing:inter_frame_delay_variation_calculator",
    368     "timing:jitter_estimator",
    369     "timing:timing_module",
    370   ]
    371 }
    372 
    373 rtc_source_set("codec_globals_headers") {
    374   visibility = [ "*" ]
    375   sources = [
    376     "codecs/h264/include/h264_globals.h",
    377     "codecs/interface/common_constants.h",
    378     "codecs/vp8/include/vp8_globals.h",
    379     "codecs/vp9/include/vp9_globals.h",
    380   ]
    381 
    382   deps = [ "../../rtc_base:checks" ]
    383 }
    384 
    385 if (rtc_use_h264 && rtc_system_openh264) {
    386   pkg_config("openh264") {
    387     packages = [ "openh264" ]
    388   }
    389 }
    390 
    391 rtc_library("frame_sampler") {
    392   visibility = [ "*" ]
    393   sources = [
    394     "utility/frame_sampler.cc",
    395     "utility/frame_sampler.h",
    396   ]
    397   deps = [
    398     "..:module_api_public",
    399     "../../api/video:video_frame",
    400   ]
    401 }
    402 
    403 rtc_library("video_coding_utility") {
    404   visibility = [ "*" ]
    405   sources = [
    406     "utility/bandwidth_quality_scaler.cc",
    407     "utility/bandwidth_quality_scaler.h",
    408     "utility/corruption_detection_settings_generator.cc",
    409     "utility/corruption_detection_settings_generator.h",
    410     "utility/decoded_frames_history.cc",
    411     "utility/decoded_frames_history.h",
    412     "utility/frame_dropper.cc",
    413     "utility/frame_dropper.h",
    414     "utility/framerate_controller_deprecated.cc",
    415     "utility/framerate_controller_deprecated.h",
    416     "utility/ivf_defines.h",
    417     "utility/ivf_file_reader.cc",
    418     "utility/ivf_file_reader.h",
    419     "utility/ivf_file_writer.cc",
    420     "utility/ivf_file_writer.h",
    421     "utility/qp_parser.cc",
    422     "utility/qp_parser.h",
    423     "utility/quality_scaler.cc",
    424     "utility/quality_scaler.h",
    425     "utility/simulcast_rate_allocator.cc",
    426     "utility/simulcast_rate_allocator.h",
    427     "utility/simulcast_utility.cc",
    428     "utility/simulcast_utility.h",
    429     "utility/vp8_constants.h",
    430     "utility/vp8_header_parser.cc",
    431     "utility/vp8_header_parser.h",
    432     "utility/vp9_constants.h",
    433     "utility/vp9_uncompressed_header_parser.cc",
    434     "utility/vp9_uncompressed_header_parser.h",
    435   ]
    436 
    437   deps = [
    438     ":video_codec_interface",
    439     "../../api:array_view",
    440     "../../api:field_trials_view",
    441     "../../api:scoped_refptr",
    442     "../../api:sequence_checker",
    443     "../../api/environment",
    444     "../../api/task_queue",
    445     "../../api/units:data_rate",
    446     "../../api/units:time_delta",
    447     "../../api/video:encoded_frame",
    448     "../../api/video:encoded_image",
    449     "../../api/video:video_adaptation",
    450     "../../api/video:video_bitrate_allocation",
    451     "../../api/video:video_bitrate_allocator",
    452     "../../api/video:video_codec_constants",
    453     "../../api/video:video_frame",
    454     "../../api/video:video_frame_type",
    455     "../../api/video/corruption_detection:filter_settings",
    456     "../../api/video_codecs:video_codecs_api",
    457     "../../common_video",
    458     "../../modules/rtp_rtcp",
    459     "../../rtc_base:bitstream_reader",
    460     "../../rtc_base:checks",
    461     "../../rtc_base:logging",
    462     "../../rtc_base:macromagic",
    463     "../../rtc_base:rate_statistics",
    464     "../../rtc_base:refcount",
    465     "../../rtc_base:rtc_numerics",
    466     "../../rtc_base:stringutils",
    467     "../../rtc_base:timeutils",
    468     "../../rtc_base:weak_ptr",
    469     "../../rtc_base/experiments:encoder_info_settings",
    470     "../../rtc_base/experiments:quality_scaler_settings",
    471     "../../rtc_base/experiments:quality_scaling_experiment",
    472     "../../rtc_base/experiments:rate_control_settings",
    473     "../../rtc_base/synchronization:mutex",
    474     "../../rtc_base/system:arch",
    475     "../../rtc_base/system:file_wrapper",
    476     "../../rtc_base/system:no_unique_address",
    477     "../../rtc_base/system:rtc_export",
    478     "../../rtc_base/task_utils:repeating_task",
    479     "../../video/config:encoder_config",
    480     "../rtp_rtcp:rtp_rtcp_format",
    481     "svc:scalability_mode_util",
    482     "//third_party/abseil-cpp/absl/numeric:bits",
    483     "//third_party/abseil-cpp/absl/strings:string_view",
    484   ]
    485 }
    486 
    487 rtc_library("webrtc_h264") {
    488   visibility = [ "*" ]
    489   sources = [
    490     "codecs/h264/h264.cc",
    491     "codecs/h264/h264_color_space.cc",
    492     "codecs/h264/h264_color_space.h",
    493     "codecs/h264/h264_decoder_impl.cc",
    494     "codecs/h264/h264_decoder_impl.h",
    495     "codecs/h264/h264_encoder_impl.cc",
    496     "codecs/h264/h264_encoder_impl.h",
    497     "codecs/h264/include/h264.h",
    498   ]
    499 
    500   defines = []
    501   deps = [
    502     ":codec_globals_headers",
    503     ":frame_sampler",
    504     ":video_codec_interface",
    505     ":video_coding_utility",
    506     "../../api:scoped_refptr",
    507     "../../api/environment",
    508     "../../api/transport/rtp:dependency_descriptor",
    509     "../../api/units:data_rate",
    510     "../../api/video:encoded_image",
    511     "../../api/video:render_resolution",
    512     "../../api/video:video_bitrate_allocation",
    513     "../../api/video:video_bitrate_allocator",
    514     "../../api/video:video_codec_constants",
    515     "../../api/video:video_frame",
    516     "../../api/video:video_frame_i010",
    517     "../../api/video:video_frame_type",
    518     "../../api/video:video_rtp_headers",
    519     "../../api/video_codecs:scalability_mode",
    520     "../../api/video_codecs:video_codecs_api",
    521     "../../common_video",
    522     "../../media:media_constants",
    523     "../../media:rtc_media_base",
    524     "../../rtc_base:checks",
    525     "../../rtc_base:event_tracer",
    526     "../../rtc_base:logging",
    527     "../../rtc_base:timeutils",
    528     "../../rtc_base/system:rtc_export",
    529     "../../system_wrappers:metrics",
    530     "../rtp_rtcp:rtp_rtcp_format",
    531     "svc:scalability_structures",
    532     "svc:scalable_video_controller",
    533     "//third_party/abseil-cpp/absl/base:nullability",
    534     "//third_party/abseil-cpp/absl/container:inlined_vector",
    535     "//third_party/abseil-cpp/absl/strings",
    536     "//third_party/libyuv",
    537   ]
    538 
    539   if (rtc_use_h264) {
    540     deps += [ "//third_party/ffmpeg" ]
    541     if (rtc_system_openh264) {
    542       configs += [ ":openh264" ]
    543     } else {
    544       deps += [ "//third_party/openh264:encoder" ]
    545     }
    546     if (!build_with_mozilla) {
    547       deps += [ "../../media:rtc_media_base" ]
    548     }
    549   }
    550 }
    551 
    552 # This target defines a bare-bones interface towards libvpx, used by the
    553 # VP8 and VP9 wrappers below.
    554 rtc_library("webrtc_libvpx_interface") {
    555   visibility = [ "*" ]
    556   sources = [
    557     "codecs/interface/libvpx_interface.cc",
    558     "codecs/interface/libvpx_interface.h",
    559   ]
    560   deps = [ "../../rtc_base:checks" ]
    561   if (rtc_build_libvpx) {
    562     deps += [ rtc_libvpx_dir ]
    563   }
    564 }
    565 
    566 rtc_library("mock_libvpx_interface") {
    567   testonly = true
    568   sources = [ "codecs/interface/mock_libvpx_interface.h" ]
    569   deps = [
    570     ":webrtc_libvpx_interface",
    571     "../../test:test_support",
    572   ]
    573   if (rtc_build_libvpx) {
    574     deps += [ rtc_libvpx_dir ]
    575   }
    576 }
    577 
    578 # This target includes the internal SW codec.
    579 rtc_library("webrtc_vp8") {
    580   visibility = [ "*" ]
    581   poisonous = [ "software_video_codecs" ]
    582   sources = [
    583     "codecs/vp8/include/vp8.h",
    584     "codecs/vp8/libvpx_vp8_decoder.cc",
    585     "codecs/vp8/libvpx_vp8_decoder.h",
    586     "codecs/vp8/libvpx_vp8_encoder.cc",
    587     "codecs/vp8/libvpx_vp8_encoder.h",
    588   ]
    589 
    590   deps = [
    591     ":codec_globals_headers",
    592     ":frame_sampler",
    593     ":video_codec_interface",
    594     ":video_coding_utility",
    595     ":webrtc_libvpx_interface",
    596     ":webrtc_vp8_scalability",
    597     ":webrtc_vp8_temporal_layers",
    598     "../../api:fec_controller_api",
    599     "../../api:field_trials_view",
    600     "../../api:scoped_refptr",
    601     "../../api/environment",
    602     "../../api/units:time_delta",
    603     "../../api/units:timestamp",
    604     "../../api/video:encoded_image",
    605     "../../api/video:render_resolution",
    606     "../../api/video:video_bitrate_allocation",
    607     "../../api/video:video_bitrate_allocator",
    608     "../../api/video:video_codec_constants",
    609     "../../api/video:video_frame",
    610     "../../api/video:video_frame_type",
    611     "../../api/video:video_rtp_headers",
    612     "../../api/video_codecs:scalability_mode",
    613     "../../api/video_codecs:video_codecs_api",
    614     "../../api/video_codecs:vp8_temporal_layers_factory",
    615     "../../common_video",
    616     "../../rtc_base:checks",
    617     "../../rtc_base:event_tracer",
    618     "../../rtc_base:logging",
    619     "../../rtc_base:rtc_numerics",
    620     "../../rtc_base:safe_conversions",
    621     "../../rtc_base/experiments:encoder_info_settings",
    622     "../../rtc_base/experiments:field_trial_parser",
    623     "../../rtc_base/experiments:rate_control_settings",
    624     "../../system_wrappers:metrics",
    625     "../rtp_rtcp:rtp_rtcp_format",
    626     "svc:scalability_mode_util",
    627     "//third_party/abseil-cpp/absl/algorithm:container",
    628     "//third_party/abseil-cpp/absl/base:nullability",
    629     "//third_party/abseil-cpp/absl/container:inlined_vector",
    630     "//third_party/abseil-cpp/absl/strings:string_view",
    631     "//third_party/libyuv",
    632   ]
    633   if (rtc_build_libvpx) {
    634     deps += [ rtc_libvpx_dir ]
    635   }
    636 }
    637 
    638 rtc_library("webrtc_vp8_scalability") {
    639   sources = [
    640     "codecs/vp8/vp8_scalability.cc",
    641     "codecs/vp8/vp8_scalability.h",
    642   ]
    643   deps = [ "../../api/video_codecs:scalability_mode" ]
    644 }
    645 
    646 rtc_library("webrtc_vp8_temporal_layers") {
    647   visibility = [ "*" ]
    648   sources = [
    649     "codecs/vp8/default_temporal_layers.cc",
    650     "codecs/vp8/default_temporal_layers.h",
    651     "codecs/vp8/include/temporal_layers_checker.h",
    652     "codecs/vp8/screenshare_layers.cc",
    653     "codecs/vp8/screenshare_layers.h",
    654     "codecs/vp8/temporal_layers_checker.cc",
    655   ]
    656 
    657   deps = [
    658     ":codec_globals_headers",
    659     ":video_codec_interface",
    660     ":video_coding_utility",
    661     "../../api:fec_controller_api",
    662     "../../api/environment",
    663     "../../api/transport/rtp:dependency_descriptor",
    664     "../../api/video:video_codec_constants",
    665     "../../api/video_codecs:video_codecs_api",
    666     "../../common_video/generic_frame_descriptor",
    667     "../../rtc_base:checks",
    668     "../../rtc_base:logging",
    669     "../../rtc_base:rate_statistics",
    670     "../../rtc_base:rtc_numerics",
    671     "../../system_wrappers:metrics",
    672     "//third_party/abseil-cpp/absl/container:inlined_vector",
    673     "//third_party/abseil-cpp/absl/strings:string_view",
    674   ]
    675 }
    676 
    677 # This target includes VP9 files that may be used for any VP9 codec, internal SW or external HW.
    678 rtc_library("webrtc_vp9_helpers") {
    679   sources = [
    680     "codecs/vp9/svc_config.cc",
    681     "codecs/vp9/svc_config.h",
    682   ]
    683 
    684   deps = [
    685     ":codec_globals_headers",
    686     ":video_codec_interface",
    687     "../../api/video:video_bitrate_allocation",
    688     "../../api/video:video_bitrate_allocator",
    689     "../../api/video:video_codec_constants",
    690     "../../api/video:video_frame",
    691     "../../api/video_codecs:scalability_mode",
    692     "../../api/video_codecs:video_codecs_api",
    693     "../../common_video",
    694     "../../media:video_common",
    695     "../../rtc_base:checks",
    696     "../../rtc_base:logging",
    697     "svc:scalability_mode_util",
    698     "svc:scalability_structures",
    699     "svc:scalable_video_controller",
    700   ]
    701 }
    702 
    703 rtc_library("webrtc_vp9") {
    704   visibility = [ "*" ]
    705   poisonous = [ "software_video_codecs" ]
    706   sources = [
    707     "codecs/vp9/include/vp9.h",
    708     "codecs/vp9/libvpx_vp9_decoder.cc",
    709     "codecs/vp9/libvpx_vp9_decoder.h",
    710     "codecs/vp9/libvpx_vp9_encoder.cc",
    711     "codecs/vp9/libvpx_vp9_encoder.h",
    712     "codecs/vp9/vp9.cc",
    713     "codecs/vp9/vp9_frame_buffer_pool.cc",
    714     "codecs/vp9/vp9_frame_buffer_pool.h",
    715   ]
    716 
    717   deps = [
    718     ":codec_globals_headers",
    719     ":frame_sampler",
    720     ":video_codec_interface",
    721     ":video_coding_utility",
    722     ":webrtc_libvpx_interface",
    723     "../../api:array_view",
    724     "../../api:fec_controller_api",
    725     "../../api:field_trials_view",
    726     "../../api:refcountedbase",
    727     "../../api:scoped_refptr",
    728     "../../api/environment",
    729     "../../api/transport/rtp:dependency_descriptor",
    730     "../../api/video:encoded_image",
    731     "../../api/video:render_resolution",
    732     "../../api/video:video_bitrate_allocation",
    733     "../../api/video:video_bitrate_allocator",
    734     "../../api/video:video_codec_constants",
    735     "../../api/video:video_frame",
    736     "../../api/video:video_frame_i010",
    737     "../../api/video:video_frame_type",
    738     "../../api/video:video_rtp_headers",
    739     "../../api/video_codecs:scalability_mode",
    740     "../../api/video_codecs:video_codecs_api",
    741     "../../common_video",
    742     "../../rtc_base:buffer",
    743     "../../rtc_base:checks",
    744     "../../rtc_base:event_tracer",
    745     "../../rtc_base:logging",
    746     "../../rtc_base:macromagic",
    747     "../../rtc_base:safe_conversions",
    748     "../../rtc_base:stringutils",
    749     "../../rtc_base/containers:flat_map",
    750     "../../rtc_base/experiments:encoder_info_settings",
    751     "../../rtc_base/experiments:field_trial_parser",
    752     "../../rtc_base/experiments:rate_control_settings",
    753     "../../rtc_base/synchronization:mutex",
    754     "../rtp_rtcp:rtp_rtcp_format",
    755     "svc:scalability_mode_util",
    756     "svc:scalability_structures",
    757     "svc:scalable_video_controller",
    758     "svc:simulcast_to_svc_converter",
    759     "svc:svc_rate_allocator",
    760     "//third_party/abseil-cpp/absl/algorithm:container",
    761     "//third_party/abseil-cpp/absl/base:nullability",
    762     "//third_party/abseil-cpp/absl/container:inlined_vector",
    763     "//third_party/abseil-cpp/absl/strings",
    764     "//third_party/libyuv",
    765   ]
    766   if (rtc_build_libvpx) {
    767     deps += [ rtc_libvpx_dir ]
    768   }
    769 }
    770 
    771 if (rtc_include_tests) {
    772   if (is_android) {
    773     rtc_library("android_codec_factory_helper") {
    774       sources = [
    775         "codecs/test/android_codec_factory_helper.cc",
    776         "codecs/test/android_codec_factory_helper.h",
    777       ]
    778 
    779       deps = [
    780         "../../api/video_codecs:video_codecs_api",
    781         "../../modules/utility",
    782         "../../rtc_base:checks",
    783         "../../sdk/android:internal_jni",
    784         "../../sdk/android:native_api_base",
    785         "../../sdk/android:native_api_codecs",
    786         "../../sdk/android:native_api_jni",
    787       ]
    788     }
    789   }
    790 
    791   if (is_ios || is_mac) {
    792     rtc_library("objc_codec_factory_helper") {
    793       sources = [
    794         "codecs/test/objc_codec_factory_helper.h",
    795         "codecs/test/objc_codec_factory_helper.mm",
    796       ]
    797 
    798       deps = [
    799         "../../api/video:video_frame",
    800         "../../api/video:video_rtp_headers",
    801         "../../api/video_codecs:video_codecs_api",
    802         "../../media:rtc_audio_video",
    803         "../../sdk:native_api",
    804         "../../sdk:peerconnectionfactory_base_objc",
    805         "../../sdk:videocodec_objc",
    806         "../../sdk:videosource_objc",
    807         "../../sdk:videotoolbox_objc",
    808       ]
    809     }
    810   }
    811 
    812   rtc_library("encoded_video_frame_producer") {
    813     testonly = true
    814     sources = [
    815       "codecs/test/encoded_video_frame_producer.cc",
    816       "codecs/test/encoded_video_frame_producer.h",
    817     ]
    818     deps = [
    819       ":video_codec_interface",
    820       "../../api:create_frame_generator",
    821       "../../api:frame_generator_api",
    822       "../../api/transport/rtp:dependency_descriptor",
    823       "../../api/units:timestamp",
    824       "../../api/video:encoded_image",
    825       "../../api/video:render_resolution",
    826       "../../api/video:video_frame",
    827       "../../api/video:video_frame_type",
    828       "../../api/video_codecs:video_codecs_api",
    829       "../../rtc_base:checks",
    830     ]
    831   }
    832 
    833   rtc_library("simulcast_test_fixture_impl") {
    834     testonly = true
    835     sources = [
    836       "utility/simulcast_test_fixture_impl.cc",
    837       "utility/simulcast_test_fixture_impl.h",
    838     ]
    839 
    840     deps = [
    841       ":video_codec_interface",
    842       ":video_coding",
    843       ":video_coding_utility",
    844       "../../api:mock_video_decoder",
    845       "../../api:mock_video_encoder",
    846       "../../api:scoped_refptr",
    847       "../../api:simulcast_test_fixture_api",
    848       "../../api/environment",
    849       "../../api/environment:environment_factory",
    850       "../../api/video:encoded_image",
    851       "../../api/video:video_bitrate_allocator",
    852       "../../api/video:video_frame",
    853       "../../api/video:video_frame_type",
    854       "../../api/video:video_rtp_headers",
    855       "../../api/video_codecs:video_codecs_api",
    856       "../../common_video",
    857       "../../rtc_base:checks",
    858       "../../test:test_support",
    859     ]
    860   }
    861 
    862   rtc_library("video_codecs_test_framework") {
    863     testonly = true
    864     sources = [
    865       "codecs/test/video_codec_unittest.cc",
    866       "codecs/test/video_codec_unittest.h",
    867       "codecs/test/videoprocessor.cc",
    868       "codecs/test/videoprocessor.h",
    869     ]
    870 
    871     deps = [
    872       ":codec_globals_headers",
    873       ":video_codec_interface",
    874       ":video_coding",
    875       ":video_coding_utility",
    876       ":videocodec_test_stats_impl",
    877       ":webrtc_vp9_helpers",
    878       "..:module_api",
    879       "../../api:create_frame_generator",
    880       "../../api:field_trials",
    881       "../../api:frame_generator_api",
    882       "../../api:scoped_refptr",
    883       "../../api:sequence_checker",
    884       "../../api:videocodec_test_fixture_api",
    885       "../../api:videocodec_test_stats_api",
    886       "../../api/environment",
    887       "../../api/environment:environment_factory",
    888       "../../api/numerics",
    889       "../../api/task_queue",
    890       "../../api/task_queue:default_task_queue_factory",
    891       "../../api/test/metrics:global_metrics_logger_and_exporter",
    892       "../../api/units:time_delta",
    893       "../../api/video:builtin_video_bitrate_allocator_factory",
    894       "../../api/video:encoded_image",
    895       "../../api/video:resolution",
    896       "../../api/video:video_bitrate_allocation",
    897       "../../api/video:video_bitrate_allocator",
    898       "../../api/video:video_bitrate_allocator_factory",
    899       "../../api/video:video_codec_constants",
    900       "../../api/video:video_frame",
    901       "../../api/video:video_frame_type",
    902       "../../api/video:video_rtp_headers",
    903       "../../api/video_codecs:video_codecs_api",
    904       "../../common_video",
    905       "../../rtc_base:buffer",
    906       "../../rtc_base:checks",
    907       "../../rtc_base:macromagic",
    908       "../../rtc_base:rtc_event",
    909       "../../rtc_base:task_queue_for_test",
    910       "../../rtc_base:timeutils",
    911       "../../rtc_base/synchronization:mutex",
    912       "../../rtc_base/system:no_unique_address",
    913       "../../test:create_test_field_trials",
    914       "../../test:test_support",
    915       "../../test:video_frame_writer",
    916       "../../test:video_test_common",
    917       "../../test:video_test_support",
    918       "../rtp_rtcp:rtp_rtcp_format",
    919       "//third_party/libyuv",
    920     ]
    921   }
    922 
    923   video_coding_modules_tests_resources = []
    924   if (is_android) {
    925     video_coding_modules_tests_resources += [
    926       "../../resources/foreman_128x96.yuv",
    927       "../../resources/foreman_160x120.yuv",
    928       "../../resources/foreman_176x144.yuv",
    929       "../../resources/foreman_240x136.yuv",
    930       "../../resources/foreman_320x240.yuv",
    931       "../../resources/foreman_480x272.yuv",
    932     ]
    933   }
    934   if (!is_android) {
    935     video_coding_modules_tests_resources += [
    936       "../../resources/ConferenceMotion_1280_720_50.yuv",
    937       "../../resources/FourPeople_1280x720_30.yuv",
    938     ]
    939   }
    940 
    941   num_video_coding_modules_tests_resources = 0
    942   foreach(i, video_coding_modules_tests_resources) {
    943     num_video_coding_modules_tests_resources += 1
    944   }
    945 
    946   if (num_video_coding_modules_tests_resources > 0) {
    947     if (is_ios || is_mac) {
    948       bundle_data("video_coding_modules_tests_resources_bundle_data") {
    949         testonly = true
    950         sources = video_coding_modules_tests_resources
    951         outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
    952       }
    953     }
    954   }
    955 
    956   rtc_library("videocodec_test_impl") {
    957     testonly = true
    958     sources = [
    959       "codecs/test/videocodec_test_fixture_impl.cc",
    960       "codecs/test/videocodec_test_fixture_impl.h",
    961     ]
    962     deps = [
    963       ":codec_globals_headers",
    964       ":video_codec_interface",
    965       ":video_codecs_test_framework",
    966       ":video_coding_utility",
    967       ":videocodec_test_stats_impl",
    968       ":webrtc_vp9_helpers",
    969       "../../api:array_view",
    970       "../../api:field_trials_view",
    971       "../../api:make_ref_counted",
    972       "../../api:rtp_parameters",
    973       "../../api:videocodec_test_fixture_api",
    974       "../../api:videocodec_test_stats_api",
    975       "../../api/environment",
    976       "../../api/environment:environment_factory",
    977       "../../api/test/metrics:global_metrics_logger_and_exporter",
    978       "../../api/test/metrics:metric",
    979       "../../api/test/video:function_video_factory",
    980       "../../api/video:encoded_image",
    981       "../../api/video:resolution",
    982       "../../api/video:video_bitrate_allocation",
    983       "../../api/video:video_codec_constants",
    984       "../../api/video:video_frame",
    985       "../../api/video:video_frame_type",
    986       "../../api/video_codecs:video_codecs_api",
    987       "../../api/video_codecs:video_decoder_factory_template",
    988       "../../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
    989       "../../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
    990       "../../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
    991       "../../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
    992       "../../api/video_codecs:video_encoder_factory_template",
    993       "../../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
    994       "../../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
    995       "../../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
    996       "../../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
    997       "../../common_video",
    998       "../../media:media_constants",
    999       "../../media:rtc_audio_video",
   1000       "../../rtc_base:checks",
   1001       "../../rtc_base:cpu_info",
   1002       "../../rtc_base:logging",
   1003       "../../rtc_base:rtc_base_tests_utils",
   1004       "../../rtc_base:stringutils",
   1005       "../../rtc_base:task_queue_for_test",
   1006       "../../rtc_base:threading",
   1007       "../../rtc_base:timeutils",
   1008       "../../rtc_base/system:file_wrapper",
   1009       "../../test:create_test_field_trials",
   1010       "../../test:fileutils",
   1011       "../../test:test_support",
   1012       "../../test:video_frame_writer",
   1013       "../../test:video_test_common",
   1014       "../../test:video_test_support",
   1015       "../../video/config:encoder_config",
   1016       "../../video/config:streams_config",
   1017       "//third_party/abseil-cpp/absl/strings",
   1018       "//third_party/abseil-cpp/absl/strings:string_view",
   1019     ]
   1020   }
   1021 
   1022   rtc_library("videocodec_test_stats_impl") {
   1023     testonly = true
   1024     sources = [
   1025       "codecs/test/videocodec_test_stats_impl.cc",
   1026       "codecs/test/videocodec_test_stats_impl.h",
   1027     ]
   1028     deps = [
   1029       "../../api:videocodec_test_stats_api",
   1030       "../../api/numerics",
   1031       "../../api/test/metrics:global_metrics_logger_and_exporter",
   1032       "../../api/test/metrics:metric",
   1033       "../../api/units:data_rate",
   1034       "../../api/units:frequency",
   1035       "../../api/video:video_frame_type",
   1036       "../../rtc_base:checks",
   1037       "../../rtc_base:rtc_numerics",
   1038       "../../rtc_base:stringutils",
   1039       "../../test:test_common",
   1040       "../rtp_rtcp:rtp_rtcp_format",
   1041     ]
   1042   }
   1043 
   1044   rtc_test("video_codec_perf_tests") {
   1045     testonly = true
   1046 
   1047     sources = [ "codecs/test/video_codec_test.cc" ]
   1048 
   1049     deps = [
   1050       ":video_codec_interface",
   1051       "../../api:field_trials",
   1052       "../../api/environment",
   1053       "../../api/environment:environment_factory",
   1054       "../../api/test/metrics:global_metrics_logger_and_exporter",
   1055       "../../api/units:data_rate",
   1056       "../../api/units:frequency",
   1057       "../../api/video:resolution",
   1058       "../../api/video_codecs:builtin_video_decoder_factory",
   1059       "../../api/video_codecs:builtin_video_encoder_factory",
   1060       "../../api/video_codecs:scalability_mode",
   1061       "../../api/video_codecs:video_codecs_api",
   1062       "../../modules/video_coding/svc:scalability_mode_util",
   1063       "../../rtc_base:checks",
   1064       "../../rtc_base:logging",
   1065       "../../rtc_base:stringutils",
   1066       "../../test:create_test_field_trials",
   1067       "../../test:fileutils",
   1068       "../../test:test_flags",
   1069       "../../test:test_main",
   1070       "../../test:test_support",
   1071       "../../test:video_codec_tester",
   1072       "//third_party/abseil-cpp/absl/flags:flag",
   1073       "//third_party/abseil-cpp/absl/functional:any_invocable",
   1074     ]
   1075 
   1076     if (is_android) {
   1077       use_default_launcher = false
   1078       deps += [
   1079         ":android_codec_factory_helper",
   1080         "../../sdk/android:hwcodecs_java",
   1081       ]
   1082       shard_timeout = 900
   1083     }
   1084 
   1085     data = [ "../../resources/FourPeople_1280x720_30.yuv" ]
   1086   }
   1087 
   1088   rtc_library("video_coding_modules_tests") {
   1089     testonly = true
   1090     defines = []
   1091 
   1092     sources = [
   1093       "codecs/h264/test/h264_impl_unittest.cc",
   1094       "codecs/test/video_encoder_decoder_instantiation_tests.cc",
   1095       "codecs/test/videocodec_test_av1.cc",
   1096       "codecs/test/videocodec_test_libvpx.cc",
   1097       "codecs/vp8/test/vp8_impl_unittest.cc",
   1098     ]
   1099 
   1100     if (rtc_libvpx_build_vp9) {
   1101       sources += [ "codecs/vp9/test/vp9_impl_unittest.cc" ]
   1102     }
   1103 
   1104     if (rtc_use_h264) {
   1105       sources += [ "codecs/test/videocodec_test_openh264.cc" ]
   1106     }
   1107 
   1108     deps = [
   1109       ":codec_globals_headers",
   1110       ":encoded_video_frame_producer",
   1111       ":mock_libvpx_interface",
   1112       ":video_codec_interface",
   1113       ":video_codecs_test_framework",
   1114       ":video_coding_utility",
   1115       ":videocodec_test_impl",
   1116       ":webrtc_h264",
   1117       ":webrtc_libvpx_interface",
   1118       ":webrtc_vp8",
   1119       ":webrtc_vp9",
   1120       ":webrtc_vp9_helpers",
   1121       "../../api:array_view",
   1122       "../../api:create_frame_generator",
   1123       "../../api:create_videocodec_test_fixture_api",
   1124       "../../api:field_trials",
   1125       "../../api:frame_generator_api",
   1126       "../../api:mock_video_codec_factory",
   1127       "../../api:mock_video_decoder",
   1128       "../../api:mock_video_encoder",
   1129       "../../api:scoped_refptr",
   1130       "../../api:videocodec_test_fixture_api",
   1131       "../../api:videocodec_test_stats_api",
   1132       "../../api/environment",
   1133       "../../api/environment:environment_factory",
   1134       "../../api/test/metrics:global_metrics_logger_and_exporter",
   1135       "../../api/test/video:function_video_factory",
   1136       "../../api/units:data_rate",
   1137       "../../api/units:time_delta",
   1138       "../../api/units:timestamp",
   1139       "../../api/video:encoded_image",
   1140       "../../api/video:render_resolution",
   1141       "../../api/video:video_bitrate_allocation",
   1142       "../../api/video:video_codec_constants",
   1143       "../../api/video:video_frame",
   1144       "../../api/video:video_frame_type",
   1145       "../../api/video:video_rtp_headers",
   1146       "../../api/video_codecs:rtc_software_fallback_wrappers",
   1147       "../../api/video_codecs:scalability_mode",
   1148       "../../api/video_codecs:video_codecs_api",
   1149       "../../common_video",
   1150       "../../common_video/test:utilities",
   1151       "../../media:codec",
   1152       "../../media:media_constants",
   1153       "../../media:rtc_internal_video_codecs",
   1154       "../../media:rtc_simulcast_encoder_adapter",
   1155       "../../rtc_base:checks",
   1156       "../../rtc_base:refcount",
   1157       "../../rtc_base:stringutils",
   1158       "../../rtc_base:timeutils",
   1159       "../../test:create_test_field_trials",
   1160       "../../test:fileutils",
   1161       "../../test:test_support",
   1162       "../../test:video_test_common",
   1163       "../rtp_rtcp:rtp_rtcp_format",
   1164       "codecs/av1:dav1d_decoder",
   1165       "svc:scalability_mode_util",
   1166       "//third_party/abseil-cpp/absl/container:inlined_vector",
   1167       "//third_party/abseil-cpp/absl/memory",
   1168       "//third_party/libyuv",
   1169     ]
   1170 
   1171     data = video_coding_modules_tests_resources
   1172 
   1173     if (is_android) {
   1174       sources += [ "codecs/test/videocodec_test_mediacodec.cc" ]
   1175 
   1176       deps += [
   1177         ":android_codec_factory_helper",
   1178         "../../rtc_base:stringutils",
   1179       ]
   1180     }
   1181 
   1182     if (is_ios || is_mac) {
   1183       sources += [ "codecs/test/videocodec_test_videotoolbox.cc" ]
   1184 
   1185       deps += [ ":objc_codec_factory_helper" ]
   1186 
   1187       if (num_video_coding_modules_tests_resources > 0) {
   1188         deps += [ ":video_coding_modules_tests_resources_bundle_data" ]
   1189       }
   1190     }
   1191 
   1192     if (rtc_build_libvpx) {
   1193       deps += [ rtc_libvpx_dir ]
   1194     }
   1195   }
   1196 
   1197   rtc_library("video_coding_unittests") {
   1198     testonly = true
   1199 
   1200     sources = [
   1201       "chain_diff_calculator_unittest.cc",
   1202       "codecs/test/videocodec_test_fixture_config_unittest.cc",
   1203       "codecs/test/videocodec_test_stats_impl_unittest.cc",
   1204       "codecs/test/videoprocessor_unittest.cc",
   1205       "codecs/vp8/default_temporal_layers_unittest.cc",
   1206       "codecs/vp8/libvpx_vp8_simulcast_test.cc",
   1207       "codecs/vp8/screenshare_layers_unittest.cc",
   1208       "codecs/vp9/svc_config_unittest.cc",
   1209       "decoder_database_unittest.cc",
   1210       "fec_controller_unittest.cc",
   1211       "frame_dependencies_calculator_unittest.cc",
   1212       "frame_helpers_unittest.cc",
   1213       "generic_decoder_unittest.cc",
   1214       "h264_sprop_parameter_sets_unittest.cc",
   1215       "h264_sps_pps_tracker_unittest.cc",
   1216       "h26x_packet_buffer_unittest.cc",
   1217       "histogram_unittest.cc",
   1218       "loss_notification_controller_unittest.cc",
   1219       "nack_requester_unittest.cc",
   1220       "packet_buffer_unittest.cc",
   1221       "rtp_frame_reference_finder_unittest.cc",
   1222       "rtp_vp8_ref_finder_unittest.cc",
   1223       "rtp_vp9_ref_finder_unittest.cc",
   1224       "utility/bandwidth_quality_scaler_unittest.cc",
   1225       "utility/corruption_detection_settings_generator_unittest.cc",
   1226       "utility/decoded_frames_history_unittest.cc",
   1227       "utility/frame_dropper_unittest.cc",
   1228       "utility/frame_sampler_unittest.cc",
   1229       "utility/framerate_controller_deprecated_unittest.cc",
   1230       "utility/ivf_file_reader_unittest.cc",
   1231       "utility/ivf_file_writer_unittest.cc",
   1232       "utility/qp_parser_unittest.cc",
   1233       "utility/quality_scaler_unittest.cc",
   1234       "utility/simulcast_rate_allocator_unittest.cc",
   1235       "utility/vp9_uncompressed_header_parser_unittest.cc",
   1236       "video_codec_initializer_unittest.cc",
   1237       "video_receiver2_unittest.cc",
   1238       "video_receiver_unittest.cc",
   1239     ]
   1240     if (rtc_use_h264) {
   1241       sources += [
   1242         "codecs/h264/h264_encoder_impl_unittest.cc",
   1243         "codecs/h264/h264_simulcast_unittest.cc",
   1244       ]
   1245     }
   1246 
   1247     deps = [
   1248       ":chain_diff_calculator",
   1249       ":codec_globals_headers",
   1250       ":encoded_frame",
   1251       ":frame_dependencies_calculator",
   1252       ":frame_helpers",
   1253       ":frame_sampler",
   1254       ":h264_sprop_parameter_sets",
   1255       ":h26x_packet_buffer",
   1256       ":nack_requester",
   1257       ":packet_buffer",
   1258       ":simulcast_test_fixture_impl",
   1259       ":video_codec_interface",
   1260       ":video_codecs_test_framework",
   1261       ":video_coding",
   1262       ":video_coding_legacy",
   1263       ":video_coding_utility",
   1264       ":videocodec_test_impl",
   1265       ":videocodec_test_stats_impl",
   1266       ":webrtc_h264",
   1267       ":webrtc_vp8",
   1268       ":webrtc_vp8_temporal_layers",
   1269       ":webrtc_vp9",
   1270       ":webrtc_vp9_helpers",
   1271       "..:module_api",
   1272       "..:module_fec_api",
   1273       "../../api:array_view",
   1274       "../../api:create_simulcast_test_fixture_api",
   1275       "../../api:fec_controller_api",
   1276       "../../api:field_trials",
   1277       "../../api:field_trials_view",
   1278       "../../api:make_ref_counted",
   1279       "../../api:mock_fec_controller_override",
   1280       "../../api:mock_video_decoder",
   1281       "../../api:mock_video_encoder",
   1282       "../../api:rtp_headers",
   1283       "../../api:rtp_packet_info",
   1284       "../../api:scoped_refptr",
   1285       "../../api:simulcast_test_fixture_api",
   1286       "../../api:videocodec_test_fixture_api",
   1287       "../../api/environment",
   1288       "../../api/environment:environment_factory",
   1289       "../../api/task_queue",
   1290       "../../api/task_queue:default_task_queue_factory",
   1291       "../../api/test/video:function_video_factory",
   1292       "../../api/transport/rtp:dependency_descriptor",
   1293       "../../api/units:data_rate",
   1294       "../../api/units:data_size",
   1295       "../../api/units:frequency",
   1296       "../../api/units:time_delta",
   1297       "../../api/units:timestamp",
   1298       "../../api/video:builtin_video_bitrate_allocator_factory",
   1299       "../../api/video:encoded_frame",
   1300       "../../api/video:encoded_image",
   1301       "../../api/video:frame_buffer",
   1302       "../../api/video:render_resolution",
   1303       "../../api/video:video_adaptation",
   1304       "../../api/video:video_bitrate_allocation",
   1305       "../../api/video:video_bitrate_allocator",
   1306       "../../api/video:video_bitrate_allocator_factory",
   1307       "../../api/video:video_codec_constants",
   1308       "../../api/video:video_frame",
   1309       "../../api/video:video_frame_type",
   1310       "../../api/video:video_rtp_headers",
   1311       "../../api/video/corruption_detection:filter_settings",
   1312       "../../api/video/corruption_detection:frame_instrumentation_data",
   1313       "../../api/video_codecs:scalability_mode",
   1314       "../../api/video_codecs:video_codecs_api",
   1315       "../../api/video_codecs:vp8_temporal_layers_factory",
   1316       "../../common_video",
   1317       "../../common_video:corruption_score_calculator",
   1318       "../../common_video/generic_frame_descriptor",
   1319       "../../common_video/test:utilities",
   1320       "../../media:media_constants",
   1321       "../../media:rtc_internal_video_codecs",
   1322       "../../rtc_base:checks",
   1323       "../../rtc_base:copy_on_write_buffer",
   1324       "../../rtc_base:gunit_helpers",
   1325       "../../rtc_base:histogram_percentile_counter",
   1326       "../../rtc_base:platform_thread",
   1327       "../../rtc_base:random",
   1328       "../../rtc_base:refcount",
   1329       "../../rtc_base:rtc_base_tests_utils",
   1330       "../../rtc_base:rtc_event",
   1331       "../../rtc_base:rtc_numerics",
   1332       "../../rtc_base:stringutils",
   1333       "../../rtc_base:task_queue_for_test",
   1334       "../../rtc_base:threading",
   1335       "../../rtc_base:timeutils",
   1336       "../../rtc_base/experiments:encoder_info_settings",
   1337       "../../rtc_base/synchronization:mutex",
   1338       "../../rtc_base/system:file_wrapper",
   1339       "../../rtc_base/system:unused",
   1340       "../../system_wrappers",
   1341       "../../system_wrappers:metrics",
   1342       "../../test:create_test_environment",
   1343       "../../test:create_test_field_trials",
   1344       "../../test:fake_encoded_frame",
   1345       "../../test:fake_video_codecs",
   1346       "../../test:fileutils",
   1347       "../../test:run_loop",
   1348       "../../test:test_support",
   1349       "../../test:video_test_common",
   1350       "../../test:video_test_support",
   1351       "../../test/time_controller",
   1352       "../../third_party/libyuv",
   1353       "../../video/config:encoder_config",
   1354       "../rtp_rtcp",
   1355       "../rtp_rtcp:rtp_rtcp_format",
   1356       "../rtp_rtcp:rtp_video_header",
   1357       "codecs/av1:video_coding_codecs_av1_tests",
   1358       "deprecated:deprecated_frame_buffer",
   1359       "deprecated:deprecated_jitter_buffer_common",
   1360       "deprecated:deprecated_packet",
   1361       "deprecated:deprecated_session_info",
   1362       "deprecated:deprecated_stream_generator",
   1363       "svc:scalability_structure_tests",
   1364       "svc:simulcast_to_svc_converter_tests",
   1365       "svc:svc_rate_allocator_tests",
   1366       "timing:jitter_estimator",
   1367       "timing:timing_module",
   1368       "//third_party/abseil-cpp/absl/container:inlined_vector",
   1369     ]
   1370     if (rtc_build_libvpx) {
   1371       deps += [ rtc_libvpx_dir ]
   1372     }
   1373   }
   1374 }