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_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", 18 "../api:rtc_error", 19 "../api:rtp_parameters", 20 "../api:rtp_sender_interface", 21 "../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 36rtc_library("video") { 37 sources = [ 38 "buffered_frame_decryptor.cc", 39 "buffered_frame_decryptor.h", 40 "call_stats2.cc", 41 "call_stats2.h", 42 "encoder_rtcp_feedback.cc", 43 "encoder_rtcp_feedback.h", 44 "quality_limitation_reason_tracker.cc", 45 "quality_limitation_reason_tracker.h", 46 "quality_threshold.cc", 47 "quality_threshold.h", 48 "receive_statistics_proxy2.cc", 49 "receive_statistics_proxy2.h", 50 "report_block_stats.cc", 51 "report_block_stats.h", 52 "rtp_streams_synchronizer2.cc", 53 "rtp_streams_synchronizer2.h", 54 "rtp_video_stream_receiver2.cc", 55 "rtp_video_stream_receiver2.h", 56 "rtp_video_stream_receiver_frame_transformer_delegate.cc", 57 "rtp_video_stream_receiver_frame_transformer_delegate.h", 58 "send_delay_stats.cc", 59 "send_delay_stats.h", 60 "send_statistics_proxy.cc", 61 "send_statistics_proxy.h", 62 "stats_counter.cc", 63 "stats_counter.h", 64 "stream_synchronization.cc", 65 "stream_synchronization.h", 66 "transport_adapter.cc", 67 "transport_adapter.h", 68 "video_quality_observer2.cc", 69 "video_quality_observer2.h", 70 "video_receive_stream2.cc", 71 "video_receive_stream2.h", 72 "video_send_stream.cc", 73 "video_send_stream.h", 74 "video_send_stream_impl.cc", 75 "video_send_stream_impl.h", 76 "video_stream_decoder2.cc", 77 "video_stream_decoder2.h", 78 ] 79 80 deps = [ 81 ":frame_cadence_adapter", 82 ":frame_dumping_decoder", 83 ":task_queue_frame_decode_scheduler", 84 ":unique_timestamp_counter", 85 ":video_stream_buffer_controller", 86 ":video_stream_encoder_impl", 87 ":video_stream_encoder_interface", 88 "../api:array_view", 89 "../api:fec_controller_api", 90 "../api:field_trials_view", 91 "../api:frame_transformer_interface", 92 "../api:rtp_parameters", 93 "../api:scoped_refptr", 94 "../api:sequence_checker", 95 "../api:transport_api", 96 "../api/crypto:frame_decryptor_interface", 97 "../api/crypto:options", 98 "../api/task_queue", 99 "../api/task_queue:pending_task_safety_flag", 100 "../api/transport:field_trial_based_config", 101 "../api/units:data_rate", 102 "../api/units:frequency", 103 "../api/units:time_delta", 104 "../api/units:timestamp", 105 "../api/video:encoded_image", 106 "../api/video:recordable_encoded_frame", 107 "../api/video:video_bitrate_allocation", 108 "../api/video:video_bitrate_allocator", 109 "../api/video:video_codec_constants", 110 "../api/video:video_frame", 111 "../api/video:video_rtp_headers", 112 "../api/video:video_stream_encoder", 113 "../api/video_codecs:video_codecs_api", 114 "../call:bitrate_allocator", 115 "../call:call_interfaces", 116 "../call:rtp_interfaces", 117 "../call:rtp_receiver", 118 "../call:rtp_sender", 119 "../call:video_stream_api", 120 "../common_video", 121 "../modules:module_api", 122 "../modules:module_api_public", 123 "../modules/pacing", 124 "../modules/remote_bitrate_estimator", 125 "../modules/rtp_rtcp", 126 "../modules/rtp_rtcp:rtp_rtcp_format", 127 "../modules/rtp_rtcp:rtp_video_header", 128 "../modules/utility:utility", 129 "../modules/video_coding", 130 "../modules/video_coding:nack_requester", 131 "../modules/video_coding:packet_buffer", 132 "../modules/video_coding:video_codec_interface", 133 "../modules/video_coding:video_coding_utility", 134 "../modules/video_coding:webrtc_vp9_helpers", 135 "../modules/video_coding/timing:timing_module", 136 "../rtc_base:checks", 137 "../rtc_base:event_tracer", 138 "../rtc_base:histogram_percentile_counter", 139 "../rtc_base:logging", 140 "../rtc_base:macromagic", 141 "../rtc_base:mod_ops", 142 "../rtc_base:moving_max_counter", 143 "../rtc_base:platform_thread", 144 "../rtc_base:rate_statistics", 145 "../rtc_base:rate_tracker", 146 "../rtc_base:rtc_event", 147 "../rtc_base:rtc_numerics", 148 "../rtc_base:rtc_task_queue", 149 "../rtc_base:safe_conversions", 150 "../rtc_base:sample_counter", 151 "../rtc_base:stringutils", 152 "../rtc_base:threading", 153 "../rtc_base:timeutils", 154 "../rtc_base/experiments:alr_experiment", 155 "../rtc_base/experiments:field_trial_parser", 156 "../rtc_base/experiments:keyframe_interval_settings_experiment", 157 "../rtc_base/experiments:min_video_bitrate_experiment", 158 "../rtc_base/experiments:normalize_simulcast_size_experiment", 159 "../rtc_base/experiments:rate_control_settings", 160 "../rtc_base/synchronization:mutex", 161 "../rtc_base/system:no_unique_address", 162 "../rtc_base/task_utils:repeating_task", 163 "../system_wrappers", 164 "../system_wrappers:field_trial", 165 "../system_wrappers:metrics", 166 "../video/config:encoder_config", 167 "adaptation:video_adaptation", 168 "render:incoming_video_stream", 169 ] 170 absl_deps = [ 171 "//third_party/abseil-cpp/absl/algorithm:container", 172 "//third_party/abseil-cpp/absl/memory", 173 "//third_party/abseil-cpp/absl/strings", 174 "//third_party/abseil-cpp/absl/types:optional", 175 ] 176 177 if (!build_with_mozilla) { 178 deps += [ "../media:rtc_media_base" ] 179 } 180} 181 182rtc_library("video_stream_decoder_impl") { 183 visibility = [ "*" ] 184 185 sources = [ 186 "video_stream_decoder_impl.cc", 187 "video_stream_decoder_impl.h", 188 ] 189 190 deps = [ 191 "../api:field_trials_view", 192 "../api:sequence_checker", 193 "../api/task_queue", 194 "../api/transport:field_trial_based_config", 195 "../api/video:encoded_frame", 196 "../api/video:video_frame", 197 "../api/video:video_rtp_headers", 198 "../api/video:video_stream_decoder", 199 "../api/video_codecs:video_codecs_api", 200 "../modules/video_coding", 201 "../modules/video_coding:frame_buffer2", 202 "../modules/video_coding/timing:timing_module", 203 "../rtc_base:logging", 204 "../rtc_base:mod_ops", 205 "../rtc_base:platform_thread", 206 "../rtc_base:rtc_task_queue", 207 "../rtc_base:timeutils", 208 "../rtc_base/memory:always_valid_pointer", 209 "../rtc_base/synchronization:mutex", 210 "../system_wrappers", 211 ] 212 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 213} 214 215rtc_library("frame_dumping_decoder") { 216 visibility = [ "*" ] 217 218 sources = [ 219 "frame_dumping_decoder.cc", 220 "frame_dumping_decoder.h", 221 ] 222 223 deps = [ 224 "../api/video:encoded_frame", 225 "../api/video:encoded_image", 226 "../api/video_codecs:video_codecs_api", 227 "../modules/video_coding", 228 "../modules/video_coding:video_codec_interface", 229 "../modules/video_coding:video_coding_utility", 230 "../rtc_base/system:file_wrapper", 231 ] 232} 233 234rtc_library("frame_cadence_adapter") { 235 visibility = [ "*" ] 236 sources = [ 237 "frame_cadence_adapter.cc", 238 "frame_cadence_adapter.h", 239 ] 240 241 deps = [ 242 "../api:field_trials_view", 243 "../api:sequence_checker", 244 "../api/task_queue", 245 "../api/task_queue:pending_task_safety_flag", 246 "../api/units:time_delta", 247 "../api/units:timestamp", 248 "../api/video:video_frame", 249 "../rtc_base:checks", 250 "../rtc_base:logging", 251 "../rtc_base:macromagic", 252 "../rtc_base:race_checker", 253 "../rtc_base:rate_statistics", 254 "../rtc_base:timeutils", 255 "../rtc_base/synchronization:mutex", 256 "../rtc_base/system:no_unique_address", 257 "../rtc_base/task_utils:repeating_task", 258 "../system_wrappers", 259 "../system_wrappers:field_trial", 260 "../system_wrappers:metrics", 261 ] 262 absl_deps = [ 263 "//third_party/abseil-cpp/absl/algorithm:container", 264 "//third_party/abseil-cpp/absl/base:core_headers", 265 ] 266} 267 268rtc_library("video_stream_buffer_controller") { 269 sources = [ 270 "video_stream_buffer_controller.cc", 271 "video_stream_buffer_controller.h", 272 ] 273 deps = [ 274 ":decode_synchronizer", 275 ":frame_decode_scheduler", 276 ":frame_decode_timing", 277 ":task_queue_frame_decode_scheduler", 278 ":video_receive_stream_timeout_tracker", 279 "../api:field_trials_view", 280 "../api:sequence_checker", 281 "../api/metronome", 282 "../api/task_queue", 283 "../api/units:data_size", 284 "../api/video:encoded_frame", 285 "../api/video:frame_buffer", 286 "../api/video:video_rtp_headers", 287 "../modules/video_coding", 288 "../modules/video_coding:frame_helpers", 289 "../modules/video_coding:video_codec_interface", 290 "../modules/video_coding/timing:inter_frame_delay", 291 "../modules/video_coding/timing:jitter_estimator", 292 "../modules/video_coding/timing:timing_module", 293 "../rtc_base:checks", 294 "../rtc_base:logging", 295 "../rtc_base:macromagic", 296 "../rtc_base/experiments:rtt_mult_experiment", 297 "../system_wrappers", 298 "../system_wrappers:field_trial", 299 ] 300 absl_deps = [ 301 "//third_party/abseil-cpp/absl/base:core_headers", 302 "//third_party/abseil-cpp/absl/functional:bind_front", 303 "//third_party/abseil-cpp/absl/types:optional", 304 ] 305} 306 307rtc_source_set("frame_decode_scheduler") { 308 sources = [ "frame_decode_scheduler.h" ] 309 deps = [ 310 ":frame_decode_timing", 311 "../api/units:timestamp", 312 ] 313 absl_deps = [ 314 "//third_party/abseil-cpp/absl/functional:any_invocable", 315 "//third_party/abseil-cpp/absl/types:optional", 316 ] 317} 318 319rtc_library("task_queue_frame_decode_scheduler") { 320 sources = [ 321 "task_queue_frame_decode_scheduler.cc", 322 "task_queue_frame_decode_scheduler.h", 323 ] 324 deps = [ 325 ":frame_decode_scheduler", 326 ":frame_decode_timing", 327 "../api:sequence_checker", 328 "../api/task_queue", 329 "../api/task_queue:pending_task_safety_flag", 330 "../api/units:timestamp", 331 "../rtc_base:checks", 332 "../system_wrappers", 333 ] 334 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 335} 336 337rtc_library("frame_decode_timing") { 338 sources = [ 339 "frame_decode_timing.cc", 340 "frame_decode_timing.h", 341 ] 342 deps = [ 343 "../api/task_queue", 344 "../api/task_queue:pending_task_safety_flag", 345 "../api/units:time_delta", 346 "../modules/video_coding/timing:timing_module", 347 "../rtc_base:logging", 348 "../system_wrappers", 349 ] 350 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 351} 352 353rtc_library("video_receive_stream_timeout_tracker") { 354 sources = [ 355 "video_receive_stream_timeout_tracker.cc", 356 "video_receive_stream_timeout_tracker.h", 357 ] 358 deps = [ 359 "../api/task_queue", 360 "../api/units:time_delta", 361 "../api/units:timestamp", 362 "../rtc_base:logging", 363 "../rtc_base/task_utils:repeating_task", 364 "../system_wrappers", 365 ] 366} 367 368rtc_library("decode_synchronizer") { 369 sources = [ 370 "decode_synchronizer.cc", 371 "decode_synchronizer.h", 372 ] 373 deps = [ 374 ":frame_decode_scheduler", 375 ":frame_decode_timing", 376 "../api:sequence_checker", 377 "../api/metronome", 378 "../api/task_queue", 379 "../api/units:time_delta", 380 "../api/units:timestamp", 381 "../rtc_base:checks", 382 "../rtc_base:logging", 383 "../rtc_base:macromagic", 384 ] 385 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 386} 387 388rtc_library("video_stream_encoder_impl") { 389 visibility = [ "*" ] 390 391 # visibility = [ "../api/video:video_stream_encoder_create" ] 392 sources = [ 393 "alignment_adjuster.cc", 394 "alignment_adjuster.h", 395 "encoder_bitrate_adjuster.cc", 396 "encoder_bitrate_adjuster.h", 397 "encoder_overshoot_detector.cc", 398 "encoder_overshoot_detector.h", 399 "frame_encode_metadata_writer.cc", 400 "frame_encode_metadata_writer.h", 401 "video_source_sink_controller.cc", 402 "video_source_sink_controller.h", 403 "video_stream_encoder.cc", 404 "video_stream_encoder.h", 405 ] 406 407 deps = [ 408 ":frame_cadence_adapter", 409 ":video_stream_encoder_interface", 410 "../api:field_trials_view", 411 "../api:rtp_parameters", 412 "../api:rtp_sender_interface", 413 "../api:sequence_checker", 414 "../api/adaptation:resource_adaptation_api", 415 "../api/task_queue:pending_task_safety_flag", 416 "../api/task_queue:task_queue", 417 "../api/units:data_rate", 418 "../api/video:encoded_image", 419 "../api/video:render_resolution", 420 "../api/video:video_adaptation", 421 "../api/video:video_bitrate_allocation", 422 "../api/video:video_bitrate_allocator", 423 "../api/video:video_bitrate_allocator_factory", 424 "../api/video:video_codec_constants", 425 "../api/video:video_frame", 426 "../api/video:video_layers_allocation", 427 "../api/video:video_rtp_headers", 428 "../api/video:video_stream_encoder", 429 "../api/video_codecs:video_codecs_api", 430 "../call/adaptation:resource_adaptation", 431 "../common_video", 432 "../media:rtc_media_base", 433 "../modules:module_api_public", 434 "../modules/video_coding", 435 "../modules/video_coding:video_codec_interface", 436 "../modules/video_coding:video_coding_utility", 437 "../modules/video_coding:webrtc_vp9_helpers", 438 "../modules/video_coding/svc:scalability_structures", 439 "../modules/video_coding/svc:svc_rate_allocator", 440 "../rtc_base:checks", 441 "../rtc_base:criticalsection", 442 "../rtc_base:event_tracer", 443 "../rtc_base:logging", 444 "../rtc_base:macromagic", 445 "../rtc_base:race_checker", 446 "../rtc_base:rate_statistics", 447 "../rtc_base:refcount", 448 "../rtc_base:rtc_event", 449 "../rtc_base:rtc_numerics", 450 "../rtc_base:rtc_task_queue", 451 "../rtc_base:safe_conversions", 452 "../rtc_base:stringutils", 453 "../rtc_base:timeutils", 454 "../rtc_base/experiments:alr_experiment", 455 "../rtc_base/experiments:balanced_degradation_settings", 456 "../rtc_base/experiments:encoder_info_settings", 457 "../rtc_base/experiments:field_trial_parser", 458 "../rtc_base/experiments:quality_rampup_experiment", 459 "../rtc_base/experiments:quality_scaler_settings", 460 "../rtc_base/experiments:quality_scaling_experiment", 461 "../rtc_base/experiments:rate_control_settings", 462 "../rtc_base/synchronization:mutex", 463 "../rtc_base/system:no_unique_address", 464 "../rtc_base/task_utils:repeating_task", 465 "../system_wrappers", 466 "../system_wrappers:field_trial", 467 "../system_wrappers:metrics", 468 "adaptation:video_adaptation", 469 "config:encoder_config", 470 "config:streams_config", 471 ] 472 absl_deps = [ 473 "//third_party/abseil-cpp/absl/algorithm:container", 474 "//third_party/abseil-cpp/absl/base:core_headers", 475 "//third_party/abseil-cpp/absl/cleanup", 476 "//third_party/abseil-cpp/absl/container:inlined_vector", 477 "//third_party/abseil-cpp/absl/types:optional", 478 ] 479} 480 481rtc_library("unique_timestamp_counter") { 482 sources = [ 483 "unique_timestamp_counter.cc", 484 "unique_timestamp_counter.h", 485 ] 486} 487 488if (rtc_include_tests) { 489 rtc_library("video_mocks") { 490 testonly = true 491 sources = [ "test/mock_video_stream_encoder.h" ] 492 deps = [ 493 ":video_stream_encoder_interface", 494 "../api/video:video_stream_encoder", 495 "../test:test_support", 496 ] 497 } 498 if (!build_with_chromium) { 499 rtc_library("video_quality_test") { 500 testonly = true 501 502 # Only targets in this file and api/ can depend on this. 503 visibility = [ 504 ":*", 505 "../api:create_video_quality_test_fixture_api", 506 ] 507 sources = [ 508 "video_analyzer.cc", 509 "video_analyzer.h", 510 "video_quality_test.cc", 511 "video_quality_test.h", 512 ] 513 deps = [ 514 ":frame_dumping_decoder", 515 "../api:create_frame_generator", 516 "../api:fec_controller_api", 517 "../api:frame_generator_api", 518 "../api:libjingle_peerconnection_api", 519 "../api:rtc_event_log_output_file", 520 "../api:test_dependency_factory", 521 "../api:video_quality_test_fixture_api", 522 "../api/numerics", 523 "../api/rtc_event_log:rtc_event_log_factory", 524 "../api/task_queue", 525 "../api/task_queue:default_task_queue_factory", 526 "../api/test/metrics:global_metrics_logger_and_exporter", 527 "../api/test/metrics:metric", 528 "../api/video:builtin_video_bitrate_allocator_factory", 529 "../api/video:video_bitrate_allocator_factory", 530 "../api/video:video_frame", 531 "../api/video:video_rtp_headers", 532 "../api/video_codecs:video_codecs_api", 533 "../call:fake_network", 534 "../call:simulated_network", 535 "../common_video", 536 "../media:rtc_audio_video", 537 "../media:rtc_encoder_simulcast_proxy", 538 "../media:rtc_internal_video_codecs", 539 "../media:rtc_media_base", 540 "../modules/audio_device:audio_device_api", 541 "../modules/audio_device:audio_device_module_from_input_and_output", 542 "../modules/audio_device:windows_core_audio_utility", 543 "../modules/audio_mixer:audio_mixer_impl", 544 "../modules/rtp_rtcp", 545 "../modules/rtp_rtcp:rtp_rtcp_format", 546 "../modules/video_coding", 547 "../modules/video_coding:video_coding_utility", 548 "../modules/video_coding:webrtc_h264", 549 "../modules/video_coding:webrtc_multiplex", 550 "../modules/video_coding:webrtc_vp8", 551 "../modules/video_coding:webrtc_vp9", 552 "../rtc_base:macromagic", 553 "../rtc_base:platform_thread", 554 "../rtc_base:rtc_base_tests_utils", 555 "../rtc_base:rtc_event", 556 "../rtc_base:rtc_numerics", 557 "../rtc_base:stringutils", 558 "../rtc_base:task_queue_for_test", 559 "../rtc_base:timeutils", 560 "../rtc_base/synchronization:mutex", 561 "../rtc_base/task_utils:repeating_task", 562 "../system_wrappers", 563 "../test:fake_video_codecs", 564 "../test:fileutils", 565 "../test:platform_video_capturer", 566 "../test:rtp_test_utils", 567 "../test:test_common", 568 "../test:test_renderer", 569 "../test:test_support", 570 "../test:test_support_test_artifacts", 571 "../test:video_test_common", 572 "../test:video_test_support", 573 "config:streams_config", 574 ] 575 absl_deps = [ 576 "//third_party/abseil-cpp/absl/algorithm:container", 577 "//third_party/abseil-cpp/absl/flags:flag", 578 "//third_party/abseil-cpp/absl/flags:parse", 579 "//third_party/abseil-cpp/absl/strings", 580 ] 581 582 if (is_mac || is_ios) { 583 deps += [ "../test:video_test_mac" ] 584 } 585 if (is_win) { 586 deps += [ "../rtc_base/win:scoped_com_initializer" ] 587 } 588 } 589 590 rtc_library("video_full_stack_tests") { 591 testonly = true 592 593 sources = [ "full_stack_tests.cc" ] 594 deps = [ 595 ":video_quality_test", 596 "../api:simulated_network_api", 597 "../api:test_dependency_factory", 598 "../api:video_quality_test_fixture_api", 599 "../api/video_codecs:video_codecs_api", 600 "../modules/pacing", 601 "../modules/video_coding:webrtc_vp9", 602 "../rtc_base/experiments:alr_experiment", 603 "../system_wrappers:field_trial", 604 "../test:field_trial", 605 "../test:fileutils", 606 "../test:test_common", 607 "../test:test_support", 608 "../video/config:encoder_config", 609 "//testing/gtest", 610 ] 611 absl_deps = [ 612 "//third_party/abseil-cpp/absl/flags:flag", 613 "//third_party/abseil-cpp/absl/flags:parse", 614 "//third_party/abseil-cpp/absl/types:optional", 615 ] 616 } 617 618 rtc_library("video_pc_full_stack_tests") { 619 testonly = true 620 621 sources = [ "pc_full_stack_tests.cc" ] 622 deps = [ 623 "../api:create_network_emulation_manager", 624 "../api:create_peer_connection_quality_test_frame_generator", 625 "../api:create_peerconnection_quality_test_fixture", 626 "../api:frame_generator_api", 627 "../api:media_stream_interface", 628 "../api:network_emulation_manager_api", 629 "../api:peer_connection_quality_test_fixture_api", 630 "../api:simulated_network_api", 631 "../api:time_controller", 632 "../api/test/metrics:global_metrics_logger_and_exporter", 633 "../api/test/pclf:media_configuration", 634 "../api/test/pclf:media_quality_test_params", 635 "../api/test/pclf:peer_configurer", 636 "../api/video_codecs:video_codecs_api", 637 "../call:simulated_network", 638 "../modules/video_coding:webrtc_vp9", 639 "../system_wrappers:field_trial", 640 "../test:field_trial", 641 "../test:fileutils", 642 "../test:test_support", 643 "../test/pc/e2e:network_quality_metrics_reporter", 644 ] 645 } 646 647 rtc_library("video_loopback_lib") { 648 testonly = true 649 sources = [ 650 "video_loopback.cc", 651 "video_loopback.h", 652 ] 653 deps = [ 654 ":video_quality_test", 655 "../api:libjingle_peerconnection_api", 656 "../api:simulated_network_api", 657 "../api:video_quality_test_fixture_api", 658 "../api/transport:bitrate_settings", 659 "../api/video_codecs:video_codecs_api", 660 "../rtc_base:checks", 661 "../rtc_base:logging", 662 "../system_wrappers:field_trial", 663 "../test:field_trial", 664 "../test:run_test", 665 "../test:run_test_interface", 666 "../test:test_common", 667 "../test:test_renderer", 668 "../test:test_support", 669 "//testing/gtest", 670 ] 671 absl_deps = [ 672 "//third_party/abseil-cpp/absl/flags:flag", 673 "//third_party/abseil-cpp/absl/flags:parse", 674 "//third_party/abseil-cpp/absl/types:optional", 675 ] 676 } 677 678 if (is_mac) { 679 mac_app_bundle("video_loopback") { 680 testonly = true 681 sources = [ "video_loopback_main.mm" ] 682 info_plist = "../test/mac/Info.plist" 683 deps = [ ":video_loopback_lib" ] 684 } 685 } else { 686 rtc_executable("video_loopback") { 687 testonly = true 688 sources = [ "video_loopback_main.cc" ] 689 deps = [ ":video_loopback_lib" ] 690 } 691 } 692 693 rtc_executable("screenshare_loopback") { 694 testonly = true 695 sources = [ "screenshare_loopback.cc" ] 696 697 deps = [ 698 ":video_quality_test", 699 "../api:libjingle_peerconnection_api", 700 "../api:simulated_network_api", 701 "../api:video_quality_test_fixture_api", 702 "../api/transport:bitrate_settings", 703 "../api/video_codecs:video_codecs_api", 704 "../rtc_base:checks", 705 "../rtc_base:logging", 706 "../rtc_base:stringutils", 707 "../system_wrappers:field_trial", 708 "../test:field_trial", 709 "../test:run_test", 710 "../test:run_test_interface", 711 "../test:test_common", 712 "../test:test_renderer", 713 "../test:test_support", 714 "//third_party/abseil-cpp/absl/flags:flag", 715 "//third_party/abseil-cpp/absl/flags:parse", 716 "//third_party/abseil-cpp/absl/types:optional", 717 ] 718 } 719 720 rtc_executable("sv_loopback") { 721 testonly = true 722 sources = [ "sv_loopback.cc" ] 723 deps = [ 724 ":video_quality_test", 725 "../api:libjingle_peerconnection_api", 726 "../api:simulated_network_api", 727 "../api:video_quality_test_fixture_api", 728 "../api/transport:bitrate_settings", 729 "../api/video_codecs:video_codecs_api", 730 "../rtc_base:checks", 731 "../rtc_base:logging", 732 "../rtc_base:stringutils", 733 "../system_wrappers:field_trial", 734 "../test:field_trial", 735 "../test:run_test", 736 "../test:run_test_interface", 737 "../test:test_common", 738 "../test:test_renderer", 739 "../test:test_support", 740 "//testing/gtest", 741 "//third_party/abseil-cpp/absl/flags:flag", 742 "//third_party/abseil-cpp/absl/flags:parse", 743 "//third_party/abseil-cpp/absl/types:optional", 744 ] 745 } 746 } 747 748 # TODO(pbos): Rename test suite. 749 rtc_library("video_tests") { 750 testonly = true 751 752 defines = [] 753 sources = [ 754 "alignment_adjuster_unittest.cc", 755 "buffered_frame_decryptor_unittest.cc", 756 "call_stats2_unittest.cc", 757 "cpu_scaling_tests.cc", 758 "decode_synchronizer_unittest.cc", 759 "encoder_bitrate_adjuster_unittest.cc", 760 "encoder_overshoot_detector_unittest.cc", 761 "encoder_rtcp_feedback_unittest.cc", 762 "end_to_end_tests/bandwidth_tests.cc", 763 "end_to_end_tests/call_operation_tests.cc", 764 "end_to_end_tests/codec_tests.cc", 765 "end_to_end_tests/config_tests.cc", 766 "end_to_end_tests/extended_reports_tests.cc", 767 "end_to_end_tests/fec_tests.cc", 768 "end_to_end_tests/frame_encryption_tests.cc", 769 "end_to_end_tests/histogram_tests.cc", 770 "end_to_end_tests/multi_codec_receive_tests.cc", 771 "end_to_end_tests/multi_stream_tester.cc", 772 "end_to_end_tests/multi_stream_tester.h", 773 "end_to_end_tests/multi_stream_tests.cc", 774 "end_to_end_tests/network_state_tests.cc", 775 "end_to_end_tests/resolution_bitrate_limits_tests.cc", 776 "end_to_end_tests/retransmission_tests.cc", 777 "end_to_end_tests/rtp_rtcp_tests.cc", 778 "end_to_end_tests/ssrc_tests.cc", 779 "end_to_end_tests/stats_tests.cc", 780 "end_to_end_tests/transport_feedback_tests.cc", 781 "frame_cadence_adapter_unittest.cc", 782 "frame_decode_timing_unittest.cc", 783 "frame_encode_metadata_writer_unittest.cc", 784 "picture_id_tests.cc", 785 "quality_limitation_reason_tracker_unittest.cc", 786 "quality_scaling_tests.cc", 787 "quality_threshold_unittest.cc", 788 "receive_statistics_proxy2_unittest.cc", 789 "report_block_stats_unittest.cc", 790 "rtp_video_stream_receiver2_unittest.cc", 791 "rtp_video_stream_receiver_frame_transformer_delegate_unittest.cc", 792 "send_delay_stats_unittest.cc", 793 "send_statistics_proxy_unittest.cc", 794 "stats_counter_unittest.cc", 795 "stream_synchronization_unittest.cc", 796 "task_queue_frame_decode_scheduler_unittest.cc", 797 "unique_timestamp_counter_unittest.cc", 798 "video_receive_stream2_unittest.cc", 799 "video_receive_stream_timeout_tracker_unittest.cc", 800 "video_send_stream_impl_unittest.cc", 801 "video_send_stream_tests.cc", 802 "video_source_sink_controller_unittest.cc", 803 "video_stream_buffer_controller_unittest.cc", 804 "video_stream_decoder_impl_unittest.cc", 805 "video_stream_encoder_unittest.cc", 806 ] 807 deps = [ 808 ":decode_synchronizer", 809 ":frame_cadence_adapter", 810 ":frame_decode_scheduler", 811 ":frame_decode_timing", 812 ":task_queue_frame_decode_scheduler", 813 ":unique_timestamp_counter", 814 ":video", 815 ":video_mocks", 816 ":video_receive_stream_timeout_tracker", 817 ":video_stream_buffer_controller", 818 ":video_stream_decoder_impl", 819 ":video_stream_encoder_impl", 820 ":video_stream_encoder_interface", 821 "../api:create_frame_generator", 822 "../api:fake_frame_decryptor", 823 "../api:fake_frame_encryptor", 824 "../api:field_trials_view", 825 "../api:frame_generator_api", 826 "../api:libjingle_peerconnection_api", 827 "../api:mock_fec_controller_override", 828 "../api:mock_frame_decryptor", 829 "../api:mock_video_codec_factory", 830 "../api:mock_video_decoder", 831 "../api:mock_video_encoder", 832 "../api:rtp_headers", 833 "../api:rtp_parameters", 834 "../api:scoped_refptr", 835 "../api:sequence_checker", 836 "../api:simulated_network_api", 837 "../api:time_controller", 838 "../api:transport_api", 839 "../api/adaptation:resource_adaptation_api", 840 "../api/crypto:options", 841 "../api/metronome/test:fake_metronome", 842 "../api/rtc_event_log", 843 "../api/task_queue", 844 "../api/task_queue:default_task_queue_factory", 845 "../api/test/metrics:global_metrics_logger_and_exporter", 846 "../api/test/metrics:metric", 847 "../api/test/video:function_video_factory", 848 "../api/transport:field_trial_based_config", 849 "../api/units:data_rate", 850 "../api/units:frequency", 851 "../api/units:time_delta", 852 "../api/units:timestamp", 853 "../api/video:builtin_video_bitrate_allocator_factory", 854 "../api/video:encoded_image", 855 "../api/video:recordable_encoded_frame", 856 "../api/video:video_adaptation", 857 "../api/video:video_bitrate_allocation", 858 "../api/video:video_frame", 859 "../api/video:video_frame_type", 860 "../api/video:video_rtp_headers", 861 "../api/video/test:video_frame_matchers", 862 "../api/video_codecs:video_codecs_api", 863 "../api/video_codecs:vp8_temporal_layers_factory", 864 "../call:call_interfaces", 865 "../call:fake_network", 866 "../call:mock_bitrate_allocator", 867 "../call:mock_rtp_interfaces", 868 "../call:rtp_interfaces", 869 "../call:rtp_receiver", 870 "../call:rtp_sender", 871 "../call:simulated_network", 872 "../call:simulated_packet_receiver", 873 "../call:video_stream_api", 874 "../call/adaptation:resource_adaptation", 875 "../call/adaptation:resource_adaptation_test_utilities", 876 "../common_video", 877 "../common_video/test:utilities", 878 "../media:rtc_audio_video", 879 "../media:rtc_internal_video_codecs", 880 "../media:rtc_media", 881 "../media:rtc_media_base", 882 "../media:rtc_media_tests_utils", 883 "../media:rtc_simulcast_encoder_adapter", 884 "../modules:module_api_public", 885 "../modules/pacing", 886 "../modules/rtp_rtcp", 887 "../modules/rtp_rtcp:mock_rtp_rtcp", 888 "../modules/rtp_rtcp:rtp_rtcp_format", 889 "../modules/utility:utility", 890 "../modules/video_coding", 891 "../modules/video_coding:codec_globals_headers", 892 "../modules/video_coding:encoded_frame", 893 "../modules/video_coding:packet_buffer", 894 "../modules/video_coding:video_codec_interface", 895 "../modules/video_coding:video_coding_utility", 896 "../modules/video_coding:webrtc_h264", 897 "../modules/video_coding:webrtc_multiplex", 898 "../modules/video_coding:webrtc_vp8", 899 "../modules/video_coding:webrtc_vp9", 900 "../modules/video_coding:webrtc_vp9_helpers", 901 "../modules/video_coding/codecs/av1:libaom_av1_encoder", 902 "../modules/video_coding/svc:scalability_mode_util", 903 "../modules/video_coding/svc:scalability_structures", 904 "../modules/video_coding/svc:scalable_video_controller", 905 "../modules/video_coding/timing:timing_module", 906 "../rtc_base", 907 "../rtc_base:byte_buffer", 908 "../rtc_base:checks", 909 "../rtc_base:gunit_helpers", 910 "../rtc_base:logging", 911 "../rtc_base:macromagic", 912 "../rtc_base:platform_thread", 913 "../rtc_base:rate_limiter", 914 "../rtc_base:rate_statistics", 915 "../rtc_base:refcount", 916 "../rtc_base:rtc_base_tests_utils", 917 "../rtc_base:rtc_event", 918 "../rtc_base:rtc_numerics", 919 "../rtc_base:rtc_task_queue", 920 "../rtc_base:safe_conversions", 921 "../rtc_base:stringutils", 922 "../rtc_base:task_queue_for_test", 923 "../rtc_base:threading", 924 "../rtc_base:timeutils", 925 "../rtc_base/containers:flat_map", 926 "../rtc_base/experiments:alr_experiment", 927 "../rtc_base/experiments:encoder_info_settings", 928 "../rtc_base/synchronization:mutex", 929 "../system_wrappers", 930 "../system_wrappers:field_trial", 931 "../system_wrappers:metrics", 932 "../test:direct_transport", 933 "../test:encoder_settings", 934 "../test:fake_encoded_frame", 935 "../test:fake_video_codecs", 936 "../test:field_trial", 937 "../test:fileutils", 938 "../test:frame_utils", 939 "../test:mock_frame_transformer", 940 "../test:mock_transport", 941 "../test:null_transport", 942 "../test:rtp_test_utils", 943 "../test:run_loop", 944 "../test:scoped_key_value_config", 945 "../test:test_common", 946 "../test:test_support", 947 "../test:video_test_common", 948 "../test/time_controller", 949 "adaptation:video_adaptation", 950 "config:encoder_config", 951 "config:streams_config", 952 "config:video_config_tests", 953 ] 954 absl_deps = [ 955 "//third_party/abseil-cpp/absl/algorithm:container", 956 "//third_party/abseil-cpp/absl/functional:any_invocable", 957 "//third_party/abseil-cpp/absl/functional:bind_front", 958 "//third_party/abseil-cpp/absl/memory", 959 "//third_party/abseil-cpp/absl/strings", 960 "//third_party/abseil-cpp/absl/types:optional", 961 "//third_party/abseil-cpp/absl/types:variant", 962 ] 963 if (!build_with_mozilla) { 964 deps += [ "../media:rtc_media_base" ] 965 } 966 } 967} 968