Moved call.h and most of api/call/* into call/

BUG=webrtc:6716

Review-Url: https://codereview.webrtc.org/2550273003
Cr-Original-Commit-Position: refs/heads/master@{#15460}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: f515ab8c3f24befe83a548b8056708acb24b6bb7
diff --git a/BUILD.gn b/BUILD.gn
index accd2c9..58300a4 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -229,6 +229,9 @@
       # TODO(kjellander): Remove this whenever possible. GN's static_library
       # target type requires at least one object to avoid errors linking.
       "build/no_op_function.cc",
+
+      # TODO(ossu): Keep this here until donwstream projects have updated.
+      # http://bugs.webrtc.org/6716
       "call.h",
       "config.h",
 
diff --git a/DEPS b/DEPS
index e46a7d3..1658936 100644
--- a/DEPS
+++ b/DEPS
@@ -32,6 +32,12 @@
 
 # The below rules will be removed when webrtc:4243 is fixed.
 specific_include_rules = {
+  # The call/call.h exception is here only until the peerconnection
+  # implementation has been moved out of api/. See:
+  # http://bugs.webrtc.org/5883
+  "call\.h": [
+    "+webrtc/call/call.h"
+  ],
   "video_frame\.h": [
     "+webrtc/common_video",
   ],
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 20cf3fa..e838e7e 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -20,11 +20,7 @@
 
 rtc_source_set("call_api") {
   sources = [
-    "call/audio_receive_stream.h",
-    "call/audio_send_stream.cc",
-    "call/audio_send_stream.h",
     "call/audio_sink.h",
-    "call/audio_state.h",
     "call/flexfec_receive_stream.h",
   ]
 
diff --git a/api/DEPS b/api/DEPS
index ee97620..75f756d 100644
--- a/api/DEPS
+++ b/api/DEPS
@@ -18,10 +18,22 @@
     "+base/android",  # Allowed only for Android tests.
     "+webrtc/voice_engine",
   ],
+  # The call/call.h exceptions are here only until the peerconnection
+  # implementation has been moved out of api/. See:
+  # http://bugs.webrtc.org/5883
+  "mediacontroller\.cc": [
+    "+webrtc/call/call.h"
+  ],
+  "peerconnection\.cc": [
+    "+webrtc/call/call.h"
+  ],
   "peerconnection_jni\.cc": [
     "+webrtc/voice_engine",
   ],
   "peerconnectionfactory\.cc": [
     "+webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h",
   ],
+  "webrtcsession\.cc": [
+    "+webrtc/call/call.h"
+  ],
 }
diff --git a/api/call/DEPS b/api/call/DEPS
deleted file mode 100644
index d1d4309..0000000
--- a/api/call/DEPS
+++ /dev/null
@@ -1,4 +0,0 @@
-include_rules = [
-  "+webrtc/modules/audio_coding/codecs",
-]
-
diff --git a/api/mediacontroller.cc b/api/mediacontroller.cc
index 319dd1f..c64ff01 100644
--- a/api/mediacontroller.cc
+++ b/api/mediacontroller.cc
@@ -15,7 +15,7 @@
 #include "webrtc/base/bind.h"
 #include "webrtc/base/checks.h"
 #include "webrtc/base/constructormagic.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/pc/channelmanager.h"
 #include "webrtc/media/base/mediachannel.h"
 
diff --git a/api/peerconnection.cc b/api/peerconnection.cc
index 46bdec5..a47b2f2 100644
--- a/api/peerconnection.cc
+++ b/api/peerconnection.cc
@@ -36,7 +36,7 @@
 #include "webrtc/base/stringencode.h"
 #include "webrtc/base/stringutils.h"
 #include "webrtc/base/trace_event.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/media/sctp/sctpdataengine.h"
 #include "webrtc/pc/channelmanager.h"
diff --git a/api/webrtcsession.cc b/api/webrtcsession.cc
index 0532040..636184b 100644
--- a/api/webrtcsession.cc
+++ b/api/webrtcsession.cc
@@ -30,7 +30,7 @@
 #include "webrtc/base/logging.h"
 #include "webrtc/base/stringencode.h"
 #include "webrtc/base/stringutils.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/media/base/mediaconstants.h"
 #include "webrtc/media/base/videocapturer.h"
 #include "webrtc/p2p/base/portallocator.h"
diff --git a/audio/BUILD.gn b/audio/BUILD.gn
index bde074d..bfc2372 100644
--- a/audio/BUILD.gn
+++ b/audio/BUILD.gn
@@ -30,8 +30,8 @@
   deps = [
     "..:webrtc_common",
     "../api:audio_mixer_api",
-    "../api:call_api",
     "../base:rtc_base_approved",
+    "../call:call_interfaces",
     "../common_audio",
     "../modules/audio_device",
     "../modules/audio_processing",
diff --git a/audio/audio_receive_stream.h b/audio/audio_receive_stream.h
index 3bba54e..7dfc5d6 100644
--- a/audio/audio_receive_stream.h
+++ b/audio/audio_receive_stream.h
@@ -14,11 +14,11 @@
 #include <memory>
 
 #include "webrtc/api/audio/audio_mixer.h"
-#include "webrtc/api/call/audio_receive_stream.h"
-#include "webrtc/api/call/audio_state.h"
 #include "webrtc/audio/audio_state.h"
 #include "webrtc/base/constructormagic.h"
 #include "webrtc/base/thread_checker.h"
+#include "webrtc/call/audio_receive_stream.h"
+#include "webrtc/call/audio_state.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h"
 
 namespace webrtc {
diff --git a/audio/audio_send_stream.h b/audio/audio_send_stream.h
index 23a7485..de1cf82 100644
--- a/audio/audio_send_stream.h
+++ b/audio/audio_send_stream.h
@@ -13,10 +13,10 @@
 
 #include <memory>
 
-#include "webrtc/api/call/audio_send_stream.h"
-#include "webrtc/api/call/audio_state.h"
 #include "webrtc/base/constructormagic.h"
 #include "webrtc/base/thread_checker.h"
+#include "webrtc/call/audio_send_stream.h"
+#include "webrtc/call/audio_state.h"
 #include "webrtc/call/bitrate_allocator.h"
 
 namespace webrtc {
diff --git a/audio/audio_state.h b/audio/audio_state.h
index 307f5ce..29b5a9e 100644
--- a/audio/audio_state.h
+++ b/audio/audio_state.h
@@ -11,12 +11,12 @@
 #ifndef WEBRTC_AUDIO_AUDIO_STATE_H_
 #define WEBRTC_AUDIO_AUDIO_STATE_H_
 
-#include "webrtc/api/call/audio_state.h"
 #include "webrtc/audio/audio_transport_proxy.h"
 #include "webrtc/audio/scoped_voe_interface.h"
 #include "webrtc/base/constructormagic.h"
 #include "webrtc/base/criticalsection.h"
 #include "webrtc/base/thread_checker.h"
+#include "webrtc/call/audio_state.h"
 #include "webrtc/voice_engine/include/voe_base.h"
 
 namespace webrtc {
diff --git a/call.h b/call.h
index 26f8c82..afea9dd 100644
--- a/call.h
+++ b/call.h
@@ -7,159 +7,7 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#ifndef WEBRTC_CALL_H_
-#define WEBRTC_CALL_H_
 
-#include <string>
-#include <vector>
-
-#include "webrtc/api/call/audio_receive_stream.h"
-#include "webrtc/api/call/audio_send_stream.h"
-#include "webrtc/api/call/audio_state.h"
-#include "webrtc/api/call/flexfec_receive_stream.h"
-#include "webrtc/base/networkroute.h"
-#include "webrtc/base/platform_file.h"
-#include "webrtc/base/socket.h"
-#include "webrtc/common_types.h"
-#include "webrtc/video_receive_stream.h"
-#include "webrtc/video_send_stream.h"
-
-namespace webrtc {
-
-class AudioProcessing;
-class RtcEventLog;
-
-const char* Version();
-
-enum class MediaType {
-  ANY,
-  AUDIO,
-  VIDEO,
-  DATA
-};
-
-class PacketReceiver {
- public:
-  enum DeliveryStatus {
-    DELIVERY_OK,
-    DELIVERY_UNKNOWN_SSRC,
-    DELIVERY_PACKET_ERROR,
-  };
-
-  virtual DeliveryStatus DeliverPacket(MediaType media_type,
-                                       const uint8_t* packet,
-                                       size_t length,
-                                       const PacketTime& packet_time) = 0;
-
- protected:
-  virtual ~PacketReceiver() {}
-};
-
-// A Call instance can contain several send and/or receive streams. All streams
-// are assumed to have the same remote endpoint and will share bitrate estimates
-// etc.
-class Call {
- public:
-  struct Config {
-    explicit Config(RtcEventLog* event_log) : event_log(event_log) {
-      RTC_DCHECK(event_log);
-    }
-
-    static const int kDefaultStartBitrateBps;
-
-    // Bitrate config used until valid bitrate estimates are calculated. Also
-    // used to cap total bitrate used.
-    struct BitrateConfig {
-      int min_bitrate_bps = 0;
-      int start_bitrate_bps = kDefaultStartBitrateBps;
-      int max_bitrate_bps = -1;
-    } bitrate_config;
-
-    // AudioState which is possibly shared between multiple calls.
-    // TODO(solenberg): Change this to a shared_ptr once we can use C++11.
-    rtc::scoped_refptr<AudioState> audio_state;
-
-    // Audio Processing Module to be used in this call.
-    // TODO(solenberg): Change this to a shared_ptr once we can use C++11.
-    AudioProcessing* audio_processing = nullptr;
-
-    // RtcEventLog to use for this call. Required.
-    // Use webrtc::RtcEventLog::CreateNull() for a null implementation.
-    RtcEventLog* event_log = nullptr;
-  };
-
-  struct Stats {
-    std::string ToString(int64_t time_ms) const;
-
-    int send_bandwidth_bps = 0;       // Estimated available send bandwidth.
-    int max_padding_bitrate_bps = 0;  // Cumulative configured max padding.
-    int recv_bandwidth_bps = 0;       // Estimated available receive bandwidth.
-    int64_t pacer_delay_ms = 0;
-    int64_t rtt_ms = -1;
-  };
-
-  static Call* Create(const Call::Config& config);
-
-  virtual AudioSendStream* CreateAudioSendStream(
-      const AudioSendStream::Config& config) = 0;
-  virtual void DestroyAudioSendStream(AudioSendStream* send_stream) = 0;
-
-  virtual AudioReceiveStream* CreateAudioReceiveStream(
-      const AudioReceiveStream::Config& config) = 0;
-  virtual void DestroyAudioReceiveStream(
-      AudioReceiveStream* receive_stream) = 0;
-
-  virtual VideoSendStream* CreateVideoSendStream(
-      VideoSendStream::Config config,
-      VideoEncoderConfig encoder_config) = 0;
-  virtual void DestroyVideoSendStream(VideoSendStream* send_stream) = 0;
-
-  virtual VideoReceiveStream* CreateVideoReceiveStream(
-      VideoReceiveStream::Config configuration) = 0;
-  virtual void DestroyVideoReceiveStream(
-      VideoReceiveStream* receive_stream) = 0;
-
-  virtual FlexfecReceiveStream* CreateFlexfecReceiveStream(
-      FlexfecReceiveStream::Config configuration) = 0;
-  virtual void DestroyFlexfecReceiveStream(
-      FlexfecReceiveStream* receive_stream) = 0;
-
-  // All received RTP and RTCP packets for the call should be inserted to this
-  // PacketReceiver. The PacketReceiver pointer is valid as long as the
-  // Call instance exists.
-  virtual PacketReceiver* Receiver() = 0;
-
-  // Returns the call statistics, such as estimated send and receive bandwidth,
-  // pacing delay, etc.
-  virtual Stats GetStats() const = 0;
-
-  // TODO(pbos): Like BitrateConfig above this is currently per-stream instead
-  // of maximum for entire Call. This should be fixed along with the above.
-  // Specifying a start bitrate (>0) will currently reset the current bitrate
-  // estimate. This is due to how the 'x-google-start-bitrate' flag is currently
-  // implemented.
-  virtual void SetBitrateConfig(
-      const Config::BitrateConfig& bitrate_config) = 0;
-
-  // TODO(skvlad): When the unbundled case with multiple streams for the same
-  // media type going over different networks is supported, track the state
-  // for each stream separately. Right now it's global per media type.
-  virtual void SignalChannelNetworkState(MediaType media,
-                                         NetworkState state) = 0;
-
-  virtual void OnTransportOverheadChanged(
-      MediaType media,
-      int transport_overhead_per_packet) = 0;
-
-  virtual void OnNetworkRouteChanged(
-      const std::string& transport_name,
-      const rtc::NetworkRoute& network_route) = 0;
-
-  virtual void OnSentPacket(const rtc::SentPacket& sent_packet) = 0;
-
-  virtual ~Call() {}
-};
-
-}  // namespace webrtc
-
-#endif  // WEBRTC_CALL_H_
+// This file is deprecated. It has been moved to the location below. Please
+// update your includes! See: http://bugs.webrtc.org/6716
+#include "webrtc/call/call.h"
diff --git a/call/BUILD.gn b/call/BUILD.gn
index 64829e9..5572941 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -8,6 +8,16 @@
 
 import("../build/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",
+  ]
+}
+
 rtc_static_library("call") {
   sources = [
     "bitrate_allocator.cc",
@@ -22,10 +32,12 @@
   }
 
   public_deps = [
+    ":call_interfaces",
     "../api:call_api",
   ]
 
   deps = [
+    ":call_interfaces",
     "..:webrtc_common",
     "../api:transport_api",
     "../audio",
diff --git a/api/call/audio_receive_stream.h b/call/audio_receive_stream.h
similarity index 96%
rename from api/call/audio_receive_stream.h
rename to call/audio_receive_stream.h
index ed9ff34..1299ded 100644
--- a/api/call/audio_receive_stream.h
+++ b/call/audio_receive_stream.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_API_CALL_AUDIO_RECEIVE_STREAM_H_
-#define WEBRTC_API_CALL_AUDIO_RECEIVE_STREAM_H_
+#ifndef WEBRTC_CALL_AUDIO_RECEIVE_STREAM_H_
+#define WEBRTC_CALL_AUDIO_RECEIVE_STREAM_H_
 
 #include <map>
 #include <memory>
@@ -139,4 +139,4 @@
 };
 }  // namespace webrtc
 
-#endif  // WEBRTC_API_CALL_AUDIO_RECEIVE_STREAM_H_
+#endif  // WEBRTC_CALL_AUDIO_RECEIVE_STREAM_H_
diff --git a/api/call/audio_send_stream.cc b/call/audio_send_stream.cc
similarity index 98%
rename from api/call/audio_send_stream.cc
rename to call/audio_send_stream.cc
index b619007..8b6dd9e 100644
--- a/api/call/audio_send_stream.cc
+++ b/call/audio_send_stream.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/api/call/audio_send_stream.h"
+#include "webrtc/call/audio_send_stream.h"
 
 #include <string>
 
diff --git a/api/call/audio_send_stream.h b/call/audio_send_stream.h
similarity index 96%
rename from api/call/audio_send_stream.h
rename to call/audio_send_stream.h
index 487ce98..2063589 100644
--- a/api/call/audio_send_stream.h
+++ b/call/audio_send_stream.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_API_CALL_AUDIO_SEND_STREAM_H_
-#define WEBRTC_API_CALL_AUDIO_SEND_STREAM_H_
+#ifndef WEBRTC_CALL_AUDIO_SEND_STREAM_H_
+#define WEBRTC_CALL_AUDIO_SEND_STREAM_H_
 
 #include <memory>
 #include <string>
@@ -142,4 +142,4 @@
 };
 }  // namespace webrtc
 
-#endif  // WEBRTC_API_CALL_AUDIO_SEND_STREAM_H_
+#endif  // WEBRTC_CALL_AUDIO_SEND_STREAM_H_
diff --git a/api/call/audio_state.h b/call/audio_state.h
similarity index 92%
rename from api/call/audio_state.h
rename to call/audio_state.h
index b8dca3f..2c26a17 100644
--- a/api/call/audio_state.h
+++ b/call/audio_state.h
@@ -7,8 +7,8 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#ifndef WEBRTC_API_CALL_AUDIO_STATE_H_
-#define WEBRTC_API_CALL_AUDIO_STATE_H_
+#ifndef WEBRTC_CALL_AUDIO_STATE_H_
+#define WEBRTC_CALL_AUDIO_STATE_H_
 
 #include "webrtc/api/audio/audio_mixer.h"
 #include "webrtc/base/refcount.h"
@@ -46,4 +46,4 @@
 };
 }  // namespace webrtc
 
-#endif  // WEBRTC_API_CALL_AUDIO_STATE_H_
+#endif  // WEBRTC_CALL_AUDIO_STATE_H_
diff --git a/call/bitrate_estimator_tests.cc b/call/bitrate_estimator_tests.cc
index 95d42ef..bb4960f 100644
--- a/call/bitrate_estimator_tests.cc
+++ b/call/bitrate_estimator_tests.cc
@@ -16,7 +16,7 @@
 #include "webrtc/base/event.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/thread_annotations.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/system_wrappers/include/critical_section_wrapper.h"
 #include "webrtc/system_wrappers/include/trace.h"
 #include "webrtc/test/call_test.h"
diff --git a/call/call.cc b/call/call.cc
index 3d940b6..9a32df2 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -12,6 +12,7 @@
 #include <algorithm>
 #include <map>
 #include <memory>
+#include <set>
 #include <utility>
 #include <vector>
 
@@ -27,8 +28,8 @@
 #include "webrtc/base/thread_annotations.h"
 #include "webrtc/base/thread_checker.h"
 #include "webrtc/base/trace_event.h"
-#include "webrtc/call.h"
 #include "webrtc/call/bitrate_allocator.h"
+#include "webrtc/call/call.h"
 #include "webrtc/call/flexfec_receive_stream.h"
 #include "webrtc/config.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
diff --git a/call/call.h b/call/call.h
new file mode 100644
index 0000000..34f6833
--- /dev/null
+++ b/call/call.h
@@ -0,0 +1,165 @@
+/*
+ *  Copyright (c) 2013 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.
+ */
+#ifndef WEBRTC_CALL_CALL_H_
+#define WEBRTC_CALL_CALL_H_
+
+#include <string>
+#include <vector>
+
+#include "webrtc/api/call/flexfec_receive_stream.h"
+#include "webrtc/base/networkroute.h"
+#include "webrtc/base/platform_file.h"
+#include "webrtc/base/socket.h"
+#include "webrtc/call/audio_receive_stream.h"
+#include "webrtc/call/audio_send_stream.h"
+#include "webrtc/call/audio_state.h"
+#include "webrtc/common_types.h"
+#include "webrtc/video_receive_stream.h"
+#include "webrtc/video_send_stream.h"
+
+namespace webrtc {
+
+class AudioProcessing;
+class RtcEventLog;
+
+const char* Version();
+
+enum class MediaType {
+  ANY,
+  AUDIO,
+  VIDEO,
+  DATA
+};
+
+class PacketReceiver {
+ public:
+  enum DeliveryStatus {
+    DELIVERY_OK,
+    DELIVERY_UNKNOWN_SSRC,
+    DELIVERY_PACKET_ERROR,
+  };
+
+  virtual DeliveryStatus DeliverPacket(MediaType media_type,
+                                       const uint8_t* packet,
+                                       size_t length,
+                                       const PacketTime& packet_time) = 0;
+
+ protected:
+  virtual ~PacketReceiver() {}
+};
+
+// A Call instance can contain several send and/or receive streams. All streams
+// are assumed to have the same remote endpoint and will share bitrate estimates
+// etc.
+class Call {
+ public:
+  struct Config {
+    explicit Config(RtcEventLog* event_log) : event_log(event_log) {
+      RTC_DCHECK(event_log);
+    }
+
+    static const int kDefaultStartBitrateBps;
+
+    // Bitrate config used until valid bitrate estimates are calculated. Also
+    // used to cap total bitrate used.
+    struct BitrateConfig {
+      int min_bitrate_bps = 0;
+      int start_bitrate_bps = kDefaultStartBitrateBps;
+      int max_bitrate_bps = -1;
+    } bitrate_config;
+
+    // AudioState which is possibly shared between multiple calls.
+    // TODO(solenberg): Change this to a shared_ptr once we can use C++11.
+    rtc::scoped_refptr<AudioState> audio_state;
+
+    // Audio Processing Module to be used in this call.
+    // TODO(solenberg): Change this to a shared_ptr once we can use C++11.
+    AudioProcessing* audio_processing = nullptr;
+
+    // RtcEventLog to use for this call. Required.
+    // Use webrtc::RtcEventLog::CreateNull() for a null implementation.
+    RtcEventLog* event_log = nullptr;
+  };
+
+  struct Stats {
+    std::string ToString(int64_t time_ms) const;
+
+    int send_bandwidth_bps = 0;       // Estimated available send bandwidth.
+    int max_padding_bitrate_bps = 0;  // Cumulative configured max padding.
+    int recv_bandwidth_bps = 0;       // Estimated available receive bandwidth.
+    int64_t pacer_delay_ms = 0;
+    int64_t rtt_ms = -1;
+  };
+
+  static Call* Create(const Call::Config& config);
+
+  virtual AudioSendStream* CreateAudioSendStream(
+      const AudioSendStream::Config& config) = 0;
+  virtual void DestroyAudioSendStream(AudioSendStream* send_stream) = 0;
+
+  virtual AudioReceiveStream* CreateAudioReceiveStream(
+      const AudioReceiveStream::Config& config) = 0;
+  virtual void DestroyAudioReceiveStream(
+      AudioReceiveStream* receive_stream) = 0;
+
+  virtual VideoSendStream* CreateVideoSendStream(
+      VideoSendStream::Config config,
+      VideoEncoderConfig encoder_config) = 0;
+  virtual void DestroyVideoSendStream(VideoSendStream* send_stream) = 0;
+
+  virtual VideoReceiveStream* CreateVideoReceiveStream(
+      VideoReceiveStream::Config configuration) = 0;
+  virtual void DestroyVideoReceiveStream(
+      VideoReceiveStream* receive_stream) = 0;
+
+  virtual FlexfecReceiveStream* CreateFlexfecReceiveStream(
+      FlexfecReceiveStream::Config configuration) = 0;
+  virtual void DestroyFlexfecReceiveStream(
+      FlexfecReceiveStream* receive_stream) = 0;
+
+  // All received RTP and RTCP packets for the call should be inserted to this
+  // PacketReceiver. The PacketReceiver pointer is valid as long as the
+  // Call instance exists.
+  virtual PacketReceiver* Receiver() = 0;
+
+  // Returns the call statistics, such as estimated send and receive bandwidth,
+  // pacing delay, etc.
+  virtual Stats GetStats() const = 0;
+
+  // TODO(pbos): Like BitrateConfig above this is currently per-stream instead
+  // of maximum for entire Call. This should be fixed along with the above.
+  // Specifying a start bitrate (>0) will currently reset the current bitrate
+  // estimate. This is due to how the 'x-google-start-bitrate' flag is currently
+  // implemented.
+  virtual void SetBitrateConfig(
+      const Config::BitrateConfig& bitrate_config) = 0;
+
+  // TODO(skvlad): When the unbundled case with multiple streams for the same
+  // media type going over different networks is supported, track the state
+  // for each stream separately. Right now it's global per media type.
+  virtual void SignalChannelNetworkState(MediaType media,
+                                         NetworkState state) = 0;
+
+  virtual void OnTransportOverheadChanged(
+      MediaType media,
+      int transport_overhead_per_packet) = 0;
+
+  virtual void OnNetworkRouteChanged(
+      const std::string& transport_name,
+      const rtc::NetworkRoute& network_route) = 0;
+
+  virtual void OnSentPacket(const rtc::SentPacket& sent_packet) = 0;
+
+  virtual ~Call() {}
+};
+
+}  // namespace webrtc
+
+#endif  // WEBRTC_CALL_CALL_H_
diff --git a/call/call_perf_tests.cc b/call/call_perf_tests.cc
index fb5ae0d..36fc64f 100644
--- a/call/call_perf_tests.cc
+++ b/call/call_perf_tests.cc
@@ -16,7 +16,7 @@
 #include "webrtc/base/checks.h"
 #include "webrtc/base/constructormagic.h"
 #include "webrtc/base/thread_annotations.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/config.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/modules/audio_coding/include/audio_coding_module.h"
diff --git a/call/call_unittest.cc b/call/call_unittest.cc
index 2d75be5..15c642f 100644
--- a/call/call_unittest.cc
+++ b/call/call_unittest.cc
@@ -11,11 +11,11 @@
 #include <list>
 #include <memory>
 
-#include "webrtc/api/call/audio_state.h"
-#include "webrtc/call.h"
+#include "webrtc/call/audio_state.h"
+#include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
-#include "webrtc/modules/audio_mixer/audio_mixer_impl.h"
 #include "webrtc/modules/audio_coding/codecs/mock/mock_audio_decoder_factory.h"
+#include "webrtc/modules/audio_mixer/audio_mixer_impl.h"
 #include "webrtc/test/gtest.h"
 #include "webrtc/test/mock_voice_engine.h"
 
diff --git a/call/rampup_tests.h b/call/rampup_tests.h
index f03b926..2c70a95 100644
--- a/call/rampup_tests.h
+++ b/call/rampup_tests.h
@@ -16,7 +16,7 @@
 #include <vector>
 
 #include "webrtc/base/event.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/test/call_test.h"
 
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index a50d8e4..2daaef4 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -41,7 +41,7 @@
   deps = [
     ":rtc_event_log_api",
     "..:webrtc_common",
-    "../api:call_api",
+    "../call:call_interfaces",
     "../modules/rtp_rtcp",
   ]
 
@@ -66,6 +66,7 @@
     deps = [
       ":rtc_event_log_impl",
       ":rtc_event_log_parser",
+      "../call",
       "../modules/rtp_rtcp",
       "../system_wrappers:metrics_default",
       "//testing/gmock",
diff --git a/logging/rtc_event_log/DEPS b/logging/rtc_event_log/DEPS
index 039ebf9..39d2020 100644
--- a/logging/rtc_event_log/DEPS
+++ b/logging/rtc_event_log/DEPS
@@ -1,5 +1,6 @@
 include_rules = [
   "+webrtc/base",
+  "+webrtc/call",
   "+webrtc/modules/rtp_rtcp",
   "+webrtc/system_wrappers",
 ]
diff --git a/logging/rtc_event_log/rtc_event_log.cc b/logging/rtc_event_log/rtc_event_log.cc
index 976ff23..b2d3b6e 100644
--- a/logging/rtc_event_log/rtc_event_log.cc
+++ b/logging/rtc_event_log/rtc_event_log.cc
@@ -18,7 +18,7 @@
 #include "webrtc/base/event.h"
 #include "webrtc/base/swap_queue.h"
 #include "webrtc/base/thread_checker.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log_helper_thread.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "webrtc/modules/rtp_rtcp/source/byte_io.h"
diff --git a/logging/rtc_event_log/rtc_event_log.h b/logging/rtc_event_log/rtc_event_log.h
index ec57b8b..0800a43 100644
--- a/logging/rtc_event_log/rtc_event_log.h
+++ b/logging/rtc_event_log/rtc_event_log.h
@@ -14,9 +14,9 @@
 #include <memory>
 #include <string>
 
-#include "webrtc/api/call/audio_receive_stream.h"
-#include "webrtc/api/call/audio_send_stream.h"
 #include "webrtc/base/platform_file.h"
+#include "webrtc/call/audio_receive_stream.h"
+#include "webrtc/call/audio_send_stream.h"
 #include "webrtc/video_receive_stream.h"
 #include "webrtc/video_send_stream.h"
 
diff --git a/logging/rtc_event_log/rtc_event_log2rtp_dump.cc b/logging/rtc_event_log/rtc_event_log2rtp_dump.cc
index 337b65b..2336caa 100644
--- a/logging/rtc_event_log/rtc_event_log2rtp_dump.cc
+++ b/logging/rtc_event_log/rtc_event_log2rtp_dump.cc
@@ -15,7 +15,7 @@
 
 #include "gflags/gflags.h"
 #include "webrtc/base/checks.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log_parser.h"
 #include "webrtc/modules/rtp_rtcp/source/byte_io.h"
diff --git a/logging/rtc_event_log/rtc_event_log_parser.cc b/logging/rtc_event_log/rtc_event_log_parser.cc
index 8f1b89d..ce55a4f 100644
--- a/logging/rtc_event_log/rtc_event_log_parser.cc
+++ b/logging/rtc_event_log/rtc_event_log_parser.cc
@@ -18,7 +18,7 @@
 
 #include "webrtc/base/checks.h"
 #include "webrtc/base/logging.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "webrtc/system_wrappers/include/file_wrapper.h"
diff --git a/logging/rtc_event_log/rtc_event_log_unittest.cc b/logging/rtc_event_log/rtc_event_log_unittest.cc
index 3bff887..258d0fd 100644
--- a/logging/rtc_event_log/rtc_event_log_unittest.cc
+++ b/logging/rtc_event_log/rtc_event_log_unittest.cc
@@ -17,7 +17,7 @@
 #include "webrtc/base/buffer.h"
 #include "webrtc/base/checks.h"
 #include "webrtc/base/random.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log_parser.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.h"
diff --git a/logging/rtc_event_log/rtc_event_log_unittest_helper.h b/logging/rtc_event_log/rtc_event_log_unittest_helper.h
index 01ade07..3f89e30 100644
--- a/logging/rtc_event_log/rtc_event_log_unittest_helper.h
+++ b/logging/rtc_event_log/rtc_event_log_unittest_helper.h
@@ -11,7 +11,7 @@
 #ifndef WEBRTC_LOGGING_RTC_EVENT_LOG_RTC_EVENT_LOG_UNITTEST_HELPER_H_
 #define WEBRTC_LOGGING_RTC_EVENT_LOG_RTC_EVENT_LOG_UNITTEST_HELPER_H_
 
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log_parser.h"
 
 namespace webrtc {
diff --git a/media/base/mediaengine.h b/media/base/mediaengine.h
index 57a2c7e..5b7443b 100644
--- a/media/base/mediaengine.h
+++ b/media/base/mediaengine.h
@@ -18,10 +18,10 @@
 #include <string>
 #include <vector>
 
-#include "webrtc/api/call/audio_state.h"
 #include "webrtc/api/rtpparameters.h"
 #include "webrtc/base/fileutils.h"
 #include "webrtc/base/sigslotrepeater.h"
+#include "webrtc/call/audio_state.h"
 #include "webrtc/media/base/codec.h"
 #include "webrtc/media/base/mediachannel.h"
 #include "webrtc/media/base/videocommon.h"
diff --git a/media/base/videoengine_unittest.h b/media/base/videoengine_unittest.h
index e307d9f..a673d35 100644
--- a/media/base/videoengine_unittest.h
+++ b/media/base/videoengine_unittest.h
@@ -18,7 +18,7 @@
 #include "webrtc/base/bytebuffer.h"
 #include "webrtc/base/gunit.h"
 #include "webrtc/base/timeutils.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/media/base/fakenetworkinterface.h"
 #include "webrtc/media/base/fakevideocapturer.h"
diff --git a/media/engine/fakewebrtccall.h b/media/engine/fakewebrtccall.h
index c5e5d09..72fba70 100644
--- a/media/engine/fakewebrtccall.h
+++ b/media/engine/fakewebrtccall.h
@@ -25,10 +25,10 @@
 #include <string>
 #include <vector>
 
-#include "webrtc/api/call/audio_receive_stream.h"
-#include "webrtc/api/call/audio_send_stream.h"
 #include "webrtc/base/buffer.h"
-#include "webrtc/call.h"
+#include "webrtc/call/audio_receive_stream.h"
+#include "webrtc/call/audio_send_stream.h"
+#include "webrtc/call/call.h"
 #include "webrtc/video_frame.h"
 #include "webrtc/video_receive_stream.h"
 #include "webrtc/video_send_stream.h"
diff --git a/media/engine/webrtcmediaengine.h b/media/engine/webrtcmediaengine.h
index af85b2f..49b050c 100644
--- a/media/engine/webrtcmediaengine.h
+++ b/media/engine/webrtcmediaengine.h
@@ -14,7 +14,7 @@
 #include <string>
 #include <vector>
 
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/config.h"
 #include "webrtc/media/base/mediaengine.h"
 
diff --git a/media/engine/webrtcvideoengine2.cc b/media/engine/webrtcvideoengine2.cc
index 9396fcc..92ac698 100644
--- a/media/engine/webrtcvideoengine2.cc
+++ b/media/engine/webrtcvideoengine2.cc
@@ -21,7 +21,7 @@
 #include "webrtc/base/stringutils.h"
 #include "webrtc/base/timeutils.h"
 #include "webrtc/base/trace_event.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/common_video/h264/profile_level_id.h"
 #include "webrtc/media/engine/constants.h"
 #include "webrtc/media/engine/internalencoderfactory.h"
diff --git a/media/engine/webrtcvideoengine2.h b/media/engine/webrtcvideoengine2.h
index 736d474..5e4233f 100644
--- a/media/engine/webrtcvideoengine2.h
+++ b/media/engine/webrtcvideoengine2.h
@@ -25,7 +25,7 @@
 #include "webrtc/base/thread_checker.h"
 #include "webrtc/media/base/videosinkinterface.h"
 #include "webrtc/media/base/videosourceinterface.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/media/base/mediaengine.h"
 #include "webrtc/media/engine/webrtcvideodecoderfactory.h"
 #include "webrtc/media/engine/webrtcvideoencoderfactory.h"
diff --git a/media/engine/webrtcvoiceengine.h b/media/engine/webrtcvoiceengine.h
index 3bed1a0..633e7d3 100644
--- a/media/engine/webrtcvoiceengine.h
+++ b/media/engine/webrtcvoiceengine.h
@@ -16,14 +16,14 @@
 #include <string>
 #include <vector>
 
-#include "webrtc/api/call/audio_state.h"
 #include "webrtc/base/buffer.h"
 #include "webrtc/base/constructormagic.h"
 #include "webrtc/base/networkroute.h"
 #include "webrtc/base/scoped_ref_ptr.h"
 #include "webrtc/base/stream.h"
 #include "webrtc/base/thread_checker.h"
-#include "webrtc/call.h"
+#include "webrtc/call/audio_state.h"
+#include "webrtc/call/call.h"
 #include "webrtc/config.h"
 #include "webrtc/media/base/rtputils.h"
 #include "webrtc/media/engine/webrtccommon.h"
diff --git a/media/engine/webrtcvoiceengine_unittest.cc b/media/engine/webrtcvoiceengine_unittest.cc
index 43142ea..d90695d 100644
--- a/media/engine/webrtcvoiceengine_unittest.cc
+++ b/media/engine/webrtcvoiceengine_unittest.cc
@@ -14,7 +14,7 @@
 #include "webrtc/base/arraysize.h"
 #include "webrtc/base/byteorder.h"
 #include "webrtc/base/gunit.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/p2p/base/faketransportcontroller.h"
 #include "webrtc/test/field_trial.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
diff --git a/modules/audio_coding/neteq/tools/rtc_event_log_source.cc b/modules/audio_coding/neteq/tools/rtc_event_log_source.cc
index 6e19e93..fd3c130 100644
--- a/modules/audio_coding/neteq/tools/rtc_event_log_source.cc
+++ b/modules/audio_coding/neteq/tools/rtc_event_log_source.cc
@@ -16,7 +16,7 @@
 #include <limits>
 
 #include "webrtc/base/checks.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/modules/audio_coding/neteq/tools/packet.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h"
 
diff --git a/modules/rtp_rtcp/include/flexfec_receiver.h b/modules/rtp_rtcp/include/flexfec_receiver.h
index 06294b4..dc90f04 100644
--- a/modules/rtp_rtcp/include/flexfec_receiver.h
+++ b/modules/rtp_rtcp/include/flexfec_receiver.h
@@ -15,7 +15,7 @@
 
 #include "webrtc/base/basictypes.h"
 #include "webrtc/base/sequenced_task_checker.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/modules/rtp_rtcp/include/flexfec_receiver.h"
 #include "webrtc/modules/rtp_rtcp/include/ulpfec_receiver.h"
 #include "webrtc/modules/rtp_rtcp/source/forward_error_correction.h"
diff --git a/modules/rtp_rtcp/source/rtcp_sender.cc b/modules/rtp_rtcp/source/rtcp_sender.cc
index 6d42d38..29c740d 100644
--- a/modules/rtp_rtcp/source/rtcp_sender.cc
+++ b/modules/rtp_rtcp/source/rtcp_sender.cc
@@ -18,7 +18,7 @@
 #include "webrtc/base/constructormagic.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/trace_event.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/common_types.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/app.h"
diff --git a/modules/rtp_rtcp/source/rtp_sender.cc b/modules/rtp_rtcp/source/rtp_sender.cc
index 6dcff3a..548f8f2 100644
--- a/modules/rtp_rtcp/source/rtp_sender.cc
+++ b/modules/rtp_rtcp/source/rtp_sender.cc
@@ -18,7 +18,7 @@
 #include "webrtc/base/rate_limiter.h"
 #include "webrtc/base/trace_event.h"
 #include "webrtc/base/timeutils.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/modules/remote_bitrate_estimator/test/bwe_test_logging.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_cvo.h"
diff --git a/test/call_test.h b/test/call_test.h
index 5843f7b..03bc5bb 100644
--- a/test/call_test.h
+++ b/test/call_test.h
@@ -13,7 +13,7 @@
 #include <memory>
 #include <vector>
 
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/test/encoder_settings.h"
 #include "webrtc/test/fake_audio_device.h"
diff --git a/test/direct_transport.cc b/test/direct_transport.cc
index b26aadd..a5bd05a 100644
--- a/test/direct_transport.cc
+++ b/test/direct_transport.cc
@@ -9,7 +9,7 @@
  */
 #include "webrtc/test/direct_transport.h"
 
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/system_wrappers/include/clock.h"
 #include "webrtc/test/gtest.h"
 
diff --git a/test/fake_network_pipe.cc b/test/fake_network_pipe.cc
index 5a8d4fb..8885137 100644
--- a/test/fake_network_pipe.cc
+++ b/test/fake_network_pipe.cc
@@ -17,7 +17,7 @@
 #include <algorithm>
 #include <cmath>
 
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/system_wrappers/include/clock.h"
 
 namespace webrtc {
diff --git a/test/fake_network_pipe_unittest.cc b/test/fake_network_pipe_unittest.cc
index 6e635e1..aa27399 100644
--- a/test/fake_network_pipe_unittest.cc
+++ b/test/fake_network_pipe_unittest.cc
@@ -10,7 +10,7 @@
 
 #include <memory>
 
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/system_wrappers/include/clock.h"
 #include "webrtc/test/fake_network_pipe.h"
 #include "webrtc/test/gmock.h"
diff --git a/test/layer_filtering_transport.h b/test/layer_filtering_transport.h
index d453556..8f8cc2e 100644
--- a/test/layer_filtering_transport.h
+++ b/test/layer_filtering_transport.h
@@ -10,7 +10,7 @@
 #ifndef WEBRTC_TEST_LAYER_FILTERING_TRANSPORT_H_
 #define WEBRTC_TEST_LAYER_FILTERING_TRANSPORT_H_
 
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/test/direct_transport.h"
 #include "webrtc/test/fake_network_pipe.h"
 
diff --git a/tools/BUILD.gn b/tools/BUILD.gn
index c8604f1..266f669 100644
--- a/tools/BUILD.gn
+++ b/tools/BUILD.gn
@@ -200,6 +200,7 @@
     }
     defines = [ "ENABLE_RTC_EVENT_LOG" ]
     deps = [
+      "../call:call_interfaces",
       "../logging:rtc_event_log_impl",
       "../logging:rtc_event_log_parser",
       "../modules/congestion_controller",
diff --git a/tools/event_log_visualizer/analyzer.cc b/tools/event_log_visualizer/analyzer.cc
index f018b1d..b57f89e 100644
--- a/tools/event_log_visualizer/analyzer.cc
+++ b/tools/event_log_visualizer/analyzer.cc
@@ -17,21 +17,21 @@
 #include <string>
 #include <utility>
 
-#include "webrtc/api/call/audio_receive_stream.h"
-#include "webrtc/api/call/audio_send_stream.h"
 #include "webrtc/base/checks.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/rate_statistics.h"
-#include "webrtc/call.h"
+#include "webrtc/call/audio_receive_stream.h"
+#include "webrtc/call/audio_send_stream.h"
+#include "webrtc/call/call.h"
 #include "webrtc/common_types.h"
 #include "webrtc/modules/bitrate_controller/include/bitrate_controller.h"
 #include "webrtc/modules/congestion_controller/include/congestion_controller.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
-#include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h"
-#include "webrtc/modules/rtp_rtcp/source/rtp_utility.h"
 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/common_header.h"
 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
+#include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h"
+#include "webrtc/modules/rtp_rtcp/source/rtp_utility.h"
 #include "webrtc/video_receive_stream.h"
 #include "webrtc/video_send_stream.h"
 
diff --git a/video/end_to_end_tests.cc b/video/end_to_end_tests.cc
index 9d37e28..286da6c 100644
--- a/video/end_to_end_tests.cc
+++ b/video/end_to_end_tests.cc
@@ -20,7 +20,7 @@
 #include "webrtc/base/file.h"
 #include "webrtc/base/optional.h"
 #include "webrtc/base/rate_limiter.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/common_video/include/frame_callback.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/media/base/fakevideorenderer.h"
diff --git a/video/replay.cc b/video/replay.cc
index c00fe33..2a73917 100644
--- a/video/replay.cc
+++ b/video/replay.cc
@@ -16,7 +16,7 @@
 
 #include "gflags/gflags.h"
 #include "webrtc/base/checks.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h"
 #include "webrtc/system_wrappers/include/clock.h"
diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc
index d72b60c..38c01a7 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -23,7 +23,7 @@
 #include "webrtc/base/optional.h"
 #include "webrtc/base/platform_file.h"
 #include "webrtc/base/timeutils.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/modules/audio_mixer/audio_mixer_impl.h"
diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc
index 9003a7f..82fb6be 100644
--- a/video/video_send_stream_tests.cc
+++ b/video/video_send_stream_tests.cc
@@ -18,7 +18,7 @@
 #include "webrtc/base/logging.h"
 #include "webrtc/base/platform_thread.h"
 #include "webrtc/base/rate_limiter.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/common_video/include/frame_callback.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h"
diff --git a/video/vie_encoder.h b/video/vie_encoder.h
index 5ad1ff7..ca7bd93 100644
--- a/video/vie_encoder.h
+++ b/video/vie_encoder.h
@@ -19,7 +19,7 @@
 #include "webrtc/base/event.h"
 #include "webrtc/base/sequenced_task_checker.h"
 #include "webrtc/base/task_queue.h"
-#include "webrtc/call.h"
+#include "webrtc/call/call.h"
 #include "webrtc/common_types.h"
 #include "webrtc/common_video/include/video_bitrate_allocator.h"
 #include "webrtc/common_video/rotation.h"
@@ -28,10 +28,10 @@
 #include "webrtc/modules/video_coding/utility/quality_scaler.h"
 #include "webrtc/modules/video_coding/video_coding_impl.h"
 #include "webrtc/system_wrappers/include/atomic32.h"
+#include "webrtc/typedefs.h"
 #include "webrtc/video/overuse_frame_detector.h"
 #include "webrtc/video_encoder.h"
 #include "webrtc/video_send_stream.h"
-#include "webrtc/typedefs.h"
 
 namespace webrtc {