# Copyright 2024 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") rtc_library("corruption_classifier") { sources = [ "corruption_classifier.cc", "corruption_classifier.h", ] deps = [ ":halton_frame_sampler", "../../api:array_view", "../../rtc_base:checks", "../../rtc_base:logging", ] } rtc_library("frame_pair_corruption_score") { sources = [ "frame_pair_corruption_score.cc", "frame_pair_corruption_score.h", ] deps = [ ":corruption_classifier", ":generic_mapping_functions", ":halton_frame_sampler", ":utils", "../../api:scoped_refptr", "../../api/video:video_frame", "../../api/video/corruption_detection:filter_settings", "../../rtc_base:checks", "//third_party/abseil-cpp/absl/strings:string_view", ] } rtc_library("generic_mapping_functions") { sources = [ "generic_mapping_functions.cc", "generic_mapping_functions.h", ] deps = [ "../../api/video:video_frame", "../../api/video/corruption_detection:filter_settings", "../../api/video_codecs:video_codecs_api", "../../rtc_base:checks", "../../rtc_base:logging", ] } rtc_library("halton_frame_sampler") { sources = [ "halton_frame_sampler.cc", "halton_frame_sampler.h", ] deps = [ ":halton_sequence", ":video_frame_sampler", "../../api:scoped_refptr", "../../api/video:video_frame", "../../rtc_base:checks", "../../rtc_base:logging", "../../rtc_base:safe_minmax", ] } rtc_library("video_frame_sampler") { sources = [ "video_frame_sampler.cc", "video_frame_sampler.h", ] deps = [ "../../api:scoped_refptr", "../../api/video:video_frame", "../../rtc_base:checks", ] } rtc_library("halton_sequence") { sources = [ "halton_sequence.cc", "halton_sequence.h", ] deps = [ "../../rtc_base:checks" ] } rtc_library("frame_selector") { sources = [ "frame_selector.cc", "frame_selector.h", ] deps = [ "../../api/units:time_delta", "../../api/units:timestamp", "../../api/video:encoded_image", "../../api/video:video_frame", "../../api/video:video_frame_type", "../../api/video_codecs:scalability_mode", "../../api/video_codecs:video_codecs_api", "../../modules/rtp_rtcp:rtp_rtcp_format", "../../modules/video_coding/svc:scalability_mode_util", "../../rtc_base:checks", "../../rtc_base:logging", "../../rtc_base:random", "../../rtc_base:timeutils", ] } rtc_library("utils") { sources = [ "utils.cc", "utils.h", ] deps = [ "../../api:scoped_refptr", "../../api/video:encoded_image", "../../api/video:video_frame", "../../rtc_base:checks", "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/strings:string_view", ] } rtc_library("frame_instrumentation_generator_impl") { sources = [ "frame_instrumentation_generator_impl.cc", "frame_instrumentation_generator_impl.h", ] deps = [ ":frame_selector", ":generic_mapping_functions", ":halton_frame_sampler", ":utils", "../../api/environment", "../../api/units:time_delta", "../../api/video:encoded_image", "../../api/video:video_frame", "../../api/video:video_frame_type", "../../api/video/corruption_detection:filter_settings", "../../api/video/corruption_detection:frame_instrumentation_data", "../../api/video/corruption_detection:frame_instrumentation_generator_header", "../../api/video_codecs:scalability_mode", "../../api/video_codecs:video_codecs_api", "../../modules:module_api_public", "../../modules/video_coding:video_coding_utility", "../../rtc_base:checks", "../../rtc_base:logging", "../../rtc_base:macromagic", "../../rtc_base/experiments:corruption_detection_frame_selector_settings", "../../rtc_base/synchronization:mutex", "//third_party/abseil-cpp/absl/algorithm:container", ] } if (rtc_include_tests) { rtc_library("corruption_classifier_unittest") { testonly = true sources = [ "corruption_classifier_unittest.cc" ] deps = [ ":corruption_classifier", ":halton_frame_sampler", "../../test:test_support", ] } rtc_library("frame_pair_corruption_score_unittest") { testonly = true sources = [ "frame_pair_corruption_score_unittest.cc" ] deps = [ ":frame_pair_corruption_score", "../../api:scoped_refptr", "../../api/video:video_frame", "../../test:fileutils", "../../test:test_support", "../../test:video_test_support", "//third_party/abseil-cpp/absl/strings:string_view", ] data = [ "../../resources/ConferenceMotion_1280_720_50.yuv" ] } rtc_library("generic_mapping_functions_unittest") { testonly = true sources = [ "generic_mapping_functions_unittest.cc" ] deps = [ ":generic_mapping_functions", "../../api/video:video_frame", "../../test:test_support", ] } rtc_library("halton_frame_sampler_unittest") { testonly = true sources = [ "halton_frame_sampler_unittest.cc" ] deps = [ ":halton_frame_sampler", ":video_frame_sampler", "../../api:array_view", "../../api:scoped_refptr", "../../api/video:video_frame", "../../test:test_support", ] } rtc_library("video_frame_sampler_unittest") { testonly = true sources = [ "video_frame_sampler_unittest.cc" ] deps = [ ":video_frame_sampler", "../../api:scoped_refptr", "../../api/video:video_frame", "../../test:test_support", ] } rtc_library("halton_sequence_unittest") { testonly = true sources = [ "halton_sequence_unittest.cc" ] deps = [ ":halton_sequence", "../../test:test_support", ] } rtc_library("frame_selector_unittest") { testonly = true sources = [ "frame_selector_unittest.cc" ] deps = [ ":frame_selector", "../../api:make_ref_counted", "../../api:scoped_refptr", "../../api/units:time_delta", "../../api/units:timestamp", "../../api/video:encoded_image", "../../api/video:video_frame", "../../api/video:video_frame_type", "../../api/video:video_rtp_headers", "../../api/video_codecs:scalability_mode", "../../test:test_support", ] } rtc_library("utils_unittest") { testonly = true sources = [ "utils_unittest.cc" ] deps = [ ":utils", "../../api/video:encoded_image", "../../api/video:video_frame", "../../test:test_support", ] } rtc_library("frame_instrumentation_generator_unittest") { testonly = true sources = [ "frame_instrumentation_generator_unittest.cc" ] deps = [ ":frame_instrumentation_generator_impl", ":utils", "../../api:make_ref_counted", "../../api:scoped_refptr", "../../api/environment", "../../api/video:encoded_image", "../../api/video:video_frame", "../../api/video:video_frame_type", "../../api/video/corruption_detection:filter_settings", "../../api/video/corruption_detection:frame_instrumentation_data", "../../api/video/corruption_detection:frame_instrumentation_generator_header", "../../api/video_codecs:scalability_mode", "../../rtc_base:refcount", "../../test:create_test_environment", "../../test:test_support", ] } rtc_library("corruption_detection_tests") { testonly = true sources = [] deps = [ ":corruption_classifier_unittest", ":frame_instrumentation_generator_unittest", ":frame_pair_corruption_score_unittest", ":frame_selector_unittest", ":generic_mapping_functions_unittest", ":halton_frame_sampler_unittest", ":halton_sequence_unittest", ":utils_unittest", ":video_frame_sampler_unittest", ] } }