| # 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", |
| "//third_party/abseil-cpp/absl/strings:string_view", |
| ] |
| } |
| |
| 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", |
| "//third_party/abseil-cpp/absl/strings:string_view", |
| "//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.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_frame_type", |
| "../video:video_rtp_headers", |
| "//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/strings:string_view", |
| "//third_party/abseil-cpp/absl/types:optional", |
| ] |
| } |
| |
| rtc_source_set("bitstream_parser_api") { |
| visibility = [ "*" ] |
| sources = [ "bitstream_parser.h" ] |
| deps = [ |
| "..:array_view", |
| "//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", |
| "//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 = [ |
| ":scalability_mode", |
| ":video_codecs_api", |
| "..:array_view", |
| "../../modules/video_coding/svc:scalability_mode_util", |
| "../environment", |
| "//third_party/abseil-cpp/absl/algorithm:container", |
| "//third_party/abseil-cpp/absl/types:optional", |
| ] |
| } |
| |
| 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 = [ |
| ":scalability_mode", |
| ":video_codecs_api", |
| "../../modules/video_coding:webrtc_vp8", |
| "../../modules/video_coding:webrtc_vp8_scalability", |
| "../environment", |
| "//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 = [ |
| ":scalability_mode", |
| ":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 = [ |
| ":scalability_mode", |
| ":video_codecs_api", |
| "../../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", |
| "//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", |
| "//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 = [ |
| ":video_codecs_api", |
| "../../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 = [ |
| ":video_codecs_api", |
| "../../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", |
| "..:array_view", |
| "..:scoped_refptr", |
| "../../api/units:data_rate", |
| "../../api/units:data_size", |
| "../../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", |
| "//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", |
| "../video:video_frame", |
| "//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", |
| "..:array_view", |
| "..:scoped_refptr", |
| "../../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", |
| "../../modules/video_coding/svc:scalable_video_controller", |
| "../../rtc_base:checks", |
| "../../rtc_base:logging", |
| "../../rtc_base:rtc_numerics", |
| "../transport/rtp:dependency_descriptor", |
| "../units:data_size", |
| "../units:frequency", |
| "../units:timestamp", |
| "../video:video_frame", |
| "//third_party/abseil-cpp/absl/algorithm:container", |
| "//third_party/abseil-cpp/absl/functional:any_invocable", |
| "//third_party/abseil-cpp/absl/strings:string_view", |
| "//third_party/abseil-cpp/absl/types:optional", |
| "//third_party/abseil-cpp/absl/types:variant", |
| ] |
| } |
| |
| 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", |
| ":video_encoding_general", |
| "../../api/video:video_frame", |
| "../../api/video_codecs:libaom_av1_encoder_factory", |
| "../../test:fileutils", |
| "../../test:test_support", |
| "../../test:video_test_support", |
| "//third_party/abseil-cpp/absl/types:optional", |
| ] |
| } |
| |
| rtc_library("libaom_av1_encoder_factory") { |
| sources = [ |
| "libaom_av1_encoder_factory.cc", |
| "libaom_av1_encoder_factory.h", |
| ] |
| |
| deps = [ |
| ":video_codecs_api", |
| ":video_encoder_factory_interface", |
| ":video_encoder_interface", |
| ":video_encoding_general", |
| "..:array_view", |
| "..:scoped_refptr", |
| "../../api/units:time_delta", |
| "../../rtc_base:checks", |
| "../../rtc_base:logging", |
| "../../rtc_base:rtc_numerics", |
| "../../rtc_base:stringutils", |
| "../units:data_rate", |
| "../units:data_size", |
| "../video:resolution", |
| "../video:video_frame", |
| "//third_party/abseil-cpp/absl/algorithm:container", |
| "//third_party/abseil-cpp/absl/cleanup", |
| "//third_party/abseil-cpp/absl/types:optional", |
| "//third_party/abseil-cpp/absl/types:variant", |
| "//third_party/libaom", |
| ] |
| } |
| |
| 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_factory_interface", |
| ":video_encoder_interface", |
| ":video_encoding_general", |
| "..:array_view", |
| "..:scoped_refptr", |
| "../../api/video:video_frame", |
| "../../api/video_codecs:video_codecs_api", |
| "../../common_video:common_video", |
| "../../modules/video_coding/codecs/av1:dav1d_decoder", |
| "../../rtc_base:checks", |
| "../../rtc_base:logging", |
| "../../test:fileutils", |
| "../../test:test_support", |
| "../../test:video_frame_writer", |
| "../../test:video_test_support", |
| "../units:data_rate", |
| "../units:data_size", |
| "../units:time_delta", |
| "../units:timestamp", |
| "../video:encoded_image", |
| "//third_party/abseil-cpp/absl/types:optional", |
| "//third_party/abseil-cpp/absl/types:variant", |
| ] |
| } |
| |
| 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", |
| "..:scoped_refptr", |
| "../../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_frame_type", |
| "../video:video_rtp_headers", |
| "//third_party/abseil-cpp/absl/strings", |
| "//third_party/abseil-cpp/absl/types:optional", |
| ] |
| } |