blob: b6d55671f00abc6566cfbb559fbcbfd937b4cac9 [file] [log] [blame]
# 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" ]
}
}
}