diff --git a/api/BUILD.gn b/api/BUILD.gn index 5874b953b9..c661dc56ad 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn @@ -576,7 +576,6 @@ rtc_source_set("peer_connection_quality_test_fixture_api") { "../rtc_base:stringutils", "../rtc_base:threading", "../test:fileutils", - "../test/pc/e2e:video_dumping", "audio:audio_mixer_api", "rtc_event_log", "task_queue", diff --git a/api/test/pclf/BUILD.gn b/api/test/pclf/BUILD.gn index 17cd758ea4..a50744e92b 100644 --- a/api/test/pclf/BUILD.gn +++ b/api/test/pclf/BUILD.gn @@ -40,7 +40,7 @@ rtc_source_set("media_configuration") { "../../../rtc_base:threading", "../../../test:fileutils", "../../../test:video_test_support", - "../../../test/pc/e2e:video_dumping", + "../../../test/pc/e2e/analyzer/video:video_dumping", "../../audio:audio_mixer_api", "../../rtc_event_log", "../../task_queue", diff --git a/pc/BUILD.gn b/pc/BUILD.gn index 7395072e5d..053f4e62b0 100644 --- a/pc/BUILD.gn +++ b/pc/BUILD.gn @@ -2742,8 +2742,8 @@ if (rtc_include_tests && !build_with_chromium) { "../test:fileutils", "../test:test_main", "../test:test_support", - "../test/pc/e2e:default_video_quality_analyzer", "../test/pc/e2e:network_quality_metrics_reporter", + "../test/pc/e2e/analyzer/video:default_video_quality_analyzer", ] if (is_ios) { diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn index ea4014d6e5..e73c0aa0d7 100644 --- a/test/pc/e2e/BUILD.gn +++ b/test/pc/e2e/BUILD.gn @@ -8,40 +8,20 @@ import("../../../webrtc.gni") -rtc_library("video_dumping") { +rtc_library("metric_metadata_keys") { testonly = true - sources = [ - "analyzer/video/video_dumping.cc", - "analyzer/video/video_dumping.h", - ] - deps = [ - "../..:video_test_support", - "../../../api/test/video:video_frame_writer", - "../../../api/video:video_frame", - "../../../rtc_base:checks", - "../../../rtc_base:logging", - "../../../system_wrappers", - ] - absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] + sources = [ "metric_metadata_keys.h" ] } if (!build_with_chromium) { group("e2e") { testonly = true - deps = [ - ":encoded_image_data_injector_api", - ":example_video_quality_analyzer", - ":quality_analyzing_video_decoder", - ":quality_analyzing_video_encoder", - ":single_process_encoded_image_data_injector", - ":video_frame_tracking_id_injector", - ] + deps = [ ":metric_metadata_keys" ] if (rtc_include_tests) { deps += [ ":peerconnection_quality_test", ":test_peer", - ":video_quality_analyzer_injection_helper", ] } } @@ -51,237 +31,15 @@ if (!build_with_chromium) { testonly = true deps = [ - ":analyzing_video_sink_test", - ":analyzing_video_sinks_helper_test", - ":default_video_quality_analyzer_frames_comparator_test", - ":default_video_quality_analyzer_metric_names_test", - ":default_video_quality_analyzer_stream_state_test", - ":default_video_quality_analyzer_test", - ":multi_reader_queue_test", - ":names_collection_test", ":peer_connection_e2e_smoke_test", ":peer_connection_quality_test_metric_names_test", ":peer_connection_quality_test_test", - ":simulcast_dummy_buffer_helper_test", - ":single_process_encoded_image_data_injector_unittest", ":stats_poller_test", - ":video_dumping_test", - ":video_frame_tracking_id_injector_unittest", ] } } - rtc_library("encoded_image_data_injector_api") { - testonly = true - sources = [ "analyzer/video/encoded_image_data_injector.h" ] - - deps = [ "../../../api/video:encoded_image" ] - absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] - } - - rtc_library("single_process_encoded_image_data_injector") { - testonly = true - sources = [ - "analyzer/video/single_process_encoded_image_data_injector.cc", - "analyzer/video/single_process_encoded_image_data_injector.h", - ] - - deps = [ - ":encoded_image_data_injector_api", - "../../../api/video:encoded_image", - "../../../rtc_base:checks", - "../../../rtc_base:criticalsection", - "../../../rtc_base/synchronization:mutex", - ] - absl_deps = [ "//third_party/abseil-cpp/absl/memory" ] - } - - rtc_library("video_frame_tracking_id_injector") { - testonly = true - sources = [ - "analyzer/video/video_frame_tracking_id_injector.cc", - "analyzer/video/video_frame_tracking_id_injector.h", - ] - - deps = [ - ":encoded_image_data_injector_api", - "../../../api/video:encoded_image", - "../../../rtc_base:checks", - ] - absl_deps = [ "//third_party/abseil-cpp/absl/memory" ] - } - - rtc_library("simulcast_dummy_buffer_helper") { - testonly = true - sources = [ - "analyzer/video/simulcast_dummy_buffer_helper.cc", - "analyzer/video/simulcast_dummy_buffer_helper.h", - ] - deps = [ "../../../api/video:video_frame" ] - } - - rtc_library("simulcast_dummy_buffer_helper_test") { - testonly = true - sources = [ "analyzer/video/simulcast_dummy_buffer_helper_test.cc" ] - deps = [ - ":simulcast_dummy_buffer_helper", - "../..:test_support", - "../../../api/video:video_frame", - "../../../rtc_base:random", - ] - } - - rtc_library("quality_analyzing_video_decoder") { - testonly = true - sources = [ - "analyzer/video/quality_analyzing_video_decoder.cc", - "analyzer/video/quality_analyzing_video_decoder.h", - ] - deps = [ - ":encoded_image_data_injector_api", - ":simulcast_dummy_buffer_helper", - "../../../api:video_quality_analyzer_api", - "../../../api/video:encoded_image", - "../../../api/video:video_frame", - "../../../api/video:video_rtp_headers", - "../../../api/video_codecs:video_codecs_api", - "../../../modules/video_coding:video_codec_interface", - "../../../rtc_base:criticalsection", - "../../../rtc_base:logging", - "../../../rtc_base/synchronization:mutex", - ] - absl_deps = [ - "//third_party/abseil-cpp/absl/strings", - "//third_party/abseil-cpp/absl/types:optional", - ] - } - - rtc_library("quality_analyzing_video_encoder") { - testonly = true - sources = [ - "analyzer/video/quality_analyzing_video_encoder.cc", - "analyzer/video/quality_analyzing_video_encoder.h", - ] - deps = [ - ":encoded_image_data_injector_api", - "../../../api:video_quality_analyzer_api", - "../../../api/test/pclf:media_configuration", - "../../../api/video:encoded_image", - "../../../api/video:video_frame", - "../../../api/video:video_rtp_headers", - "../../../api/video_codecs:video_codecs_api", - "../../../modules/video_coding:video_codec_interface", - "../../../modules/video_coding/svc:scalability_mode_util", - "../../../rtc_base:criticalsection", - "../../../rtc_base:logging", - "../../../rtc_base/synchronization:mutex", - ] - absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] - } - if (rtc_include_tests) { - rtc_library("video_dumping_test") { - testonly = true - sources = [ "analyzer/video/video_dumping_test.cc" ] - deps = [ - ":video_dumping", - "../..:fileutils", - "../..:test_support", - "../..:video_test_support", - "../../../api:scoped_refptr", - "../../../api/video:video_frame", - "../../../rtc_base:random", - ] - absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] - } - - rtc_library("analyzing_video_sinks_helper") { - testonly = true - sources = [ - "analyzer/video/analyzing_video_sinks_helper.cc", - "analyzer/video/analyzing_video_sinks_helper.h", - ] - deps = [ - "../../../api/test/pclf:media_configuration", - "../../../api/test/video:video_frame_writer", - "../../../rtc_base:macromagic", - "../../../rtc_base/synchronization:mutex", - ] - absl_deps = [ - "//third_party/abseil-cpp/absl/strings", - "//third_party/abseil-cpp/absl/types:optional", - ] - } - - rtc_library("analyzing_video_sink") { - testonly = true - sources = [ - "analyzer/video/analyzing_video_sink.cc", - "analyzer/video/analyzing_video_sink.h", - ] - deps = [ - ":analyzing_video_sinks_helper", - ":simulcast_dummy_buffer_helper", - ":video_dumping", - "../..:fixed_fps_video_frame_writer_adapter", - "../..:test_renderer", - "../../../api:video_quality_analyzer_api", - "../../../api/numerics", - "../../../api/test/pclf:media_configuration", - "../../../api/test/video:video_frame_writer", - "../../../api/units:timestamp", - "../../../api/video:video_frame", - "../../../rtc_base:checks", - "../../../rtc_base:logging", - "../../../rtc_base:macromagic", - "../../../rtc_base/synchronization:mutex", - "../../../system_wrappers", - ] - absl_deps = [ - "//third_party/abseil-cpp/absl/memory:memory", - "//third_party/abseil-cpp/absl/strings", - "//third_party/abseil-cpp/absl/types:optional", - ] - } - - rtc_library("video_quality_analyzer_injection_helper") { - testonly = true - sources = [ - "analyzer/video/video_quality_analyzer_injection_helper.cc", - "analyzer/video/video_quality_analyzer_injection_helper.h", - ] - deps = [ - ":analyzing_video_sink", - ":analyzing_video_sinks_helper", - ":encoded_image_data_injector_api", - ":quality_analyzing_video_decoder", - ":quality_analyzing_video_encoder", - ":simulcast_dummy_buffer_helper", - ":video_dumping", - "../..:fixed_fps_video_frame_writer_adapter", - "../..:test_renderer", - "../../../api:array_view", - "../../../api:stats_observer_interface", - "../../../api:video_quality_analyzer_api", - "../../../api/test/pclf:media_configuration", - "../../../api/video:video_frame", - "../../../api/video:video_rtp_headers", - "../../../api/video_codecs:video_codecs_api", - "../../../rtc_base:checks", - "../../../rtc_base:criticalsection", - "../../../rtc_base:logging", - "../../../rtc_base:stringutils", - "../../../rtc_base/synchronization:mutex", - "../../../system_wrappers", - "../../../test:video_test_common", - "../../../test:video_test_support", - ] - absl_deps = [ - "//third_party/abseil-cpp/absl/memory", - "//third_party/abseil-cpp/absl/strings", - ] - } - rtc_library("echo_emulation") { testonly = true sources = [ @@ -333,9 +91,7 @@ if (!build_with_chromium) { ] deps = [ ":echo_emulation", - ":quality_analyzing_video_encoder", ":test_peer", - ":video_quality_analyzer_injection_helper", "../..:copy_to_file_audio_capturer", "../../../api:create_time_controller", "../../../api:time_controller", @@ -354,6 +110,8 @@ if (!build_with_chromium) { "../../../p2p:rtc_p2p", "../../../rtc_base:rtc_task_queue", "../../../rtc_base:threading", + "analyzer/video:quality_analyzing_video_encoder", + "analyzer/video:video_quality_analyzer_injection_helper", ] absl_deps = [ "//third_party/abseil-cpp/absl/memory", @@ -370,7 +128,6 @@ if (!build_with_chromium) { ] deps = [ ":test_peer", - ":video_quality_analyzer_injection_helper", "../..:fileutils", "../..:platform_video_capturer", "../..:video_test_common", @@ -382,6 +139,7 @@ if (!build_with_chromium) { "../../../api/video:video_frame", "../../../pc:session_description", "../../../pc:video_track_source", + "analyzer/video:video_quality_analyzer_injection_helper", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:variant" ] } @@ -441,19 +199,14 @@ if (!build_with_chromium) { ":analyzer_helper", ":cross_media_metrics_reporter", ":default_audio_quality_analyzer", - ":default_video_quality_analyzer", ":media_helper", ":metric_metadata_keys", ":peer_params_preprocessor", ":sdp_changer", - ":single_process_encoded_image_data_injector", ":stats_poller", ":test_activities_executor", ":test_peer", ":test_peer_factory", - ":video_frame_tracking_id_injector", - ":video_quality_analyzer_injection_helper", - ":video_quality_metrics_reporter", "../..:field_trial", "../..:fileutils", "../..:perf_test", @@ -486,73 +239,15 @@ if (!build_with_chromium) { "../../../rtc_base/synchronization:mutex", "../../../system_wrappers", "../../../system_wrappers:field_trial", + "analyzer/video:default_video_quality_analyzer", + "analyzer/video:single_process_encoded_image_data_injector", + "analyzer/video:video_frame_tracking_id_injector", + "analyzer/video:video_quality_analyzer_injection_helper", + "analyzer/video:video_quality_metrics_reporter", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] } - rtc_library("single_process_encoded_image_data_injector_unittest") { - testonly = true - sources = [ - "analyzer/video/single_process_encoded_image_data_injector_unittest.cc", - ] - deps = [ - ":single_process_encoded_image_data_injector", - "../../../api/video:encoded_image", - "../../../rtc_base:buffer", - "../../../test:test_support", - ] - } - - rtc_library("video_frame_tracking_id_injector_unittest") { - testonly = true - sources = - [ "analyzer/video/video_frame_tracking_id_injector_unittest.cc" ] - deps = [ - ":video_frame_tracking_id_injector", - "../../../api/video:encoded_image", - "../../../rtc_base:buffer", - "../../../test:test_support", - ] - } - - rtc_library("analyzing_video_sinks_helper_test") { - testonly = true - sources = [ "analyzer/video/analyzing_video_sinks_helper_test.cc" ] - deps = [ - ":analyzing_video_sinks_helper", - "../..:test_support", - "../../../api/test/pclf:media_configuration", - ] - absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] - } - - rtc_library("analyzing_video_sink_test") { - testonly = true - sources = [ "analyzer/video/analyzing_video_sink_test.cc" ] - deps = [ - ":analyzing_video_sink", - ":example_video_quality_analyzer", - "../..:fileutils", - "../..:test_support", - "../..:video_test_support", - "../../../api:create_frame_generator", - "../../../api:frame_generator_api", - "../../../api:scoped_refptr", - "../../../api/test/pclf:media_configuration", - "../../../api/units:time_delta", - "../../../api/units:timestamp", - "../../../api/video:video_frame", - "../../../common_video", - "../../../rtc_base:timeutils", - "../../../system_wrappers", - "../../time_controller", - ] - absl_deps = [ - "//third_party/abseil-cpp/absl/strings", - "//third_party/abseil-cpp/absl/types:optional", - ] - } - peer_connection_e2e_smoke_test_resources = [ "../../../resources/pc_quality_smoke_test_alice_source.wav", "../../../resources/pc_quality_smoke_test_bob_source.wav", @@ -571,8 +266,6 @@ if (!build_with_chromium) { sources = [ "peer_connection_e2e_smoke_test.cc" ] deps = [ ":default_audio_quality_analyzer", - ":default_video_quality_analyzer", - ":default_video_quality_analyzer_shared", ":network_quality_metrics_reporter", ":stats_based_network_quality_metrics_reporter", "../../../api:callfactory_api", @@ -607,6 +300,8 @@ if (!build_with_chromium) { "../../../test:field_trial", "../../../test:fileutils", "../../../test:test_support", + "analyzer/video:default_video_quality_analyzer", + "analyzer/video:default_video_quality_analyzer_shared", ] data = peer_connection_e2e_smoke_test_resources if (is_mac || is_ios) { @@ -691,99 +386,6 @@ if (!build_with_chromium) { "../../../api:rtc_stats_api", ] } - - rtc_library("default_video_quality_analyzer_test") { - testonly = true - sources = [ "analyzer/video/default_video_quality_analyzer_test.cc" ] - deps = [ - ":default_video_quality_analyzer", - ":default_video_quality_analyzer_shared", - "../..:test_support", - "../../../api:create_frame_generator", - "../../../api:rtp_packet_info", - "../../../api/test/metrics:global_metrics_logger_and_exporter", - "../../../api/video:encoded_image", - "../../../api/video:video_frame", - "../../../common_video", - "../../../modules/rtp_rtcp:rtp_rtcp_format", - "../../../rtc_base:stringutils", - "../../../rtc_tools:video_quality_analysis", - "../../../system_wrappers", - ] - } - - rtc_library("default_video_quality_analyzer_metric_names_test") { - testonly = true - sources = [ - "analyzer/video/default_video_quality_analyzer_metric_names_test.cc", - ] - deps = [ - ":default_video_quality_analyzer", - ":default_video_quality_analyzer_shared", - "../..:test_support", - "../../../api:create_frame_generator", - "../../../api:rtp_packet_info", - "../../../api/test/metrics:metric", - "../../../api/test/metrics:metrics_logger", - "../../../api/test/metrics:stdout_metrics_exporter", - "../../../api/video:encoded_image", - "../../../api/video:video_frame", - "../../../common_video", - "../../../rtc_base:stringutils", - "../../../rtc_tools:video_quality_analysis", - "../../../system_wrappers", - ] - } - - rtc_library("default_video_quality_analyzer_frames_comparator_test") { - testonly = true - sources = [ "analyzer/video/default_video_quality_analyzer_frames_comparator_test.cc" ] - deps = [ - ":default_video_quality_analyzer_internal", - ":default_video_quality_analyzer_shared", - "../..:test_support", - "../../../api:create_frame_generator", - "../../../api/units:timestamp", - "../../../rtc_base:stringutils", - "../../../system_wrappers", - ] - } - - rtc_library("names_collection_test") { - testonly = true - sources = [ "analyzer/video/names_collection_test.cc" ] - deps = [ - ":default_video_quality_analyzer_internal", - "../..:test_support", - ] - absl_deps = [ - "//third_party/abseil-cpp/absl/strings:strings", - "//third_party/abseil-cpp/absl/types:optional", - ] - } - - rtc_library("multi_reader_queue_test") { - testonly = true - sources = [ "analyzer/video/multi_reader_queue_test.cc" ] - deps = [ - ":multi_reader_queue", - "../../../test:test_support", - ] - absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] - } - - rtc_library("default_video_quality_analyzer_stream_state_test") { - testonly = true - sources = [ - "analyzer/video/default_video_quality_analyzer_stream_state_test.cc", - ] - deps = [ - ":default_video_quality_analyzer_internal", - "../../../api/units:timestamp", - "../../../test:test_support", - ] - absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] - } } rtc_library("analyzer_helper") { @@ -830,158 +432,6 @@ if (!build_with_chromium) { absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] } - rtc_library("example_video_quality_analyzer") { - testonly = true - sources = [ - "analyzer/video/example_video_quality_analyzer.cc", - "analyzer/video/example_video_quality_analyzer.h", - ] - - deps = [ - "../../../api:array_view", - "../../../api:video_quality_analyzer_api", - "../../../api/video:encoded_image", - "../../../api/video:video_frame", - "../../../api/video:video_rtp_headers", - "../../../rtc_base:criticalsection", - "../../../rtc_base:logging", - "../../../rtc_base/synchronization:mutex", - ] - } - - rtc_library("video_quality_metrics_reporter") { - testonly = true - sources = [ - "analyzer/video/video_quality_metrics_reporter.cc", - "analyzer/video/video_quality_metrics_reporter.h", - ] - deps = [ - ":metric_metadata_keys", - "../..:perf_test", - "../../../api:peer_connection_quality_test_fixture_api", - "../../../api:rtc_stats_api", - "../../../api:track_id_stream_info_map", - "../../../api/numerics", - "../../../api/test/metrics:metric", - "../../../api/test/metrics:metrics_logger", - "../../../api/units:data_rate", - "../../../api/units:data_size", - "../../../api/units:time_delta", - "../../../api/units:timestamp", - "../../../rtc_base:checks", - "../../../rtc_base:criticalsection", - "../../../rtc_base:rtc_numerics", - "../../../rtc_base/synchronization:mutex", - ] - absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] - } - - rtc_library("metric_metadata_keys") { - testonly = true - sources = [ "metric_metadata_keys.h" ] - } - - rtc_library("default_video_quality_analyzer") { - testonly = true - sources = [ - "analyzer/video/default_video_quality_analyzer.cc", - "analyzer/video/default_video_quality_analyzer.h", - ] - - deps = [ - ":default_video_quality_analyzer_internal", - ":default_video_quality_analyzer_shared", - ":metric_metadata_keys", - "../../../api:array_view", - "../../../api:video_quality_analyzer_api", - "../../../api/numerics", - "../../../api/test/metrics:metric", - "../../../api/test/metrics:metrics_logger", - "../../../api/units:data_size", - "../../../api/units:time_delta", - "../../../api/units:timestamp", - "../../../api/video:encoded_image", - "../../../api/video:video_frame", - "../../../rtc_base:checks", - "../../../rtc_base:logging", - "../../../rtc_base:macromagic", - "../../../rtc_base:stringutils", - "../../../rtc_base/synchronization:mutex", - "../../../system_wrappers", - ] - absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] - } - - # This target contains implementation details of DefaultVideoQualityAnalyzer, - # so headers exported by it shouldn't be used in other places. - rtc_library("default_video_quality_analyzer_internal") { - visibility = [ - ":default_video_quality_analyzer", - ":default_video_quality_analyzer_frames_comparator_test", - ":default_video_quality_analyzer_stream_state_test", - ":names_collection_test", - ] - - testonly = true - sources = [ - "analyzer/video/default_video_quality_analyzer_cpu_measurer.cc", - "analyzer/video/default_video_quality_analyzer_cpu_measurer.h", - "analyzer/video/default_video_quality_analyzer_frame_in_flight.cc", - "analyzer/video/default_video_quality_analyzer_frame_in_flight.h", - "analyzer/video/default_video_quality_analyzer_frames_comparator.cc", - "analyzer/video/default_video_quality_analyzer_frames_comparator.h", - "analyzer/video/default_video_quality_analyzer_internal_shared_objects.cc", - "analyzer/video/default_video_quality_analyzer_internal_shared_objects.h", - "analyzer/video/default_video_quality_analyzer_stream_state.cc", - "analyzer/video/default_video_quality_analyzer_stream_state.h", - "analyzer/video/names_collection.cc", - "analyzer/video/names_collection.h", - ] - - deps = [ - ":default_video_quality_analyzer_shared", - ":metric_metadata_keys", - ":multi_reader_queue", - "../../../api:array_view", - "../../../api:scoped_refptr", - "../../../api/numerics:numerics", - "../../../api/units:data_size", - "../../../api/units:timestamp", - "../../../api/video:video_frame", - "../../../api/video:video_frame_type", - "../../../common_video", - "../../../rtc_base:checks", - "../../../rtc_base:platform_thread", - "../../../rtc_base:rtc_base_tests_utils", - "../../../rtc_base:rtc_event", - "../../../rtc_base:stringutils", - "../../../rtc_base:timeutils", - "../../../rtc_base/synchronization:mutex", - "../../../rtc_tools:video_quality_analysis", - "../../../system_wrappers:system_wrappers", - ] - absl_deps = [ - "//third_party/abseil-cpp/absl/strings:strings", - "//third_party/abseil-cpp/absl/types:optional", - ] - } - - rtc_library("default_video_quality_analyzer_shared") { - testonly = true - sources = [ - "analyzer/video/default_video_quality_analyzer_shared_objects.cc", - "analyzer/video/default_video_quality_analyzer_shared_objects.h", - ] - - deps = [ - "../../../api/numerics:numerics", - "../../../api/units:timestamp", - "../../../rtc_base:checks", - "../../../rtc_base:stringutils", - ] - absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] - } - rtc_library("network_quality_metrics_reporter") { testonly = true sources = [ @@ -1092,11 +542,4 @@ if (!build_with_chromium) { "//third_party/abseil-cpp/absl/types:optional", ] } - - rtc_library("multi_reader_queue") { - testonly = true - sources = [ "analyzer/video/multi_reader_queue.h" ] - deps = [ "../../../rtc_base:checks" ] - absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] - } } diff --git a/test/pc/e2e/analyzer/video/BUILD.gn b/test/pc/e2e/analyzer/video/BUILD.gn new file mode 100644 index 0000000000..47a3721ea2 --- /dev/null +++ b/test/pc/e2e/analyzer/video/BUILD.gn @@ -0,0 +1,572 @@ +# Copyright (c) 2022 The WebRTC project authors. All Rights Reserved. +# +# Use of this source code is governed by a BSD-style license +# that can be found in the LICENSE file in the root of the source +# tree. An additional intellectual property rights grant can be found +# in the file PATENTS. All contributing project authors may +# be found in the AUTHORS file in the root of the source tree. + +import("../../../../../webrtc.gni") + +if (!build_with_chromium) { + group("video_analyzer") { + testonly = true + + deps = [ + ":analyzing_video_sinks_helper", + ":default_video_quality_analyzer_internal", + ":encoded_image_data_injector_api", + ":example_video_quality_analyzer", + ":multi_reader_queue", + ":quality_analyzing_video_decoder", + ":quality_analyzing_video_encoder", + ":simulcast_dummy_buffer_helper", + ":single_process_encoded_image_data_injector", + ":video_dumping", + ":video_frame_tracking_id_injector", + ":video_quality_metrics_reporter", + ] + if (rtc_include_tests) { + deps += [ + ":analyzing_video_sink", + ":video_quality_analyzer_injection_helper", + ] + } + } + + if (rtc_include_tests) { + group("video_analyzer_unittests") { + testonly = true + + deps = [ + ":analyzing_video_sink_test", + ":analyzing_video_sinks_helper_test", + ":default_video_quality_analyzer_frames_comparator_test", + ":default_video_quality_analyzer_metric_names_test", + ":default_video_quality_analyzer_stream_state_test", + ":default_video_quality_analyzer_test", + ":multi_reader_queue_test", + ":names_collection_test", + ":simulcast_dummy_buffer_helper_test", + ":single_process_encoded_image_data_injector_unittest", + ":video_dumping_test", + ":video_frame_tracking_id_injector_unittest", + ] + } + } +} + +rtc_library("video_dumping") { + testonly = true + sources = [ + "video_dumping.cc", + "video_dumping.h", + ] + deps = [ + "../../../..:video_test_support", + "../../../../../api/test/video:video_frame_writer", + "../../../../../api/video:video_frame", + "../../../../../rtc_base:logging", + "../../../../../system_wrappers", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] +} + +rtc_library("encoded_image_data_injector_api") { + testonly = true + sources = [ "encoded_image_data_injector.h" ] + + deps = [ "../../../../../api/video:encoded_image" ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_library("single_process_encoded_image_data_injector") { + testonly = true + sources = [ + "single_process_encoded_image_data_injector.cc", + "single_process_encoded_image_data_injector.h", + ] + + deps = [ + ":encoded_image_data_injector_api", + "../../../../../api/video:encoded_image", + "../../../../../rtc_base:checks", + "../../../../../rtc_base/synchronization:mutex", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/memory" ] +} + +rtc_library("video_frame_tracking_id_injector") { + testonly = true + sources = [ + "video_frame_tracking_id_injector.cc", + "video_frame_tracking_id_injector.h", + ] + + deps = [ + ":encoded_image_data_injector_api", + "../../../../../api/video:encoded_image", + "../../../../../rtc_base:checks", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/memory" ] +} + +rtc_library("simulcast_dummy_buffer_helper") { + testonly = true + sources = [ + "simulcast_dummy_buffer_helper.cc", + "simulcast_dummy_buffer_helper.h", + ] + deps = [ "../../../../../api/video:video_frame" ] +} + +rtc_library("quality_analyzing_video_decoder") { + testonly = true + sources = [ + "quality_analyzing_video_decoder.cc", + "quality_analyzing_video_decoder.h", + ] + deps = [ + ":encoded_image_data_injector_api", + ":simulcast_dummy_buffer_helper", + "../../../../../api:video_quality_analyzer_api", + "../../../../../api/video:encoded_image", + "../../../../../api/video:video_frame", + "../../../../../api/video_codecs:video_codecs_api", + "../../../../../modules/video_coding:video_codec_interface", + "../../../../../rtc_base:logging", + "../../../../../rtc_base/synchronization:mutex", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("quality_analyzing_video_encoder") { + testonly = true + sources = [ + "quality_analyzing_video_encoder.cc", + "quality_analyzing_video_encoder.h", + ] + deps = [ + ":encoded_image_data_injector_api", + "../../../../../api:video_quality_analyzer_api", + "../../../../../api/test/pclf:media_configuration", + "../../../../../api/video:video_frame", + "../../../../../api/video_codecs:video_codecs_api", + "../../../../../modules/video_coding:video_codec_interface", + "../../../../../modules/video_coding/svc:scalability_mode_util", + "../../../../../rtc_base:logging", + "../../../../../rtc_base/synchronization:mutex", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] +} + +rtc_library("analyzing_video_sinks_helper") { + testonly = true + sources = [ + "analyzing_video_sinks_helper.cc", + "analyzing_video_sinks_helper.h", + ] + deps = [ + "../../../../../api/test/pclf:media_configuration", + "../../../../../api/test/video:video_frame_writer", + "../../../../../rtc_base:macromagic", + "../../../../../rtc_base/synchronization:mutex", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("example_video_quality_analyzer") { + testonly = true + sources = [ + "example_video_quality_analyzer.cc", + "example_video_quality_analyzer.h", + ] + + deps = [ + "../../../../../api:array_view", + "../../../../../api:video_quality_analyzer_api", + "../../../../../api/video:encoded_image", + "../../../../../api/video:video_frame", + "../../../../../rtc_base:logging", + "../../../../../rtc_base/synchronization:mutex", + ] +} + +# This target contains implementation details of DefaultVideoQualityAnalyzer, +# so headers exported by it shouldn't be used in other places. +rtc_library("default_video_quality_analyzer_internal") { + visibility = [ + ":default_video_quality_analyzer", + ":default_video_quality_analyzer_frames_comparator_test", + ":default_video_quality_analyzer_stream_state_test", + ":names_collection_test", + ":video_analyzer", + ] + + testonly = true + sources = [ + "default_video_quality_analyzer_cpu_measurer.cc", + "default_video_quality_analyzer_cpu_measurer.h", + "default_video_quality_analyzer_frame_in_flight.cc", + "default_video_quality_analyzer_frame_in_flight.h", + "default_video_quality_analyzer_frames_comparator.cc", + "default_video_quality_analyzer_frames_comparator.h", + "default_video_quality_analyzer_internal_shared_objects.cc", + "default_video_quality_analyzer_internal_shared_objects.h", + "default_video_quality_analyzer_stream_state.cc", + "default_video_quality_analyzer_stream_state.h", + "names_collection.cc", + "names_collection.h", + ] + + deps = [ + ":default_video_quality_analyzer_shared", + ":multi_reader_queue", + "../..:metric_metadata_keys", + "../../../../../api:array_view", + "../../../../../api:scoped_refptr", + "../../../../../api/units:data_size", + "../../../../../api/units:timestamp", + "../../../../../api/video:video_frame", + "../../../../../api/video:video_frame_type", + "../../../../../common_video", + "../../../../../rtc_base:checks", + "../../../../../rtc_base:platform_thread", + "../../../../../rtc_base:rtc_base_tests_utils", + "../../../../../rtc_base:rtc_event", + "../../../../../rtc_base:stringutils", + "../../../../../rtc_base:timeutils", + "../../../../../rtc_base/synchronization:mutex", + "../../../../../rtc_tools:video_quality_analysis", + "../../../../../system_wrappers", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("multi_reader_queue") { + testonly = true + sources = [ "multi_reader_queue.h" ] + deps = [ "../../../../../rtc_base:checks" ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_library("video_quality_metrics_reporter") { + testonly = true + sources = [ + "video_quality_metrics_reporter.cc", + "video_quality_metrics_reporter.h", + ] + deps = [ + "../..:metric_metadata_keys", + "../../../../../api:peer_connection_quality_test_fixture_api", + "../../../../../api:rtc_stats_api", + "../../../../../api:track_id_stream_info_map", + "../../../../../api/numerics", + "../../../../../api/test/metrics:metric", + "../../../../../api/test/metrics:metrics_logger", + "../../../../../api/units:data_rate", + "../../../../../api/units:data_size", + "../../../../../api/units:time_delta", + "../../../../../api/units:timestamp", + "../../../../../rtc_base:checks", + "../../../../../rtc_base/synchronization:mutex", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] +} + +rtc_library("default_video_quality_analyzer") { + testonly = true + sources = [ + "default_video_quality_analyzer.cc", + "default_video_quality_analyzer.h", + ] + + deps = [ + ":default_video_quality_analyzer_internal", + ":default_video_quality_analyzer_shared", + "../..:metric_metadata_keys", + "../../../../../api:array_view", + "../../../../../api:video_quality_analyzer_api", + "../../../../../api/numerics", + "../../../../../api/test/metrics:metric", + "../../../../../api/test/metrics:metrics_logger", + "../../../../../api/units:data_size", + "../../../../../api/units:time_delta", + "../../../../../api/units:timestamp", + "../../../../../api/video:encoded_image", + "../../../../../api/video:video_frame", + "../../../../../rtc_base:checks", + "../../../../../rtc_base:logging", + "../../../../../rtc_base:macromagic", + "../../../../../rtc_base:stringutils", + "../../../../../rtc_base/synchronization:mutex", + "../../../../../system_wrappers", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_library("default_video_quality_analyzer_shared") { + testonly = true + sources = [ + "default_video_quality_analyzer_shared_objects.cc", + "default_video_quality_analyzer_shared_objects.h", + ] + + deps = [ + "../../../../../api/numerics", + "../../../../../api/units:timestamp", + "../../../../../rtc_base:checks", + "../../../../../rtc_base:stringutils", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_library("analyzing_video_sink") { + testonly = true + sources = [ + "analyzing_video_sink.cc", + "analyzing_video_sink.h", + ] + deps = [ + ":analyzing_video_sinks_helper", + ":simulcast_dummy_buffer_helper", + ":video_dumping", + "../../../..:fixed_fps_video_frame_writer_adapter", + "../../../..:test_renderer", + "../../../../../api:video_quality_analyzer_api", + "../../../../../api/numerics", + "../../../../../api/test/pclf:media_configuration", + "../../../../../api/test/video:video_frame_writer", + "../../../../../api/units:timestamp", + "../../../../../api/video:video_frame", + "../../../../../rtc_base:checks", + "../../../../../rtc_base:logging", + "../../../../../rtc_base:macromagic", + "../../../../../rtc_base/synchronization:mutex", + "../../../../../system_wrappers", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("video_quality_analyzer_injection_helper") { + testonly = true + sources = [ + "video_quality_analyzer_injection_helper.cc", + "video_quality_analyzer_injection_helper.h", + ] + deps = [ + ":analyzing_video_sink", + ":analyzing_video_sinks_helper", + ":encoded_image_data_injector_api", + ":quality_analyzing_video_decoder", + ":quality_analyzing_video_encoder", + ":simulcast_dummy_buffer_helper", + ":video_dumping", + "../../../..:fixed_fps_video_frame_writer_adapter", + "../../../..:test_renderer", + "../../../..:video_test_common", + "../../../..:video_test_support", + "../../../../../api:array_view", + "../../../../../api:stats_observer_interface", + "../../../../../api:video_quality_analyzer_api", + "../../../../../api/test/pclf:media_configuration", + "../../../../../api/video:video_frame", + "../../../../../api/video_codecs:video_codecs_api", + "../../../../../rtc_base:checks", + "../../../../../rtc_base:logging", + "../../../../../rtc_base:stringutils", + "../../../../../rtc_base/synchronization:mutex", + "../../../../../system_wrappers", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/memory", + "//third_party/abseil-cpp/absl/strings", + ] +} + +if (rtc_include_tests) { + rtc_library("simulcast_dummy_buffer_helper_test") { + testonly = true + sources = [ "simulcast_dummy_buffer_helper_test.cc" ] + deps = [ + ":simulcast_dummy_buffer_helper", + "../../../..:test_support", + "../../../../../api/video:video_frame", + "../../../../../rtc_base:random", + ] + } + + rtc_library("analyzing_video_sink_test") { + testonly = true + sources = [ "analyzing_video_sink_test.cc" ] + deps = [ + ":analyzing_video_sink", + ":example_video_quality_analyzer", + "../../../..:fileutils", + "../../../..:test_support", + "../../../..:video_test_support", + "../../../../../api:create_frame_generator", + "../../../../../api:frame_generator_api", + "../../../../../api:scoped_refptr", + "../../../../../api/test/pclf:media_configuration", + "../../../../../api/units:time_delta", + "../../../../../api/units:timestamp", + "../../../../../api/video:video_frame", + "../../../../../common_video", + "../../../../../rtc_base:timeutils", + "../../../../../system_wrappers", + "../../../../time_controller", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] + } + + rtc_library("analyzing_video_sinks_helper_test") { + testonly = true + sources = [ "analyzing_video_sinks_helper_test.cc" ] + deps = [ + ":analyzing_video_sinks_helper", + "../../../..:test_support", + "../../../../../api/test/pclf:media_configuration", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] + } + + rtc_library("default_video_quality_analyzer_frames_comparator_test") { + testonly = true + sources = [ "default_video_quality_analyzer_frames_comparator_test.cc" ] + deps = [ + ":default_video_quality_analyzer_internal", + ":default_video_quality_analyzer_shared", + "../../../..:test_support", + "../../../../../api:create_frame_generator", + "../../../../../api/units:timestamp", + "../../../../../rtc_base:stringutils", + "../../../../../system_wrappers", + ] + } + + rtc_library("names_collection_test") { + testonly = true + sources = [ "names_collection_test.cc" ] + deps = [ + ":default_video_quality_analyzer_internal", + "../../../..:test_support", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:optional", + ] + } + + rtc_library("multi_reader_queue_test") { + testonly = true + sources = [ "multi_reader_queue_test.cc" ] + deps = [ + ":multi_reader_queue", + "../../../..:test_support", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] + } + + rtc_library("default_video_quality_analyzer_stream_state_test") { + testonly = true + sources = [ "default_video_quality_analyzer_stream_state_test.cc" ] + deps = [ + ":default_video_quality_analyzer_internal", + "../../../..:test_support", + "../../../../../api/units:timestamp", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] + } + + rtc_library("default_video_quality_analyzer_test") { + testonly = true + sources = [ "default_video_quality_analyzer_test.cc" ] + deps = [ + ":default_video_quality_analyzer", + ":default_video_quality_analyzer_shared", + "../../../..:test_support", + "../../../../../api:create_frame_generator", + "../../../../../api:rtp_packet_info", + "../../../../../api/test/metrics:global_metrics_logger_and_exporter", + "../../../../../api/video:encoded_image", + "../../../../../api/video:video_frame", + "../../../../../common_video", + "../../../../../rtc_base:stringutils", + "../../../../../rtc_tools:video_quality_analysis", + "../../../../../system_wrappers", + ] + } + + rtc_library("default_video_quality_analyzer_metric_names_test") { + testonly = true + sources = [ "default_video_quality_analyzer_metric_names_test.cc" ] + deps = [ + ":default_video_quality_analyzer", + "../../../..:test_support", + "../../../../../api:create_frame_generator", + "../../../../../api:rtp_packet_info", + "../../../../../api/test/metrics:metric", + "../../../../../api/test/metrics:metrics_logger", + "../../../../../api/test/metrics:stdout_metrics_exporter", + "../../../../../api/video:encoded_image", + "../../../../../api/video:video_frame", + "../../../../../common_video", + "../../../../../rtc_tools:video_quality_analysis", + "../../../../../system_wrappers", + ] + } + + rtc_library("video_dumping_test") { + testonly = true + sources = [ "video_dumping_test.cc" ] + deps = [ + ":video_dumping", + "../../../..:fileutils", + "../../../..:test_support", + "../../../..:video_test_support", + "../../../../../api:scoped_refptr", + "../../../../../api/video:video_frame", + "../../../../../rtc_base:random", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] + } + + rtc_library("single_process_encoded_image_data_injector_unittest") { + testonly = true + sources = [ "single_process_encoded_image_data_injector_unittest.cc" ] + deps = [ + ":single_process_encoded_image_data_injector", + "../../../..:test_support", + "../../../../../api/video:encoded_image", + "../../../../../rtc_base:buffer", + ] + } + + rtc_library("video_frame_tracking_id_injector_unittest") { + testonly = true + sources = [ "video_frame_tracking_id_injector_unittest.cc" ] + deps = [ + ":video_frame_tracking_id_injector", + "../../../..:test_support", + "../../../../../api/video:encoded_image", + "../../../../../rtc_base:buffer", + ] + } +}