blob: a2cf13a3f9da7a69bf6c64794f1d32cfcb101d57 [file] [log] [blame]
kjellander@webrtc.org1227ab82014-06-23 19:21:071# 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
mbonadei9aa3f0a2017-01-24 14:58:229import("../webrtc.gni")
kjellander@webrtc.org1227ab82014-06-23 19:21:0710
kjellanderb62dbbe2016-09-23 07:38:5211rtc_static_library("video") {
kjellander@webrtc.org788f0582014-08-28 13:51:0812 sources = [
Benjamin Wright00765292018-12-01 00:18:2613 "buffered_frame_decryptor.cc",
14 "buffered_frame_decryptor.h",
Peter Boström7623ce42015-12-09 11:13:3015 "call_stats.cc",
16 "call_stats.h",
Elad Alon14d1c9d2019-04-08 12:16:1717 "encoder_rtcp_feedback.cc",
18 "encoder_rtcp_feedback.h",
Henrik Boströmce33b6a2019-05-28 15:42:3819 "quality_limitation_reason_tracker.cc",
20 "quality_limitation_reason_tracker.h",
palmkvist349092b2016-12-13 10:45:5721 "quality_threshold.cc",
22 "quality_threshold.h",
kjellander@webrtc.org788f0582014-08-28 13:51:0823 "receive_statistics_proxy.cc",
24 "receive_statistics_proxy.h",
Peter Boström7623ce42015-12-09 11:13:3025 "report_block_stats.cc",
26 "report_block_stats.h",
mflodman4cd27902016-08-05 13:28:4527 "rtp_streams_synchronizer.cc",
28 "rtp_streams_synchronizer.h",
nisseb1f2ff92017-06-09 11:01:5529 "rtp_video_stream_receiver.cc",
30 "rtp_video_stream_receiver.h",
asapersson35151f32016-05-03 06:44:0131 "send_delay_stats.cc",
32 "send_delay_stats.h",
kjellander@webrtc.org788f0582014-08-28 13:51:0833 "send_statistics_proxy.cc",
34 "send_statistics_proxy.h",
asapersson0e9d6d92016-05-23 13:07:5535 "stats_counter.cc",
36 "stats_counter.h",
Peter Boström7623ce42015-12-09 11:13:3037 "stream_synchronization.cc",
38 "stream_synchronization.h",
charujainbf6a45b2016-11-03 11:21:4239 "transport_adapter.cc",
40 "transport_adapter.h",
Ilya Nikolaevskiy94150ee2018-05-23 09:53:1941 "video_quality_observer.cc",
42 "video_quality_observer.h",
kjellander@webrtc.org788f0582014-08-28 13:51:0843 "video_receive_stream.cc",
44 "video_receive_stream.h",
45 "video_send_stream.cc",
46 "video_send_stream.h",
Sebastian Jansson8e0b15b2018-04-18 17:19:2247 "video_send_stream_impl.cc",
48 "video_send_stream_impl.h",
mflodmancfc8e3b2016-05-04 04:22:0449 "video_stream_decoder.cc",
50 "video_stream_decoder.h",
kjellander@webrtc.org788f0582014-08-28 13:51:0851 ]
52
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:2253 deps = [
Erik Språng96965ae2018-10-23 13:42:3754 ":frame_dumping_decoder",
Yves Gerey3e707812018-11-28 15:47:4955 "../api:array_view",
Ying Wang3b790f32018-01-19 16:58:5756 "../api:fec_controller_api",
Patrik Höglundbe214a22018-01-04 11:14:3557 "../api:libjingle_peerconnection_api",
Mirko Bonadeid9708072019-01-25 19:26:4858 "../api:scoped_refptr",
aleloia8eb7562016-11-28 15:02:1359 "../api:transport_api",
Sebastian Jansson74682c12019-03-01 10:50:2060 "../api/task_queue",
Yves Gerey3e707812018-11-28 15:47:4961 "../api/video:encoded_image",
62 "../api/video:video_bitrate_allocation",
Jiawei Ou4206a0a2018-07-20 22:49:4363 "../api/video:video_bitrate_allocator",
Niels Möllerc6ce9c52018-05-11 09:15:3064 "../api/video:video_frame",
65 "../api/video:video_frame_i420",
Chen Xing5d24b162019-06-10 10:59:3866 "../api/video:video_rtp_headers",
Niels Möller0327c2d2018-05-21 12:09:3167 "../api/video:video_stream_encoder",
Niels Möller213618e2018-07-24 07:29:5868 "../api/video:video_stream_encoder_create",
ilnikd60d06a2017-04-05 10:02:2069 "../api/video_codecs:video_codecs_api",
Mirko Bonadei245660a2017-10-10 12:38:1170 "../call:bitrate_allocator",
mbonadei9087d492017-04-25 07:35:3571 "../call:call_interfaces",
nissed76b7b22017-06-01 11:02:3572 "../call:rtp_interfaces",
Danil Chapovalov1aa75812019-03-05 10:11:3573 "../call:rtp_receiver", # For RtxReceiveStream.
Stefan Holmera2f15332018-07-11 15:11:3174 "../call:rtp_sender",
aleloi440b6d92017-08-22 12:43:2375 "../call:video_stream_api",
Danil Chapovalov1aa75812019-03-05 10:11:3576 "../common_video",
77 "../logging:rtc_event_log_api",
Yves Gerey3e707812018-11-28 15:47:4978 "../media:rtc_h264_profile_id",
Danil Chapovalov1aa75812019-03-05 10:11:3579 "../modules:module_api",
Yves Gerey3e707812018-11-28 15:47:4980 "../modules:module_api_public",
Danil Chapovalov1aa75812019-03-05 10:11:3581 "../modules/bitrate_controller",
82 "../modules/pacing",
83 "../modules/remote_bitrate_estimator",
84 "../modules/rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 06:51:3385 "../modules/rtp_rtcp:rtp_rtcp_format",
philipel1a4746a2018-07-09 13:52:2986 "../modules/rtp_rtcp:rtp_video_header",
Danil Chapovalov1aa75812019-03-05 10:11:3587 "../modules/utility",
88 "../modules/video_coding",
Sergey Silkin86684962018-03-28 17:32:3789 "../modules/video_coding:codec_globals_headers",
Ilya Nikolaevskiy8643b782018-06-07 14:15:4090 "../modules/video_coding:nack_module",
91 "../modules/video_coding:packet",
Patrik Höglund99175c62018-01-08 10:05:1092 "../modules/video_coding:video_codec_interface",
Danil Chapovalov1aa75812019-03-05 10:11:3593 "../modules/video_coding:video_coding_utility",
94 "../modules/video_processing",
Patrik Höglunda8005cf2017-12-13 15:05:4295 "../rtc_base:checks",
Stefan Holmerdbdb3a02018-07-17 14:03:4696 "../rtc_base:rate_limiter",
Danil Chapovalov1aa75812019-03-05 10:11:3597 "../rtc_base:rtc_base_approved",
98 "../rtc_base:rtc_numerics",
99 "../rtc_base:rtc_task_queue",
Tommifef05002018-02-27 12:51:08100 "../rtc_base:stringutils",
Danil Chapovalov1aa75812019-03-05 10:11:35101 "../rtc_base:weak_ptr",
Sebastian Janssoncabe3832018-01-12 09:54:18102 "../rtc_base/experiments:alr_experiment",
Rasmus Brandt3dde4502019-03-21 10:46:17103 "../rtc_base/experiments:keyframe_interval_settings_experiment",
Åsa Perssona945aee2018-04-24 14:53:25104 "../rtc_base/experiments:quality_scaling_experiment",
Erik Språngcd76eab2019-01-21 17:06:46105 "../rtc_base/experiments:rate_control_settings",
Sebastian Janssonb55015e2019-04-09 11:44:04106 "../rtc_base/synchronization:sequence_checker",
Karl Wiberg80ba3332018-02-05 09:33:35107 "../rtc_base/system:fallthrough",
Karl Wibergab036382019-03-12 17:01:51108 "../rtc_base/system:thread_registry",
Sebastian Janssonecb68972019-01-18 09:30:54109 "../rtc_base/task_utils:repeating_task",
Danil Chapovalov1aa75812019-03-05 10:11:35110 "../rtc_base/task_utils:to_queued_task",
111 "../rtc_base/time:timestamp_extrapolator",
112 "../system_wrappers",
Mirko Bonadei17f48782018-09-28 06:51:10113 "../system_wrappers:field_trial",
114 "../system_wrappers:metrics",
Steve Antonbd631a02019-03-28 17:51:27115 "//third_party/abseil-cpp/absl/algorithm:container",
Karl Wiberg918f50c2018-07-05 09:40:33116 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalovb9b146c2018-06-15 10:28:07117 "//third_party/abseil-cpp/absl/types:optional",
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22118 ]
Dan Minor9c686132018-01-15 15:20:00119
120 if (!build_with_mozilla) {
121 deps += [ "../media:rtc_media_base" ]
122 }
kjellander@webrtc.org1227ab82014-06-23 19:21:07123}
Peter Boström02083222016-06-14 10:52:54124
philipel2fee4d62018-03-21 15:52:13125rtc_source_set("video_stream_decoder_impl") {
126 visibility = [ "*" ]
Anders Carlsson51e23ae2018-05-24 11:31:30127
philipel2fee4d62018-03-21 15:52:13128 sources = [
129 "video_stream_decoder_impl.cc",
130 "video_stream_decoder_impl.h",
131 ]
132
133 deps = [
Danil Chapovalov471783f2019-03-11 13:26:02134 "../api/task_queue",
Niels Möllerc6ce9c52018-05-11 09:15:30135 "../api/video:encoded_frame",
136 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38137 "../api/video:video_rtp_headers",
Niels Möllerc6ce9c52018-05-11 09:15:30138 "../api/video:video_stream_decoder",
philipel2fee4d62018-03-21 15:52:13139 "../api/video_codecs:video_codecs_api",
Artem Titov94b57c02019-03-21 12:35:10140 "../modules/video_coding",
philipel2fee4d62018-03-21 15:52:13141 "../rtc_base:rtc_base_approved",
Danil Chapovalov07a4f2b2019-03-05 18:58:28142 "../rtc_base:rtc_task_queue",
Artem Titov94b57c02019-03-21 12:35:10143 "../system_wrappers",
Karl Wiberg918f50c2018-07-05 09:40:33144 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalovb9b146c2018-06-15 10:28:07145 "//third_party/abseil-cpp/absl/types:optional",
philipel2fee4d62018-03-21 15:52:13146 ]
philipel2fee4d62018-03-21 15:52:13147}
148
Erik Språng96965ae2018-10-23 13:42:37149rtc_source_set("frame_dumping_decoder") {
150 visibility = [ "*" ]
151
152 sources = [
153 "frame_dumping_decoder.cc",
154 "frame_dumping_decoder.h",
155 ]
156
157 deps = [
158 "../api/video:encoded_frame",
Yves Gerey3e707812018-11-28 15:47:49159 "../api/video:encoded_image",
Erik Språng96965ae2018-10-23 13:42:37160 "../api/video_codecs:video_codecs_api",
Artem Titov94b57c02019-03-21 12:35:10161 "../modules/video_coding",
Erik Språng96965ae2018-10-23 13:42:37162 "../modules/video_coding:video_codec_interface",
Erik Språng96965ae2018-10-23 13:42:37163 "../modules/video_coding:video_coding_utility",
164 "../rtc_base:rtc_base_approved",
165 "//third_party/abseil-cpp/absl/memory",
166 ]
167}
168
Niels Möller213618e2018-07-24 07:29:58169rtc_source_set("video_stream_encoder_impl") {
170 visibility = [ "*" ]
171
172 # visibility = [ "../api/video:video_stream_encoder_create" ]
Niels Möller213618e2018-07-24 07:29:58173 sources = [
Erik Språng7ca375c2019-02-06 15:20:17174 "encoder_bitrate_adjuster.cc",
175 "encoder_bitrate_adjuster.h",
176 "encoder_overshoot_detector.cc",
177 "encoder_overshoot_detector.h",
Ilya Nikolaevskiy2ebf5232019-05-13 14:13:36178 "frame_encode_metadata_writer.cc",
179 "frame_encode_metadata_writer.h",
Niels Möller213618e2018-07-24 07:29:58180 "overuse_frame_detector.cc",
181 "overuse_frame_detector.h",
182 "video_stream_encoder.cc",
183 "video_stream_encoder.h",
184 ]
185
Niels Möller213618e2018-07-24 07:29:58186 deps = [
Erik Språng7ca375c2019-02-06 15:20:17187 "../api/units:data_rate",
Niels Möller4dc66c52018-10-05 12:17:58188 "../api/video:encoded_image",
Erik Språng7ca375c2019-02-06 15:20:17189 "../api/video:video_bitrate_allocation",
Niels Möller213618e2018-07-24 07:29:58190 "../api/video:video_bitrate_allocator",
Jiawei Ouc2ebe212018-11-08 18:02:56191 "../api/video:video_bitrate_allocator_factory",
Niels Möller213618e2018-07-24 07:29:58192 "../api/video:video_frame",
193 "../api/video:video_frame_i420",
Chen Xing5d24b162019-06-10 10:59:38194 "../api/video:video_rtp_headers",
Niels Möller213618e2018-07-24 07:29:58195 "../api/video:video_stream_encoder",
196 "../api/video_codecs:video_codecs_api",
Artem Titov94b57c02019-03-21 12:35:10197 "../common_video",
Erik Språng6a7baa72019-02-26 17:31:00198 "../modules:module_api_public",
Niels Möller213618e2018-07-24 07:29:58199 "../modules/video_coding",
Erik Språng6a7baa72019-02-26 17:31:00200 "../modules/video_coding:video_codec_interface",
Niels Möller213618e2018-07-24 07:29:58201 "../modules/video_coding:video_coding_utility",
Sergey Silkin8b9b5f92018-12-10 08:28:53202 "../modules/video_coding:webrtc_vp9_helpers",
Niels Möller213618e2018-07-24 07:29:58203 "../rtc_base:checks",
204 "../rtc_base:criticalsection",
205 "../rtc_base:logging",
206 "../rtc_base:macromagic",
207 "../rtc_base:rtc_base_approved",
208 "../rtc_base:rtc_event",
209 "../rtc_base:rtc_numerics",
210 "../rtc_base:rtc_task_queue",
Niels Möller213618e2018-07-24 07:29:58211 "../rtc_base:timeutils",
Erik Språng6a7baa72019-02-26 17:31:00212 "../rtc_base/experiments:alr_experiment",
Åsa Perssonf3d828e2019-05-06 10:22:49213 "../rtc_base/experiments:balanced_degradation_settings",
Niels Möllereea92882019-04-25 06:44:04214 "../rtc_base/experiments:field_trial_parser",
Niels Möller213618e2018-07-24 07:29:58215 "../rtc_base/experiments:quality_scaling_experiment",
Erik Språng7ca375c2019-02-06 15:20:17216 "../rtc_base/experiments:rate_control_settings",
Sebastian Janssonb55015e2019-04-09 11:44:04217 "../rtc_base/synchronization:sequence_checker",
Niels Möller213618e2018-07-24 07:29:58218 "../rtc_base/system:fallthrough",
Sebastian Janssonecb68972019-01-18 09:30:54219 "../rtc_base/task_utils:repeating_task",
Mirko Bonadei17f48782018-09-28 06:51:10220 "../system_wrappers:field_trial",
Steve Antonbd631a02019-03-28 17:51:27221 "//third_party/abseil-cpp/absl/algorithm:container",
Steve Anton40d55332019-01-07 18:21:47222 "//third_party/abseil-cpp/absl/memory",
Niels Möller213618e2018-07-24 07:29:58223 "//third_party/abseil-cpp/absl/types:optional",
224 ]
225}
226
Peter Boström02083222016-06-14 10:52:54227if (rtc_include_tests) {
Sebastian Jansson652dc912018-04-19 15:09:15228 rtc_source_set("video_mocks") {
229 testonly = true
230 sources = [
231 "test/mock_video_stream_encoder.h",
232 ]
233 deps = [
Niels Möller213618e2018-07-24 07:29:58234 "../api/video:video_stream_encoder",
Sebastian Jansson652dc912018-04-19 15:09:15235 "../test:test_support",
236 ]
237 }
kjellandera3cac052016-10-24 08:52:39238 rtc_source_set("video_quality_test") {
239 testonly = true
Patrik Höglundb6b29e02018-06-21 14:58:01240
241 # Only targets in this file and api/ can depend on this.
242 visibility = [
243 ":*",
244 "../api:create_video_quality_test_fixture_api",
245 ]
kjellandera3cac052016-10-24 08:52:39246 sources = [
Sebastian Janssond4c5d632018-07-10 10:57:37247 "video_analyzer.cc",
248 "video_analyzer.h",
kjellandera3cac052016-10-24 08:52:39249 "video_quality_test.cc",
250 "video_quality_test.h",
251 ]
252 deps = [
Erik Språng96965ae2018-10-23 13:42:37253 ":frame_dumping_decoder",
Patrik Höglundb6b29e02018-06-21 14:58:01254 "../api:fec_controller_api",
Anton Sukhanov4f08faa2019-05-21 18:12:57255 "../api:libjingle_peerconnection_api",
Niels Möllerd8b9ed72019-05-08 11:53:51256 "../api:rtc_event_log_output_file",
Patrik Höglundd8f3c172018-09-26 12:39:17257 "../api:test_dependency_factory",
Patrik Höglundb6b29e02018-06-21 14:58:01258 "../api:video_quality_test_fixture_api",
Danil Chapovalov4ba04b72019-06-26 13:49:47259 "../api/rtc_event_log:rtc_event_log_factory",
Danil Chapovalov1c41be62019-04-01 07:16:12260 "../api/task_queue",
261 "../api/task_queue:default_task_queue_factory",
Jiawei Ouc2ebe212018-11-08 18:02:56262 "../api/video:builtin_video_bitrate_allocator_factory",
263 "../api/video:video_bitrate_allocator_factory",
Niels Möller1c931c42018-12-18 15:08:11264 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38265 "../api/video:video_rtp_headers",
Elad Alon370f93a2019-06-11 12:57:57266 "../api/video_codecs:video_codecs_api",
Patrik Höglundb6b29e02018-06-21 14:58:01267 "../call:fake_network",
Artem Titovdd2eebe2018-08-20 11:27:45268 "../call:simulated_network",
Niels Möller1c931c42018-12-18 15:08:11269 "../common_video",
mbonadei9087d492017-04-25 07:35:35270 "../logging:rtc_event_log_api",
Mirko Bonadei5f99e652017-12-19 12:40:40271 "../media:rtc_audio_video",
Florent Castellie7862cc2018-12-06 12:38:24272 "../media:rtc_encoder_simulcast_proxy",
Anders Carlssona114c882018-01-04 14:10:22273 "../media:rtc_internal_video_codecs",
henrika255750b2018-08-27 14:13:37274 "../modules/audio_device:audio_device_api",
275 "../modules/audio_device:audio_device_module_from_input_and_output",
276 "../modules/audio_device:windows_core_audio_utility",
mbonadei9087d492017-04-25 07:35:35277 "../modules/audio_mixer:audio_mixer_impl",
278 "../modules/rtp_rtcp",
Artem Titov94b57c02019-03-21 12:35:10279 "../modules/video_coding",
Niels Möller1beef1a2018-09-03 12:21:44280 "../modules/video_coding:video_coding_utility",
mbonadei9087d492017-04-25 07:35:35281 "../modules/video_coding:webrtc_h264",
Emircan Uysaler03e6ec92018-03-09 23:03:26282 "../modules/video_coding:webrtc_multiplex",
mbonadei9087d492017-04-25 07:35:35283 "../modules/video_coding:webrtc_vp8",
284 "../modules/video_coding:webrtc_vp9",
mbonadei95c8f652017-08-28 06:40:10285 "../rtc_base:rtc_base_approved",
ehmaldonadof6a861a2017-07-19 17:40:47286 "../rtc_base:rtc_base_tests_utils",
Yves Gerey79e9f4b2019-04-13 16:59:53287 "../rtc_base:rtc_numerics",
kjellandera3cac052016-10-24 08:52:39288 "../system_wrappers",
Emircan Uysaler7c03bdc2019-01-16 20:07:56289 "../test:fake_video_codecs",
Patrik Höglund7696bef2018-03-15 14:05:39290 "../test:fileutils",
Edward Lemure66572b2018-01-05 14:34:09291 "../test:perf_test",
Kári Tristan Helgasonede7cb22019-03-06 09:34:09292 "../test:platform_video_capturer",
Jianjun Zhu037f3e42017-08-15 13:48:37293 "../test:rtp_test_utils",
mbonadei9087d492017-04-25 07:35:35294 "../test:test_common",
jianjun.zhuc0247402017-07-11 13:20:45295 "../test:test_renderer",
mbonadei9087d492017-04-25 07:35:35296 "../test:test_support",
Edward Lemuraf8659a2017-09-27 12:46:24297 "../test:test_support_test_artifacts",
jianjun.zhuc0247402017-07-11 13:20:45298 "../test:video_test_common",
ilnik59cac992017-07-25 12:45:03299 "../test:video_test_support",
Steve Antonbd631a02019-03-28 17:51:27300 "//third_party/abseil-cpp/absl/algorithm:container",
Artem Titov533a9fe2019-03-21 11:18:05301 "//third_party/abseil-cpp/absl/memory",
kjellandera3cac052016-10-24 08:52:39302 ]
Kári Tristan Helgasonede7cb22019-03-06 09:34:09303
304 if (is_mac || is_ios) {
305 deps += [ "../test:video_test_mac" ]
306 }
kjellandera3cac052016-10-24 08:52:39307 }
308
ehmaldonado021eef32017-01-05 15:09:50309 rtc_source_set("video_full_stack_tests") {
310 testonly = true
kjellandere0629c02017-04-25 11:04:50311
ehmaldonado021eef32017-01-05 15:09:50312 sources = [
313 "full_stack_tests.cc",
314 ]
315 deps = [
316 ":video_quality_test",
Yves Gerey3e707812018-11-28 15:47:49317 "../api:simulated_network_api",
Patrik Höglundd8f3c172018-09-26 12:39:17318 "../api:test_dependency_factory",
Yves Gerey3e707812018-11-28 15:47:49319 "../api:video_quality_test_fixture_api",
320 "../api/video_codecs:video_codecs_api",
Emircan Uysaler0823eec2018-07-14 00:10:00321 "../media:rtc_vp9_profile",
Artem Titov94b57c02019-03-21 12:35:10322 "../modules/pacing",
Emircan Uysaler0823eec2018-07-14 00:10:00323 "../modules/video_coding:webrtc_vp9",
Sebastian Janssonf8518882018-05-31 12:52:59324 "../rtc_base:rtc_base_approved",
Sebastian Janssoncabe3832018-01-12 09:54:18325 "../rtc_base/experiments:alr_experiment",
Mirko Bonadei17f48782018-09-28 06:51:10326 "../system_wrappers:field_trial",
mbonadei9087d492017-04-25 07:35:35327 "../test:field_trial",
Rasmus Brandt3c589be2019-03-13 10:32:40328 "../test:fileutils",
jianjun.zhuc0247402017-07-11 13:20:45329 "../test:test_common",
mbonadei9087d492017-04-25 07:35:35330 "../test:test_support",
ehmaldonado021eef32017-01-05 15:09:50331 "//testing/gtest",
Yves Gerey3e707812018-11-28 15:47:49332 "//third_party/abseil-cpp/absl/memory",
ehmaldonado021eef32017-01-05 15:09:50333 ]
ehmaldonado021eef32017-01-05 15:09:50334 }
335
Artem Titov137f6c82019-05-17 08:51:15336 rtc_source_set("video_pc_full_stack_tests") {
337 testonly = true
338
339 sources = [
340 "pc_full_stack_tests.cc",
341 ]
342 deps = [
343 "../api:create_network_emulation_manager",
344 "../api:create_peerconnection_quality_test_fixture",
345 "../api:network_emulation_manager_api",
346 "../api:peer_connection_quality_test_fixture_api",
347 "../api:simulated_network_api",
348 "../call:simulated_network",
349 "../media:rtc_vp9_profile",
350 "../modules/video_coding:webrtc_vp9",
351 "../system_wrappers:field_trial",
352 "../test:field_trial",
353 "../test:fileutils",
354 "../test:test_support",
355 "../test/pc/e2e:network_quality_metrics_reporter",
356 "//third_party/abseil-cpp/absl/memory",
357 ]
358 }
359
Kári Tristan Helgasonede7cb22019-03-06 09:34:09360 rtc_static_library("video_loopback_lib") {
kjellandera3cac052016-10-24 08:52:39361 testonly = true
362 sources = [
363 "video_loopback.cc",
Kári Tristan Helgasonede7cb22019-03-06 09:34:09364 "video_loopback.h",
kjellandera3cac052016-10-24 08:52:39365 ]
366 deps = [
367 ":video_quality_test",
Yves Gerey3e707812018-11-28 15:47:49368 "../api:libjingle_peerconnection_api",
369 "../api:simulated_network_api",
370 "../api:video_quality_test_fixture_api",
371 "../api/video_codecs:video_codecs_api",
372 "../rtc_base:checks",
Mirko Bonadei45a4c412018-07-31 13:07:28373 "../rtc_base:logging",
ehmaldonadof6a861a2017-07-19 17:40:47374 "../rtc_base:rtc_base_approved",
Mirko Bonadei17f48782018-09-28 06:51:10375 "../system_wrappers:field_trial",
kjellandera3cac052016-10-24 08:52:39376 "../test:field_trial",
377 "../test:run_test",
mbonadei9c296b32017-09-05 12:11:41378 "../test:run_test_interface",
kjellandera3cac052016-10-24 08:52:39379 "../test:test_common",
380 "../test:test_renderer",
mbonadei9087d492017-04-25 07:35:35381 "../test:test_support",
kjellandera3cac052016-10-24 08:52:39382 "//testing/gtest",
Yves Gerey3e707812018-11-28 15:47:49383 "//third_party/abseil-cpp/absl/memory",
kjellandera3cac052016-10-24 08:52:39384 ]
kjellandera3cac052016-10-24 08:52:39385 }
386
Kári Tristan Helgasonede7cb22019-03-06 09:34:09387 if (is_mac) {
388 mac_app_bundle("video_loopback") {
389 testonly = true
390 sources = [
391 "video_loopback_main.mm",
392 ]
393 info_plist = "../test/mac/Info.plist"
394 deps = [
395 ":video_loopback_lib",
396 ]
397 }
398 } else {
399 rtc_executable("video_loopback") {
400 testonly = true
401 sources = [
402 "video_loopback_main.cc",
403 ]
404 deps = [
405 ":video_loopback_lib",
406 ]
407 }
408 }
409
kjellandera3cac052016-10-24 08:52:39410 rtc_executable("screenshare_loopback") {
411 testonly = true
412 sources = [
413 "screenshare_loopback.cc",
414 ]
415
416 deps = [
417 ":video_quality_test",
Yves Gerey3e707812018-11-28 15:47:49418 "../api:libjingle_peerconnection_api",
419 "../api:simulated_network_api",
420 "../api:video_quality_test_fixture_api",
421 "../api/video_codecs:video_codecs_api",
422 "../rtc_base:checks",
Mirko Bonadei45a4c412018-07-31 13:07:28423 "../rtc_base:logging",
ehmaldonadof6a861a2017-07-19 17:40:47424 "../rtc_base:rtc_base_approved",
Mirko Bonadei17f48782018-09-28 06:51:10425 "../system_wrappers:field_trial",
kjellandera3cac052016-10-24 08:52:39426 "../test:field_trial",
427 "../test:run_test",
mbonadei9c296b32017-09-05 12:11:41428 "../test:run_test_interface",
kjellandera3cac052016-10-24 08:52:39429 "../test:test_common",
430 "../test:test_renderer",
mbonadei9087d492017-04-25 07:35:35431 "../test:test_support",
Yves Gerey3e707812018-11-28 15:47:49432 "//third_party/abseil-cpp/absl/memory",
433 "//third_party/abseil-cpp/absl/types:optional",
kjellandera3cac052016-10-24 08:52:39434 ]
kjellandera3cac052016-10-24 08:52:39435 }
436
Ilya Nikolaevskiy255d1cd2017-12-21 17:02:59437 rtc_executable("sv_loopback") {
438 testonly = true
439 sources = [
440 "sv_loopback.cc",
441 ]
442 deps = [
443 ":video_quality_test",
Yves Gerey3e707812018-11-28 15:47:49444 "../api:libjingle_peerconnection_api",
445 "../api:simulated_network_api",
446 "../api:video_quality_test_fixture_api",
447 "../api/video_codecs:video_codecs_api",
448 "../rtc_base:checks",
Mirko Bonadei45a4c412018-07-31 13:07:28449 "../rtc_base:logging",
Ilya Nikolaevskiy255d1cd2017-12-21 17:02:59450 "../rtc_base:rtc_base_approved",
Mirko Bonadei17f48782018-09-28 06:51:10451 "../system_wrappers:field_trial",
Ilya Nikolaevskiy255d1cd2017-12-21 17:02:59452 "../test:field_trial",
453 "../test:run_test",
454 "../test:run_test_interface",
455 "../test:test_common",
456 "../test:test_renderer",
457 "../test:test_support",
Ilya Nikolaevskiy255d1cd2017-12-21 17:02:59458 "//testing/gtest",
Yves Gerey3e707812018-11-28 15:47:49459 "//third_party/abseil-cpp/absl/memory",
Ilya Nikolaevskiy255d1cd2017-12-21 17:02:59460 ]
Ilya Nikolaevskiy255d1cd2017-12-21 17:02:59461 }
462
stefan64427e52016-12-20 15:26:58463 rtc_executable("video_replay") {
464 testonly = true
465 sources = [
Benjamin Wright8efafdf2019-01-11 18:48:42466 "video_replay.cc",
stefan64427e52016-12-20 15:26:58467 ]
468 deps = [
Danil Chapovalov99b71df2018-10-26 13:57:48469 "../api/test/video:function_video_factory",
ilnikd60d06a2017-04-05 10:02:20470 "../api/video_codecs:video_codecs_api",
mbonadei9087d492017-04-25 07:35:35471 "../call:call_interfaces",
472 "../common_video",
473 "../logging:rtc_event_log_api",
Niels Möllercbcbc222018-09-28 07:07:24474 "../media:rtc_internal_video_codecs",
mbonadei9087d492017-04-25 07:35:35475 "../modules/rtp_rtcp",
Patrik Höglunda8005cf2017-12-13 15:05:42476 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 17:40:47477 "../rtc_base:rtc_base_approved",
Benjamin Wright90ab76d2018-08-23 18:33:29478 "../rtc_base:rtc_json",
mbonadei9087d492017-04-25 07:35:35479 "../system_wrappers",
Benjamin Wright8efafdf2019-01-11 18:48:42480 "../test:call_config_utils",
Danil Chapovalovce928172019-04-24 16:17:42481 "../test:encoder_settings",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27482 "../test:fake_video_codecs",
Danil Chapovalovce928172019-04-24 16:17:42483 "../test:null_transport",
mbonadei9087d492017-04-25 07:35:35484 "../test:rtp_test_utils",
stefan64427e52016-12-20 15:26:58485 "../test:run_test",
mbonadei9c296b32017-09-05 12:11:41486 "../test:run_test_interface",
stefan64427e52016-12-20 15:26:58487 "../test:test_common",
488 "../test:test_renderer",
mbonadei9087d492017-04-25 07:35:35489 "../test:test_support",
490 "../test:video_test_common",
philipel99b63452017-08-25 14:24:21491 "../test:video_test_support",
Steve Anton40d55332019-01-07 18:21:47492 "//third_party/abseil-cpp/absl/memory",
stefan64427e52016-12-20 15:26:58493 ]
stefan64427e52016-12-20 15:26:58494 }
495
Peter Boström02083222016-06-14 10:52:54496 # TODO(pbos): Rename test suite.
ehmaldonado38a21322016-09-02 11:10:34497 rtc_source_set("video_tests") {
Peter Boström02083222016-06-14 10:52:54498 testonly = true
kjellandere0629c02017-04-25 11:04:50499
hta9aa96882016-12-06 13:36:03500 defines = []
Peter Boström02083222016-06-14 10:52:54501 sources = [
Benjamin Wright00765292018-12-01 00:18:26502 "buffered_frame_decryptor_unittest.cc",
Peter Boström02083222016-06-14 10:52:54503 "call_stats_unittest.cc",
Åsa Perssoncb7eddb2018-11-05 13:11:44504 "cpu_scaling_tests.cc",
Erik Språng7ca375c2019-02-06 15:20:17505 "encoder_bitrate_adjuster_unittest.cc",
Erik Språng7ca375c2019-02-06 15:20:17506 "encoder_overshoot_detector_unittest.cc",
Elad Alon14d1c9d2019-04-08 12:16:17507 "encoder_rtcp_feedback_unittest.cc",
Sebastian Janssonc5017132018-02-02 15:24:16508 "end_to_end_tests/bandwidth_tests.cc",
509 "end_to_end_tests/call_operation_tests.cc",
510 "end_to_end_tests/codec_tests.cc",
511 "end_to_end_tests/config_tests.cc",
512 "end_to_end_tests/extended_reports_tests.cc",
513 "end_to_end_tests/fec_tests.cc",
Benjamin Wright150a9072018-10-26 22:43:06514 "end_to_end_tests/frame_encryption_tests.cc",
Sebastian Janssonc5017132018-02-02 15:24:16515 "end_to_end_tests/histogram_tests.cc",
Åsa Persson96c9fc42018-05-23 10:47:20516 "end_to_end_tests/multi_codec_receive_tests.cc",
Sebastian Janssonc5017132018-02-02 15:24:16517 "end_to_end_tests/multi_stream_tester.cc",
518 "end_to_end_tests/multi_stream_tester.h",
519 "end_to_end_tests/multi_stream_tests.cc",
520 "end_to_end_tests/network_state_tests.cc",
521 "end_to_end_tests/probing_tests.cc",
522 "end_to_end_tests/retransmission_tests.cc",
523 "end_to_end_tests/rtp_rtcp_tests.cc",
524 "end_to_end_tests/ssrc_tests.cc",
525 "end_to_end_tests/stats_tests.cc",
526 "end_to_end_tests/transport_feedback_tests.cc",
Ilya Nikolaevskiy2ebf5232019-05-13 14:13:36527 "frame_encode_metadata_writer_unittest.cc",
Peter Boström02083222016-06-14 10:52:54528 "overuse_frame_detector_unittest.cc",
Sebastian Janssone92f93f2017-06-22 12:44:04529 "picture_id_tests.cc",
Henrik Boströmce33b6a2019-05-28 15:42:38530 "quality_limitation_reason_tracker_unittest.cc",
Åsa Persson2027b662018-05-02 16:08:06531 "quality_scaling_tests.cc",
palmkvist349092b2016-12-13 10:45:57532 "quality_threshold_unittest.cc",
sakale5ba44e2016-10-26 14:09:24533 "receive_statistics_proxy_unittest.cc",
Peter Boström02083222016-06-14 10:52:54534 "report_block_stats_unittest.cc",
nisseb1f2ff92017-06-09 11:01:55535 "rtp_video_stream_receiver_unittest.cc",
Peter Boström02083222016-06-14 10:52:54536 "send_delay_stats_unittest.cc",
537 "send_statistics_proxy_unittest.cc",
538 "stats_counter_unittest.cc",
539 "stream_synchronization_unittest.cc",
johanf2183ff2017-02-28 09:33:09540 "video_receive_stream_unittest.cc",
Sebastian Jansson652dc912018-04-19 15:09:15541 "video_send_stream_impl_unittest.cc",
Peter Boström02083222016-06-14 10:52:54542 "video_send_stream_tests.cc",
mflodmancc3d4422017-08-03 15:27:51543 "video_stream_encoder_unittest.cc",
Peter Boström02083222016-06-14 10:52:54544 ]
545 deps = [
546 ":video",
Sebastian Jansson652dc912018-04-19 15:09:15547 ":video_mocks",
Niels Möller213618e2018-07-24 07:29:58548 ":video_stream_encoder_impl",
Benjamin Wright150a9072018-10-26 22:43:06549 "../api:fake_frame_decryptor",
550 "../api:fake_frame_encryptor",
Yves Gerey3e707812018-11-28 15:47:49551 "../api:libjingle_peerconnection_api",
Elad Alon45befc52019-07-02 09:20:09552 "../api:mock_fec_controller_override",
Benjamin Wright00765292018-12-01 00:18:26553 "../api:mock_frame_decryptor",
Niels Mölleref1052a2019-03-20 07:40:23554 "../api:rtp_headers",
Mirko Bonadeid9708072019-01-25 19:26:48555 "../api:scoped_refptr",
Artem Titov46c4e602018-08-17 12:26:54556 "../api:simulated_network_api",
Danil Chapovalov22ed3662019-03-19 18:39:49557 "../api/task_queue:default_task_queue_factory",
Danil Chapovalov99b71df2018-10-26 13:57:48558 "../api/test/video:function_video_factory",
Erik Språng7ca375c2019-02-06 15:20:17559 "../api/units:data_rate",
Henrik Boström23aff9b2019-05-20 13:15:38560 "../api/units:timestamp",
Jiawei Ouc2ebe212018-11-08 18:02:56561 "../api/video:builtin_video_bitrate_allocator_factory",
Niels Möller4dc66c52018-10-05 12:17:58562 "../api/video:encoded_image",
Erik Språngf93eda12019-01-16 16:10:57563 "../api/video:video_bitrate_allocation",
Niels Möllerc6ce9c52018-05-11 09:15:30564 "../api/video:video_frame",
565 "../api/video:video_frame_i420",
Johannes Krond51ec582019-04-15 11:32:41566 "../api/video:video_frame_type",
Chen Xing5d24b162019-06-10 10:59:38567 "../api/video:video_rtp_headers",
mbonadei9087d492017-04-25 07:35:35568 "../api/video_codecs:video_codecs_api",
Elad Aloncde8ab22019-03-20 10:56:20569 "../api/video_codecs:vp8_temporal_layers_factory",
mbonadei9087d492017-04-25 07:35:35570 "../call:call_interfaces",
Artem Titovdd2eebe2018-08-20 11:27:45571 "../call:fake_network",
Sebastian Jansson652dc912018-04-19 15:09:15572 "../call:mock_bitrate_allocator",
eladalone2173d92017-07-28 17:05:45573 "../call:mock_rtp_interfaces",
Yves Gerey3e707812018-11-28 15:47:49574 "../call:rtp_interfaces",
nisse0f15f922017-06-21 08:05:22575 "../call:rtp_receiver",
sprangdb2a9fc2017-08-09 13:42:32576 "../call:rtp_sender",
Artem Titovdd2eebe2018-08-20 11:27:45577 "../call:simulated_network",
Yves Gerey3e707812018-11-28 15:47:49578 "../call:simulated_packet_receiver",
aleloi440b6d92017-08-22 12:43:23579 "../call:video_stream_api",
mbonadei9087d492017-04-25 07:35:35580 "../common_video",
Johannes Kronf1ab9b92018-12-14 09:14:07581 "../common_video/test:utilities",
mbonadei9087d492017-04-25 07:35:35582 "../logging:rtc_event_log_api",
Mirko Bonadei75baa492018-01-11 16:07:30583 "../media:rtc_audio_video",
Anders Carlssona114c882018-01-04 14:10:22584 "../media:rtc_internal_video_codecs",
brandtr5e171752017-05-23 10:32:16585 "../media:rtc_media",
magjedceecea42016-11-28 15:20:21586 "../media:rtc_media_base",
mbonadei9087d492017-04-25 07:35:35587 "../media:rtc_media_tests_utils",
Jonathan Yu9a5da492018-10-19 07:51:18588 "../media:rtc_simulcast_encoder_adapter",
mbonadei1140f972017-04-26 10:38:35589 "../modules:module_api",
mbonadei9087d492017-04-25 07:35:35590 "../modules/pacing",
591 "../modules/rtp_rtcp",
kjellandere0629c02017-04-25 11:04:50592 "../modules/rtp_rtcp:mock_rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 06:51:33593 "../modules/rtp_rtcp:rtp_rtcp_format",
mbonadei9087d492017-04-25 07:35:35594 "../modules/utility",
595 "../modules/video_coding",
Sergey Silkin86684962018-03-28 17:32:37596 "../modules/video_coding:codec_globals_headers",
Ilya Nikolaevskiy8643b782018-06-07 14:15:40597 "../modules/video_coding:packet",
Patrik Höglund99175c62018-01-08 10:05:10598 "../modules/video_coding:video_codec_interface",
mbonadei9087d492017-04-25 07:35:35599 "../modules/video_coding:video_coding_utility",
600 "../modules/video_coding:webrtc_h264",
Emircan Uysaleref76e5a2018-02-12 21:36:41601 "../modules/video_coding:webrtc_multiplex",
Sergio Garcia Murillo43800f92018-06-21 14:16:38602 "../modules/video_coding:webrtc_vp8",
mbonadei9087d492017-04-25 07:35:35603 "../modules/video_coding:webrtc_vp9",
Elad Alon157540a2019-02-08 22:37:52604 "../rtc_base",
Patrik Höglunda8005cf2017-12-13 15:05:42605 "../rtc_base:checks",
606 "../rtc_base:rate_limiter",
ehmaldonadof6a861a2017-07-19 17:40:47607 "../rtc_base:rtc_base_approved",
608 "../rtc_base:rtc_base_tests_utils",
Bjorn Tereliusa194e582017-10-25 11:07:09609 "../rtc_base:rtc_numerics",
Tommi38c5d932018-03-27 21:11:09610 "../rtc_base:rtc_task_queue",
Danil Chapovalovd26a9162019-03-19 17:08:37611 "../rtc_base:task_queue_for_test",
Sebastian Janssoncabe3832018-01-12 09:54:18612 "../rtc_base/experiments:alr_experiment",
Danil Chapovalov1aa75812019-03-05 10:11:35613 "../rtc_base/task_utils:to_queued_task",
mbonadei9087d492017-04-25 07:35:35614 "../system_wrappers",
Mirko Bonadei17f48782018-09-28 06:51:10615 "../system_wrappers:field_trial",
616 "../system_wrappers:metrics",
mbonadei9087d492017-04-25 07:35:35617 "../test:direct_transport",
Danil Chapovalovce928172019-04-24 16:17:42618 "../test:encoder_settings",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27619 "../test:fake_video_codecs",
mbonadei9087d492017-04-25 07:35:35620 "../test:field_trial",
Patrik Höglund7696bef2018-03-15 14:05:39621 "../test:fileutils",
Danil Chapovalovce928172019-04-24 16:17:42622 "../test:null_transport",
Edward Lemure66572b2018-01-05 14:34:09623 "../test:perf_test",
mbonadei9087d492017-04-25 07:35:35624 "../test:rtp_test_utils",
625 "../test:test_common",
626 "../test:test_support",
627 "../test:video_test_common",
Peter Boström02083222016-06-14 10:52:54628 "//testing/gtest",
Steve Antonbd631a02019-03-28 17:51:27629 "//third_party/abseil-cpp/absl/algorithm:container",
Karl Wiberg918f50c2018-07-05 09:40:33630 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalovb9b146c2018-06-15 10:28:07631 "//third_party/abseil-cpp/absl/types:optional",
Peter Boström02083222016-06-14 10:52:54632 ]
Dan Minor9c686132018-01-15 15:20:00633 if (!build_with_mozilla) {
634 deps += [ "../media:rtc_media_base" ]
635 }
Peter Boström02083222016-06-14 10:52:54636 }
637}