# Copyright (c) 2015 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")

rtc_source_set("call_interfaces") {
  sources = [
    "audio_receive_stream.h",
    "audio_send_stream.cc",
    "audio_send_stream.h",
    "audio_state.h",
    "call.h",
    "callfactoryinterface.h",
    "flexfec_receive_stream.h",
    "syncable.cc",
    "syncable.h",
  ]
  deps = [
    ":rtp_interfaces",
    ":video_stream_api",
    "..:webrtc_common",
    "../:typedefs",
    "../api:audio_mixer_api",
    "../api:libjingle_peerconnection_api",
    "../api:optional",
    "../api:transport_api",
    "../api/audio_codecs:audio_codecs_api",
    "../modules/audio_processing:audio_processing_statistics",
    "../rtc_base:rtc_base",
    "../rtc_base:rtc_base_approved",
  ]
}

# TODO(nisse): These RTP targets should be moved elsewhere
# when interfaces have stabilized. See also TODO for |mock_rtp_interfaces|.
rtc_source_set("rtp_interfaces") {
  sources = [
    "rtcp_packet_sink_interface.h",
    "rtp_config.cc",
    "rtp_config.h",
    "rtp_packet_sink_interface.h",
    "rtp_stream_receiver_controller_interface.h",
    "rtp_transport_controller_send_interface.h",
  ]
  deps = [
    "../api:array_view",
    "../rtc_base:rtc_base_approved",
  ]
}

rtc_source_set("rtp_receiver") {
  sources = [
    "rtcp_demuxer.cc",
    "rtcp_demuxer.h",
    "rtp_demuxer.cc",
    "rtp_demuxer.h",
    "rtp_rtcp_demuxer_helper.cc",
    "rtp_rtcp_demuxer_helper.h",
    "rtp_stream_receiver_controller.cc",
    "rtp_stream_receiver_controller.h",
    "rtx_receive_stream.cc",
    "rtx_receive_stream.h",
    "ssrc_binding_observer.h",
  ]
  deps = [
    ":rtp_interfaces",
    "..:webrtc_common",
    "../api:array_view",
    "../api:libjingle_peerconnection_api",
    "../api:optional",
    "../modules/rtp_rtcp",
    "../modules/rtp_rtcp:rtp_rtcp_format",
    "../rtc_base:checks",
    "../rtc_base:rtc_base_approved",
  ]
}

rtc_source_set("rtp_sender") {
  sources = [
    "rtp_transport_controller_send.cc",
    "rtp_transport_controller_send.h",
  ]
  deps = [
    ":rtp_interfaces",
    "..:webrtc_common",
    "../modules/congestion_controller",
    "../modules/pacing",
    "../rtc_base:rtc_base_approved",
  ]
}

rtc_source_set("bitrate_allocator") {
  sources = [
    "bitrate_allocator.cc",
    "bitrate_allocator.h",
  ]
  deps = [
    "../modules/bitrate_controller",
    "../rtc_base:checks",
    "../rtc_base:rtc_base_approved",
    "../rtc_base:sequenced_task_checker",
    "../system_wrappers",
    "../system_wrappers:metrics_api",
  ]
  if (!build_with_chromium && is_clang) {
    # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
    suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
  }
}

rtc_static_library("call") {
  sources = [
    "call.cc",
    "callfactory.cc",
    "callfactory.h",
    "flexfec_receive_stream_impl.cc",
    "flexfec_receive_stream_impl.h",
  ]

  if (!build_with_chromium && is_clang) {
    # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
    suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
  }

  deps = [
    ":bitrate_allocator",
    ":call_interfaces",
    ":rtp_interfaces",
    ":rtp_receiver",
    ":rtp_sender",
    ":video_stream_api",
    "..:webrtc_common",
    "../api:optional",
    "../api:transport_api",
    "../audio",
    "../logging:rtc_event_log_api",
    "../logging:rtc_event_log_impl",
    "../modules/bitrate_controller",
    "../modules/congestion_controller",
    "../modules/pacing",
    "../modules/rtp_rtcp",
    "../modules/rtp_rtcp:rtp_rtcp_format",
    "../modules/utility",
    "../rtc_base:checks",
    "../rtc_base:rtc_base_approved",
    "../rtc_base:rtc_task_queue",
    "../rtc_base:sequenced_task_checker",
    "../system_wrappers",
    "../system_wrappers:metrics_api",
    "../video",
  ]
}

rtc_source_set("video_stream_api") {
  sources = [
    "video_config.cc",
    "video_config.h",
    "video_receive_stream.cc",
    "video_receive_stream.h",
    "video_send_stream.cc",
    "video_send_stream.h",
  ]
  deps = [
    ":rtp_interfaces",
    "../:typedefs",
    "../:webrtc_common",
    "../api:libjingle_peerconnection_api",
    "../api:optional",
    "../api:transport_api",
    "../api:video_frame_api",
    "../common_video:common_video",
    "../modules/rtp_rtcp:rtp_rtcp_format",
    "../rtc_base:checks",
    "../rtc_base:rtc_base_approved",
  ]
}

if (rtc_include_tests) {
  rtc_source_set("call_tests") {
    testonly = true

    sources = [
      "bitrate_allocator_unittest.cc",
      "bitrate_estimator_tests.cc",
      "call_unittest.cc",
      "flexfec_receive_stream_unittest.cc",
      "rtcp_demuxer_unittest.cc",
      "rtp_demuxer_unittest.cc",
      "rtp_rtcp_demuxer_helper_unittest.cc",
      "rtx_receive_stream_unittest.cc",
    ]
    deps = [
      ":bitrate_allocator",
      ":call",
      ":call_interfaces",
      ":mock_rtp_interfaces",
      ":rtp_interfaces",
      ":rtp_receiver",
      ":rtp_sender",
      "..:webrtc_common",
      "../api:array_view",
      "../api:libjingle_peerconnection_api",
      "../api:mock_audio_mixer",
      "../api/audio_codecs:builtin_audio_decoder_factory",
      "../logging:rtc_event_log_api",
      "../modules/audio_device:mock_audio_device",
      "../modules/audio_mixer",
      "../modules/audio_mixer:audio_mixer_impl",
      "../modules/audio_processing:mocks",
      "../modules/bitrate_controller",
      "../modules/congestion_controller",
      "../modules/congestion_controller:mock_congestion_controller",
      "../modules/pacing",
      "../modules/pacing:mock_paced_sender",
      "../modules/rtp_rtcp",
      "../modules/rtp_rtcp:mock_rtp_rtcp",
      "../modules/rtp_rtcp:rtp_rtcp_format",
      "../modules/utility:mock_process_thread",
      "../rtc_base:checks",
      "../rtc_base:rtc_base_approved",
      "../system_wrappers",
      "../test:audio_codec_mocks",
      "../test:direct_transport",
      "../test:test_common",
      "../test:test_support",
      "../test:video_test_common",
      "//testing/gmock",
      "//testing/gtest",
    ]
    if (!build_with_chromium && is_clang) {
      # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
      suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
    }
  }

  rtc_source_set("call_perf_tests") {
    testonly = true

    sources = [
      "call_perf_tests.cc",
      "rampup_tests.cc",
      "rampup_tests.h",
    ]
    deps = [
      ":call_interfaces",
      ":video_stream_api",
      "..:webrtc_common",
      "../api/audio_codecs:builtin_audio_encoder_factory",
      "../logging:rtc_event_log_api",
      "../modules/audio_coding",
      "../modules/audio_mixer:audio_mixer_impl",
      "../modules/rtp_rtcp",
      "../rtc_base:checks",
      "../rtc_base:rtc_base_approved",
      "../system_wrappers",
      "../system_wrappers:metrics_default",
      "../test:direct_transport",
      "../test:fake_audio_device",
      "../test:field_trial",
      "../test:test_common",
      "../test:test_support",
      "../test:video_test_common",
      "../video",
      "../voice_engine",
      "//testing/gtest",
    ]
    if (!build_with_chromium && is_clang) {
      # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
      suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
    }
  }

  # TODO(eladalon): This should be moved, as with the TODO for |rtp_interfaces|.
  rtc_source_set("mock_rtp_interfaces") {
    testonly = true

    sources = [
      "fake_rtp_transport_controller_send.h",
      "test/mock_rtp_packet_sink_interface.h",
    ]
    deps = [
      ":rtp_interfaces",
      "..:webrtc_common",
      "../modules/congestion_controller:congestion_controller",
      "../modules/pacing:pacing",
      "../test:test_support",
      "//testing/gmock",
    ]
  }

  rtc_source_set("mock_call_interfaces") {
    testonly = true

    sources = [
      "test/mock_audio_send_stream.h",
    ]
    deps = [
      ":call_interfaces",
      "//test:test_support",
    ]
  }
}
