1# Copyright (c) 2017 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("../../webrtc.gni") 10if (is_android) { 11 import("//build/config/android/config.gni") 12 import("//build/config/android/rules.gni") 13} 14 15rtc_source_set("scalability_mode") { 16 visibility = [ "*" ] 17 sources = [ 18 "scalability_mode.cc", 19 "scalability_mode.h", 20 ] 21 deps = [ 22 "../../rtc_base:checks", 23 "../../rtc_base/system:rtc_export", 24 ] 25 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] 26} 27 28rtc_source_set("scalability_mode_helper") { 29 visibility = [ "*" ] 30 sources = [ 31 "scalability_mode_helper.cc", 32 "scalability_mode_helper.h", 33 ] 34 deps = [ "../../modules/video_coding/svc:scalability_mode_util" ] 35 absl_deps = [ 36 "//third_party/abseil-cpp/absl/strings", 37 "//third_party/abseil-cpp/absl/types:optional", 38 ] 39} 40 41rtc_library("video_codecs_api") { 42 visibility = [ "*" ] 43 sources = [ 44 "av1_profile.cc", 45 "av1_profile.h", 46 "h264_profile_level_id.cc", 47 "h264_profile_level_id.h", 48 "sdp_video_format.cc", 49 "sdp_video_format.h", 50 "simulcast_stream.cc", 51 "simulcast_stream.h", 52 "spatial_layer.cc", 53 "spatial_layer.h", 54 "video_codec.cc", 55 "video_codec.h", 56 "video_decoder.cc", 57 "video_decoder.h", 58 "video_decoder_factory.h", 59 "video_encoder.cc", 60 "video_encoder.h", 61 "video_encoder_factory.h", 62 "vp8_frame_buffer_controller.h", 63 "vp8_frame_config.cc", 64 "vp8_frame_config.h", 65 "vp8_temporal_layers.cc", 66 "vp8_temporal_layers.h", 67 "vp9_profile.cc", 68 "vp9_profile.h", 69 ] 70 71 deps = [ 72 ":scalability_mode", 73 "..:fec_controller_api", 74 "..:scoped_refptr", 75 "../../api:array_view", 76 "../../modules/video_coding:codec_globals_headers", 77 "../../rtc_base:checks", 78 "../../rtc_base:logging", 79 "../../rtc_base:macromagic", 80 "../../rtc_base:refcount", 81 "../../rtc_base:stringutils", 82 "../../rtc_base/system:rtc_export", 83 "../units:data_rate", 84 "../video:encoded_image", 85 "../video:render_resolution", 86 "../video:resolution", 87 "../video:video_bitrate_allocation", 88 "../video:video_codec_constants", 89 "../video:video_frame", 90 "../video:video_rtp_headers", 91 ] 92 absl_deps = [ 93 "//third_party/abseil-cpp/absl/algorithm:container", 94 "//third_party/abseil-cpp/absl/container:inlined_vector", 95 "//third_party/abseil-cpp/absl/strings", 96 "//third_party/abseil-cpp/absl/types:optional", 97 ] 98} 99 100rtc_source_set("bitstream_parser_api") { 101 visibility = [ "*" ] 102 sources = [ "bitstream_parser.h" ] 103 deps = [ "..:array_view" ] 104 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 105} 106 107rtc_library("builtin_video_decoder_factory") { 108 visibility = [ "*" ] 109 allow_poison = [ 110 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove. 111 "software_video_codecs", 112 ] 113 sources = [ 114 "builtin_video_decoder_factory.cc", 115 "builtin_video_decoder_factory.h", 116 ] 117 118 deps = [ 119 ":video_codecs_api", 120 "../../api:scoped_refptr", 121 "../../media:rtc_internal_video_codecs", 122 "../../rtc_base/system:rtc_export", 123 ] 124} 125 126rtc_library("builtin_video_encoder_factory") { 127 visibility = [ "*" ] 128 allow_poison = [ 129 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove. 130 "software_video_codecs", 131 ] 132 sources = [ 133 "builtin_video_encoder_factory.cc", 134 "builtin_video_encoder_factory.h", 135 ] 136 137 deps = [ 138 ":video_codecs_api", 139 "../../api:scoped_refptr", 140 "../../media:rtc_encoder_simulcast_proxy", 141 "../../media:rtc_internal_video_codecs", 142 "../../media:rtc_media_base", 143 "../../rtc_base:checks", 144 "../../rtc_base/system:rtc_export", 145 ] 146 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] 147} 148 149rtc_source_set("video_encoder_factory_template") { 150 visibility = [ "*" ] 151 allow_poison = [ "software_video_codecs" ] 152 public = [ "video_encoder_factory_template.h" ] 153 154 deps = [ 155 ":video_codecs_api", 156 "../../api:array_view", 157 "../../modules/video_coding/svc:scalability_mode_util", 158 ] 159 160 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ] 161} 162 163rtc_source_set("video_encoder_factory_template_libvpx_vp8_adapter") { 164 visibility = [ "*" ] 165 allow_poison = [ "software_video_codecs" ] 166 public = [ "video_encoder_factory_template_libvpx_vp8_adapter.h" ] 167 168 deps = [ 169 ":video_codecs_api", 170 "../../modules/video_coding:webrtc_vp8", 171 "../../modules/video_coding:webrtc_vp8_scalability", 172 ] 173 174 absl_deps = [ "//third_party/abseil-cpp/absl/container:inlined_vector" ] 175} 176 177rtc_source_set("video_encoder_factory_template_libvpx_vp9_adapter") { 178 visibility = [ "*" ] 179 allow_poison = [ "software_video_codecs" ] 180 public = [ "video_encoder_factory_template_libvpx_vp9_adapter.h" ] 181 182 deps = [ "../../modules/video_coding:webrtc_vp9" ] 183} 184 185rtc_source_set("video_encoder_factory_template_open_h264_adapter") { 186 visibility = [ "*" ] 187 allow_poison = [ "software_video_codecs" ] 188 public = [ "video_encoder_factory_template_open_h264_adapter.h" ] 189 190 deps = [ "../../modules/video_coding:webrtc_h264" ] 191} 192 193rtc_source_set("video_encoder_factory_template_libaom_av1_adapter") { 194 visibility = [ "*" ] 195 allow_poison = [ "software_video_codecs" ] 196 public = [ "video_encoder_factory_template_libaom_av1_adapter.h" ] 197 198 deps = [ 199 ":scalability_mode", 200 ":video_codecs_api", 201 "../../modules/video_coding/codecs/av1:av1_svc_config", 202 "../../modules/video_coding/codecs/av1:libaom_av1_encoder", 203 "../../modules/video_coding/svc:scalability_mode_util", 204 ] 205 absl_deps = [ "//third_party/abseil-cpp/absl/container:inlined_vector" ] 206} 207 208rtc_source_set("video_decoder_factory_template") { 209 visibility = [ "*" ] 210 allow_poison = [ "software_video_codecs" ] 211 public = [ "video_decoder_factory_template.h" ] 212 213 deps = [ 214 ":video_codecs_api", 215 "../../api:array_view", 216 ] 217 218 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ] 219} 220 221rtc_source_set("video_decoder_factory_template_libvpx_vp8_adapter") { 222 visibility = [ "*" ] 223 allow_poison = [ "software_video_codecs" ] 224 public = [ "video_decoder_factory_template_libvpx_vp8_adapter.h" ] 225 226 deps = [ 227 ":video_codecs_api", 228 "../../modules/video_coding:webrtc_vp8", 229 ] 230} 231 232rtc_source_set("video_decoder_factory_template_libvpx_vp9_adapter") { 233 visibility = [ "*" ] 234 allow_poison = [ "software_video_codecs" ] 235 public = [ "video_decoder_factory_template_libvpx_vp9_adapter.h" ] 236 237 deps = [ "../../modules/video_coding:webrtc_vp9" ] 238} 239 240rtc_source_set("video_decoder_factory_template_open_h264_adapter") { 241 visibility = [ "*" ] 242 allow_poison = [ "software_video_codecs" ] 243 public = [ "video_decoder_factory_template_open_h264_adapter.h" ] 244 245 deps = [ "../../modules/video_coding:webrtc_h264" ] 246} 247 248rtc_source_set("video_decoder_factory_template_dav1d_adapter") { 249 visibility = [ "*" ] 250 allow_poison = [ "software_video_codecs" ] 251 public = [ "video_decoder_factory_template_dav1d_adapter.h" ] 252 253 deps = [ 254 ":video_codecs_api", 255 "../../modules/video_coding/codecs/av1:dav1d_decoder", 256 ] 257} 258 259rtc_library("vp8_temporal_layers_factory") { 260 visibility = [ "*" ] 261 allow_poison = [ "software_video_codecs" ] 262 sources = [ 263 "vp8_temporal_layers_factory.cc", 264 "vp8_temporal_layers_factory.h", 265 ] 266 267 deps = [ 268 ":video_codecs_api", 269 "../:fec_controller_api", 270 "../../modules/video_coding:video_coding_utility", 271 "../../modules/video_coding:webrtc_vp8_temporal_layers", 272 "../../rtc_base:checks", 273 ] 274} 275 276rtc_library("rtc_software_fallback_wrappers") { 277 visibility = [ "*" ] 278 279 sources = [ 280 "video_decoder_software_fallback_wrapper.cc", 281 "video_decoder_software_fallback_wrapper.h", 282 "video_encoder_software_fallback_wrapper.cc", 283 "video_encoder_software_fallback_wrapper.h", 284 ] 285 286 deps = [ 287 ":video_codecs_api", 288 "..:fec_controller_api", 289 "../../api/video:video_frame", 290 "../../media:rtc_media_base", 291 "../../modules/video_coding:video_codec_interface", 292 "../../modules/video_coding:video_coding_utility", 293 "../../rtc_base:checks", 294 "../../rtc_base:event_tracer", 295 "../../rtc_base:logging", 296 "../../rtc_base/system:rtc_export", 297 "../../system_wrappers:field_trial", 298 "../../system_wrappers:metrics", 299 "../video:encoded_image", 300 "../video:video_bitrate_allocation", 301 "../video:video_frame", 302 "../video:video_rtp_headers", 303 ] 304 absl_deps = [ 305 "//third_party/abseil-cpp/absl/base:core_headers", 306 "//third_party/abseil-cpp/absl/strings", 307 "//third_party/abseil-cpp/absl/types:optional", 308 ] 309} 310