blob: 3de58b6615d5218211b909bb2d7c1f937edfcf6f [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
Jonas Oreland6c2dae22022-09-29 08:28:2411rtc_library("video_stream_encoder_interface") {
12 sources = [
13 "video_stream_encoder_interface.h",
14 "video_stream_encoder_observer.h",
15 ]
16 deps = [
17 "../api:fec_controller_api",
Florent Castelliacabb362022-10-18 15:05:1618 "../api:rtc_error",
Jonas Oreland6c2dae22022-09-29 08:28:2419 "../api:rtp_parameters",
Florent Castelliacabb362022-10-18 15:05:1620 "../api:rtp_sender_interface",
Jonas Oreland6c2dae22022-09-29 08:28:2421 "../api:scoped_refptr",
22 "../api/adaptation:resource_adaptation_api",
23 "../api/units:data_rate",
24 "../api/video:video_adaptation",
25 "../api/video:video_bitrate_allocation",
26 "../api/video:video_bitrate_allocator",
27 "../api/video:video_codec_constants",
28 "../api/video:video_frame",
29 "../api/video:video_layers_allocation",
30 "../api/video_codecs:video_codecs_api",
31 "../video/config:encoder_config",
32 ]
33 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
34}
35
Mirko Bonadei86d053c2019-10-17 19:32:0436rtc_library("video") {
kjellander@webrtc.org788f0582014-08-28 13:51:0837 sources = [
Benjamin Wright00765292018-12-01 00:18:2638 "buffered_frame_decryptor.cc",
39 "buffered_frame_decryptor.h",
Tommi822a8742020-05-10 22:42:3040 "call_stats2.cc",
41 "call_stats2.h",
Elad Alon14d1c9d2019-04-08 12:16:1742 "encoder_rtcp_feedback.cc",
43 "encoder_rtcp_feedback.h",
Henrik Boströmce33b6a2019-05-28 15:42:3844 "quality_limitation_reason_tracker.cc",
45 "quality_limitation_reason_tracker.h",
Rasmus Brandt090fe082023-05-09 10:53:0146 "receive_statistics_proxy.cc",
47 "receive_statistics_proxy.h",
Peter Boström7623ce42015-12-09 11:13:3048 "report_block_stats.cc",
49 "report_block_stats.h",
Tommiad84d022020-05-10 17:03:4350 "rtp_streams_synchronizer2.cc",
51 "rtp_streams_synchronizer2.h",
Tommid3807da2020-05-22 15:36:3652 "rtp_video_stream_receiver2.cc",
53 "rtp_video_stream_receiver2.h",
asapersson35151f32016-05-03 06:44:0154 "send_delay_stats.cc",
55 "send_delay_stats.h",
kjellander@webrtc.org788f0582014-08-28 13:51:0856 "send_statistics_proxy.cc",
57 "send_statistics_proxy.h",
asapersson0e9d6d92016-05-23 13:07:5558 "stats_counter.cc",
59 "stats_counter.h",
Peter Boström7623ce42015-12-09 11:13:3060 "stream_synchronization.cc",
61 "stream_synchronization.h",
charujainbf6a45b2016-11-03 11:21:4262 "transport_adapter.cc",
63 "transport_adapter.h",
Tommi74fc5742020-04-27 08:43:0664 "video_quality_observer2.cc",
65 "video_quality_observer2.h",
Tommi74fc5742020-04-27 08:43:0666 "video_receive_stream2.cc",
67 "video_receive_stream2.h",
kjellander@webrtc.org788f0582014-08-28 13:51:0868 "video_send_stream.cc",
69 "video_send_stream.h",
Sebastian Jansson8e0b15b2018-04-18 17:19:2270 "video_send_stream_impl.cc",
71 "video_send_stream_impl.h",
Tommi74fc5742020-04-27 08:43:0672 "video_stream_decoder2.cc",
73 "video_stream_decoder2.h",
kjellander@webrtc.org788f0582014-08-28 13:51:0874 ]
75
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:2276 deps = [
Markus Handellb4e96d42021-11-05 11:00:5577 ":frame_cadence_adapter",
Erik Språng96965ae2018-10-23 13:42:3778 ":frame_dumping_decoder",
Evan Shrubsolea006ba12022-09-05 10:09:0879 ":task_queue_frame_decode_scheduler",
Rasmus Brandtfbf66dd2022-05-23 07:53:3280 ":unique_timestamp_counter",
Evan Shrubsole476f18d22022-08-15 15:21:1681 ":video_stream_buffer_controller",
Per Kjellanderb03b6c82021-01-03 09:26:0382 ":video_stream_encoder_impl",
Jonas Oreland6c2dae22022-09-29 08:28:2483 ":video_stream_encoder_interface",
Yves Gerey3e707812018-11-28 15:47:4984 "../api:array_view",
Ying Wang3b790f32018-01-19 16:58:5785 "../api:fec_controller_api",
Jonas Orelande62c2f22022-03-29 09:04:4886 "../api:field_trials_view",
Marina Ciocea412a31b2020-02-28 15:02:0687 "../api:frame_transformer_interface",
Niels Möller6dcd4dc2019-08-26 08:45:2888 "../api:rtp_parameters",
Mirko Bonadeid9708072019-01-25 19:26:4889 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:2490 "../api:sequence_checker",
aleloia8eb7562016-11-28 15:02:1391 "../api:transport_api",
Mirko Bonadeieaaaf412019-09-13 12:42:1592 "../api/crypto:frame_decryptor_interface",
93 "../api/crypto:options",
Sebastian Jansson74682c12019-03-01 10:50:2094 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:4595 "../api/task_queue:pending_task_safety_flag",
Jonas Oreland1262eb52022-09-27 14:53:0496 "../api/transport:field_trial_based_config",
97 "../api/units:data_rate",
Evan Shrubsoled425f502022-04-28 08:18:1298 "../api/units:frequency",
Tommi28e96532021-06-03 09:52:1599 "../api/units:time_delta",
Tommid7e08c82020-05-10 09:24:43100 "../api/units:timestamp",
Yves Gerey3e707812018-11-28 15:47:49101 "../api/video:encoded_image",
Markus Handell269ac812019-12-03 13:31:45102 "../api/video:recordable_encoded_frame",
Yves Gerey3e707812018-11-28 15:47:49103 "../api/video:video_bitrate_allocation",
Jiawei Ou4206a0a2018-07-20 22:49:43104 "../api/video:video_bitrate_allocator",
Evan Shrubsolecc62b162019-09-09 09:26:45105 "../api/video:video_codec_constants",
Niels Möllerc6ce9c52018-05-11 09:15:30106 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38107 "../api/video:video_rtp_headers",
Niels Möller0327c2d2018-05-21 12:09:31108 "../api/video:video_stream_encoder",
ilnikd60d06a2017-04-05 10:02:20109 "../api/video_codecs:video_codecs_api",
Mirko Bonadei245660a2017-10-10 12:38:11110 "../call:bitrate_allocator",
mbonadei9087d492017-04-25 07:35:35111 "../call:call_interfaces",
nissed76b7b22017-06-01 11:02:35112 "../call:rtp_interfaces",
Evan Shrubsole29d72922022-08-16 11:01:46113 "../call:rtp_receiver",
Stefan Holmera2f15332018-07-11 15:11:31114 "../call:rtp_sender",
aleloi440b6d92017-08-22 12:43:23115 "../call:video_stream_api",
Danil Chapovalov1aa75812019-03-05 10:11:35116 "../common_video",
Harald Alvestrand794d5992022-12-16 09:54:57117 "../media:media_constants",
Danil Chapovalov1aa75812019-03-05 10:11:35118 "../modules:module_api",
Yves Gerey3e707812018-11-28 15:47:49119 "../modules:module_api_public",
Danil Chapovalov1aa75812019-03-05 10:11:35120 "../modules/pacing",
121 "../modules/remote_bitrate_estimator",
122 "../modules/rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 06:51:33123 "../modules/rtp_rtcp:rtp_rtcp_format",
philipel1a4746a2018-07-09 13:52:29124 "../modules/rtp_rtcp:rtp_video_header",
Danil Chapovalov1aa75812019-03-05 10:11:35125 "../modules/video_coding",
Markus Handell06a2bf02021-07-22 13:09:39126 "../modules/video_coding:nack_requester",
philipel10dc1a62021-09-15 08:45:43127 "../modules/video_coding:packet_buffer",
Patrik Höglund99175c62018-01-08 10:05:10128 "../modules/video_coding:video_codec_interface",
Danil Chapovalov1aa75812019-03-05 10:11:35129 "../modules/video_coding:video_coding_utility",
Jonas Oreland1262eb52022-09-27 14:53:04130 "../modules/video_coding:webrtc_vp9_helpers",
Rasmus Brandtc4d253c2022-05-25 10:03:35131 "../modules/video_coding/timing:timing_module",
Patrik Höglunda8005cf2017-12-13 15:05:42132 "../rtc_base:checks",
Florent Castellia30aef32022-04-19 15:47:13133 "../rtc_base:event_tracer",
Florent Castelli3629a5f2022-04-14 11:50:13134 "../rtc_base:histogram_percentile_counter",
Florent Castelli0af55ba2022-04-04 13:06:30135 "../rtc_base:logging",
Florent Castelli4467ad72022-04-04 13:18:46136 "../rtc_base:macromagic",
Florent Castelli31764092022-04-14 11:41:58137 "../rtc_base:mod_ops",
Florent Castelli83a36d42022-04-14 11:44:39138 "../rtc_base:moving_max_counter",
Florent Castelli45a05992022-04-14 10:18:28139 "../rtc_base:platform_thread",
Florent Castelli6bb1fd32022-04-19 13:58:39140 "../rtc_base:rate_statistics",
Florent Castelli58cc4682022-04-19 13:50:28141 "../rtc_base:rate_tracker",
Florent Castelli33d31fb2022-04-04 14:57:52142 "../rtc_base:rtc_event",
Danil Chapovalov1aa75812019-03-05 10:11:35143 "../rtc_base:rtc_numerics",
144 "../rtc_base:rtc_task_queue",
Florent Castellie10a9f62022-04-04 15:04:37145 "../rtc_base:safe_conversions",
Florent Castelli17296422022-04-14 11:48:10146 "../rtc_base:sample_counter",
Tommifef05002018-02-27 12:51:08147 "../rtc_base:stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01148 "../rtc_base:threading",
Florent Castellidd837e22022-04-04 15:16:15149 "../rtc_base:timeutils",
Sebastian Janssoncabe3832018-01-12 09:54:18150 "../rtc_base/experiments:alr_experiment",
Jonas Olsson0182a032019-07-09 10:31:20151 "../rtc_base/experiments:field_trial_parser",
Rasmus Brandt3dde4502019-03-21 10:46:17152 "../rtc_base/experiments:keyframe_interval_settings_experiment",
Elad Alon80f53b72019-10-11 14:19:43153 "../rtc_base/experiments:min_video_bitrate_experiment",
Jonas Oreland1262eb52022-09-27 14:53:04154 "../rtc_base/experiments:normalize_simulcast_size_experiment",
Erik Språngcd76eab2019-01-21 17:06:46155 "../rtc_base/experiments:rate_control_settings",
Markus Handella3765182020-07-08 11:13:32156 "../rtc_base/synchronization:mutex",
Mirko Bonadei20e4c802020-11-23 10:07:42157 "../rtc_base/system:no_unique_address",
Sebastian Janssonecb68972019-01-18 09:30:54158 "../rtc_base/task_utils:repeating_task",
Danil Chapovalov1aa75812019-03-05 10:11:35159 "../system_wrappers",
Mirko Bonadei17f48782018-09-28 06:51:10160 "../system_wrappers:field_trial",
161 "../system_wrappers:metrics",
Jonas Oreland6c2dae22022-09-29 08:28:24162 "../video/config:encoder_config",
Evan Shrubsole29d72922022-08-16 11:01:46163 "adaptation:video_adaptation",
Rasmus Brandt20879e12022-09-30 08:02:56164 "render:incoming_video_stream",
Mirko Bonadei2dcf3482020-06-05 12:30:41165 ]
166 absl_deps = [
Steve Antonbd631a02019-03-28 17:51:27167 "//third_party/abseil-cpp/absl/algorithm:container",
Karl Wiberg918f50c2018-07-05 09:40:33168 "//third_party/abseil-cpp/absl/memory",
Mirko Bonadei06d35592020-04-01 11:43:08169 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalovb9b146c2018-06-15 10:28:07170 "//third_party/abseil-cpp/absl/types:optional",
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22171 ]
Dan Minor9c686132018-01-15 15:20:00172
173 if (!build_with_mozilla) {
174 deps += [ "../media:rtc_media_base" ]
175 }
kjellander@webrtc.org1227ab82014-06-23 19:21:07176}
Peter Boström02083222016-06-14 10:52:54177
Mirko Bonadei86d053c2019-10-17 19:32:04178rtc_library("frame_dumping_decoder") {
Erik Språng96965ae2018-10-23 13:42:37179 visibility = [ "*" ]
180
181 sources = [
182 "frame_dumping_decoder.cc",
183 "frame_dumping_decoder.h",
184 ]
185
186 deps = [
187 "../api/video:encoded_frame",
Yves Gerey3e707812018-11-28 15:47:49188 "../api/video:encoded_image",
Erik Språng96965ae2018-10-23 13:42:37189 "../api/video_codecs:video_codecs_api",
Artem Titov94b57c02019-03-21 12:35:10190 "../modules/video_coding",
Erik Språng96965ae2018-10-23 13:42:37191 "../modules/video_coding:video_codec_interface",
Erik Språng96965ae2018-10-23 13:42:37192 "../modules/video_coding:video_coding_utility",
Markus Handell1c2f6372019-08-20 18:21:37193 "../rtc_base/system:file_wrapper",
Erik Språng96965ae2018-10-23 13:42:37194 ]
195}
196
Markus Handell411639e2023-08-22 10:58:47197rtc_library("frame_dumping_encoder") {
198 visibility = [ "*" ]
199
200 sources = [
201 "frame_dumping_encoder.cc",
202 "frame_dumping_encoder.h",
203 ]
204
205 deps = [
206 "../api:field_trials_view",
207 "../api:sequence_checker",
208 "../api/video:encoded_frame",
209 "../api/video:encoded_image",
210 "../api/video:video_frame",
211 "../api/video_codecs:video_codecs_api",
212 "../modules/video_coding",
213 "../modules/video_coding:video_codec_interface",
214 "../modules/video_coding:video_coding_utility",
215 "../rtc_base:stringutils",
216 "../rtc_base:timeutils",
217 "../rtc_base/system:file_wrapper",
218 ]
219
220 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
221}
222
Markus Handellb4e96d42021-11-05 11:00:55223rtc_library("frame_cadence_adapter") {
224 visibility = [ "*" ]
225 sources = [
226 "frame_cadence_adapter.cc",
227 "frame_cadence_adapter.h",
228 ]
229
230 deps = [
Jonas Orelande62c2f22022-03-29 09:04:48231 "../api:field_trials_view",
Markus Handellb4e96d42021-11-05 11:00:55232 "../api:sequence_checker",
Markus Handell28c71802021-11-08 09:11:55233 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:45234 "../api/task_queue:pending_task_safety_flag",
Markus Handell29dd8d82021-12-15 11:19:15235 "../api/units:time_delta",
Markus Handell9d04a782022-05-12 16:38:57236 "../api/units:timestamp",
Markus Handellb4e96d42021-11-05 11:00:55237 "../api/video:video_frame",
Markus Handell8d87c462021-12-16 10:37:16238 "../rtc_base:checks",
Markus Handellb4e96d42021-11-05 11:00:55239 "../rtc_base:logging",
240 "../rtc_base:macromagic",
Florent Castellif4db3512022-04-14 11:38:05241 "../rtc_base:race_checker",
Florent Castelli6bb1fd32022-04-19 13:58:39242 "../rtc_base:rate_statistics",
Florent Castellidd837e22022-04-04 15:16:15243 "../rtc_base:timeutils",
Markus Handellb4e96d42021-11-05 11:00:55244 "../rtc_base/synchronization:mutex",
Markus Handellee225432021-11-29 11:35:12245 "../rtc_base/system:no_unique_address",
Markus Handellf7f0b212022-05-24 16:39:39246 "../rtc_base/task_utils:repeating_task",
Markus Handell9a478b52021-11-18 15:07:01247 "../system_wrappers",
Markus Handellb4e96d42021-11-05 11:00:55248 "../system_wrappers:field_trial",
249 "../system_wrappers:metrics",
250 ]
Markus Handell2e0f4f02021-12-21 18:14:58251 absl_deps = [
252 "//third_party/abseil-cpp/absl/algorithm:container",
253 "//third_party/abseil-cpp/absl/base:core_headers",
254 ]
Markus Handellb4e96d42021-11-05 11:00:55255}
256
Evan Shrubsole476f18d22022-08-15 15:21:16257rtc_library("video_stream_buffer_controller") {
Evan Shrubsole9d290262021-12-15 13:33:40258 sources = [
Evan Shrubsole476f18d22022-08-15 15:21:16259 "video_stream_buffer_controller.cc",
260 "video_stream_buffer_controller.h",
Evan Shrubsole9d290262021-12-15 13:33:40261 ]
262 deps = [
Evan Shrubsole6cd6d8e2022-02-11 14:30:26263 ":decode_synchronizer",
Evan Shrubsolea006ba12022-09-05 10:09:08264 ":frame_decode_scheduler",
Evan Shrubsole9a999052021-12-12 14:27:00265 ":frame_decode_timing",
Evan Shrubsole6cd6d8e2022-02-11 14:30:26266 ":task_queue_frame_decode_scheduler",
Evan Shrubsole9a999052021-12-12 14:27:00267 ":video_receive_stream_timeout_tracker",
Jonas Orelande62c2f22022-03-29 09:04:48268 "../api:field_trials_view",
Evan Shrubsole9a999052021-12-12 14:27:00269 "../api:sequence_checker",
Evan Shrubsole6cd6d8e2022-02-11 14:30:26270 "../api/metronome",
Evan Shrubsole9d290262021-12-15 13:33:40271 "../api/task_queue",
Evan Shrubsole13e42a82022-03-07 12:21:51272 "../api/units:data_size",
Rasmus Brandt65a6eca2023-03-03 08:22:18273 "../api/units:time_delta",
Rasmus Brandt621cb292023-05-24 11:29:14274 "../api/units:timestamp",
Evan Shrubsole9d290262021-12-15 13:33:40275 "../api/video:encoded_frame",
philipel8615bf02022-05-05 13:12:13276 "../api/video:frame_buffer",
Evan Shrubsoled4ff12f2022-03-01 09:16:11277 "../api/video:video_rtp_headers",
Evan Shrubsole9d290262021-12-15 13:33:40278 "../modules/video_coding",
Evan Shrubsole9a999052021-12-12 14:27:00279 "../modules/video_coding:frame_helpers",
Rasmus Brandt65a6eca2023-03-03 08:22:18280 "../modules/video_coding/timing:inter_frame_delay_variation_calculator",
Rasmus Brandt10944e62022-05-25 08:12:42281 "../modules/video_coding/timing:jitter_estimator",
Rasmus Brandtc4d253c2022-05-25 10:03:35282 "../modules/video_coding/timing:timing_module",
Evan Shrubsole6cd6d8e2022-02-11 14:30:26283 "../rtc_base:checks",
Evan Shrubsole9a999052021-12-12 14:27:00284 "../rtc_base:logging",
285 "../rtc_base:macromagic",
Evan Shrubsole4c269322022-08-02 08:57:04286 "../rtc_base/experiments:rtt_mult_experiment",
Evan Shrubsole9d290262021-12-15 13:33:40287 "../system_wrappers",
Evan Shrubsole9a999052021-12-12 14:27:00288 "../system_wrappers:field_trial",
289 ]
290 absl_deps = [
Oleh Prypin752436f2022-06-23 22:51:28291 "//third_party/abseil-cpp/absl/base:core_headers",
Evan Shrubsole9a999052021-12-12 14:27:00292 "//third_party/abseil-cpp/absl/functional:bind_front",
293 "//third_party/abseil-cpp/absl/types:optional",
294 ]
295}
296
Evan Shrubsole6cd6d8e2022-02-11 14:30:26297rtc_source_set("frame_decode_scheduler") {
298 sources = [ "frame_decode_scheduler.h" ]
299 deps = [
300 ":frame_decode_timing",
301 "../api/units:timestamp",
302 ]
Evan Shrubsolec5a91442022-09-05 14:09:29303 absl_deps = [
304 "//third_party/abseil-cpp/absl/functional:any_invocable",
305 "//third_party/abseil-cpp/absl/types:optional",
306 ]
Evan Shrubsole6cd6d8e2022-02-11 14:30:26307}
308
309rtc_library("task_queue_frame_decode_scheduler") {
Evan Shrubsole9a999052021-12-12 14:27:00310 sources = [
Evan Shrubsole6cd6d8e2022-02-11 14:30:26311 "task_queue_frame_decode_scheduler.cc",
312 "task_queue_frame_decode_scheduler.h",
Evan Shrubsole9a999052021-12-12 14:27:00313 ]
314 deps = [
Evan Shrubsole6cd6d8e2022-02-11 14:30:26315 ":frame_decode_scheduler",
Evan Shrubsole9a999052021-12-12 14:27:00316 ":frame_decode_timing",
317 "../api:sequence_checker",
318 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:45319 "../api/task_queue:pending_task_safety_flag",
Evan Shrubsole9a999052021-12-12 14:27:00320 "../api/units:timestamp",
Evan Shrubsole6cd6d8e2022-02-11 14:30:26321 "../rtc_base:checks",
Evan Shrubsole9a999052021-12-12 14:27:00322 "../system_wrappers",
Evan Shrubsole9d290262021-12-15 13:33:40323 ]
324 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
325}
326
Evan Shrubsole9a999052021-12-12 14:27:00327rtc_library("frame_decode_timing") {
328 sources = [
329 "frame_decode_timing.cc",
330 "frame_decode_timing.h",
331 ]
332 deps = [
333 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:45334 "../api/task_queue:pending_task_safety_flag",
Evan Shrubsolef7a19372022-02-14 13:05:10335 "../api/units:time_delta",
Rasmus Brandtc4d253c2022-05-25 10:03:35336 "../modules/video_coding/timing:timing_module",
Evan Shrubsole9a999052021-12-12 14:27:00337 "../rtc_base:logging",
Evan Shrubsole9a999052021-12-12 14:27:00338 "../system_wrappers",
339 ]
340 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
341}
342
343rtc_library("video_receive_stream_timeout_tracker") {
344 sources = [
345 "video_receive_stream_timeout_tracker.cc",
346 "video_receive_stream_timeout_tracker.h",
347 ]
348 deps = [
349 "../api/task_queue",
350 "../api/units:time_delta",
Evan Shrubsolea1d3ada2022-06-16 11:52:09351 "../api/units:timestamp",
Evan Shrubsole4d3ba772022-06-22 14:32:36352 "../rtc_base:logging",
Evan Shrubsole9a999052021-12-12 14:27:00353 "../rtc_base/task_utils:repeating_task",
354 "../system_wrappers",
355 ]
356}
357
Evan Shrubsole6cd6d8e2022-02-11 14:30:26358rtc_library("decode_synchronizer") {
359 sources = [
360 "decode_synchronizer.cc",
361 "decode_synchronizer.h",
362 ]
363 deps = [
364 ":frame_decode_scheduler",
365 ":frame_decode_timing",
366 "../api:sequence_checker",
367 "../api/metronome",
368 "../api/task_queue",
369 "../api/units:time_delta",
370 "../api/units:timestamp",
371 "../rtc_base:checks",
Markus Handell527701a2023-04-20 07:37:00372 "../rtc_base:event_tracer",
Evan Shrubsole6cd6d8e2022-02-11 14:30:26373 "../rtc_base:logging",
374 "../rtc_base:macromagic",
375 ]
376 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
377}
378
Mirko Bonadei86d053c2019-10-17 19:32:04379rtc_library("video_stream_encoder_impl") {
Niels Möller213618e2018-07-24 07:29:58380 visibility = [ "*" ]
381
382 # visibility = [ "../api/video:video_stream_encoder_create" ]
Niels Möller213618e2018-07-24 07:29:58383 sources = [
Åsa Perssonc5a74ff2020-09-20 15:50:00384 "alignment_adjuster.cc",
385 "alignment_adjuster.h",
Erik Språng7ca375c2019-02-06 15:20:17386 "encoder_bitrate_adjuster.cc",
387 "encoder_bitrate_adjuster.h",
388 "encoder_overshoot_detector.cc",
389 "encoder_overshoot_detector.h",
Ilya Nikolaevskiy2ebf5232019-05-13 14:13:36390 "frame_encode_metadata_writer.cc",
391 "frame_encode_metadata_writer.h",
Henrik Boströmce0ea492020-01-13 10:27:18392 "video_source_sink_controller.cc",
393 "video_source_sink_controller.h",
Niels Möller213618e2018-07-24 07:29:58394 "video_stream_encoder.cc",
395 "video_stream_encoder.h",
396 ]
397
Niels Möller213618e2018-07-24 07:29:58398 deps = [
Markus Handellb4e96d42021-11-05 11:00:55399 ":frame_cadence_adapter",
Markus Handell411639e2023-08-22 10:58:47400 ":frame_dumping_encoder",
Jonas Oreland6c2dae22022-09-29 08:28:24401 ":video_stream_encoder_interface",
Jonas Orelande62c2f22022-03-29 09:04:48402 "../api:field_trials_view",
Henrik Boströmb08882b2020-01-07 09:11:17403 "../api:rtp_parameters",
Florent Castelliacabb362022-10-18 15:05:16404 "../api:rtp_sender_interface",
Artem Titovd15a5752021-02-10 13:31:24405 "../api:sequence_checker",
Henrik Boströme2e8c172020-06-03 07:24:06406 "../api/adaptation:resource_adaptation_api",
Artem Titovc374d112022-06-16 19:27:45407 "../api/task_queue:pending_task_safety_flag",
Henrik Boström07b17df2020-01-15 10:42:12408 "../api/task_queue:task_queue",
Erik Språng7ca375c2019-02-06 15:20:17409 "../api/units:data_rate",
Niels Möller4dc66c52018-10-05 12:17:58410 "../api/video:encoded_image",
philipel6daa3042022-04-11 08:48:28411 "../api/video:render_resolution",
Evan Shrubsolece0a11d2020-04-16 09:36:55412 "../api/video:video_adaptation",
Erik Språng7ca375c2019-02-06 15:20:17413 "../api/video:video_bitrate_allocation",
Niels Möller213618e2018-07-24 07:29:58414 "../api/video:video_bitrate_allocator",
Jiawei Ouc2ebe212018-11-08 18:02:56415 "../api/video:video_bitrate_allocator_factory",
Evan Shrubsolecc62b162019-09-09 09:26:45416 "../api/video:video_codec_constants",
Niels Möller213618e2018-07-24 07:29:58417 "../api/video:video_frame",
Per Kjellandera9434842020-10-15 15:53:22418 "../api/video:video_layers_allocation",
Chen Xing5d24b162019-06-10 10:59:38419 "../api/video:video_rtp_headers",
Niels Möller213618e2018-07-24 07:29:58420 "../api/video:video_stream_encoder",
421 "../api/video_codecs:video_codecs_api",
Henrik Boström382cc6d2020-01-07 09:15:04422 "../call/adaptation:resource_adaptation",
Artem Titov94b57c02019-03-21 12:35:10423 "../common_video",
Harald Alvestrand794d5992022-12-16 09:54:57424 "../media:media_channel",
Florent Castelliacabb362022-10-18 15:05:16425 "../media:rtc_media_base",
Erik Språng6a7baa72019-02-26 17:31:00426 "../modules:module_api_public",
Niels Möller213618e2018-07-24 07:29:58427 "../modules/video_coding",
Erik Språng6a7baa72019-02-26 17:31:00428 "../modules/video_coding:video_codec_interface",
Niels Möller213618e2018-07-24 07:29:58429 "../modules/video_coding:video_coding_utility",
Sergey Silkin8b9b5f92018-12-10 08:28:53430 "../modules/video_coding:webrtc_vp9_helpers",
Michael Horowitz12910ca2023-03-16 16:25:58431 "../modules/video_coding/svc:scalability_mode_util",
Zhaoliang Ma528e4892021-11-12 05:05:07432 "../modules/video_coding/svc:scalability_structures",
Danil Chapovalov5219c6f2021-07-27 10:48:50433 "../modules/video_coding/svc:svc_rate_allocator",
Niels Möller213618e2018-07-24 07:29:58434 "../rtc_base:checks",
435 "../rtc_base:criticalsection",
Florent Castellia30aef32022-04-19 15:47:13436 "../rtc_base:event_tracer",
Niels Möller213618e2018-07-24 07:29:58437 "../rtc_base:logging",
Florent Castelli4467ad72022-04-04 13:18:46438 "../rtc_base:macromagic",
Florent Castellif4db3512022-04-14 11:38:05439 "../rtc_base:race_checker",
Florent Castelli6bb1fd32022-04-19 13:58:39440 "../rtc_base:rate_statistics",
Florent Castellif86f6f92022-04-05 00:54:12441 "../rtc_base:refcount",
Niels Möller213618e2018-07-24 07:29:58442 "../rtc_base:rtc_event",
443 "../rtc_base:rtc_numerics",
444 "../rtc_base:rtc_task_queue",
Florent Castellie10a9f62022-04-04 15:04:37445 "../rtc_base:safe_conversions",
Florent Castelli57aa81b2022-04-04 15:14:02446 "../rtc_base:stringutils",
Niels Möller213618e2018-07-24 07:29:58447 "../rtc_base:timeutils",
Åsa Perssonf3d828e2019-05-06 10:22:49448 "../rtc_base/experiments:balanced_degradation_settings",
Åsa Persson258e9892021-02-25 09:39:51449 "../rtc_base/experiments:encoder_info_settings",
Niels Möllereea92882019-04-25 06:44:04450 "../rtc_base/experiments:field_trial_parser",
Åsa Perssone644a032019-11-08 14:56:00451 "../rtc_base/experiments:quality_rampup_experiment",
Åsa Persson139f4dc2019-08-02 07:29:58452 "../rtc_base/experiments:quality_scaler_settings",
Niels Möller213618e2018-07-24 07:29:58453 "../rtc_base/experiments:quality_scaling_experiment",
Erik Språng7ca375c2019-02-06 15:20:17454 "../rtc_base/experiments:rate_control_settings",
Markus Handella3765182020-07-08 11:13:32455 "../rtc_base/synchronization:mutex",
Mirko Bonadei20e4c802020-11-23 10:07:42456 "../rtc_base/system:no_unique_address",
Sebastian Janssonecb68972019-01-18 09:30:54457 "../rtc_base/task_utils:repeating_task",
Niels Möllerfe407b72019-09-10 08:48:48458 "../system_wrappers",
Mirko Bonadei17f48782018-09-28 06:51:10459 "../system_wrappers:field_trial",
Markus Handell8935a7e2021-10-19 11:12:36460 "../system_wrappers:metrics",
Henrik Boströmefbec9a2020-03-06 09:41:25461 "adaptation:video_adaptation",
Jonas Oreland6c2dae22022-09-29 08:28:24462 "config:encoder_config",
Jonas Oreland72523482022-09-28 14:28:42463 "config:streams_config",
Mirko Bonadei2dcf3482020-06-05 12:30:41464 ]
465 absl_deps = [
Steve Antonbd631a02019-03-28 17:51:27466 "//third_party/abseil-cpp/absl/algorithm:container",
Danil Chapovalov64f1f3f2020-01-16 13:41:10467 "//third_party/abseil-cpp/absl/base:core_headers",
Danil Chapovalov95eeaa72022-07-06 08:14:29468 "//third_party/abseil-cpp/absl/cleanup",
Florent Castelliacabb362022-10-18 15:05:16469 "//third_party/abseil-cpp/absl/container:inlined_vector",
Niels Möller213618e2018-07-24 07:29:58470 "//third_party/abseil-cpp/absl/types:optional",
471 ]
472}
473
Rasmus Brandtfbf66dd2022-05-23 07:53:32474rtc_library("unique_timestamp_counter") {
475 sources = [
476 "unique_timestamp_counter.cc",
477 "unique_timestamp_counter.h",
478 ]
479}
480
Peter Boström02083222016-06-14 10:52:54481if (rtc_include_tests) {
Mirko Bonadei86d053c2019-10-17 19:32:04482 rtc_library("video_mocks") {
Sebastian Jansson652dc912018-04-19 15:09:15483 testonly = true
Danil Chapovalov64f1f3f2020-01-16 13:41:10484 sources = [ "test/mock_video_stream_encoder.h" ]
Sebastian Jansson652dc912018-04-19 15:09:15485 deps = [
Jonas Oreland6c2dae22022-09-29 08:28:24486 ":video_stream_encoder_interface",
Niels Möller213618e2018-07-24 07:29:58487 "../api/video:video_stream_encoder",
Sebastian Jansson652dc912018-04-19 15:09:15488 "../test:test_support",
489 ]
490 }
Andrey Logvine7c79fd2021-02-01 09:56:37491 if (!build_with_chromium) {
492 rtc_library("video_quality_test") {
Kári Tristan Helgasonede7cb22019-03-06 09:34:09493 testonly = true
Andrey Logvine7c79fd2021-02-01 09:56:37494
495 # Only targets in this file and api/ can depend on this.
496 visibility = [
497 ":*",
498 "../api:create_video_quality_test_fixture_api",
499 ]
500 sources = [
501 "video_analyzer.cc",
502 "video_analyzer.h",
503 "video_quality_test.cc",
504 "video_quality_test.h",
505 ]
506 deps = [
507 ":frame_dumping_decoder",
508 "../api:create_frame_generator",
509 "../api:fec_controller_api",
510 "../api:frame_generator_api",
511 "../api:libjingle_peerconnection_api",
512 "../api:rtc_event_log_output_file",
513 "../api:test_dependency_factory",
514 "../api:video_quality_test_fixture_api",
515 "../api/numerics",
516 "../api/rtc_event_log:rtc_event_log_factory",
517 "../api/task_queue",
518 "../api/task_queue:default_task_queue_factory",
Artem Titov182044182022-09-24 23:47:04519 "../api/test/metrics:global_metrics_logger_and_exporter",
520 "../api/test/metrics:metric",
Andrey Logvine7c79fd2021-02-01 09:56:37521 "../api/video:builtin_video_bitrate_allocator_factory",
522 "../api/video:video_bitrate_allocator_factory",
523 "../api/video:video_frame",
524 "../api/video:video_rtp_headers",
525 "../api/video_codecs:video_codecs_api",
526 "../call:fake_network",
527 "../call:simulated_network",
528 "../common_video",
Harald Alvestrand794d5992022-12-16 09:54:57529 "../media:media_constants",
Andrey Logvine7c79fd2021-02-01 09:56:37530 "../media:rtc_audio_video",
Andrey Logvine7c79fd2021-02-01 09:56:37531 "../media:rtc_internal_video_codecs",
532 "../media:rtc_media_base",
Henrik Boströmf6eae952023-03-15 10:29:30533 "../media:rtc_simulcast_encoder_adapter",
Andrey Logvine7c79fd2021-02-01 09:56:37534 "../modules/audio_device:audio_device_api",
535 "../modules/audio_device:audio_device_module_from_input_and_output",
536 "../modules/audio_device:windows_core_audio_utility",
537 "../modules/audio_mixer:audio_mixer_impl",
538 "../modules/rtp_rtcp",
539 "../modules/rtp_rtcp:rtp_rtcp_format",
540 "../modules/video_coding",
541 "../modules/video_coding:video_coding_utility",
542 "../modules/video_coding:webrtc_h264",
543 "../modules/video_coding:webrtc_multiplex",
544 "../modules/video_coding:webrtc_vp8",
545 "../modules/video_coding:webrtc_vp9",
Florent Castelli4467ad72022-04-04 13:18:46546 "../rtc_base:macromagic",
Florent Castelli45a05992022-04-14 10:18:28547 "../rtc_base:platform_thread",
Andrey Logvine7c79fd2021-02-01 09:56:37548 "../rtc_base:rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:52549 "../rtc_base:rtc_event",
Andrey Logvine7c79fd2021-02-01 09:56:37550 "../rtc_base:rtc_numerics",
Florent Castelli57aa81b2022-04-04 15:14:02551 "../rtc_base:stringutils",
Andrey Logvine7c79fd2021-02-01 09:56:37552 "../rtc_base:task_queue_for_test",
Florent Castellidd837e22022-04-04 15:16:15553 "../rtc_base:timeutils",
Andrey Logvine7c79fd2021-02-01 09:56:37554 "../rtc_base/synchronization:mutex",
555 "../rtc_base/task_utils:repeating_task",
556 "../system_wrappers",
557 "../test:fake_video_codecs",
558 "../test:fileutils",
Andrey Logvine7c79fd2021-02-01 09:56:37559 "../test:platform_video_capturer",
560 "../test:rtp_test_utils",
561 "../test:test_common",
562 "../test:test_renderer",
563 "../test:test_support",
564 "../test:test_support_test_artifacts",
565 "../test:video_test_common",
Artem Titov8a9f3a82023-04-25 07:56:49566 "../test:video_test_constants",
Andrey Logvine7c79fd2021-02-01 09:56:37567 "../test:video_test_support",
Jonas Oreland1262eb52022-09-27 14:53:04568 "config:streams_config",
Andrey Logvine7c79fd2021-02-01 09:56:37569 ]
570 absl_deps = [
571 "//third_party/abseil-cpp/absl/algorithm:container",
572 "//third_party/abseil-cpp/absl/flags:flag",
573 "//third_party/abseil-cpp/absl/flags:parse",
Artem Titov182044182022-09-24 23:47:04574 "//third_party/abseil-cpp/absl/strings",
Andrey Logvine7c79fd2021-02-01 09:56:37575 ]
576
577 if (is_mac || is_ios) {
578 deps += [ "../test:video_test_mac" ]
579 }
Florent Castelli15a3c3f2022-04-27 08:33:27580 if (is_win) {
581 deps += [ "../rtc_base/win:scoped_com_initializer" ]
582 }
Kári Tristan Helgasonede7cb22019-03-06 09:34:09583 }
Andrey Logvine7c79fd2021-02-01 09:56:37584
585 rtc_library("video_full_stack_tests") {
Kári Tristan Helgasonede7cb22019-03-06 09:34:09586 testonly = true
Andrey Logvine7c79fd2021-02-01 09:56:37587
588 sources = [ "full_stack_tests.cc" ]
589 deps = [
590 ":video_quality_test",
591 "../api:simulated_network_api",
592 "../api:test_dependency_factory",
593 "../api:video_quality_test_fixture_api",
594 "../api/video_codecs:video_codecs_api",
Andrey Logvine7c79fd2021-02-01 09:56:37595 "../modules/pacing",
596 "../modules/video_coding:webrtc_vp9",
597 "../rtc_base/experiments:alr_experiment",
598 "../system_wrappers:field_trial",
599 "../test:field_trial",
600 "../test:fileutils",
601 "../test:test_common",
602 "../test:test_support",
Jonas Oreland6c2dae22022-09-29 08:28:24603 "../video/config:encoder_config",
Andrey Logvine7c79fd2021-02-01 09:56:37604 "//testing/gtest",
605 ]
606 absl_deps = [
607 "//third_party/abseil-cpp/absl/flags:flag",
608 "//third_party/abseil-cpp/absl/flags:parse",
609 "//third_party/abseil-cpp/absl/types:optional",
610 ]
Kári Tristan Helgasonede7cb22019-03-06 09:34:09611 }
Kári Tristan Helgasonede7cb22019-03-06 09:34:09612
Andrey Logvine7c79fd2021-02-01 09:56:37613 rtc_library("video_pc_full_stack_tests") {
614 testonly = true
kjellandera3cac052016-10-24 08:52:39615
Andrey Logvine7c79fd2021-02-01 09:56:37616 sources = [ "pc_full_stack_tests.cc" ]
617 deps = [
618 "../api:create_network_emulation_manager",
619 "../api:create_peer_connection_quality_test_frame_generator",
620 "../api:create_peerconnection_quality_test_fixture",
621 "../api:frame_generator_api",
622 "../api:media_stream_interface",
623 "../api:network_emulation_manager_api",
624 "../api:peer_connection_quality_test_fixture_api",
625 "../api:simulated_network_api",
626 "../api:time_controller",
Artem Titovc45f4e42022-09-24 14:56:07627 "../api/test/metrics:global_metrics_logger_and_exporter",
Jeremy Lecontea3e51df2022-11-10 14:42:53628 "../api/test/pclf:media_configuration",
629 "../api/test/pclf:media_quality_test_params",
630 "../api/test/pclf:peer_configurer",
Johannes Kronc3fcee72021-04-19 07:09:26631 "../api/video_codecs:video_codecs_api",
Andrey Logvine7c79fd2021-02-01 09:56:37632 "../call:simulated_network",
Andrey Logvine7c79fd2021-02-01 09:56:37633 "../modules/video_coding:webrtc_vp9",
634 "../system_wrappers:field_trial",
635 "../test:field_trial",
636 "../test:fileutils",
637 "../test:test_support",
638 "../test/pc/e2e:network_quality_metrics_reporter",
639 ]
640 }
kjellandera3cac052016-10-24 08:52:39641
Andrey Logvine7c79fd2021-02-01 09:56:37642 rtc_library("video_loopback_lib") {
643 testonly = true
644 sources = [
645 "video_loopback.cc",
646 "video_loopback.h",
647 ]
648 deps = [
649 ":video_quality_test",
650 "../api:libjingle_peerconnection_api",
651 "../api:simulated_network_api",
652 "../api:video_quality_test_fixture_api",
653 "../api/transport:bitrate_settings",
654 "../api/video_codecs:video_codecs_api",
655 "../rtc_base:checks",
656 "../rtc_base:logging",
657 "../system_wrappers:field_trial",
658 "../test:field_trial",
659 "../test:run_test",
660 "../test:run_test_interface",
661 "../test:test_common",
662 "../test:test_renderer",
663 "../test:test_support",
664 "//testing/gtest",
665 ]
666 absl_deps = [
667 "//third_party/abseil-cpp/absl/flags:flag",
668 "//third_party/abseil-cpp/absl/flags:parse",
669 "//third_party/abseil-cpp/absl/types:optional",
670 ]
671 }
672
673 if (is_mac) {
674 mac_app_bundle("video_loopback") {
675 testonly = true
676 sources = [ "video_loopback_main.mm" ]
677 info_plist = "../test/mac/Info.plist"
678 deps = [ ":video_loopback_lib" ]
679 }
680 } else {
681 rtc_executable("video_loopback") {
682 testonly = true
683 sources = [ "video_loopback_main.cc" ]
684 deps = [ ":video_loopback_lib" ]
685 }
686 }
687
688 rtc_executable("screenshare_loopback") {
689 testonly = true
690 sources = [ "screenshare_loopback.cc" ]
691
692 deps = [
693 ":video_quality_test",
694 "../api:libjingle_peerconnection_api",
695 "../api:simulated_network_api",
696 "../api:video_quality_test_fixture_api",
697 "../api/transport:bitrate_settings",
698 "../api/video_codecs:video_codecs_api",
699 "../rtc_base:checks",
700 "../rtc_base:logging",
701 "../rtc_base:stringutils",
702 "../system_wrappers:field_trial",
703 "../test:field_trial",
704 "../test:run_test",
705 "../test:run_test_interface",
706 "../test:test_common",
707 "../test:test_renderer",
708 "../test:test_support",
709 "//third_party/abseil-cpp/absl/flags:flag",
710 "//third_party/abseil-cpp/absl/flags:parse",
711 "//third_party/abseil-cpp/absl/types:optional",
712 ]
713 }
714
715 rtc_executable("sv_loopback") {
716 testonly = true
717 sources = [ "sv_loopback.cc" ]
718 deps = [
719 ":video_quality_test",
720 "../api:libjingle_peerconnection_api",
721 "../api:simulated_network_api",
722 "../api:video_quality_test_fixture_api",
723 "../api/transport:bitrate_settings",
724 "../api/video_codecs:video_codecs_api",
725 "../rtc_base:checks",
726 "../rtc_base:logging",
727 "../rtc_base:stringutils",
728 "../system_wrappers:field_trial",
729 "../test:field_trial",
730 "../test:run_test",
731 "../test:run_test_interface",
732 "../test:test_common",
733 "../test:test_renderer",
734 "../test:test_support",
735 "//testing/gtest",
736 "//third_party/abseil-cpp/absl/flags:flag",
737 "//third_party/abseil-cpp/absl/flags:parse",
738 "//third_party/abseil-cpp/absl/types:optional",
739 ]
740 }
Ilya Nikolaevskiy255d1cd2017-12-21 17:02:59741 }
742
Peter Boström02083222016-06-14 10:52:54743 # TODO(pbos): Rename test suite.
Mirko Bonadei86d053c2019-10-17 19:32:04744 rtc_library("video_tests") {
Peter Boström02083222016-06-14 10:52:54745 testonly = true
kjellandere0629c02017-04-25 11:04:50746
hta9aa96882016-12-06 13:36:03747 defines = []
Peter Boström02083222016-06-14 10:52:54748 sources = [
Åsa Perssonc5a74ff2020-09-20 15:50:00749 "alignment_adjuster_unittest.cc",
Benjamin Wright00765292018-12-01 00:18:26750 "buffered_frame_decryptor_unittest.cc",
Tommi822a8742020-05-10 22:42:30751 "call_stats2_unittest.cc",
Åsa Perssoncb7eddb2018-11-05 13:11:44752 "cpu_scaling_tests.cc",
Evan Shrubsole6cd6d8e2022-02-11 14:30:26753 "decode_synchronizer_unittest.cc",
Erik Språng7ca375c2019-02-06 15:20:17754 "encoder_bitrate_adjuster_unittest.cc",
Erik Språng7ca375c2019-02-06 15:20:17755 "encoder_overshoot_detector_unittest.cc",
Elad Alon14d1c9d2019-04-08 12:16:17756 "encoder_rtcp_feedback_unittest.cc",
Sebastian Janssonc5017132018-02-02 15:24:16757 "end_to_end_tests/bandwidth_tests.cc",
758 "end_to_end_tests/call_operation_tests.cc",
759 "end_to_end_tests/codec_tests.cc",
760 "end_to_end_tests/config_tests.cc",
761 "end_to_end_tests/extended_reports_tests.cc",
762 "end_to_end_tests/fec_tests.cc",
Benjamin Wright150a9072018-10-26 22:43:06763 "end_to_end_tests/frame_encryption_tests.cc",
Sebastian Janssonc5017132018-02-02 15:24:16764 "end_to_end_tests/histogram_tests.cc",
Åsa Persson96c9fc42018-05-23 10:47:20765 "end_to_end_tests/multi_codec_receive_tests.cc",
Sebastian Janssonc5017132018-02-02 15:24:16766 "end_to_end_tests/multi_stream_tester.cc",
767 "end_to_end_tests/multi_stream_tester.h",
768 "end_to_end_tests/multi_stream_tests.cc",
769 "end_to_end_tests/network_state_tests.cc",
Åsa Persson4a4273b2021-03-05 15:03:37770 "end_to_end_tests/resolution_bitrate_limits_tests.cc",
Sebastian Janssonc5017132018-02-02 15:24:16771 "end_to_end_tests/retransmission_tests.cc",
772 "end_to_end_tests/rtp_rtcp_tests.cc",
773 "end_to_end_tests/ssrc_tests.cc",
774 "end_to_end_tests/stats_tests.cc",
775 "end_to_end_tests/transport_feedback_tests.cc",
Markus Handellb4e96d42021-11-05 11:00:55776 "frame_cadence_adapter_unittest.cc",
Evan Shrubsole9a999052021-12-12 14:27:00777 "frame_decode_timing_unittest.cc",
Ilya Nikolaevskiy2ebf5232019-05-13 14:13:36778 "frame_encode_metadata_writer_unittest.cc",
Sebastian Janssone92f93f2017-06-22 12:44:04779 "picture_id_tests.cc",
Henrik Boströmce33b6a2019-05-28 15:42:38780 "quality_limitation_reason_tracker_unittest.cc",
Åsa Persson2027b662018-05-02 16:08:06781 "quality_scaling_tests.cc",
Rasmus Brandt090fe082023-05-09 10:53:01782 "receive_statistics_proxy_unittest.cc",
Peter Boström02083222016-06-14 10:52:54783 "report_block_stats_unittest.cc",
Tommid3807da2020-05-22 15:36:36784 "rtp_video_stream_receiver2_unittest.cc",
Peter Boström02083222016-06-14 10:52:54785 "send_delay_stats_unittest.cc",
786 "send_statistics_proxy_unittest.cc",
787 "stats_counter_unittest.cc",
788 "stream_synchronization_unittest.cc",
Evan Shrubsole6cd6d8e2022-02-11 14:30:26789 "task_queue_frame_decode_scheduler_unittest.cc",
Rasmus Brandtfbf66dd2022-05-23 07:53:32790 "unique_timestamp_counter_unittest.cc",
Tommiae4d0972020-05-18 06:45:38791 "video_receive_stream2_unittest.cc",
Evan Shrubsole9a999052021-12-12 14:27:00792 "video_receive_stream_timeout_tracker_unittest.cc",
Sebastian Jansson652dc912018-04-19 15:09:15793 "video_send_stream_impl_unittest.cc",
Peter Boström02083222016-06-14 10:52:54794 "video_send_stream_tests.cc",
Henrik Boströmce0ea492020-01-13 10:27:18795 "video_source_sink_controller_unittest.cc",
Evan Shrubsole476f18d22022-08-15 15:21:16796 "video_stream_buffer_controller_unittest.cc",
mflodmancc3d4422017-08-03 15:27:51797 "video_stream_encoder_unittest.cc",
Peter Boström02083222016-06-14 10:52:54798 ]
799 deps = [
Evan Shrubsole6cd6d8e2022-02-11 14:30:26800 ":decode_synchronizer",
Markus Handellb4e96d42021-11-05 11:00:55801 ":frame_cadence_adapter",
Evan Shrubsole9a999052021-12-12 14:27:00802 ":frame_decode_scheduler",
803 ":frame_decode_timing",
Evan Shrubsole6cd6d8e2022-02-11 14:30:26804 ":task_queue_frame_decode_scheduler",
Rasmus Brandtfbf66dd2022-05-23 07:53:32805 ":unique_timestamp_counter",
Peter Boström02083222016-06-14 10:52:54806 ":video",
Sebastian Jansson652dc912018-04-19 15:09:15807 ":video_mocks",
Evan Shrubsole9a999052021-12-12 14:27:00808 ":video_receive_stream_timeout_tracker",
Evan Shrubsole476f18d22022-08-15 15:21:16809 ":video_stream_buffer_controller",
Niels Möller213618e2018-07-24 07:29:58810 ":video_stream_encoder_impl",
Evan Shrubsole09da10e2022-10-14 14:38:31811 ":video_stream_encoder_interface",
Artem Titov33f9d2b2019-12-05 14:59:00812 "../api:create_frame_generator",
Benjamin Wright150a9072018-10-26 22:43:06813 "../api:fake_frame_decryptor",
814 "../api:fake_frame_encryptor",
Markus Handell8e4197b2022-05-30 13:45:28815 "../api:field_trials_view",
Artem Titov33f9d2b2019-12-05 14:59:00816 "../api:frame_generator_api",
Yves Gerey3e707812018-11-28 15:47:49817 "../api:libjingle_peerconnection_api",
Elad Alon45befc52019-07-02 09:20:09818 "../api:mock_fec_controller_override",
Benjamin Wright00765292018-12-01 00:18:26819 "../api:mock_frame_decryptor",
Henrik Boström56db9ff2021-03-24 08:06:45820 "../api:mock_video_codec_factory",
Danil Chapovalov9cd4d492021-08-03 12:59:00821 "../api:mock_video_decoder",
philipel9b058032020-02-10 10:30:00822 "../api:mock_video_encoder",
Niels Mölleref1052a2019-03-20 07:40:23823 "../api:rtp_headers",
Niels Möller6dcd4dc2019-08-26 08:45:28824 "../api:rtp_parameters",
Mirko Bonadeid9708072019-01-25 19:26:48825 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24826 "../api:sequence_checker",
Artem Titov46c4e602018-08-17 12:26:54827 "../api:simulated_network_api",
Evan Shrubsole44be5792022-04-26 14:24:41828 "../api:time_controller",
Marina Ciocea78964c12020-03-10 20:31:52829 "../api:transport_api",
Henrik Boströme2e8c172020-06-03 07:24:06830 "../api/adaptation:resource_adaptation_api",
Mirko Bonadeieaaaf412019-09-13 12:42:15831 "../api/crypto:options",
Evan Shrubsole6cd6d8e2022-02-11 14:30:26832 "../api/metronome/test:fake_metronome",
Danil Chapovalov83bbe912019-08-07 10:24:53833 "../api/rtc_event_log",
Danil Chapovalov44db4362019-09-30 02:16:28834 "../api/task_queue",
Danil Chapovalov22ed3662019-03-19 18:39:49835 "../api/task_queue:default_task_queue_factory",
Artem Titove05bf452022-09-24 23:25:15836 "../api/test/metrics:global_metrics_logger_and_exporter",
837 "../api/test/metrics:metric",
Danil Chapovalov99b71df2018-10-26 13:57:48838 "../api/test/video:function_video_factory",
Jonas Oreland1262eb52022-09-27 14:53:04839 "../api/transport:field_trial_based_config",
Erik Språng7ca375c2019-02-06 15:20:17840 "../api/units:data_rate",
Evan Shrubsole9a999052021-12-12 14:27:00841 "../api/units:frequency",
Evan Shrubsole9d290262021-12-15 13:33:40842 "../api/units:time_delta",
Henrik Boström23aff9b2019-05-20 13:15:38843 "../api/units:timestamp",
Jiawei Ouc2ebe212018-11-08 18:02:56844 "../api/video:builtin_video_bitrate_allocator_factory",
Niels Möller4dc66c52018-10-05 12:17:58845 "../api/video:encoded_image",
Evan Shrubsole44be5792022-04-26 14:24:41846 "../api/video:recordable_encoded_frame",
Evan Shrubsolece0a11d2020-04-16 09:36:55847 "../api/video:video_adaptation",
Erik Språngf93eda12019-01-16 16:10:57848 "../api/video:video_bitrate_allocation",
Niels Möllerc6ce9c52018-05-11 09:15:30849 "../api/video:video_frame",
Johannes Krond51ec582019-04-15 11:32:41850 "../api/video:video_frame_type",
Chen Xing5d24b162019-06-10 10:59:38851 "../api/video:video_rtp_headers",
Evan Shrubsole44be5792022-04-26 14:24:41852 "../api/video/test:video_frame_matchers",
Evan Shrubsole9b235cd2022-12-06 10:09:10853 "../api/video_codecs:scalability_mode",
mbonadei9087d492017-04-25 07:35:35854 "../api/video_codecs:video_codecs_api",
Elad Aloncde8ab22019-03-20 10:56:20855 "../api/video_codecs:vp8_temporal_layers_factory",
mbonadei9087d492017-04-25 07:35:35856 "../call:call_interfaces",
Artem Titovdd2eebe2018-08-20 11:27:45857 "../call:fake_network",
Sebastian Jansson652dc912018-04-19 15:09:15858 "../call:mock_bitrate_allocator",
eladalone2173d92017-07-28 17:05:45859 "../call:mock_rtp_interfaces",
Yves Gerey3e707812018-11-28 15:47:49860 "../call:rtp_interfaces",
nisse0f15f922017-06-21 08:05:22861 "../call:rtp_receiver",
sprangdb2a9fc2017-08-09 13:42:32862 "../call:rtp_sender",
Artem Titovdd2eebe2018-08-20 11:27:45863 "../call:simulated_network",
Yves Gerey3e707812018-11-28 15:47:49864 "../call:simulated_packet_receiver",
aleloi440b6d92017-08-22 12:43:23865 "../call:video_stream_api",
Henrik Boströmce0ea492020-01-13 10:27:18866 "../call/adaptation:resource_adaptation",
Evan Shrubsoleaa6fbc12020-02-25 15:26:01867 "../call/adaptation:resource_adaptation_test_utilities",
mbonadei9087d492017-04-25 07:35:35868 "../common_video",
Johannes Kronf1ab9b92018-12-14 09:14:07869 "../common_video/test:utilities",
Florent Castelli5278b392023-05-31 12:44:32870 "../media:codec",
Harald Alvestrand794d5992022-12-16 09:54:57871 "../media:media_constants",
Mirko Bonadei75baa492018-01-11 16:07:30872 "../media:rtc_audio_video",
Anders Carlssona114c882018-01-04 14:10:22873 "../media:rtc_internal_video_codecs",
brandtr5e171752017-05-23 10:32:16874 "../media:rtc_media",
magjedceecea42016-11-28 15:20:21875 "../media:rtc_media_base",
mbonadei9087d492017-04-25 07:35:35876 "../media:rtc_media_tests_utils",
Jonathan Yu9a5da492018-10-19 07:51:18877 "../media:rtc_simulcast_encoder_adapter",
Danil Chapovalov7c067772019-10-07 10:56:24878 "../modules:module_api_public",
mbonadei9087d492017-04-25 07:35:35879 "../modules/pacing",
880 "../modules/rtp_rtcp",
kjellandere0629c02017-04-25 11:04:50881 "../modules/rtp_rtcp:mock_rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 06:51:33882 "../modules/rtp_rtcp:rtp_rtcp_format",
Per Kjellander828ef912022-10-10 10:53:41883 "../modules/utility:utility",
mbonadei9087d492017-04-25 07:35:35884 "../modules/video_coding",
Sergey Silkin86684962018-03-28 17:32:37885 "../modules/video_coding:codec_globals_headers",
Markus Handell269ac812019-12-03 13:31:45886 "../modules/video_coding:encoded_frame",
philipel10dc1a62021-09-15 08:45:43887 "../modules/video_coding:packet_buffer",
Patrik Höglund99175c62018-01-08 10:05:10888 "../modules/video_coding:video_codec_interface",
mbonadei9087d492017-04-25 07:35:35889 "../modules/video_coding:video_coding_utility",
890 "../modules/video_coding:webrtc_h264",
Emircan Uysaleref76e5a2018-02-12 21:36:41891 "../modules/video_coding:webrtc_multiplex",
Sergio Garcia Murillo43800f92018-06-21 14:16:38892 "../modules/video_coding:webrtc_vp8",
mbonadei9087d492017-04-25 07:35:35893 "../modules/video_coding:webrtc_vp9",
Erik Språng7444b192021-06-02 12:02:13894 "../modules/video_coding:webrtc_vp9_helpers",
philipel09a28482022-05-25 07:47:06895 "../modules/video_coding/codecs/av1:libaom_av1_encoder",
Niels Möller79d566b2022-04-29 09:03:13896 "../modules/video_coding/svc:scalability_mode_util",
Asa Perssoncde992d2022-05-16 20:37:34897 "../modules/video_coding/svc:scalability_structures",
898 "../modules/video_coding/svc:scalable_video_controller",
Rasmus Brandtc4d253c2022-05-25 10:03:35899 "../modules/video_coding/timing:timing_module",
Florent Castelliceb7b362022-04-19 15:35:04900 "../rtc_base:byte_buffer",
Patrik Höglunda8005cf2017-12-13 15:05:42901 "../rtc_base:checks",
Henrik Boström2671dac2020-05-19 14:29:09902 "../rtc_base:gunit_helpers",
Florent Castelli0af55ba2022-04-04 13:06:30903 "../rtc_base:logging",
Florent Castelli4467ad72022-04-04 13:18:46904 "../rtc_base:macromagic",
Florent Castelli45a05992022-04-14 10:18:28905 "../rtc_base:platform_thread",
Patrik Höglunda8005cf2017-12-13 15:05:42906 "../rtc_base:rate_limiter",
Florent Castelli6bb1fd32022-04-19 13:58:39907 "../rtc_base:rate_statistics",
Florent Castellif86f6f92022-04-05 00:54:12908 "../rtc_base:refcount",
ehmaldonadof6a861a2017-07-19 17:40:47909 "../rtc_base:rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:52910 "../rtc_base:rtc_event",
Bjorn Tereliusa194e582017-10-25 11:07:09911 "../rtc_base:rtc_numerics",
Tommi38c5d932018-03-27 21:11:09912 "../rtc_base:rtc_task_queue",
Florent Castellie10a9f62022-04-04 15:04:37913 "../rtc_base:safe_conversions",
Florent Castelli57aa81b2022-04-04 15:14:02914 "../rtc_base:stringutils",
Danil Chapovalovd26a9162019-03-19 17:08:37915 "../rtc_base:task_queue_for_test",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01916 "../rtc_base:threading",
Florent Castellidd837e22022-04-04 15:16:15917 "../rtc_base:timeutils",
Florent Castellia138c6c2023-01-04 11:01:09918 "../rtc_base:unique_id_generator",
Evan Shrubsole9a999052021-12-12 14:27:00919 "../rtc_base/containers:flat_map",
Sebastian Janssoncabe3832018-01-12 09:54:18920 "../rtc_base/experiments:alr_experiment",
Åsa Persson258e9892021-02-25 09:39:51921 "../rtc_base/experiments:encoder_info_settings",
Markus Handell9bbff072020-07-07 12:23:18922 "../rtc_base/synchronization:mutex",
mbonadei9087d492017-04-25 07:35:35923 "../system_wrappers",
Mirko Bonadei17f48782018-09-28 06:51:10924 "../system_wrappers:field_trial",
925 "../system_wrappers:metrics",
mbonadei9087d492017-04-25 07:35:35926 "../test:direct_transport",
Danil Chapovalovce928172019-04-24 16:17:42927 "../test:encoder_settings",
Evan Shrubsolea0ee64c2022-04-26 08:09:04928 "../test:fake_encoded_frame",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27929 "../test:fake_video_codecs",
mbonadei9087d492017-04-25 07:35:35930 "../test:field_trial",
Patrik Höglund7696bef2018-03-15 14:05:39931 "../test:fileutils",
Artem Titovd12582a2023-04-12 13:29:07932 "../test:frame_generator_capturer",
Artem Titov33f9d2b2019-12-05 14:59:00933 "../test:frame_utils",
Marina Ciocea1148fd52020-04-29 20:39:13934 "../test:mock_frame_transformer",
Tim Na9526c552020-02-20 19:53:13935 "../test:mock_transport",
Danil Chapovalovce928172019-04-24 16:17:42936 "../test:null_transport",
mbonadei9087d492017-04-25 07:35:35937 "../test:rtp_test_utils",
Niels Möller65b2d8a2022-05-19 14:06:23938 "../test:run_loop",
Jonas Orelandc7f691a2022-03-09 14:12:07939 "../test:scoped_key_value_config",
mbonadei9087d492017-04-25 07:35:35940 "../test:test_common",
941 "../test:test_support",
942 "../test:video_test_common",
Artem Titov8a9f3a82023-04-25 07:56:49943 "../test:video_test_constants",
Markus Handell486cc552019-12-03 13:37:28944 "../test/time_controller",
Henrik Boströmefbec9a2020-03-06 09:41:25945 "adaptation:video_adaptation",
Jonas Oreland6c2dae22022-09-29 08:28:24946 "config:encoder_config",
Jonas Oreland1262eb52022-09-27 14:53:04947 "config:streams_config",
Jonas Oreland37132e12022-10-06 08:56:07948 "config:video_config_tests",
Mirko Bonadei2dcf3482020-06-05 12:30:41949 ]
950 absl_deps = [
Steve Antonbd631a02019-03-28 17:51:27951 "//third_party/abseil-cpp/absl/algorithm:container",
Danil Chapovalov95eeaa72022-07-06 08:14:29952 "//third_party/abseil-cpp/absl/functional:any_invocable",
Evan Shrubsole6cd6d8e2022-02-11 14:30:26953 "//third_party/abseil-cpp/absl/functional:bind_front",
Karl Wiberg918f50c2018-07-05 09:40:33954 "//third_party/abseil-cpp/absl/memory",
Niels Möllerfd0f6b92022-06-09 13:05:47955 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalovb9b146c2018-06-15 10:28:07956 "//third_party/abseil-cpp/absl/types:optional",
Evan Shrubsole9a999052021-12-12 14:27:00957 "//third_party/abseil-cpp/absl/types:variant",
Peter Boström02083222016-06-14 10:52:54958 ]
Dan Minor9c686132018-01-15 15:20:00959 if (!build_with_mozilla) {
960 deps += [ "../media:rtc_media_base" ]
961 }
Peter Boström02083222016-06-14 10:52:54962 }
963}