# 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 = [
    "audio_codecs",  # TODO(bugs.webrtc.org/8396): Remove.
    "software_video_codecs",
  ]
  sources = [
    "builtin_video_encoder_factory.cc",
    "builtin_video_encoder_factory.h",
  ]

  deps = [
    ":video_codecs_api",
    "../../api:scoped_refptr",
    "../../media:codec",
    "../../media:media_constants",
    "../../media:rtc_internal_video_codecs",
    "../../media:rtc_media_base",
    "../../media:rtc_simulcast_encoder_adapter",
    "../../rtc_base:checks",
    "../../rtc_base/system:rtc_export",
  ]
  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",
    "../../api:array_view",
    "../../modules/video_coding/svc:scalability_mode_util",
  ]

  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",
  ]

  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 = [ "../../modules/video_coding:webrtc_vp9" ]
}

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" ]
}

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",
  ]
  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_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/transport:field_trial_based_config",
    "../../api/video:video_frame",
    "../../media:rtc_media_base",
    "../../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:field_trial",
    "../../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",
  ]
}
