# Copyright (c) 2020 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("//third_party/libaom/options.gni") import("../../../../webrtc.gni") rtc_library("av1_svc_config") { sources = [ "av1_svc_config.cc", "av1_svc_config.h", ] deps = [ "../../../../api/video:video_frame", "../../../../api/video_codecs:scalability_mode", "../../../../api/video_codecs:video_codecs_api", "../../../../rtc_base:checks", "../../../../rtc_base:logging", "../../../../rtc_base:stringutils", "../../svc:scalability_mode_util", "../../svc:scalability_structures", "../../svc:scalable_video_controller", "//third_party/abseil-cpp/absl/container:inlined_vector", ] } rtc_library("dav1d_decoder") { visibility = [ "*" ] poisonous = [ "software_video_codecs" ] sources = [ "dav1d_decoder.cc", "dav1d_decoder.h", ] deps = [ "../..:video_codec_interface", "../../../../api:refcountedbase", "../../../../api:scoped_refptr", "../../../../api/environment", "../../../../api/video:encoded_image", "../../../../api/video:video_frame", "../../../../api/video:video_rtp_headers", "../../../../api/video_codecs:video_codecs_api", "../../../../common_video", "../../../../rtc_base:logging", "//third_party/dav1d", "//third_party/libyuv", ] } rtc_library("libaom_av1_encoder") { visibility = [ "*" ] poisonous = [ "software_video_codecs" ] sources = [ "libaom_av1_encoder.cc", "libaom_av1_encoder.h", ] deps = [ ":libaom_speed_config_factory", "../..:video_codec_interface", "../..:video_coding_utility", "../../:frame_sampler", "../../../../api:field_trials_view", "../../../../api:scoped_refptr", "../../../../api/environment", "../../../../api/units:time_delta", "../../../../api/units:timestamp", "../../../../api/video:encoded_image", "../../../../api/video:render_resolution", "../../../../api/video:video_codec_constants", "../../../../api/video:video_frame", "../../../../api/video:video_frame_type", "../../../../api/video:video_rtp_headers", "../../../../api/video_codecs:encoder_speed_controller_factory", "../../../../api/video_codecs:scalability_mode", "../../../../api/video_codecs:video_codecs_api", "../../../../common_video", "../../../../common_video/generic_frame_descriptor", "../../../../modules/rtp_rtcp:rtp_rtcp_format", "../../../../rtc_base:checks", "../../../../rtc_base:logging", "../../../../rtc_base:rtc_numerics", "../../../../rtc_base/experiments:encoder_info_settings", "../../../../rtc_base/experiments:encoder_speed_experiment", "../../../../rtc_base/experiments:psnr_experiment", "../../../../system_wrappers", "../../svc:scalability_structures", "../../svc:scalable_video_controller", "//third_party/abseil-cpp/absl/algorithm:container", "//third_party/abseil-cpp/absl/base:core_headers", "//third_party/abseil-cpp/absl/base:nullability", "//third_party/abseil-cpp/absl/container:inlined_vector", "//third_party/abseil-cpp/absl/strings", "//third_party/libaom", ] } rtc_library("libaom_speed_config_factory") { sources = [ "libaom_speed_config_factory.cc", "libaom_speed_config_factory.h", ] deps = [ "../..:video_codec_interface", "../..:video_coding_utility", "../../../../api:field_trials_view", "../../../../api/video_codecs:video_codecs_api", "../../../../rtc_base:logging", "../../../../rtc_base/experiments:psnr_experiment", ] } if (rtc_include_tests) { rtc_library("video_coding_codecs_av1_tests") { testonly = true sources = [ "av1_svc_config_unittest.cc", "dav1d_decoder_unittest.cc", ] deps = [ ":av1_svc_config", ":dav1d_decoder", "../..:video_codec_interface", "../../../../api:array_view", "../../../../api:field_trials", "../../../../api/environment", "../../../../api/environment:environment_factory", "../../../../api/transport/rtp:dependency_descriptor", "../../../../api/units:data_rate", "../../../../api/units:timestamp", "../../../../api/video:encoded_image", "../../../../api/video:render_resolution", "../../../../api/video:video_bitrate_allocation", "../../../../api/video:video_frame", "../../../../api/video:video_frame_type", "../../../../api/video:video_rtp_headers", "../../../../api/video_codecs:scalability_mode", "../../../../api/video_codecs:video_codecs_api", "../../../../rtc_base:checks", "../../../../test:create_test_field_trials", "../../../../test:test_support", ] if (enable_libaom) { sources += [ "libaom_av1_encoder_unittest.cc", "libaom_av1_unittest.cc", "libaom_speed_config_factory_unittest.cc", ] deps += [ ":libaom_av1_encoder", ":libaom_speed_config_factory", "../..:encoded_video_frame_producer", "../..:video_coding_utility", "../../../../api:create_frame_generator", "../../../../api:field_trials", "../../../../api:field_trials_view", "../../../../api:frame_generator_api", "../../../../api:mock_video_encoder", "../../../../api/units:data_size", "../../../../api/units:time_delta", "../../../../modules/rtp_rtcp:rtp_rtcp_format", "../../../../test:fileutils", "../../../../test:test_support", "../../../../test:video_test_support", "../../svc:scalability_mode_util", "../../svc:scalability_structures", "../../svc:scalable_video_controller", "../../svc:svc_rate_allocator", ] } } }