# Copyright (c) 2017 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("../../webrtc.gni") if (is_android) { import("//build/config/android/config.gni") import("//build/config/android/rules.gni") } rtc_source_set("scalability_mode") { visibility = [ "*" ] sources = [ "scalability_mode.cc", "scalability_mode.h", ] deps = [ "../../rtc_base:checks", "../../rtc_base/system:rtc_export", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] } rtc_source_set("scalability_mode_helper") { visibility = [ "*" ] sources = [ "scalability_mode_helper.cc", "scalability_mode_helper.h", ] deps = [ ":scalability_mode", "../../modules/video_coding/svc:scalability_mode_util", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_library("video_codecs_api") { visibility = [ "*" ] sources = [ "av1_profile.cc", "av1_profile.h", "h264_profile_level_id.cc", "h264_profile_level_id.h", "sdp_video_format.cc", "sdp_video_format.h", "simulcast_stream.cc", "simulcast_stream.h", "spatial_layer.cc", "spatial_layer.h", "video_codec.cc", "video_codec.h", "video_decoder.cc", "video_decoder.h", "video_decoder_factory.cc", "video_decoder_factory.h", "video_encoder.cc", "video_encoder.h", "video_encoder_factory.h", "vp8_frame_buffer_controller.h", "vp8_frame_config.cc", "vp8_frame_config.h", "vp8_temporal_layers.cc", "vp8_temporal_layers.h", "vp9_profile.cc", "vp9_profile.h", ] if (rtc_use_h265) { sources += [ "h265_profile_tier_level.cc", "h265_profile_tier_level.h", ] } deps = [ ":scalability_mode", "..:fec_controller_api", "..:scoped_refptr", "../../api:array_view", "../../api:rtp_parameters", "../../media:media_constants", "../../modules/video_coding:codec_globals_headers", "../../rtc_base:checks", "../../rtc_base:logging", "../../rtc_base:macromagic", "../../rtc_base:refcount", "../../rtc_base:stringutils", "../../rtc_base/system:rtc_export", "../environment", "../units:data_rate", "../video:encoded_image", "../video:render_resolution", "../video:resolution", "../video:video_bitrate_allocation", "../video:video_codec_constants", "../video:video_frame", "../video:video_rtp_headers", ] absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container", "//third_party/abseil-cpp/absl/container:inlined_vector", "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_source_set("bitstream_parser_api") { visibility = [ "*" ] sources = [ "bitstream_parser.h" ] deps = [ "..:array_view" ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } rtc_library("builtin_video_decoder_factory") { visibility = [ "*" ] allow_poison = [ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove. "software_video_codecs", ] sources = [ "builtin_video_decoder_factory.cc", "builtin_video_decoder_factory.h", ] deps = [ ":video_codecs_api", "../../api:scoped_refptr", "../../media:rtc_internal_video_codecs", "../../rtc_base/system:rtc_export", ] } rtc_library("builtin_video_encoder_factory") { visibility = [ "*" ] allow_poison = [ "software_video_codecs" ] sources = [ "builtin_video_encoder_factory.cc", "builtin_video_encoder_factory.h", ] deps = [ ":video_codecs_api", "../../media:rtc_internal_video_codecs", "../../media:rtc_simulcast_encoder_adapter", "../../rtc_base/system:rtc_export", "../environment", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_source_set("video_encoder_factory_template") { visibility = [ "*" ] allow_poison = [ "software_video_codecs" ] public = [ "video_encoder_factory_template.h" ] deps = [ ":video_codecs_api", "..:array_view", "../../modules/video_coding/svc:scalability_mode_util", "../environment", ] absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ] } rtc_source_set("video_encoder_factory_template_libvpx_vp8_adapter") { visibility = [ "*" ] allow_poison = [ "software_video_codecs" ] public = [ "video_encoder_factory_template_libvpx_vp8_adapter.h" ] deps = [ ":video_codecs_api", "../../modules/video_coding:webrtc_vp8", "../../modules/video_coding:webrtc_vp8_scalability", "../environment", ] absl_deps = [ "//third_party/abseil-cpp/absl/container:inlined_vector" ] } rtc_source_set("video_encoder_factory_template_libvpx_vp9_adapter") { visibility = [ "*" ] allow_poison = [ "software_video_codecs" ] public = [ "video_encoder_factory_template_libvpx_vp9_adapter.h" ] deps = [ ":video_codecs_api", "../../modules/video_coding:webrtc_vp9", "../environment", ] } rtc_source_set("video_encoder_factory_template_open_h264_adapter") { visibility = [ "*" ] allow_poison = [ "software_video_codecs" ] public = [ "video_encoder_factory_template_open_h264_adapter.h" ] deps = [ "../../modules/video_coding:webrtc_h264", "../environment", ] } rtc_source_set("video_encoder_factory_template_libaom_av1_adapter") { visibility = [ "*" ] allow_poison = [ "software_video_codecs" ] public = [ "video_encoder_factory_template_libaom_av1_adapter.h" ] deps = [ ":scalability_mode", ":video_codecs_api", "../../modules/video_coding/codecs/av1:av1_svc_config", "../../modules/video_coding/codecs/av1:libaom_av1_encoder", "../../modules/video_coding/svc:scalability_mode_util", "../environment", ] absl_deps = [ "//third_party/abseil-cpp/absl/container:inlined_vector" ] } rtc_source_set("video_decoder_factory_template") { visibility = [ "*" ] allow_poison = [ "software_video_codecs" ] public = [ "video_decoder_factory_template.h" ] deps = [ ":video_codecs_api", "..:array_view", "../environment", ] absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ] } rtc_source_set("video_decoder_factory_template_libvpx_vp8_adapter") { visibility = [ "*" ] allow_poison = [ "software_video_codecs" ] public = [ "video_decoder_factory_template_libvpx_vp8_adapter.h" ] deps = [ ":video_codecs_api", "../../modules/video_coding:webrtc_vp8", "../environment", ] } rtc_source_set("video_decoder_factory_template_libvpx_vp9_adapter") { visibility = [ "*" ] allow_poison = [ "software_video_codecs" ] public = [ "video_decoder_factory_template_libvpx_vp9_adapter.h" ] deps = [ "../../modules/video_coding:webrtc_vp9" ] } rtc_source_set("video_decoder_factory_template_open_h264_adapter") { visibility = [ "*" ] allow_poison = [ "software_video_codecs" ] public = [ "video_decoder_factory_template_open_h264_adapter.h" ] deps = [ "../../modules/video_coding:webrtc_h264" ] } rtc_source_set("video_decoder_factory_template_dav1d_adapter") { visibility = [ "*" ] allow_poison = [ "software_video_codecs" ] public = [ "video_decoder_factory_template_dav1d_adapter.h" ] deps = [ ":video_codecs_api", "../../modules/video_coding/codecs/av1:dav1d_decoder", ] } rtc_source_set("video_encoding_general") { public = [ "video_encoding_general.h" ] } rtc_source_set("video_encoder_interface") { public = [ "video_encoder_interface.h" ] deps = [ ":video_encoding_general", "../../api/units:data_rate", "../../api/units:time_delta", "../../api/units:timestamp", "../../api/video:encoded_image", "../../api/video:resolution", "../../api/video:video_frame", "../../api/video_codecs:video_codecs_api", "../../rtc_base:rtc_numerics", ] absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable", "//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:variant", ] } rtc_source_set("video_encoder_factory_interface") { public = [ "video_encoder_factory_interface.h" ] deps = [ ":video_encoder_interface", ":video_encoding_general", "../../api/units:time_delta", "../../api/video:resolution", "../../rtc_base:rtc_numerics", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:variant", ] } rtc_library("simple_encoder_wrapper") { sources = [ "simple_encoder_wrapper.cc", "simple_encoder_wrapper.h", ] deps = [ ":video_encoder_factory_interface", ":video_encoder_interface", "../../api/units:data_rate", "../../api/video_codecs:scalability_mode", "../../api/video_codecs:scalability_mode_helper", "../../common_video/generic_frame_descriptor:generic_frame_descriptor", "../../modules/video_coding/svc:scalability_structures", "../../rtc_base:logging", ] absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container", "//third_party/abseil-cpp/absl/functional:any_invocable", ] } rtc_library("simple_encoder_wrapper_unittests") { testonly = true sources = [ "simple_encoder_wrapper_unittests.cc" ] deps = [ ":simple_encoder_wrapper", ":video_encoder_factory_interface", ":video_encoder_interface", "../../api/video:video_frame", "../../api/video_codecs:libaom_av1_encoder_factory", "../../test:fileutils", "../../test:test_support", "../../test:video_test_support", ] } rtc_library("libaom_av1_encoder_factory") { sources = [ "libaom_av1_encoder_factory.cc", "libaom_av1_encoder_factory.h", ] deps = [ ":video_encoder_factory_interface", ":video_encoder_interface", "../../api/units:time_delta", "../../rtc_base:logging", "//third_party/libaom", ] absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ] } rtc_library("libaom_av1_encoder_factory_test") { testonly = true sources = [ "libaom_av1_encoder_factory_test.cc" ] data = [ "../../resources/reference_video_640x360_30fps.y4m" ] deps = [ ":libaom_av1_encoder_factory", ":video_encoder_interface", "../../api/video:video_frame", "../../api/video_codecs:video_codecs_api", "../../common_video:common_video", "../../modules/video_coding/codecs/av1:dav1d_decoder", "../../rtc_base:logging", "../../test:fileutils", "../../test:test_support", "../../test:video_test_support", ] } rtc_library("vp8_temporal_layers_factory") { visibility = [ "*" ] allow_poison = [ "software_video_codecs" ] sources = [ "vp8_temporal_layers_factory.cc", "vp8_temporal_layers_factory.h", ] deps = [ ":video_codecs_api", "../:fec_controller_api", "../../modules/video_coding:video_coding_utility", "../../modules/video_coding:webrtc_vp8_temporal_layers", "../../rtc_base:checks", ] } rtc_library("rtc_software_fallback_wrappers") { visibility = [ "*" ] sources = [ "video_decoder_software_fallback_wrapper.cc", "video_decoder_software_fallback_wrapper.h", "video_encoder_software_fallback_wrapper.cc", "video_encoder_software_fallback_wrapper.h", ] deps = [ ":video_codecs_api", "..:fec_controller_api", "../../api:field_trials_view", "../../api/environment", "../../api/video:video_frame", "../../media:video_common", "../../modules/video_coding:video_codec_interface", "../../modules/video_coding:video_coding_utility", "../../rtc_base:checks", "../../rtc_base:event_tracer", "../../rtc_base:logging", "../../rtc_base/experiments:field_trial_parser", "../../rtc_base/system:rtc_export", "../../system_wrappers:metrics", "../video:encoded_image", "../video:video_bitrate_allocation", "../video:video_frame", "../video:video_rtp_headers", ] absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers", "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] }