# 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("libaom_av1_decoder") { visibility = [ "*" ] poisonous = [ "software_video_codecs" ] public = [ "libaom_av1_decoder.h" ] deps = [ "../../../../api/video_codecs:video_codecs_api" ] absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ] if (enable_libaom) { sources = [ "libaom_av1_decoder.cc" ] deps += [ "../..:video_codec_interface", "../../../../api:scoped_refptr", "../../../../api/video:encoded_image", "../../../../api/video:video_frame_i420", "../../../../common_video", "../../../../rtc_base:logging", "//third_party/libaom", "//third_party/libyuv", ] absl_deps += [ "//third_party/abseil-cpp/absl/types:optional" ] } else { sources = [ "libaom_av1_decoder_absent.cc" ] } } rtc_source_set("scalable_video_controller") { sources = [ "scalable_video_controller.h", "scalable_video_controller_no_layering.cc", "scalable_video_controller_no_layering.h", ] deps = [ "../../../../api/transport/rtp:dependency_descriptor", "../../../../api/video:video_bitrate_allocation", "../../../../common_video/generic_frame_descriptor", "../../../../rtc_base:checks", ] absl_deps = [ "//third_party/abseil-cpp/absl/container:inlined_vector", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_source_set("scalability_structures") { sources = [ "create_scalability_structure.cc", "create_scalability_structure.h", "scalability_structure_l1t2.cc", "scalability_structure_l1t2.h", "scalability_structure_l1t3.cc", "scalability_structure_l1t3.h", "scalability_structure_l2t1.cc", "scalability_structure_l2t1.h", "scalability_structure_l2t1_key.cc", "scalability_structure_l2t1_key.h", "scalability_structure_l2t1h.cc", "scalability_structure_l2t1h.h", "scalability_structure_l2t2.cc", "scalability_structure_l2t2.h", "scalability_structure_l2t2_key.cc", "scalability_structure_l2t2_key.h", "scalability_structure_l2t2_key_shift.cc", "scalability_structure_l2t2_key_shift.h", "scalability_structure_l3t1.cc", "scalability_structure_l3t1.h", "scalability_structure_l3t3.cc", "scalability_structure_l3t3.h", "scalability_structure_s2t1.cc", "scalability_structure_s2t1.h", ] deps = [ ":scalable_video_controller", "../../../../api/transport/rtp:dependency_descriptor", "../../../../common_video/generic_frame_descriptor", "../../../../rtc_base:checks", "../../../../rtc_base:logging", ] absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers", "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_library("libaom_av1_encoder") { visibility = [ "*" ] poisonous = [ "software_video_codecs" ] public = [ "libaom_av1_encoder.h" ] deps = [ ":scalable_video_controller", "../../../../api/video_codecs:video_codecs_api", ] absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container", "//third_party/abseil-cpp/absl/base:core_headers", "//third_party/abseil-cpp/absl/types:optional", ] if (enable_libaom) { sources = [ "libaom_av1_encoder.cc" ] deps += [ "../..:video_codec_interface", "../../../../api:scoped_refptr", "../../../../api/video:encoded_image", "../../../../api/video:video_frame", "../../../../api/video:video_frame_i420", "../../../../common_video", "../../../../rtc_base:checks", "../../../../rtc_base:logging", "//third_party/libaom", ] } else { sources = [ "libaom_av1_encoder_absent.cc" ] } } if (rtc_include_tests) { rtc_library("scalability_structure_tests") { testonly = true sources = [ "scalability_structure_unittest.cc" ] deps = [ ":scalability_structures", ":scalable_video_controller", "../..:chain_diff_calculator", "../..:frame_dependencies_calculator", "../../../../api/transport/rtp:dependency_descriptor", "../../../../api/video:video_frame_type", "../../../../test:test_support", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } rtc_library("video_coding_codecs_av1_tests") { testonly = true if (enable_libaom) { sources = [ "libaom_av1_encoder_unittest.cc", "libaom_av1_unittest.cc", ] deps = [ ":libaom_av1_decoder", ":libaom_av1_encoder", ":scalability_structures", ":scalable_video_controller", "../..:encoded_video_frame_producer", "../..:video_codec_interface", "../../../../api:mock_video_encoder", "../../../../api/units:data_size", "../../../../api/units:time_delta", "../../../../api/video:video_frame_i420", "../../../../api/video_codecs:video_codecs_api", "../../../../test:test_support", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } } }