# 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/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", ] 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", ] } }