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
9import("../webrtc.gni")
10
11rtc_library("video") {
12  sources = [
13    "buffered_frame_decryptor.cc",
14    "buffered_frame_decryptor.h",
15    "call_stats.cc",
16    "call_stats.h",
17    "call_stats2.cc",
18    "call_stats2.h",
19    "encoder_rtcp_feedback.cc",
20    "encoder_rtcp_feedback.h",
21    "quality_limitation_reason_tracker.cc",
22    "quality_limitation_reason_tracker.h",
23    "quality_threshold.cc",
24    "quality_threshold.h",
25    "receive_statistics_proxy.cc",
26    "receive_statistics_proxy.h",
27    "receive_statistics_proxy2.cc",
28    "receive_statistics_proxy2.h",
29    "report_block_stats.cc",
30    "report_block_stats.h",
31    "rtp_streams_synchronizer.cc",
32    "rtp_streams_synchronizer.h",
33    "rtp_streams_synchronizer2.cc",
34    "rtp_streams_synchronizer2.h",
35    "rtp_video_stream_receiver.cc",
36    "rtp_video_stream_receiver.h",
37    "rtp_video_stream_receiver2.cc",
38    "rtp_video_stream_receiver2.h",
39    "rtp_video_stream_receiver_frame_transformer_delegate.cc",
40    "rtp_video_stream_receiver_frame_transformer_delegate.h",
41    "send_delay_stats.cc",
42    "send_delay_stats.h",
43    "send_statistics_proxy.cc",
44    "send_statistics_proxy.h",
45    "stats_counter.cc",
46    "stats_counter.h",
47    "stream_synchronization.cc",
48    "stream_synchronization.h",
49    "transport_adapter.cc",
50    "transport_adapter.h",
51    "video_quality_observer.cc",
52    "video_quality_observer.h",
53    "video_quality_observer2.cc",
54    "video_quality_observer2.h",
55    "video_receive_stream.cc",
56    "video_receive_stream.h",
57    "video_receive_stream2.cc",
58    "video_receive_stream2.h",
59    "video_send_stream.cc",
60    "video_send_stream.h",
61    "video_send_stream_impl.cc",
62    "video_send_stream_impl.h",
63    "video_stream_decoder.cc",
64    "video_stream_decoder.h",
65    "video_stream_decoder2.cc",
66    "video_stream_decoder2.h",
67  ]
68
69  deps = [
70    ":frame_dumping_decoder",
71    "../api:array_view",
72    "../api:fec_controller_api",
73    "../api:frame_transformer_interface",
74    "../api:libjingle_peerconnection_api",
75    "../api:rtp_parameters",
76    "../api:scoped_refptr",
77    "../api:transport_api",
78    "../api/crypto:frame_decryptor_interface",
79    "../api/crypto:options",
80    "../api/rtc_event_log",
81    "../api/task_queue",
82    "../api/units:timestamp",
83    "../api/video:encoded_image",
84    "../api/video:recordable_encoded_frame",
85    "../api/video:video_bitrate_allocation",
86    "../api/video:video_bitrate_allocator",
87    "../api/video:video_codec_constants",
88    "../api/video:video_frame",
89    "../api/video:video_frame_i420",
90    "../api/video:video_rtp_headers",
91    "../api/video:video_stream_encoder",
92    "../api/video:video_stream_encoder_create",
93    "../api/video_codecs:video_codecs_api",
94    "../call:bitrate_allocator",
95    "../call:call_interfaces",
96    "../call:rtp_interfaces",
97    "../call:rtp_receiver",  # For RtxReceiveStream.
98    "../call:rtp_sender",
99    "../call:video_stream_api",
100    "../common_video",
101    "../media:rtc_h264_profile_id",
102    "../modules:module_api",
103    "../modules:module_api_public",
104    "../modules/pacing",
105    "../modules/remote_bitrate_estimator",
106    "../modules/rtp_rtcp",
107    "../modules/rtp_rtcp:rtp_rtcp_format",
108    "../modules/rtp_rtcp:rtp_video_header",
109    "../modules/utility",
110    "../modules/video_coding",
111    "../modules/video_coding:codec_globals_headers",
112    "../modules/video_coding:nack_module",
113    "../modules/video_coding:video_codec_interface",
114    "../modules/video_coding:video_coding_utility",
115    "../modules/video_coding/deprecated:nack_module",
116    "../modules/video_processing",
117    "../rtc_base:checks",
118    "../rtc_base:rate_limiter",
119    "../rtc_base:rtc_base",
120    "../rtc_base:rtc_base_approved",
121    "../rtc_base:rtc_numerics",
122    "../rtc_base:rtc_task_queue",
123    "../rtc_base:stringutils",
124    "../rtc_base:weak_ptr",
125    "../rtc_base/experiments:alr_experiment",
126    "../rtc_base/experiments:field_trial_parser",
127    "../rtc_base/experiments:keyframe_interval_settings_experiment",
128    "../rtc_base/experiments:min_video_bitrate_experiment",
129    "../rtc_base/experiments:quality_scaling_experiment",
130    "../rtc_base/experiments:rate_control_settings",
131    "../rtc_base/synchronization:mutex",
132    "../rtc_base/synchronization:sequence_checker",
133    "../rtc_base/system:thread_registry",
134    "../rtc_base/task_utils:pending_task_safety_flag",
135    "../rtc_base/task_utils:repeating_task",
136    "../rtc_base/task_utils:to_queued_task",
137    "../rtc_base/time:timestamp_extrapolator",
138    "../system_wrappers",
139    "../system_wrappers:field_trial",
140    "../system_wrappers:metrics",
141  ]
142  absl_deps = [
143    "//third_party/abseil-cpp/absl/algorithm:container",
144    "//third_party/abseil-cpp/absl/base:core_headers",
145    "//third_party/abseil-cpp/absl/memory",
146    "//third_party/abseil-cpp/absl/strings",
147    "//third_party/abseil-cpp/absl/types:optional",
148  ]
149
150  if (!build_with_mozilla) {
151    deps += [ "../media:rtc_media_base" ]
152  }
153}
154
155rtc_library("video_stream_decoder_impl") {
156  visibility = [ "*" ]
157
158  sources = [
159    "video_stream_decoder_impl.cc",
160    "video_stream_decoder_impl.h",
161  ]
162
163  deps = [
164    "../api/task_queue",
165    "../api/video:encoded_frame",
166    "../api/video:video_frame",
167    "../api/video:video_rtp_headers",
168    "../api/video:video_stream_decoder",
169    "../api/video_codecs:video_codecs_api",
170    "../modules/video_coding",
171    "../rtc_base:rtc_base_approved",
172    "../rtc_base:rtc_task_queue",
173    "../rtc_base/synchronization:mutex",
174    "../system_wrappers",
175  ]
176  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
177}
178
179rtc_library("frame_dumping_decoder") {
180  visibility = [ "*" ]
181
182  sources = [
183    "frame_dumping_decoder.cc",
184    "frame_dumping_decoder.h",
185  ]
186
187  deps = [
188    "../api/video:encoded_frame",
189    "../api/video:encoded_image",
190    "../api/video_codecs:video_codecs_api",
191    "../modules/video_coding",
192    "../modules/video_coding:video_codec_interface",
193    "../modules/video_coding:video_coding_utility",
194    "../rtc_base:rtc_base_approved",
195    "../rtc_base/system:file_wrapper",
196  ]
197}
198
199rtc_library("video_stream_encoder_impl") {
200  visibility = [ "*" ]
201
202  # visibility = [ "../api/video:video_stream_encoder_create" ]
203  sources = [
204    "encoder_bitrate_adjuster.cc",
205    "encoder_bitrate_adjuster.h",
206    "encoder_overshoot_detector.cc",
207    "encoder_overshoot_detector.h",
208    "frame_encode_metadata_writer.cc",
209    "frame_encode_metadata_writer.h",
210    "video_source_sink_controller.cc",
211    "video_source_sink_controller.h",
212    "video_stream_encoder.cc",
213    "video_stream_encoder.h",
214  ]
215
216  deps = [
217    "../api:rtp_parameters",
218    "../api/adaptation:resource_adaptation_api",
219    "../api/task_queue:task_queue",
220    "../api/units:data_rate",
221    "../api/video:encoded_image",
222    "../api/video:video_adaptation",
223    "../api/video:video_bitrate_allocation",
224    "../api/video:video_bitrate_allocator",
225    "../api/video:video_bitrate_allocator_factory",
226    "../api/video:video_codec_constants",
227    "../api/video:video_frame",
228    "../api/video:video_frame_i420",
229    "../api/video:video_rtp_headers",
230    "../api/video:video_stream_encoder",
231    "../api/video_codecs:video_codecs_api",
232    "../call/adaptation:resource_adaptation",
233    "../common_video",
234    "../modules:module_api_public",
235    "../modules/video_coding",
236    "../modules/video_coding:video_codec_interface",
237    "../modules/video_coding:video_coding_utility",
238    "../modules/video_coding:webrtc_vp9_helpers",
239    "../rtc_base:checks",
240    "../rtc_base:criticalsection",
241    "../rtc_base:logging",
242    "../rtc_base:macromagic",
243    "../rtc_base:rtc_base_approved",
244    "../rtc_base:rtc_event",
245    "../rtc_base:rtc_numerics",
246    "../rtc_base:rtc_task_queue",
247    "../rtc_base:timeutils",
248    "../rtc_base/experiments:alr_experiment",
249    "../rtc_base/experiments:balanced_degradation_settings",
250    "../rtc_base/experiments:field_trial_parser",
251    "../rtc_base/experiments:quality_rampup_experiment",
252    "../rtc_base/experiments:quality_scaler_settings",
253    "../rtc_base/experiments:quality_scaling_experiment",
254    "../rtc_base/experiments:rate_control_settings",
255    "../rtc_base/synchronization:mutex",
256    "../rtc_base/synchronization:sequence_checker",
257    "../rtc_base/task_utils:repeating_task",
258    "../system_wrappers",
259    "../system_wrappers:field_trial",
260    "adaptation:video_adaptation",
261  ]
262  absl_deps = [
263    "//third_party/abseil-cpp/absl/algorithm:container",
264    "//third_party/abseil-cpp/absl/base:core_headers",
265    "//third_party/abseil-cpp/absl/types:optional",
266  ]
267}
268
269if (rtc_include_tests) {
270  rtc_library("video_mocks") {
271    testonly = true
272    sources = [ "test/mock_video_stream_encoder.h" ]
273    deps = [
274      "../api/video:video_stream_encoder",
275      "../test:test_support",
276    ]
277  }
278  rtc_library("video_quality_test") {
279    testonly = true
280
281    # Only targets in this file and api/ can depend on this.
282    visibility = [
283      ":*",
284      "../api:create_video_quality_test_fixture_api",
285    ]
286    sources = [
287      "video_analyzer.cc",
288      "video_analyzer.h",
289      "video_quality_test.cc",
290      "video_quality_test.h",
291    ]
292    deps = [
293      ":frame_dumping_decoder",
294      "../api:create_frame_generator",
295      "../api:fec_controller_api",
296      "../api:frame_generator_api",
297      "../api:libjingle_peerconnection_api",
298      "../api:rtc_event_log_output_file",
299      "../api:test_dependency_factory",
300      "../api:video_quality_test_fixture_api",
301      "../api/rtc_event_log:rtc_event_log_factory",
302      "../api/task_queue",
303      "../api/task_queue:default_task_queue_factory",
304      "../api/video:builtin_video_bitrate_allocator_factory",
305      "../api/video:video_bitrate_allocator_factory",
306      "../api/video:video_frame",
307      "../api/video:video_rtp_headers",
308      "../api/video_codecs:video_codecs_api",
309      "../call:fake_network",
310      "../call:simulated_network",
311      "../common_video",
312      "../media:rtc_audio_video",
313      "../media:rtc_encoder_simulcast_proxy",
314      "../media:rtc_internal_video_codecs",
315      "../media:rtc_media_base",
316      "../modules/audio_device:audio_device_api",
317      "../modules/audio_device:audio_device_module_from_input_and_output",
318      "../modules/audio_device:windows_core_audio_utility",
319      "../modules/audio_mixer:audio_mixer_impl",
320      "../modules/rtp_rtcp",
321      "../modules/rtp_rtcp:rtp_rtcp_format",
322      "../modules/video_coding",
323      "../modules/video_coding:video_coding_utility",
324      "../modules/video_coding:webrtc_h264",
325      "../modules/video_coding:webrtc_multiplex",
326      "../modules/video_coding:webrtc_vp8",
327      "../modules/video_coding:webrtc_vp9",
328      "../rtc_base:rtc_base_approved",
329      "../rtc_base:rtc_base_tests_utils",
330      "../rtc_base:rtc_numerics",
331      "../rtc_base:task_queue_for_test",
332      "../rtc_base/synchronization:mutex",
333      "../rtc_base/task_utils:repeating_task",
334      "../system_wrappers",
335      "../test:fake_video_codecs",
336      "../test:fileutils",
337      "../test:perf_test",
338      "../test:platform_video_capturer",
339      "../test:rtp_test_utils",
340      "../test:test_common",
341      "../test:test_renderer",
342      "../test:test_support",
343      "../test:test_support_test_artifacts",
344      "../test:video_test_common",
345      "../test:video_test_support",
346    ]
347    absl_deps = [
348      "//third_party/abseil-cpp/absl/algorithm:container",
349      "//third_party/abseil-cpp/absl/flags:flag",
350      "//third_party/abseil-cpp/absl/flags:parse",
351    ]
352
353    if (is_mac || is_ios) {
354      deps += [ "../test:video_test_mac" ]
355    }
356  }
357
358  rtc_library("video_full_stack_tests") {
359    testonly = true
360
361    sources = [ "full_stack_tests.cc" ]
362    deps = [
363      ":video_quality_test",
364      "../api:simulated_network_api",
365      "../api:test_dependency_factory",
366      "../api:video_quality_test_fixture_api",
367      "../api/video_codecs:video_codecs_api",
368      "../media:rtc_vp9_profile",
369      "../modules/pacing",
370      "../modules/video_coding:webrtc_vp9",
371      "../rtc_base/experiments:alr_experiment",
372      "../system_wrappers:field_trial",
373      "../test:field_trial",
374      "../test:fileutils",
375      "../test:test_common",
376      "../test:test_support",
377      "//testing/gtest",
378    ]
379    absl_deps = [
380      "//third_party/abseil-cpp/absl/flags:flag",
381      "//third_party/abseil-cpp/absl/flags:parse",
382      "//third_party/abseil-cpp/absl/types:optional",
383    ]
384  }
385
386  rtc_library("video_pc_full_stack_tests") {
387    testonly = true
388
389    sources = [ "pc_full_stack_tests.cc" ]
390    deps = [
391      "../api:create_network_emulation_manager",
392      "../api:create_peer_connection_quality_test_frame_generator",
393      "../api:create_peerconnection_quality_test_fixture",
394      "../api:frame_generator_api",
395      "../api:media_stream_interface",
396      "../api:network_emulation_manager_api",
397      "../api:peer_connection_quality_test_fixture_api",
398      "../api:simulated_network_api",
399      "../api:time_controller",
400      "../call:simulated_network",
401      "../media:rtc_vp9_profile",
402      "../modules/video_coding:webrtc_vp9",
403      "../system_wrappers:field_trial",
404      "../test:field_trial",
405      "../test:fileutils",
406      "../test:test_support",
407      "../test/pc/e2e:network_quality_metrics_reporter",
408    ]
409  }
410
411  rtc_library("video_loopback_lib") {
412    testonly = true
413    sources = [
414      "video_loopback.cc",
415      "video_loopback.h",
416    ]
417    deps = [
418      ":video_quality_test",
419      "../api:libjingle_peerconnection_api",
420      "../api:simulated_network_api",
421      "../api:video_quality_test_fixture_api",
422      "../api/transport:bitrate_settings",
423      "../api/video_codecs:video_codecs_api",
424      "../rtc_base:checks",
425      "../rtc_base:logging",
426      "../system_wrappers:field_trial",
427      "../test:field_trial",
428      "../test:run_test",
429      "../test:run_test_interface",
430      "../test:test_common",
431      "../test:test_renderer",
432      "../test:test_support",
433      "//testing/gtest",
434    ]
435    absl_deps = [
436      "//third_party/abseil-cpp/absl/flags:flag",
437      "//third_party/abseil-cpp/absl/flags:parse",
438      "//third_party/abseil-cpp/absl/types:optional",
439    ]
440  }
441
442  if (is_mac) {
443    mac_app_bundle("video_loopback") {
444      testonly = true
445      sources = [ "video_loopback_main.mm" ]
446      info_plist = "../test/mac/Info.plist"
447      deps = [ ":video_loopback_lib" ]
448    }
449  } else {
450    rtc_executable("video_loopback") {
451      testonly = true
452      sources = [ "video_loopback_main.cc" ]
453      deps = [ ":video_loopback_lib" ]
454    }
455  }
456
457  rtc_executable("screenshare_loopback") {
458    testonly = true
459    sources = [ "screenshare_loopback.cc" ]
460
461    deps = [
462      ":video_quality_test",
463      "../api:libjingle_peerconnection_api",
464      "../api:simulated_network_api",
465      "../api:video_quality_test_fixture_api",
466      "../api/transport:bitrate_settings",
467      "../api/video_codecs:video_codecs_api",
468      "../rtc_base:checks",
469      "../rtc_base:logging",
470      "../rtc_base:stringutils",
471      "../system_wrappers:field_trial",
472      "../test:field_trial",
473      "../test:run_test",
474      "../test:run_test_interface",
475      "../test:test_common",
476      "../test:test_renderer",
477      "../test:test_support",
478      "//third_party/abseil-cpp/absl/flags:flag",
479      "//third_party/abseil-cpp/absl/flags:parse",
480      "//third_party/abseil-cpp/absl/types:optional",
481    ]
482  }
483
484  rtc_executable("sv_loopback") {
485    testonly = true
486    sources = [ "sv_loopback.cc" ]
487    deps = [
488      ":video_quality_test",
489      "../api:libjingle_peerconnection_api",
490      "../api:simulated_network_api",
491      "../api:video_quality_test_fixture_api",
492      "../api/transport:bitrate_settings",
493      "../api/video_codecs:video_codecs_api",
494      "../rtc_base:checks",
495      "../rtc_base:logging",
496      "../rtc_base:stringutils",
497      "../system_wrappers:field_trial",
498      "../test:field_trial",
499      "../test:run_test",
500      "../test:run_test_interface",
501      "../test:test_common",
502      "../test:test_renderer",
503      "../test:test_support",
504      "//testing/gtest",
505      "//third_party/abseil-cpp/absl/flags:flag",
506      "//third_party/abseil-cpp/absl/flags:parse",
507      "//third_party/abseil-cpp/absl/types:optional",
508    ]
509  }
510
511  # TODO(pbos): Rename test suite.
512  rtc_library("video_tests") {
513    testonly = true
514
515    defines = []
516    sources = [
517      "buffered_frame_decryptor_unittest.cc",
518      "call_stats2_unittest.cc",
519      "call_stats_unittest.cc",
520      "cpu_scaling_tests.cc",
521      "encoder_bitrate_adjuster_unittest.cc",
522      "encoder_overshoot_detector_unittest.cc",
523      "encoder_rtcp_feedback_unittest.cc",
524      "end_to_end_tests/bandwidth_tests.cc",
525      "end_to_end_tests/call_operation_tests.cc",
526      "end_to_end_tests/codec_tests.cc",
527      "end_to_end_tests/config_tests.cc",
528      "end_to_end_tests/extended_reports_tests.cc",
529      "end_to_end_tests/fec_tests.cc",
530      "end_to_end_tests/frame_encryption_tests.cc",
531      "end_to_end_tests/histogram_tests.cc",
532      "end_to_end_tests/multi_codec_receive_tests.cc",
533      "end_to_end_tests/multi_stream_tester.cc",
534      "end_to_end_tests/multi_stream_tester.h",
535      "end_to_end_tests/multi_stream_tests.cc",
536      "end_to_end_tests/network_state_tests.cc",
537      "end_to_end_tests/probing_tests.cc",
538      "end_to_end_tests/retransmission_tests.cc",
539      "end_to_end_tests/rtp_rtcp_tests.cc",
540      "end_to_end_tests/ssrc_tests.cc",
541      "end_to_end_tests/stats_tests.cc",
542      "end_to_end_tests/transport_feedback_tests.cc",
543      "frame_encode_metadata_writer_unittest.cc",
544      "picture_id_tests.cc",
545      "quality_limitation_reason_tracker_unittest.cc",
546      "quality_scaling_tests.cc",
547      "quality_threshold_unittest.cc",
548      "receive_statistics_proxy2_unittest.cc",
549      "receive_statistics_proxy_unittest.cc",
550      "report_block_stats_unittest.cc",
551      "rtp_video_stream_receiver2_unittest.cc",
552      "rtp_video_stream_receiver_frame_transformer_delegate_unittest.cc",
553      "rtp_video_stream_receiver_unittest.cc",
554      "send_delay_stats_unittest.cc",
555      "send_statistics_proxy_unittest.cc",
556      "stats_counter_unittest.cc",
557      "stream_synchronization_unittest.cc",
558      "video_receive_stream2_unittest.cc",
559      "video_receive_stream_unittest.cc",
560      "video_send_stream_impl_unittest.cc",
561      "video_send_stream_tests.cc",
562      "video_source_sink_controller_unittest.cc",
563      "video_stream_decoder_impl_unittest.cc",
564      "video_stream_encoder_unittest.cc",
565    ]
566    deps = [
567      ":video",
568      ":video_mocks",
569      ":video_stream_decoder_impl",
570      ":video_stream_encoder_impl",
571      "../api:create_frame_generator",
572      "../api:fake_frame_decryptor",
573      "../api:fake_frame_encryptor",
574      "../api:frame_generator_api",
575      "../api:libjingle_peerconnection_api",
576      "../api:mock_fec_controller_override",
577      "../api:mock_frame_decryptor",
578      "../api:mock_video_encoder",
579      "../api:rtp_headers",
580      "../api:rtp_parameters",
581      "../api:scoped_refptr",
582      "../api:simulated_network_api",
583      "../api:transport_api",
584      "../api/adaptation:resource_adaptation_api",
585      "../api/crypto:options",
586      "../api/rtc_event_log",
587      "../api/task_queue",
588      "../api/task_queue:default_task_queue_factory",
589      "../api/test/video:function_video_factory",
590      "../api/units:data_rate",
591      "../api/units:timestamp",
592      "../api/video:builtin_video_bitrate_allocator_factory",
593      "../api/video:encoded_image",
594      "../api/video:video_adaptation",
595      "../api/video:video_bitrate_allocation",
596      "../api/video:video_frame",
597      "../api/video:video_frame_i420",
598      "../api/video:video_frame_type",
599      "../api/video:video_rtp_headers",
600      "../api/video_codecs:video_codecs_api",
601      "../api/video_codecs:vp8_temporal_layers_factory",
602      "../call:call_interfaces",
603      "../call:fake_network",
604      "../call:mock_bitrate_allocator",
605      "../call:mock_rtp_interfaces",
606      "../call:rtp_interfaces",
607      "../call:rtp_receiver",
608      "../call:rtp_sender",
609      "../call:simulated_network",
610      "../call:simulated_packet_receiver",
611      "../call:video_stream_api",
612      "../call/adaptation:resource_adaptation",
613      "../call/adaptation:resource_adaptation_test_utilities",
614      "../common_video",
615      "../common_video/test:utilities",
616      "../media:rtc_audio_video",
617      "../media:rtc_internal_video_codecs",
618      "../media:rtc_media",
619      "../media:rtc_media_base",
620      "../media:rtc_media_tests_utils",
621      "../media:rtc_simulcast_encoder_adapter",
622      "../modules:module_api",
623      "../modules:module_api_public",
624      "../modules/pacing",
625      "../modules/rtp_rtcp",
626      "../modules/rtp_rtcp:mock_rtp_rtcp",
627      "../modules/rtp_rtcp:rtp_rtcp_format",
628      "../modules/utility",
629      "../modules/video_coding",
630      "../modules/video_coding:codec_globals_headers",
631      "../modules/video_coding:encoded_frame",
632      "../modules/video_coding:video_codec_interface",
633      "../modules/video_coding:video_coding_utility",
634      "../modules/video_coding:webrtc_h264",
635      "../modules/video_coding:webrtc_multiplex",
636      "../modules/video_coding:webrtc_vp8",
637      "../modules/video_coding:webrtc_vp9",
638      "../rtc_base",
639      "../rtc_base:checks",
640      "../rtc_base:gunit_helpers",
641      "../rtc_base:rate_limiter",
642      "../rtc_base:rtc_base_approved",
643      "../rtc_base:rtc_base_tests_utils",
644      "../rtc_base:rtc_numerics",
645      "../rtc_base:rtc_task_queue",
646      "../rtc_base:task_queue_for_test",
647      "../rtc_base/experiments:alr_experiment",
648      "../rtc_base/synchronization:mutex",
649      "../rtc_base/synchronization:sequence_checker",
650      "../rtc_base/task_utils:to_queued_task",
651      "../system_wrappers",
652      "../system_wrappers:field_trial",
653      "../system_wrappers:metrics",
654      "../test:direct_transport",
655      "../test:encoder_settings",
656      "../test:fake_video_codecs",
657      "../test:field_trial",
658      "../test:fileutils",
659      "../test:frame_utils",
660      "../test:mock_frame_transformer",
661      "../test:mock_transport",
662      "../test:null_transport",
663      "../test:perf_test",
664      "../test:rtp_test_utils",
665      "../test:test_common",
666      "../test:test_support",
667      "../test:video_test_common",
668      "../test/time_controller",
669      "adaptation:video_adaptation",
670      "//testing/gtest",
671    ]
672    absl_deps = [
673      "//third_party/abseil-cpp/absl/algorithm:container",
674      "//third_party/abseil-cpp/absl/memory",
675      "//third_party/abseil-cpp/absl/types:optional",
676    ]
677    if (!build_with_mozilla) {
678      deps += [ "../media:rtc_media_base" ]
679    }
680  }
681}
682