blob: 3c879205f4caf57b3f92c96a846ee156176f342d [file] [log] [blame]
# Copyright (c) 2019 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("resource_adaptation") {
sources = [
"adaptation_constraint.cc",
"adaptation_constraint.h",
"broadcast_resource_listener.cc",
"broadcast_resource_listener.h",
"degradation_preference_provider.cc",
"degradation_preference_provider.h",
"encoder_settings.cc",
"encoder_settings.h",
"resource_adaptation_processor.cc",
"resource_adaptation_processor.h",
"resource_adaptation_processor_interface.cc",
"resource_adaptation_processor_interface.h",
"video_source_restrictions.cc",
"video_source_restrictions.h",
"video_stream_adapter.cc",
"video_stream_adapter.h",
"video_stream_input_state.cc",
"video_stream_input_state.h",
"video_stream_input_state_provider.cc",
"video_stream_input_state_provider.h",
]
deps = [
"../../api:field_trials_view",
"../../api:make_ref_counted",
"../../api:rtp_parameters",
"../../api:scoped_refptr",
"../../api:sequence_checker",
"../../api/adaptation:resource_adaptation_api",
"../../api/task_queue:task_queue",
"../../api/video:video_adaptation",
"../../api/video:video_frame",
"../../api/video:video_stream_encoder",
"../../api/video_codecs:video_codecs_api",
"../../modules/video_coding:video_coding_utility",
"../../rtc_base:checks",
"../../rtc_base:logging",
"../../rtc_base:macromagic",
"../../rtc_base:refcount",
"../../rtc_base:rtc_task_queue",
"../../rtc_base:safe_conversions",
"../../rtc_base:stringutils",
"../../rtc_base/experiments:balanced_degradation_settings",
"../../rtc_base/synchronization:mutex",
"../../rtc_base/system:no_unique_address",
"../../rtc_base/task_utils:to_queued_task",
]
absl_deps = [
"//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
"//third_party/abseil-cpp/absl/types:variant",
]
}
if (rtc_include_tests) {
rtc_library("resource_adaptation_tests") {
testonly = true
sources = [
"broadcast_resource_listener_unittest.cc",
"resource_adaptation_processor_unittest.cc",
"resource_unittest.cc",
"video_source_restrictions_unittest.cc",
"video_stream_adapter_unittest.cc",
"video_stream_input_state_provider_unittest.cc",
]
deps = [
":resource_adaptation",
":resource_adaptation_test_utilities",
"../../api:scoped_refptr",
"../../api/adaptation:resource_adaptation_api",
"../../api/task_queue:default_task_queue_factory",
"../../api/task_queue:task_queue",
"../../api/video:video_adaptation",
"../../api/video_codecs:video_codecs_api",
"../../rtc_base:checks",
"../../rtc_base:gunit_helpers",
"../../rtc_base:rtc_event",
"../../rtc_base:rtc_task_queue",
"../../rtc_base:stringutils",
"../../rtc_base:task_queue_for_test",
"../../rtc_base/synchronization:mutex",
"../../test:field_trial",
"../../test:rtc_expect_death",
"../../test:scoped_key_value_config",
"../../test:test_support",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_source_set("resource_adaptation_test_utilities") {
testonly = true
sources = [
"test/fake_adaptation_constraint.cc",
"test/fake_adaptation_constraint.h",
"test/fake_frame_rate_provider.cc",
"test/fake_frame_rate_provider.h",
"test/fake_resource.cc",
"test/fake_resource.h",
"test/fake_video_stream_input_state_provider.cc",
"test/fake_video_stream_input_state_provider.h",
"test/mock_resource_listener.h",
]
deps = [
":resource_adaptation",
"../../api:make_ref_counted",
"../../api:scoped_refptr",
"../../api:sequence_checker",
"../../api/adaptation:resource_adaptation_api",
"../../api/task_queue:task_queue",
"../../api/video:video_stream_encoder",
"../../rtc_base/task_utils:to_queued_task",
"../../test:test_support",
]
absl_deps = [
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
]
}
}