1# Copyright (c) 2020 The WebRTC project authors. All Rights Reserved. 2# 3# Use of this source code is governed by a BSD-style license 4# that can be found in the LICENSE file in the root of the source 5# tree. An additional intellectual property rights grant can be found 6# in the file PATENTS. All contributing project authors may 7# be found in the AUTHORS file in the root of the source tree. 8 9import("//third_party/libaom/options.gni") 10import("../../../../webrtc.gni") 11 12rtc_library("libaom_av1_decoder") { 13 visibility = [ "*" ] 14 poisonous = [ "software_video_codecs" ] 15 public = [ "libaom_av1_decoder.h" ] 16 deps = [ "../../../../api/video_codecs:video_codecs_api" ] 17 absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ] 18 19 if (enable_libaom) { 20 sources = [ "libaom_av1_decoder.cc" ] 21 deps += [ 22 "../..:video_codec_interface", 23 "../../../../api:scoped_refptr", 24 "../../../../api/video:encoded_image", 25 "../../../../api/video:video_frame_i420", 26 "../../../../common_video", 27 "../../../../rtc_base:logging", 28 "//third_party/libaom", 29 "//third_party/libyuv", 30 ] 31 absl_deps += [ "//third_party/abseil-cpp/absl/types:optional" ] 32 } else { 33 sources = [ "libaom_av1_decoder_absent.cc" ] 34 } 35} 36 37rtc_source_set("scalable_video_controller") { 38 sources = [ 39 "scalable_video_controller.h", 40 "scalable_video_controller_no_layering.cc", 41 "scalable_video_controller_no_layering.h", 42 ] 43 deps = [ 44 "../../../../api/transport/rtp:dependency_descriptor", 45 "../../../../api/video:video_bitrate_allocation", 46 "../../../../common_video/generic_frame_descriptor", 47 "../../../../rtc_base:checks", 48 ] 49 absl_deps = [ 50 "//third_party/abseil-cpp/absl/container:inlined_vector", 51 "//third_party/abseil-cpp/absl/types:optional", 52 ] 53} 54 55rtc_source_set("scalability_structures") { 56 sources = [ 57 "create_scalability_structure.cc", 58 "create_scalability_structure.h", 59 "scalability_structure_l1t2.cc", 60 "scalability_structure_l1t2.h", 61 "scalability_structure_l1t3.cc", 62 "scalability_structure_l1t3.h", 63 "scalability_structure_l2t1.cc", 64 "scalability_structure_l2t1.h", 65 "scalability_structure_l2t1_key.cc", 66 "scalability_structure_l2t1_key.h", 67 "scalability_structure_l2t1h.cc", 68 "scalability_structure_l2t1h.h", 69 "scalability_structure_l2t2.cc", 70 "scalability_structure_l2t2.h", 71 "scalability_structure_l2t2_key.cc", 72 "scalability_structure_l2t2_key.h", 73 "scalability_structure_l2t2_key_shift.cc", 74 "scalability_structure_l2t2_key_shift.h", 75 "scalability_structure_l3t1.cc", 76 "scalability_structure_l3t1.h", 77 "scalability_structure_l3t3.cc", 78 "scalability_structure_l3t3.h", 79 "scalability_structure_s2t1.cc", 80 "scalability_structure_s2t1.h", 81 ] 82 deps = [ 83 ":scalable_video_controller", 84 "../../../../api/transport/rtp:dependency_descriptor", 85 "../../../../common_video/generic_frame_descriptor", 86 "../../../../rtc_base:checks", 87 "../../../../rtc_base:logging", 88 ] 89 absl_deps = [ 90 "//third_party/abseil-cpp/absl/base:core_headers", 91 "//third_party/abseil-cpp/absl/strings", 92 "//third_party/abseil-cpp/absl/types:optional", 93 ] 94} 95 96rtc_library("libaom_av1_encoder") { 97 visibility = [ "*" ] 98 poisonous = [ "software_video_codecs" ] 99 public = [ "libaom_av1_encoder.h" ] 100 deps = [ 101 ":scalable_video_controller", 102 "../../../../api/video_codecs:video_codecs_api", 103 ] 104 absl_deps = [ 105 "//third_party/abseil-cpp/absl/algorithm:container", 106 "//third_party/abseil-cpp/absl/base:core_headers", 107 "//third_party/abseil-cpp/absl/types:optional", 108 ] 109 110 if (enable_libaom) { 111 sources = [ "libaom_av1_encoder.cc" ] 112 deps += [ 113 "../..:video_codec_interface", 114 "../../../../api:scoped_refptr", 115 "../../../../api/video:encoded_image", 116 "../../../../api/video:video_frame", 117 "../../../../api/video:video_frame_i420", 118 "../../../../common_video", 119 "../../../../rtc_base:checks", 120 "../../../../rtc_base:logging", 121 "//third_party/libaom", 122 ] 123 } else { 124 sources = [ "libaom_av1_encoder_absent.cc" ] 125 } 126} 127 128if (rtc_include_tests) { 129 rtc_library("scalability_structure_tests") { 130 testonly = true 131 sources = [ "scalability_structure_unittest.cc" ] 132 deps = [ 133 ":scalability_structures", 134 ":scalable_video_controller", 135 "../..:chain_diff_calculator", 136 "../..:frame_dependencies_calculator", 137 "../../../../api/transport/rtp:dependency_descriptor", 138 "../../../../api/video:video_frame_type", 139 "../../../../test:test_support", 140 ] 141 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 142 } 143 144 rtc_library("video_coding_codecs_av1_tests") { 145 testonly = true 146 147 if (enable_libaom) { 148 sources = [ 149 "libaom_av1_encoder_unittest.cc", 150 "libaom_av1_unittest.cc", 151 ] 152 deps = [ 153 ":libaom_av1_decoder", 154 ":libaom_av1_encoder", 155 ":scalability_structures", 156 ":scalable_video_controller", 157 "../..:encoded_video_frame_producer", 158 "../..:video_codec_interface", 159 "../../../../api:mock_video_encoder", 160 "../../../../api/units:data_size", 161 "../../../../api/units:time_delta", 162 "../../../../api/video:video_frame_i420", 163 "../../../../api/video_codecs:video_codecs_api", 164 "../../../../test:test_support", 165 ] 166 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 167 } 168 } 169} 170