BUILD.gn (13140B)
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 9 import("../../webrtc.gni") 10 if (is_android) { 11 import("//chromium/build/config/android/config.gni") 12 import("//chromium/build/config/android/rules.gni") 13 } 14 15 rtc_library("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 "//third_party/abseil-cpp/absl/strings:string_view", 25 ] 26 } 27 28 rtc_library("scalability_mode_helper") { 29 visibility = [ "*" ] 30 sources = [ 31 "scalability_mode_helper.cc", 32 "scalability_mode_helper.h", 33 ] 34 deps = [ 35 ":scalability_mode", 36 "../../modules/video_coding/svc:scalability_mode_util", 37 "../../rtc_base/system:rtc_export", 38 "//third_party/abseil-cpp/absl/strings:string_view", 39 ] 40 } 41 42 rtc_library("video_codecs_api") { 43 visibility = [ "*" ] 44 sources = [ 45 "av1_profile.cc", 46 "av1_profile.h", 47 "h264_profile_level_id.cc", 48 "h264_profile_level_id.h", 49 "sdp_video_format.cc", 50 "sdp_video_format.h", 51 "simulcast_stream.cc", 52 "simulcast_stream.h", 53 "spatial_layer.h", 54 "video_codec.cc", 55 "video_codec.h", 56 "video_decoder.cc", 57 "video_decoder.h", 58 "video_decoder_factory.cc", 59 "video_decoder_factory.h", 60 "video_encoder.cc", 61 "video_encoder.h", 62 "video_encoder_factory.h", 63 "vp8_frame_buffer_controller.h", 64 "vp8_frame_config.cc", 65 "vp8_frame_config.h", 66 "vp8_temporal_layers.cc", 67 "vp8_temporal_layers.h", 68 "vp9_profile.cc", 69 "vp9_profile.h", 70 ] 71 72 if (rtc_use_h265) { 73 sources += [ 74 "h265_profile_tier_level.cc", 75 "h265_profile_tier_level.h", 76 ] 77 } 78 79 deps = [ 80 ":scalability_mode", 81 "..:fec_controller_api", 82 "..:scoped_refptr", 83 "../../api:array_view", 84 "../../api:rtp_parameters", 85 "../../media:media_constants", 86 "../../modules/video_coding:codec_globals_headers", 87 "../../rtc_base:checks", 88 "../../rtc_base:logging", 89 "../../rtc_base:refcount", 90 "../../rtc_base:stringutils", 91 "../../rtc_base/system:rtc_export", 92 "../environment", 93 "../units:data_rate", 94 "../video:encoded_image", 95 "../video:render_resolution", 96 "../video:resolution", 97 "../video:video_bitrate_allocation", 98 "../video:video_codec_constants", 99 "../video:video_frame", 100 "../video:video_frame_type", 101 "../video:video_rtp_headers", 102 "//third_party/abseil-cpp/absl/algorithm:container", 103 "//third_party/abseil-cpp/absl/container:inlined_vector", 104 "//third_party/abseil-cpp/absl/strings", 105 "//third_party/abseil-cpp/absl/strings:string_view", 106 ] 107 } 108 109 rtc_source_set("bitstream_parser_api") { 110 visibility = [ "*" ] 111 sources = [ "bitstream_parser.h" ] 112 deps = [ "..:array_view" ] 113 } 114 115 rtc_library("builtin_video_decoder_factory") { 116 visibility = [ "*" ] 117 allow_poison = [ 118 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove. 119 "software_video_codecs", 120 ] 121 sources = [ 122 "builtin_video_decoder_factory.cc", 123 "builtin_video_decoder_factory.h", 124 ] 125 126 deps = [ 127 ":video_codecs_api", 128 "../../api:scoped_refptr", 129 "../../media:rtc_internal_video_codecs", 130 "../../rtc_base/system:rtc_export", 131 ] 132 } 133 134 rtc_library("builtin_video_encoder_factory") { 135 visibility = [ "*" ] 136 allow_poison = [ "software_video_codecs" ] 137 sources = [ 138 "builtin_video_encoder_factory.cc", 139 "builtin_video_encoder_factory.h", 140 ] 141 142 deps = [ 143 ":video_codecs_api", 144 "../../media:rtc_internal_video_codecs", 145 "../../media:rtc_simulcast_encoder_adapter", 146 "../../rtc_base/system:rtc_export", 147 "../environment", 148 ] 149 } 150 151 rtc_source_set("video_encoder_factory_template") { 152 visibility = [ "*" ] 153 allow_poison = [ "software_video_codecs" ] 154 sources = [ "video_encoder_factory_template.h" ] 155 156 deps = [ 157 ":scalability_mode", 158 ":video_codecs_api", 159 "..:array_view", 160 "../../modules/video_coding/svc:scalability_mode_util", 161 "../environment", 162 "//third_party/abseil-cpp/absl/algorithm:container", 163 ] 164 } 165 166 rtc_source_set("video_encoder_factory_template_libvpx_vp8_adapter") { 167 visibility = [ "*" ] 168 allow_poison = [ "software_video_codecs" ] 169 sources = [ "video_encoder_factory_template_libvpx_vp8_adapter.h" ] 170 171 deps = [ 172 ":scalability_mode", 173 ":video_codecs_api", 174 "../../modules/video_coding:webrtc_vp8", 175 "../../modules/video_coding:webrtc_vp8_scalability", 176 "../environment", 177 "//third_party/abseil-cpp/absl/container:inlined_vector", 178 ] 179 } 180 181 rtc_source_set("video_encoder_factory_template_libvpx_vp9_adapter") { 182 visibility = [ "*" ] 183 allow_poison = [ "software_video_codecs" ] 184 sources = [ "video_encoder_factory_template_libvpx_vp9_adapter.h" ] 185 186 deps = [ 187 ":scalability_mode", 188 ":video_codecs_api", 189 "../../modules/video_coding:webrtc_vp9", 190 "../environment", 191 ] 192 } 193 194 rtc_source_set("video_encoder_factory_template_open_h264_adapter") { 195 visibility = [ "*" ] 196 allow_poison = [ "software_video_codecs" ] 197 sources = [ "video_encoder_factory_template_open_h264_adapter.h" ] 198 199 deps = [ 200 ":scalability_mode", 201 ":video_codecs_api", 202 "../../modules/video_coding:webrtc_h264", 203 "../environment", 204 ] 205 } 206 207 rtc_source_set("video_encoder_factory_template_libaom_av1_adapter") { 208 visibility = [ "*" ] 209 allow_poison = [ "software_video_codecs" ] 210 sources = [ "video_encoder_factory_template_libaom_av1_adapter.h" ] 211 212 deps = [ 213 ":scalability_mode", 214 ":video_codecs_api", 215 "../../modules/video_coding/codecs/av1:av1_svc_config", 216 "../../modules/video_coding/codecs/av1:libaom_av1_encoder", 217 "../../modules/video_coding/svc:scalability_mode_util", 218 "../environment", 219 "//third_party/abseil-cpp/absl/container:inlined_vector", 220 ] 221 } 222 223 rtc_source_set("video_decoder_factory_template") { 224 visibility = [ "*" ] 225 allow_poison = [ "software_video_codecs" ] 226 sources = [ "video_decoder_factory_template.h" ] 227 228 deps = [ 229 ":video_codecs_api", 230 "..:array_view", 231 "../environment", 232 "//third_party/abseil-cpp/absl/algorithm:container", 233 ] 234 } 235 236 rtc_source_set("video_decoder_factory_template_libvpx_vp8_adapter") { 237 visibility = [ "*" ] 238 allow_poison = [ "software_video_codecs" ] 239 sources = [ "video_decoder_factory_template_libvpx_vp8_adapter.h" ] 240 241 deps = [ 242 ":video_codecs_api", 243 "../../modules/video_coding:webrtc_vp8", 244 "../environment", 245 ] 246 } 247 248 rtc_source_set("video_decoder_factory_template_libvpx_vp9_adapter") { 249 visibility = [ "*" ] 250 allow_poison = [ "software_video_codecs" ] 251 sources = [ "video_decoder_factory_template_libvpx_vp9_adapter.h" ] 252 253 deps = [ 254 ":video_codecs_api", 255 "../../modules/video_coding:webrtc_vp9", 256 ] 257 } 258 259 rtc_source_set("video_decoder_factory_template_open_h264_adapter") { 260 visibility = [ "*" ] 261 allow_poison = [ "software_video_codecs" ] 262 sources = [ "video_decoder_factory_template_open_h264_adapter.h" ] 263 264 deps = [ 265 ":video_codecs_api", 266 "../../modules/video_coding:webrtc_h264", 267 ] 268 } 269 270 rtc_source_set("video_decoder_factory_template_dav1d_adapter") { 271 visibility = [ "*" ] 272 allow_poison = [ "software_video_codecs" ] 273 sources = [ "video_decoder_factory_template_dav1d_adapter.h" ] 274 275 deps = [ 276 ":video_codecs_api", 277 "../../modules/video_coding/codecs/av1:dav1d_decoder", 278 "../environment", 279 ] 280 } 281 282 rtc_source_set("video_encoding_general") { 283 sources = [ "video_encoding_general.h" ] 284 } 285 286 rtc_source_set("video_encoder_interface") { 287 sources = [ "video_encoder_interface.h" ] 288 289 deps = [ 290 ":video_encoding_general", 291 "..:array_view", 292 "..:scoped_refptr", 293 "../../api/units:data_rate", 294 "../../api/units:data_size", 295 "../../api/units:time_delta", 296 "../../api/units:timestamp", 297 "../../api/video:encoded_image", 298 "../../api/video:resolution", 299 "../../api/video:video_frame", 300 "../../api/video_codecs:video_codecs_api", 301 "../../rtc_base:rtc_numerics", 302 "//third_party/abseil-cpp/absl/functional:any_invocable", 303 ] 304 } 305 306 rtc_source_set("video_encoder_factory_interface") { 307 sources = [ "video_encoder_factory_interface.h" ] 308 309 deps = [ 310 ":video_encoder_interface", 311 ":video_encoding_general", 312 "../../api/units:time_delta", 313 "../../api/video:resolution", 314 "../../rtc_base:rtc_numerics", 315 "../video:video_frame", 316 ] 317 } 318 319 rtc_library("simple_encoder_wrapper") { 320 sources = [ 321 "simple_encoder_wrapper.cc", 322 "simple_encoder_wrapper.h", 323 ] 324 325 deps = [ 326 ":video_encoder_factory_interface", 327 ":video_encoder_interface", 328 "..:array_view", 329 "..:scoped_refptr", 330 "../../api/units:data_rate", 331 "../../api/video_codecs:scalability_mode", 332 "../../api/video_codecs:scalability_mode_helper", 333 "../../common_video/generic_frame_descriptor", 334 "../../modules/video_coding/svc:scalability_structures", 335 "../../modules/video_coding/svc:scalable_video_controller", 336 "../../rtc_base:checks", 337 "../../rtc_base:logging", 338 "../../rtc_base:rtc_numerics", 339 "../transport/rtp:dependency_descriptor", 340 "../units:data_size", 341 "../units:frequency", 342 "../units:timestamp", 343 "../video:video_frame", 344 "//third_party/abseil-cpp/absl/algorithm:container", 345 "//third_party/abseil-cpp/absl/functional:any_invocable", 346 "//third_party/abseil-cpp/absl/strings:string_view", 347 ] 348 } 349 350 rtc_library("simple_encoder_wrapper_unittests") { 351 testonly = true 352 353 sources = [ "simple_encoder_wrapper_unittests.cc" ] 354 355 deps = [ 356 ":simple_encoder_wrapper", 357 ":video_encoder_factory_interface", 358 ":video_encoder_interface", 359 ":video_encoding_general", 360 "../../api/video:video_frame", 361 "../../api/video_codecs:libaom_av1_encoder_factory", 362 "../../test:fileutils", 363 "../../test:test_support", 364 "../../test:video_test_support", 365 ] 366 } 367 368 rtc_library("libaom_av1_encoder_factory") { 369 sources = [ 370 "libaom_av1_encoder_factory.cc", 371 "libaom_av1_encoder_factory.h", 372 ] 373 374 deps = [ 375 ":video_codecs_api", 376 ":video_encoder_factory_interface", 377 ":video_encoder_interface", 378 ":video_encoding_general", 379 "..:array_view", 380 "..:scoped_refptr", 381 "../../api/units:time_delta", 382 "../../rtc_base:checks", 383 "../../rtc_base:logging", 384 "../../rtc_base:rtc_numerics", 385 "../../rtc_base:stringutils", 386 "../units:data_rate", 387 "../units:data_size", 388 "../video:resolution", 389 "../video:video_frame", 390 "//third_party/abseil-cpp/absl/algorithm:container", 391 "//third_party/abseil-cpp/absl/cleanup", 392 "//third_party/libaom", 393 ] 394 } 395 396 rtc_library("libaom_av1_encoder_factory_test") { 397 testonly = true 398 sources = [ "libaom_av1_encoder_factory_test.cc" ] 399 data = [ "../../resources/reference_video_640x360_30fps.y4m" ] 400 401 deps = [ 402 ":libaom_av1_encoder_factory", 403 ":video_encoder_factory_interface", 404 ":video_encoder_interface", 405 ":video_encoding_general", 406 "..:array_view", 407 "..:scoped_refptr", 408 "../../api/video:video_frame", 409 "../../api/video_codecs:video_codecs_api", 410 "../../common_video", 411 "../../modules/video_coding/codecs/av1:dav1d_decoder", 412 "../../rtc_base:checks", 413 "../../rtc_base:logging", 414 "../../test:fileutils", 415 "../../test:test_support", 416 "../../test:video_frame_writer", 417 "../../test:video_test_support", 418 "../units:data_rate", 419 "../units:data_size", 420 "../units:time_delta", 421 "../units:timestamp", 422 "../video:encoded_image", 423 ] 424 } 425 426 rtc_library("vp8_temporal_layers_factory") { 427 visibility = [ "*" ] 428 allow_poison = [ "software_video_codecs" ] 429 sources = [ 430 "vp8_temporal_layers_factory.cc", 431 "vp8_temporal_layers_factory.h", 432 ] 433 434 deps = [ 435 ":video_codecs_api", 436 "../:fec_controller_api", 437 "../../modules/video_coding:video_coding_utility", 438 "../../modules/video_coding:webrtc_vp8_temporal_layers", 439 "../../rtc_base:checks", 440 "../environment", 441 ] 442 } 443 444 rtc_library("rtc_software_fallback_wrappers") { 445 visibility = [ "*" ] 446 447 sources = [ 448 "video_decoder_software_fallback_wrapper.cc", 449 "video_decoder_software_fallback_wrapper.h", 450 "video_encoder_software_fallback_wrapper.cc", 451 "video_encoder_software_fallback_wrapper.h", 452 ] 453 454 deps = [ 455 ":video_codecs_api", 456 "..:fec_controller_api", 457 "..:scoped_refptr", 458 "../../api:field_trials_view", 459 "../../api/environment", 460 "../../api/video:video_frame", 461 "../../media:video_common", 462 "../../modules/video_coding:video_codec_interface", 463 "../../modules/video_coding:video_coding_utility", 464 "../../rtc_base:checks", 465 "../../rtc_base:event_tracer", 466 "../../rtc_base:logging", 467 "../../rtc_base/experiments:field_trial_parser", 468 "../../rtc_base/system:rtc_export", 469 "../../system_wrappers:metrics", 470 "../video:encoded_image", 471 "../video:video_bitrate_allocation", 472 "../video:video_frame", 473 "../video:video_frame_type", 474 "../video:video_rtp_headers", 475 "//third_party/abseil-cpp/absl/strings", 476 ] 477 }