Separate Call API/build files from video_engine/.

BUG=2535
R=andrew@webrtc.org, mflodman@webrtc.org, niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2659004

git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@5042 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/build/apk_tests.gyp b/build/apk_tests.gyp
index 7c9c903..27ca51d 100644
--- a/build/apk_tests.gyp
+++ b/build/apk_tests.gyp
@@ -180,7 +180,7 @@
         'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)video_engine_tests<(SHARED_LIB_SUFFIX)',
       },
       'dependencies': [
-        '<(webrtc_root)/video_engine/video_engine.gyp:video_engine_tests',
+        '<(webrtc_root)/webrtc.gyp:video_engine_tests',
       ],
       'includes': [
         '../../../build/apk_test.gypi',
diff --git a/video_engine/internal/call.cc b/call.cc
similarity index 81%
rename from video_engine/internal/call.cc
rename to call.cc
index 8b7f661..45f06eb 100644
--- a/video_engine/internal/call.cc
+++ b/call.cc
@@ -8,24 +8,78 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/internal/call.h"
-
 #include <assert.h>
 #include <string.h>
 
 #include <map>
 #include <vector>
 
+#include "webrtc/call.h"
+#include "webrtc/modules/rtp_rtcp/interface/rtp_header_parser.h"
 #include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
+#include "webrtc/system_wrappers/interface/rw_lock_wrapper.h"
 #include "webrtc/system_wrappers/interface/scoped_ptr.h"
 #include "webrtc/system_wrappers/interface/trace.h"
+#include "webrtc/video/video_receive_stream.h"
+#include "webrtc/video/video_send_stream.h"
 #include "webrtc/video_engine/include/vie_base.h"
 #include "webrtc/video_engine/include/vie_codec.h"
 #include "webrtc/video_engine/include/vie_rtp_rtcp.h"
-#include "webrtc/video_engine/internal/video_receive_stream.h"
-#include "webrtc/video_engine/internal/video_send_stream.h"
 
 namespace webrtc {
+namespace internal {
+class Call : public webrtc::Call, public PacketReceiver {
+ public:
+  Call(webrtc::VideoEngine* video_engine, const Call::Config& config);
+  virtual ~Call();
+
+  virtual PacketReceiver* Receiver() OVERRIDE;
+  virtual std::vector<VideoCodec> GetVideoCodecs() OVERRIDE;
+
+  virtual VideoSendStream::Config GetDefaultSendConfig() OVERRIDE;
+
+  virtual VideoSendStream* CreateSendStream(
+      const VideoSendStream::Config& config) OVERRIDE;
+
+  virtual SendStreamState* DestroySendStream(
+      webrtc::VideoSendStream* send_stream) OVERRIDE;
+
+  virtual VideoReceiveStream::Config GetDefaultReceiveConfig() OVERRIDE;
+
+  virtual VideoReceiveStream* CreateReceiveStream(
+      const VideoReceiveStream::Config& config) OVERRIDE;
+
+  virtual void DestroyReceiveStream(
+      webrtc::VideoReceiveStream* receive_stream) OVERRIDE;
+
+  virtual uint32_t SendBitrateEstimate() OVERRIDE;
+  virtual uint32_t ReceiveBitrateEstimate() OVERRIDE;
+
+  virtual bool DeliverPacket(const uint8_t* packet, size_t length) OVERRIDE;
+
+ private:
+  bool DeliverRtcp(const uint8_t* packet, size_t length);
+  bool DeliverRtp(const RTPHeader& header,
+                  const uint8_t* packet,
+                  size_t length);
+
+  Call::Config config_;
+
+  std::map<uint32_t, VideoReceiveStream*> receive_ssrcs_;
+  scoped_ptr<RWLockWrapper> receive_lock_;
+
+  std::map<uint32_t, VideoSendStream*> send_ssrcs_;
+  scoped_ptr<RWLockWrapper> send_lock_;
+
+  scoped_ptr<RtpHeaderParser> rtp_header_parser_;
+
+  webrtc::VideoEngine* video_engine_;
+  ViERTP_RTCP* rtp_rtcp_;
+  ViECodec* codec_;
+
+  DISALLOW_COPY_AND_ASSIGN(Call);
+};
+}  // internal
 
 class TraceDispatcher : public TraceCallback {
  public:
@@ -91,7 +145,7 @@
 };
 
 namespace internal {
-  TraceDispatcher* global_trace_dispatcher = NULL;
+TraceDispatcher* global_trace_dispatcher = NULL;
 }  // internal
 
 Call* Call::Create(const Call::Config& config) {
@@ -145,7 +199,7 @@
 
   VideoCodec codec;
   for (size_t i = 0; i < static_cast<size_t>(codec_->NumberOfCodecs()); ++i) {
-    if (codec_->GetCodec(i, codec) == 0) {
+    if (codec_->GetCodec(static_cast<unsigned char>(i), codec) == 0) {
       codecs.push_back(codec);
     }
   }
diff --git a/video_engine/new_include/call.h b/call.h
similarity index 95%
rename from video_engine/new_include/call.h
rename to call.h
index f8fa9be..5239f5a 100644
--- a/video_engine/new_include/call.h
+++ b/call.h
@@ -14,8 +14,8 @@
 #include <vector>
 
 #include "webrtc/common_types.h"
-#include "webrtc/video_engine/new_include/video_receive_stream.h"
-#include "webrtc/video_engine/new_include/video_send_stream.h"
+#include "webrtc/video_receive_stream.h"
+#include "webrtc/video_send_stream.h"
 
 namespace webrtc {
 
diff --git a/video_engine/test/call_tests.cc b/call_tests.cc
similarity index 97%
rename from video_engine/test/call_tests.cc
rename to call_tests.cc
index 49cb8f5..6a8f34f 100644
--- a/video_engine/test/call_tests.cc
+++ b/call_tests.cc
@@ -13,19 +13,19 @@
 
 #include "testing/gtest/include/gtest/gtest.h"
 
+#include "webrtc/call.h"
 #include "webrtc/common_video/test/frame_generator.h"
 #include "webrtc/modules/rtp_rtcp/interface/rtp_header_parser.h"
 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
 #include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
 #include "webrtc/system_wrappers/interface/event_wrapper.h"
 #include "webrtc/system_wrappers/interface/scoped_ptr.h"
-#include "webrtc/video_engine/new_include/call.h"
-#include "webrtc/video_engine/test/common/direct_transport.h"
-#include "webrtc/video_engine/test/common/fake_decoder.h"
-#include "webrtc/video_engine/test/common/fake_encoder.h"
-#include "webrtc/video_engine/test/common/frame_generator_capturer.h"
-#include "webrtc/video_engine/test/common/generate_ssrcs.h"
-#include "webrtc/video_engine/test/common/rtp_rtcp_observer.h"
+#include "webrtc/test/direct_transport.h"
+#include "webrtc/test/fake_decoder.h"
+#include "webrtc/test/fake_encoder.h"
+#include "webrtc/test/frame_generator_capturer.h"
+#include "webrtc/test/generate_ssrcs.h"
+#include "webrtc/test/rtp_rtcp_observer.h"
 
 namespace webrtc {
 
diff --git a/video_engine/new_include/config.h b/config.h
similarity index 97%
rename from video_engine/new_include/config.h
rename to config.h
index fec34ba..a00a8f9 100644
--- a/video_engine/new_include/config.h
+++ b/config.h
@@ -8,6 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+// TODO(pbos): Move Config from common.h to here.
+
 #ifndef WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_CONFIG_H_
 #define WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_CONFIG_H_
 
diff --git a/video_engine/new_include/frame_callback.h b/frame_callback.h
similarity index 100%
rename from video_engine/new_include/frame_callback.h
rename to frame_callback.h
diff --git a/video_engine/test/loopback.cc b/loopback.cc
similarity index 86%
rename from video_engine/test/loopback.cc
rename to loopback.cc
index 93f2d83..5c5dbce 100644
--- a/video_engine/test/loopback.cc
+++ b/loopback.cc
@@ -14,17 +14,17 @@
 
 #include "testing/gtest/include/gtest/gtest.h"
 
+#include "webrtc/call.h"
 #include "webrtc/system_wrappers/interface/clock.h"
 #include "webrtc/system_wrappers/interface/scoped_ptr.h"
+#include "webrtc/test/direct_transport.h"
+#include "webrtc/test/flags.h"
+#include "webrtc/test/generate_ssrcs.h"
+#include "webrtc/test/run_loop.h"
+#include "webrtc/test/run_tests.h"
+#include "webrtc/test/video_capturer.h"
+#include "webrtc/test/video_renderer.h"
 #include "webrtc/typedefs.h"
-#include "webrtc/video_engine/new_include/call.h"
-#include "webrtc/video_engine/test/common/direct_transport.h"
-#include "webrtc/video_engine/test/common/flags.h"
-#include "webrtc/video_engine/test/common/generate_ssrcs.h"
-#include "webrtc/video_engine/test/common/run_loop.h"
-#include "webrtc/video_engine/test/common/run_tests.h"
-#include "webrtc/video_engine/test/common/video_capturer.h"
-#include "webrtc/video_engine/test/common/video_renderer.h"
 
 namespace webrtc {
 
diff --git a/video_engine/test/common/direct_transport.cc b/test/direct_transport.cc
similarity index 95%
rename from video_engine/test/common/direct_transport.cc
rename to test/direct_transport.cc
index f4f364b..8c7e351 100644
--- a/video_engine/test/common/direct_transport.cc
+++ b/test/direct_transport.cc
@@ -7,10 +7,11 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include "webrtc/video_engine/test/common/direct_transport.h"
+#include "webrtc/test/direct_transport.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
-#include "webrtc/video_engine/new_include/call.h"
+
+#include "webrtc/call.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/direct_transport.h b/test/direct_transport.h
similarity index 96%
rename from video_engine/test/common/direct_transport.h
rename to test/direct_transport.h
index f1f3dda..d4cb45a 100644
--- a/video_engine/test/common/direct_transport.h
+++ b/test/direct_transport.h
@@ -18,7 +18,7 @@
 #include "webrtc/system_wrappers/interface/event_wrapper.h"
 #include "webrtc/system_wrappers/interface/scoped_ptr.h"
 #include "webrtc/system_wrappers/interface/thread_wrapper.h"
-#include "webrtc/video_engine/new_include/transport.h"
+#include "webrtc/transport.h"
 
 namespace webrtc {
 
diff --git a/video_engine/test/common/fake_decoder.cc b/test/fake_decoder.cc
similarity index 96%
rename from video_engine/test/common/fake_decoder.cc
rename to test/fake_decoder.cc
index 8125e5f..a9e6f50 100644
--- a/video_engine/test/common/fake_decoder.cc
+++ b/test/fake_decoder.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/test/common/fake_decoder.h"
+#include "webrtc/test/fake_decoder.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/video_engine/test/common/fake_decoder.h b/test/fake_decoder.h
similarity index 100%
rename from video_engine/test/common/fake_decoder.h
rename to test/fake_decoder.h
diff --git a/video_engine/test/common/fake_encoder.cc b/test/fake_encoder.cc
similarity index 98%
rename from video_engine/test/common/fake_encoder.cc
rename to test/fake_encoder.cc
index 1db0f37..454be16 100644
--- a/video_engine/test/common/fake_encoder.cc
+++ b/test/fake_encoder.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/test/common/fake_encoder.h"
+#include "webrtc/test/fake_encoder.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/video_engine/test/common/fake_encoder.h b/test/fake_encoder.h
similarity index 100%
rename from video_engine/test/common/fake_encoder.h
rename to test/fake_encoder.h
diff --git a/video_engine/test/common/flags.cc b/test/flags.cc
similarity index 96%
rename from video_engine/test/common/flags.cc
rename to test/flags.cc
index ec6e8f6..088efff 100644
--- a/video_engine/test/common/flags.cc
+++ b/test/flags.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/test/common/flags.h"
+#include "webrtc/test/flags.h"
 
 #include "gflags/gflags.h"
 
diff --git a/video_engine/test/common/flags.h b/test/flags.h
similarity index 100%
rename from video_engine/test/common/flags.h
rename to test/flags.h
diff --git a/video_engine/test/common/frame_generator_capturer.cc b/test/frame_generator_capturer.cc
similarity index 96%
rename from video_engine/test/common/frame_generator_capturer.cc
rename to test/frame_generator_capturer.cc
index 08b3d29..e04961d 100644
--- a/video_engine/test/common/frame_generator_capturer.cc
+++ b/test/frame_generator_capturer.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/test/common/frame_generator_capturer.h"
+#include "webrtc/test/frame_generator_capturer.h"
 
 #include "webrtc/common_video/test/frame_generator.h"
 #include "webrtc/system_wrappers/interface/clock.h"
@@ -16,7 +16,7 @@
 #include "webrtc/system_wrappers/interface/event_wrapper.h"
 #include "webrtc/system_wrappers/interface/sleep.h"
 #include "webrtc/system_wrappers/interface/thread_wrapper.h"
-#include "webrtc/video_engine/new_include/video_send_stream.h"
+#include "webrtc/video_send_stream.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/frame_generator_capturer.h b/test/frame_generator_capturer.h
similarity index 96%
rename from video_engine/test/common/frame_generator_capturer.h
rename to test/frame_generator_capturer.h
index ad7fdeb..5be6bb2 100644
--- a/video_engine/test/common/frame_generator_capturer.h
+++ b/test/frame_generator_capturer.h
@@ -11,8 +11,8 @@
 #define WEBRTC_VIDEO_ENGINE_TEST_COMMON_FRAME_GENERATOR_CAPTURER_H_
 
 #include "webrtc/system_wrappers/interface/scoped_ptr.h"
+#include "webrtc/test/video_capturer.h"
 #include "webrtc/typedefs.h"
-#include "webrtc/video_engine/test/common/video_capturer.h"
 
 namespace webrtc {
 
diff --git a/video_engine/test/common/generate_ssrcs.cc b/test/generate_ssrcs.cc
similarity index 90%
rename from video_engine/test/common/generate_ssrcs.cc
rename to test/generate_ssrcs.cc
index 4d72dd6..ea7e28d 100644
--- a/video_engine/test/common/generate_ssrcs.cc
+++ b/test/generate_ssrcs.cc
@@ -8,12 +8,12 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/test/common/generate_ssrcs.h"
+#include "webrtc/test/generate_ssrcs.h"
 
 #include <assert.h>
 #include <stdlib.h>
 
-#include "webrtc/video_engine/new_include/video_send_stream.h"
+#include "webrtc/video_send_stream.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/generate_ssrcs.h b/test/generate_ssrcs.h
similarity index 92%
rename from video_engine/test/common/generate_ssrcs.h
rename to test/generate_ssrcs.h
index c21dcb0..1d3c9d9 100644
--- a/video_engine/test/common/generate_ssrcs.h
+++ b/test/generate_ssrcs.h
@@ -15,7 +15,7 @@
 #include <vector>
 
 #include "webrtc/typedefs.h"
-#include "webrtc/video_engine/new_include/video_send_stream.h"
+#include "webrtc/video_send_stream.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/gl/gl_renderer.cc b/test/gl/gl_renderer.cc
similarity index 97%
rename from video_engine/test/common/gl/gl_renderer.cc
rename to test/gl/gl_renderer.cc
index 5e229eb..f2c7acd 100644
--- a/video_engine/test/common/gl/gl_renderer.cc
+++ b/test/gl/gl_renderer.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/test/common/gl/gl_renderer.h"
+#include "webrtc/test/gl/gl_renderer.h"
 
 #include <string.h>
 
diff --git a/video_engine/test/common/gl/gl_renderer.h b/test/gl/gl_renderer.h
similarity index 94%
rename from video_engine/test/common/gl/gl_renderer.h
rename to test/gl/gl_renderer.h
index 033f1cb..c2110b2 100644
--- a/video_engine/test/common/gl/gl_renderer.h
+++ b/test/gl/gl_renderer.h
@@ -17,8 +17,8 @@
 #include <GL/gl.h>
 #endif
 
+#include "webrtc/test/video_renderer.h"
 #include "webrtc/typedefs.h"
-#include "webrtc/video_engine/test/common/video_renderer.h"
 
 
 namespace webrtc {
diff --git a/video_engine/test/common/linux/glx_renderer.cc b/test/linux/glx_renderer.cc
similarity index 98%
rename from video_engine/test/common/linux/glx_renderer.cc
rename to test/linux/glx_renderer.cc
index 312cb11..c0b6130 100644
--- a/video_engine/test/common/linux/glx_renderer.cc
+++ b/test/linux/glx_renderer.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/test/common/linux/glx_renderer.h"
+#include "webrtc/test/linux/glx_renderer.h"
 
 #include <assert.h>
 
diff --git a/video_engine/test/common/linux/glx_renderer.h b/test/linux/glx_renderer.h
similarity index 95%
rename from video_engine/test/common/linux/glx_renderer.h
rename to test/linux/glx_renderer.h
index 5a2f562..152b915 100644
--- a/video_engine/test/common/linux/glx_renderer.h
+++ b/test/linux/glx_renderer.h
@@ -14,8 +14,8 @@
 #include <GL/glx.h>
 #include <X11/Xlib.h>
 
+#include "webrtc/test/gl/gl_renderer.h"
 #include "webrtc/typedefs.h"
-#include "webrtc/video_engine/test/common/gl/gl_renderer.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/linux/video_renderer_linux.cc b/test/linux/video_renderer_linux.cc
similarity index 86%
rename from video_engine/test/common/linux/video_renderer_linux.cc
rename to test/linux/video_renderer_linux.cc
index 2036a6c..6f69dd7 100644
--- a/video_engine/test/common/linux/video_renderer_linux.cc
+++ b/test/linux/video_renderer_linux.cc
@@ -7,9 +7,9 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include "webrtc/video_engine/test/common/video_renderer.h"
+#include "webrtc/test/video_renderer.h"
 
-#include "webrtc/video_engine/test/common/linux/glx_renderer.h"
+#include "webrtc/test/linux/glx_renderer.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/mac/run_tests.mm b/test/mac/run_tests.mm
similarity index 100%
rename from video_engine/test/common/mac/run_tests.mm
rename to test/mac/run_tests.mm
diff --git a/video_engine/test/common/mac/video_renderer_mac.h b/test/mac/video_renderer_mac.h
similarity index 94%
rename from video_engine/test/common/mac/video_renderer_mac.h
rename to test/mac/video_renderer_mac.h
index f5e271d..7701840 100644
--- a/video_engine/test/common/mac/video_renderer_mac.h
+++ b/test/mac/video_renderer_mac.h
@@ -11,8 +11,8 @@
 #ifndef WEBRTC_VIDEO_ENGINE_TEST_COMMON_MAC_VIDEO_RENDERER_MAC_H_
 #define WEBRTC_VIDEO_ENGINE_TEST_COMMON_MAC_VIDEO_RENDERER_MAC_H_
 
+#include "webrtc/test/gl/gl_renderer.h"
 #include "webrtc/system_wrappers/interface/constructor_magic.h"
-#include "webrtc/video_engine/test/common/gl/gl_renderer.h"
 
 @class CocoaWindow;
 
diff --git a/video_engine/test/common/mac/video_renderer_mac.mm b/test/mac/video_renderer_mac.mm
similarity index 97%
rename from video_engine/test/common/mac/video_renderer_mac.mm
rename to test/mac/video_renderer_mac.mm
index ebbe02c..1bc05a1 100644
--- a/video_engine/test/common/mac/video_renderer_mac.mm
+++ b/test/mac/video_renderer_mac.mm
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/test/common/mac/video_renderer_mac.h"
+#include "webrtc/test/mac/video_renderer_mac.h"
 
 #import <Cocoa/Cocoa.h>
 
diff --git a/video_engine/test/common/null_platform_renderer.cc b/test/null_platform_renderer.cc
similarity index 91%
rename from video_engine/test/common/null_platform_renderer.cc
rename to test/null_platform_renderer.cc
index a79ee1d..362f7db 100644
--- a/video_engine/test/common/null_platform_renderer.cc
+++ b/test/null_platform_renderer.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/test/common/video_renderer.h"
+#include "webrtc/test/video_renderer.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/null_transport.cc b/test/null_transport.cc
similarity index 91%
rename from video_engine/test/common/null_transport.cc
rename to test/null_transport.cc
index 1ce8e00..1baeedf 100644
--- a/video_engine/test/common/null_transport.cc
+++ b/test/null_transport.cc
@@ -7,7 +7,7 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include "webrtc/video_engine/test/common/null_transport.h"
+#include "webrtc/test/null_transport.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/null_transport.h b/test/null_transport.h
similarity index 93%
rename from video_engine/test/common/null_transport.h
rename to test/null_transport.h
index b63ad40..f9839b9 100644
--- a/video_engine/test/common/null_transport.h
+++ b/test/null_transport.h
@@ -10,7 +10,7 @@
 #ifndef WEBRTC_VIDEO_ENGINE_TEST_COMMON_NULL_TRANSPORT_H_
 #define WEBRTC_VIDEO_ENGINE_TEST_COMMON_NULL_TRANSPORT_H_
 
-#include "webrtc/video_engine/new_include/transport.h"
+#include "webrtc/transport.h"
 
 namespace webrtc {
 
diff --git a/video_engine/test/common/rtp_rtcp_observer.h b/test/rtp_rtcp_observer.h
similarity index 98%
rename from video_engine/test/common/rtp_rtcp_observer.h
rename to test/rtp_rtcp_observer.h
index 2ceddf3..ee06e2a 100644
--- a/video_engine/test/common/rtp_rtcp_observer.h
+++ b/test/rtp_rtcp_observer.h
@@ -14,7 +14,7 @@
 #include <vector>
 
 #include "webrtc/typedefs.h"
-#include "webrtc/video_engine/new_include/video_send_stream.h"
+#include "webrtc/video_send_stream.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/run_loop.cc b/test/run_loop.cc
similarity index 91%
rename from video_engine/test/common/run_loop.cc
rename to test/run_loop.cc
index 730071d..cda1e10 100644
--- a/video_engine/test/common/run_loop.cc
+++ b/test/run_loop.cc
@@ -7,7 +7,7 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include "webrtc/video_engine/test/common/run_loop.h"
+#include "webrtc/test/run_loop.h"
 
 #include <stdio.h>
 
diff --git a/video_engine/test/common/run_loop.h b/test/run_loop.h
similarity index 100%
rename from video_engine/test/common/run_loop.h
rename to test/run_loop.h
diff --git a/video_engine/test/common/run_tests.cc b/test/run_tests.cc
similarity index 100%
rename from video_engine/test/common/run_tests.cc
rename to test/run_tests.cc
diff --git a/video_engine/test/common/run_tests.h b/test/run_tests.h
similarity index 100%
rename from video_engine/test/common/run_tests.h
rename to test/run_tests.h
diff --git a/video_engine/test/common/statistics.cc b/test/statistics.cc
similarity index 94%
rename from video_engine/test/common/statistics.cc
rename to test/statistics.cc
index f6e339d..0075d4c 100644
--- a/video_engine/test/common/statistics.cc
+++ b/test/statistics.cc
@@ -7,7 +7,7 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include "webrtc/video_engine/test/common/statistics.h"
+#include "webrtc/test/statistics.h"
 
 #include <math.h>
 
diff --git a/video_engine/test/common/statistics.h b/test/statistics.h
similarity index 100%
rename from video_engine/test/common/statistics.h
rename to test/statistics.h
diff --git a/video_engine/test/test_main.cc b/test/test_main.cc
similarity index 86%
rename from video_engine/test/test_main.cc
rename to test/test_main.cc
index 68bdd4a..b57b032 100644
--- a/video_engine/test/test_main.cc
+++ b/test/test_main.cc
@@ -10,9 +10,9 @@
 
 #include "testing/gtest/include/gtest/gtest.h"
 
+#include "webrtc/test/flags.h"
+#include "webrtc/test/run_tests.h"
 #include "webrtc/test/testsupport/fileutils.h"
-#include "webrtc/video_engine/test/common/flags.h"
-#include "webrtc/video_engine/test/common/run_tests.h"
 
 int main(int argc, char* argv[]) {
   ::testing::InitGoogleTest(&argc, argv);
diff --git a/video_engine/test/common/vcm_capturer.cc b/test/vcm_capturer.cc
similarity index 95%
rename from video_engine/test/common/vcm_capturer.cc
rename to test/vcm_capturer.cc
index dc92b89..cbf7b1f 100644
--- a/video_engine/test/common/vcm_capturer.cc
+++ b/test/vcm_capturer.cc
@@ -8,10 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/test/common/vcm_capturer.h"
+#include "webrtc/test/vcm_capturer.h"
 
 #include "webrtc/modules/video_capture/include/video_capture_factory.h"
-#include "webrtc/video_engine/new_include/video_send_stream.h"
+#include "webrtc/video_send_stream.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/vcm_capturer.h b/test/vcm_capturer.h
similarity index 95%
rename from video_engine/test/common/vcm_capturer.h
rename to test/vcm_capturer.h
index 5b1df9c..40befe8 100644
--- a/video_engine/test/common/vcm_capturer.h
+++ b/test/vcm_capturer.h
@@ -13,7 +13,7 @@
 #include "webrtc/common_types.h"
 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
 #include "webrtc/modules/video_capture/include/video_capture.h"
-#include "webrtc/video_engine/test/common/video_capturer.h"
+#include "webrtc/test/video_capturer.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/video_capturer.cc b/test/video_capturer.cc
similarity index 88%
rename from video_engine/test/common/video_capturer.cc
rename to test/video_capturer.cc
index 9a1bd0c..fc37648 100644
--- a/video_engine/test/common/video_capturer.cc
+++ b/test/video_capturer.cc
@@ -8,11 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/test/common/video_capturer.h"
+#include "webrtc/test/video_capturer.h"
 
 #include "webrtc/test/testsupport/fileutils.h"
-#include "webrtc/video_engine/test/common/frame_generator_capturer.h"
-#include "webrtc/video_engine/test/common/vcm_capturer.h"
+#include "webrtc/test/frame_generator_capturer.h"
+#include "webrtc/test/vcm_capturer.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/video_capturer.h b/test/video_capturer.h
similarity index 100%
rename from video_engine/test/common/video_capturer.h
rename to test/video_capturer.h
diff --git a/video_engine/test/common/video_renderer.cc b/test/video_renderer.cc
similarity index 94%
rename from video_engine/test/common/video_renderer.cc
rename to test/video_renderer.cc
index 84aab89..1a0c613 100644
--- a/video_engine/test/common/video_renderer.cc
+++ b/test/video_renderer.cc
@@ -7,7 +7,7 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include "webrtc/video_engine/test/common/video_renderer.h"
+#include "webrtc/test/video_renderer.h"
 
 // TODO(pbos): Android renderer
 
diff --git a/video_engine/test/common/video_renderer.h b/test/video_renderer.h
similarity index 95%
rename from video_engine/test/common/video_renderer.h
rename to test/video_renderer.h
index a9baf44..c862327 100644
--- a/video_engine/test/common/video_renderer.h
+++ b/test/video_renderer.h
@@ -12,7 +12,7 @@
 
 #include <stddef.h>
 
-#include "webrtc/video_engine/new_include/video_renderer.h"
+#include "webrtc/video_renderer.h"
 
 namespace webrtc {
 namespace test {
diff --git a/test/webrtc_test_common.gyp b/test/webrtc_test_common.gyp
new file mode 100644
index 0000000..1a7e579
--- /dev/null
+++ b/test/webrtc_test_common.gyp
@@ -0,0 +1,123 @@
+# 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.
+{
+  'includes': [
+    '../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'webrtc_test_common',
+      'type': 'static_library',
+      'sources': [
+        'direct_transport.cc',
+        'direct_transport.h',
+        'fake_decoder.cc',
+        'fake_decoder.h',
+        'fake_encoder.cc',
+        'fake_encoder.h',
+        'flags.cc',
+        'flags.h',
+        'frame_generator_capturer.cc',
+        'frame_generator_capturer.h',
+        'generate_ssrcs.cc',
+        'generate_ssrcs.h',
+        'gl/gl_renderer.cc',
+        'gl/gl_renderer.h',
+        'linux/glx_renderer.cc',
+        'linux/glx_renderer.h',
+        'linux/video_renderer_linux.cc',
+        'mac/run_tests.mm',
+        'mac/video_renderer_mac.h',
+        'mac/video_renderer_mac.mm',
+        'null_platform_renderer.cc',
+        'null_transport.cc',
+        'null_transport.h',
+        'rtp_rtcp_observer.h',
+        'run_tests.cc',
+        'run_tests.h',
+        'run_loop.cc',
+        'run_loop.h',
+        'statistics.cc',
+        'statistics.h',
+        'vcm_capturer.cc',
+        'vcm_capturer.h',
+        'video_capturer.cc',
+        'video_capturer.h',
+        'video_renderer.cc',
+        'video_renderer.h',
+        'win/d3d_renderer.cc',
+        'win/d3d_renderer.h',
+        'win/run_loop_win.cc',
+      ],
+      'conditions': [
+        ['OS=="linux"', {
+          'sources!': [
+            'null_platform_renderer.cc',
+          ],
+        }],
+        ['OS=="mac"', {
+          'sources!': [
+            'null_platform_renderer.cc',
+            'run_tests.cc',
+          ],
+        }],
+        ['OS!="linux" and OS!="mac"', {
+          'sources!' : [
+            'gl/gl_renderer.cc',
+            'gl/gl_renderer.h',
+          ],
+        }],
+        ['OS=="win"', {
+          'sources!': [
+            'null_platform_renderer.cc',
+            'run_loop.cc',
+          ],
+        }],
+      ],
+      'direct_dependent_settings': {
+        'conditions': [
+          ['OS=="linux"', {
+            'libraries': [
+              '-lXext',
+              '-lX11',
+              '-lGL',
+            ],
+          }],
+          #TODO(pbos) : These dependencies should not have to be here, they
+          #             aren't used by test code directly, only by components
+          #             used by the tests.
+          ['OS=="android"', {
+            'libraries' : [
+              '-lGLESv2', '-llog',
+            ],
+          }],
+          ['OS=="mac"', {
+            'xcode_settings' : {
+              'OTHER_LDFLAGS' : [
+                '-framework Foundation',
+                '-framework AppKit',
+                '-framework Cocoa',
+                '-framework OpenGL',
+                '-framework CoreVideo',
+                '-framework CoreAudio',
+                '-framework AudioToolbox',
+              ],
+            },
+          }],
+        ],
+      },
+      'dependencies': [
+        '<(DEPTH)/testing/gtest.gyp:gtest',
+        '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
+        '<(webrtc_root)/modules/modules.gyp:video_capture_module',
+        '<(webrtc_root)/test/test.gyp:test_support',
+        '<(webrtc_root)/common_video/common_video.gyp:frame_generator',
+      ],
+    },
+  ],
+}
diff --git a/video_engine/test/common/win/d3d_renderer.cc b/test/win/d3d_renderer.cc
similarity index 98%
rename from video_engine/test/common/win/d3d_renderer.cc
rename to test/win/d3d_renderer.cc
index 2f9b29f..7da8f44 100644
--- a/video_engine/test/common/win/d3d_renderer.cc
+++ b/test/win/d3d_renderer.cc
@@ -7,7 +7,7 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include "webrtc/video_engine/test/common/win/d3d_renderer.h"
+#include "webrtc/test/win/d3d_renderer.h"
 
 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
 
diff --git a/video_engine/test/common/win/d3d_renderer.h b/test/win/d3d_renderer.h
similarity index 95%
rename from video_engine/test/common/win/d3d_renderer.h
rename to test/win/d3d_renderer.h
index 38efa46..e8b0692 100644
--- a/video_engine/test/common/win/d3d_renderer.h
+++ b/test/win/d3d_renderer.h
@@ -14,8 +14,8 @@
 #include <d3d9.h>
 
 #include "webrtc/system_wrappers/interface/scoped_refptr.h"
+#include "webrtc/test/video_renderer.h"
 #include "webrtc/typedefs.h"
-#include "webrtc/video_engine/test/common/video_renderer.h"
 
 namespace webrtc {
 namespace test {
diff --git a/video_engine/test/common/win/run_loop_win.cc b/test/win/run_loop_win.cc
similarity index 93%
rename from video_engine/test/common/win/run_loop_win.cc
rename to test/win/run_loop_win.cc
index c62eeb1..ec29cc5 100644
--- a/video_engine/test/common/win/run_loop_win.cc
+++ b/test/win/run_loop_win.cc
@@ -7,7 +7,7 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include "webrtc/video_engine/test/common/run_loop.h"
+#include "webrtc/test/run_loop.h"
 
 #include <assert.h>
 
diff --git a/video_engine/new_include/transport.h b/transport.h
similarity index 100%
rename from video_engine/new_include/transport.h
rename to transport.h
diff --git a/video/OWNERS b/video/OWNERS
new file mode 100644
index 0000000..5064074
--- /dev/null
+++ b/video/OWNERS
@@ -0,0 +1,4 @@
+mflodman@webrtc.org
+stefan@webrtc.org
+wu@webrtc.org
+mallinath@webrtc.org
diff --git a/video_engine/test/full_stack.cc b/video/full_stack.cc
similarity index 97%
rename from video_engine/test/full_stack.cc
rename to video/full_stack.cc
index cc09a6a..b154df3 100644
--- a/video_engine/test/full_stack.cc
+++ b/video/full_stack.cc
@@ -15,6 +15,7 @@
 #include "gflags/gflags.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+#include "webrtc/call.h"
 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
 #include "webrtc/modules/rtp_rtcp/interface/rtp_header_parser.h"
 #include "webrtc/system_wrappers/interface/clock.h"
@@ -23,13 +24,12 @@
 #include "webrtc/system_wrappers/interface/scoped_ptr.h"
 #include "webrtc/system_wrappers/interface/sleep.h"
 #include "webrtc/test/testsupport/fileutils.h"
+#include "webrtc/test/direct_transport.h"
+#include "webrtc/test/frame_generator_capturer.h"
+#include "webrtc/test/generate_ssrcs.h"
+#include "webrtc/test/statistics.h"
+#include "webrtc/test/video_renderer.h"
 #include "webrtc/typedefs.h"
-#include "webrtc/video_engine/new_include/call.h"
-#include "webrtc/video_engine/test/common/direct_transport.h"
-#include "webrtc/video_engine/test/common/frame_generator_capturer.h"
-#include "webrtc/video_engine/test/common/generate_ssrcs.h"
-#include "webrtc/video_engine/test/common/statistics.h"
-#include "webrtc/video_engine/test/common/video_renderer.h"
 
 DEFINE_int32(seconds, 10, "Seconds to run each clip.");
 
diff --git a/video_engine/test/rampup_tests.cc b/video/rampup_tests.cc
similarity index 94%
rename from video_engine/test/rampup_tests.cc
rename to video/rampup_tests.cc
index f263efa..c668458 100644
--- a/video_engine/test/rampup_tests.cc
+++ b/video/rampup_tests.cc
@@ -13,6 +13,7 @@
 
 #include "testing/gtest/include/gtest/gtest.h"
 
+#include "webrtc/call.h"
 #include "webrtc/modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
 #include "webrtc/modules/rtp_rtcp/interface/receive_statistics.h"
 #include "webrtc/modules/rtp_rtcp/interface/rtp_header_parser.h"
@@ -21,12 +22,11 @@
 #include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
 #include "webrtc/system_wrappers/interface/event_wrapper.h"
 #include "webrtc/system_wrappers/interface/scoped_ptr.h"
-#include "webrtc/video_engine/new_include/call.h"
-#include "webrtc/video_engine/test/common/direct_transport.h"
-#include "webrtc/video_engine/test/common/fake_decoder.h"
-#include "webrtc/video_engine/test/common/fake_encoder.h"
-#include "webrtc/video_engine/test/common/frame_generator_capturer.h"
-#include "webrtc/video_engine/test/common/generate_ssrcs.h"
+#include "webrtc/test/direct_transport.h"
+#include "webrtc/test/fake_decoder.h"
+#include "webrtc/test/fake_encoder.h"
+#include "webrtc/test/frame_generator_capturer.h"
+#include "webrtc/test/generate_ssrcs.h"
 
 namespace webrtc {
 
diff --git a/video_engine/internal/transport_adapter.cc b/video/transport_adapter.cc
similarity index 95%
rename from video_engine/internal/transport_adapter.cc
rename to video/transport_adapter.cc
index 635586a..1d32504 100644
--- a/video_engine/internal/transport_adapter.cc
+++ b/video/transport_adapter.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/internal/transport_adapter.h"
+#include "webrtc/video/transport_adapter.h"
 
 namespace webrtc {
 namespace internal {
diff --git a/video_engine/internal/transport_adapter.h b/video/transport_adapter.h
similarity index 94%
rename from video_engine/internal/transport_adapter.h
rename to video/transport_adapter.h
index a5e2e28..3686f38 100644
--- a/video_engine/internal/transport_adapter.h
+++ b/video/transport_adapter.h
@@ -11,7 +11,7 @@
 #define WEBRTC_VIDEO_ENGINE_INTERNAL_TRANSPORT_ADAPTER_H_
 
 #include "webrtc/common_types.h"
-#include "webrtc/video_engine/new_include/transport.h"
+#include "webrtc/transport.h"
 
 namespace webrtc {
 namespace internal {
diff --git a/video_engine/internal/video_receive_stream.cc b/video/video_receive_stream.cc
similarity index 94%
rename from video_engine/internal/video_receive_stream.cc
rename to video/video_receive_stream.cc
index a6a5875..a84c6d2 100644
--- a/video_engine/internal/video_receive_stream.cc
+++ b/video/video_receive_stream.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/internal/video_receive_stream.h"
+#include "webrtc/video/video_receive_stream.h"
 
 #include <assert.h>
 #include <stdlib.h>
@@ -23,7 +23,7 @@
 #include "webrtc/video_engine/include/vie_network.h"
 #include "webrtc/video_engine/include/vie_render.h"
 #include "webrtc/video_engine/include/vie_rtp_rtcp.h"
-#include "webrtc/video_engine/new_include/video_receive_stream.h"
+#include "webrtc/video_receive_stream.h"
 
 namespace webrtc {
 namespace internal {
@@ -140,11 +140,13 @@
 }
 
 bool VideoReceiveStream::DeliverRtcp(const uint8_t* packet, size_t length) {
-  return network_->ReceivedRTCPPacket(channel_, packet, length) == 0;
+  return network_->ReceivedRTCPPacket(
+             channel_, packet, static_cast<int>(length)) == 0;
 }
 
 bool VideoReceiveStream::DeliverRtp(const uint8_t* packet, size_t length) {
-  return network_->ReceivedRTPPacket(channel_, packet, length) == 0;
+  return network_->ReceivedRTPPacket(
+             channel_, packet, static_cast<int>(length)) == 0;
 }
 
 int VideoReceiveStream::FrameSizeChange(unsigned int width,
diff --git a/video_engine/internal/video_receive_stream.h b/video/video_receive_stream.h
similarity index 94%
rename from video_engine/internal/video_receive_stream.h
rename to video/video_receive_stream.h
index b5d095c..c2352f4 100644
--- a/video_engine/internal/video_receive_stream.h
+++ b/video/video_receive_stream.h
@@ -15,9 +15,9 @@
 
 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
 #include "webrtc/system_wrappers/interface/clock.h"
+#include "webrtc/video/transport_adapter.h"
 #include "webrtc/video_engine/include/vie_render.h"
-#include "webrtc/video_engine/internal/transport_adapter.h"
-#include "webrtc/video_engine/new_include/video_receive_stream.h"
+#include "webrtc/video_receive_stream.h"
 
 namespace webrtc {
 
diff --git a/video_engine/internal/video_send_stream.cc b/video/video_send_stream.cc
similarity index 93%
rename from video_engine/internal/video_send_stream.cc
rename to video/video_send_stream.cc
index 70a6918..8814c35 100644
--- a/video_engine/internal/video_send_stream.cc
+++ b/video/video_send_stream.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/video_engine/internal/video_send_stream.h"
+#include "webrtc/video/video_send_stream.h"
 
 #include <string.h>
 
@@ -23,7 +23,7 @@
 #include "webrtc/video_engine/include/vie_image_process.h"
 #include "webrtc/video_engine/include/vie_network.h"
 #include "webrtc/video_engine/include/vie_rtp_rtcp.h"
-#include "webrtc/video_engine/new_include/video_send_stream.h"
+#include "webrtc/video_send_stream.h"
 
 namespace webrtc {
 namespace internal {
@@ -101,16 +101,20 @@
     rtp_rtcp_->SetLocalSSRC(channel_, config_.rtp.ssrcs[0]);
   } else {
     for (size_t i = 0; i < config_.rtp.ssrcs.size(); ++i) {
-      rtp_rtcp_->SetLocalSSRC(channel_, config_.rtp.ssrcs[i],
-                              kViEStreamTypeNormal, i);
+      rtp_rtcp_->SetLocalSSRC(channel_,
+                              config_.rtp.ssrcs[i],
+                              kViEStreamTypeNormal,
+                              static_cast<unsigned char>(i));
     }
   }
   rtp_rtcp_->SetTransmissionSmoothingStatus(channel_, config_.pacing);
   if (!config_.rtp.rtx.ssrcs.empty()) {
     assert(config_.rtp.rtx.ssrcs.size() == config_.rtp.ssrcs.size());
     for (size_t i = 0; i < config_.rtp.rtx.ssrcs.size(); ++i) {
-      rtp_rtcp_->SetLocalSSRC(
-          channel_, config_.rtp.rtx.ssrcs[i], kViEStreamTypeRtx, i);
+      rtp_rtcp_->SetLocalSSRC(channel_,
+                              config_.rtp.rtx.ssrcs[i],
+                              kViEStreamTypeRtx,
+                              static_cast<unsigned char>(i));
     }
 
     if (config_.rtp.rtx.rtx_payload_type != 0) {
@@ -169,7 +173,8 @@
 
   network_->RegisterSendTransport(channel_, transport_adapter_);
   // 28 to match packet overhead in ModuleRtpRtcpImpl.
-  network_->SetMTU(channel_, config_.rtp.max_packet_size + 28);
+  network_->SetMTU(channel_,
+                   static_cast<unsigned int>(config_.rtp.max_packet_size + 28));
 
   if (config.encoder) {
     external_codec_ = ViEExternalCodec::GetInterface(video_engine);
diff --git a/video_engine/internal/video_send_stream.h b/video/video_send_stream.h
similarity index 91%
rename from video_engine/internal/video_send_stream.h
rename to video/video_send_stream.h
index 27027ef..304d825 100644
--- a/video_engine/internal/video_send_stream.h
+++ b/video/video_send_stream.h
@@ -14,9 +14,9 @@
 #include <vector>
 
 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
-#include "webrtc/video_engine/internal/transport_adapter.h"
-#include "webrtc/video_engine/new_include/video_receive_stream.h"
-#include "webrtc/video_engine/new_include/video_send_stream.h"
+#include "webrtc/video/transport_adapter.h"
+#include "webrtc/video_receive_stream.h"
+#include "webrtc/video_send_stream.h"
 
 namespace webrtc {
 
diff --git a/video_engine/test/send_stream_tests.cc b/video/video_send_stream_tests.cc
similarity index 97%
rename from video_engine/test/send_stream_tests.cc
rename to video/video_send_stream_tests.cc
index 2772104..edcbb2c 100644
--- a/video_engine/test/send_stream_tests.cc
+++ b/video/video_send_stream_tests.cc
@@ -10,7 +10,10 @@
 #include <algorithm>  // max
 
 #include "testing/gtest/include/gtest/gtest.h"
+
+#include "webrtc/call.h"
 #include "webrtc/common_video/interface/i420_video_frame.h"
+#include "webrtc/frame_callback.h"
 #include "webrtc/modules/rtp_rtcp/interface/rtp_header_parser.h"
 #include "webrtc/modules/rtp_rtcp/source/rtcp_sender.h"
 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
@@ -19,14 +22,12 @@
 #include "webrtc/system_wrappers/interface/scoped_ptr.h"
 #include "webrtc/system_wrappers/interface/sleep.h"
 #include "webrtc/system_wrappers/interface/thread_wrapper.h"
-#include "webrtc/video_engine/internal/transport_adapter.h"
-#include "webrtc/video_engine/new_include/call.h"
-#include "webrtc/video_engine/new_include/frame_callback.h"
-#include "webrtc/video_engine/new_include/video_send_stream.h"
-#include "webrtc/video_engine/test/common/direct_transport.h"
-#include "webrtc/video_engine/test/common/fake_encoder.h"
-#include "webrtc/video_engine/test/common/frame_generator_capturer.h"
-#include "webrtc/video_engine/test/common/null_transport.h"
+#include "webrtc/test/direct_transport.h"
+#include "webrtc/test/fake_encoder.h"
+#include "webrtc/test/frame_generator_capturer.h"
+#include "webrtc/test/null_transport.h"
+#include "webrtc/video/transport_adapter.h"
+#include "webrtc/video_send_stream.h"
 
 namespace webrtc {
 
diff --git a/video/webrtc_video.gypi b/video/webrtc_video.gypi
new file mode 100644
index 0000000..78f4d1a
--- /dev/null
+++ b/video/webrtc_video.gypi
@@ -0,0 +1,22 @@
+# 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.
+{
+  'variables': {
+    'webrtc_video_dependencies': [
+      '<(webrtc_root)/video_engine/video_engine.gyp:*',
+    ],
+    'webrtc_video_sources': [
+      'video/transport_adapter.cc',
+      'video/transport_adapter.h',
+      'video/video_receive_stream.cc',
+      'video/video_receive_stream.h',
+      'video/video_send_stream.cc',
+      'video/video_send_stream.h',
+    ],
+  },
+}
diff --git a/video_engine/internal/call.h b/video_engine/internal/call.h
deleted file mode 100644
index 7891bfd..0000000
--- a/video_engine/internal/call.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- *  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_VIDEO_ENGINE_INTERNAL_CALL_H_
-#define WEBRTC_VIDEO_ENGINE_INTERNAL_CALL_H_
-
-#include <map>
-#include <vector>
-
-#include "webrtc/modules/rtp_rtcp/interface/rtp_header_parser.h"
-#include "webrtc/system_wrappers/interface/rw_lock_wrapper.h"
-#include "webrtc/system_wrappers/interface/scoped_ptr.h"
-#include "webrtc/video_engine/internal/video_receive_stream.h"
-#include "webrtc/video_engine/internal/video_send_stream.h"
-#include "webrtc/video_engine/new_include/call.h"
-
-namespace webrtc {
-
-class VideoEngine;
-class ViERTP_RTCP;
-class ViECodec;
-
-namespace internal {
-
-// TODO(pbos): Split out the packet receiver, should be sharable between
-//             VideoEngine and VoiceEngine.
-class Call : public webrtc::Call, public PacketReceiver {
- public:
-  Call(webrtc::VideoEngine* video_engine, const Call::Config& config);
-  virtual ~Call();
-
-  virtual PacketReceiver* Receiver() OVERRIDE;
-  virtual std::vector<VideoCodec> GetVideoCodecs() OVERRIDE;
-
-  virtual VideoSendStream::Config GetDefaultSendConfig() OVERRIDE;
-
-  virtual VideoSendStream* CreateSendStream(
-      const VideoSendStream::Config& config) OVERRIDE;
-
-  virtual SendStreamState* DestroySendStream(
-      webrtc::VideoSendStream* send_stream) OVERRIDE;
-
-  virtual VideoReceiveStream::Config GetDefaultReceiveConfig() OVERRIDE;
-
-  virtual VideoReceiveStream* CreateReceiveStream(
-      const VideoReceiveStream::Config& config) OVERRIDE;
-
-  virtual void DestroyReceiveStream(
-      webrtc::VideoReceiveStream* receive_stream) OVERRIDE;
-
-  virtual uint32_t SendBitrateEstimate() OVERRIDE;
-  virtual uint32_t ReceiveBitrateEstimate() OVERRIDE;
-
-  virtual bool DeliverPacket(const uint8_t* packet, size_t length) OVERRIDE;
-
- private:
-  bool DeliverRtcp(const uint8_t* packet, size_t length);
-  bool DeliverRtp(const RTPHeader& header,
-                  const uint8_t* packet,
-                  size_t length);
-
-  Call::Config config_;
-
-  std::map<uint32_t, VideoReceiveStream*> receive_ssrcs_;
-  scoped_ptr<RWLockWrapper> receive_lock_;
-
-  std::map<uint32_t, VideoSendStream*> send_ssrcs_;
-  scoped_ptr<RWLockWrapper> send_lock_;
-
-  scoped_ptr<RtpHeaderParser> rtp_header_parser_;
-
-  webrtc::VideoEngine* video_engine_;
-  ViERTP_RTCP* rtp_rtcp_;
-  ViECodec* codec_;
-
-  DISALLOW_COPY_AND_ASSIGN(Call);
-};
-}  // namespace internal
-}  // namespace webrtc
-
-#endif  // WEBRTC_VIDEO_ENGINE_INTERNAL_CALL_H_
diff --git a/video_engine/test/tests.gypi b/video_engine/test/tests.gypi
deleted file mode 100644
index 8b94d56..0000000
--- a/video_engine/test/tests.gypi
+++ /dev/null
@@ -1,183 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'video_tests_common',
-      'type': 'static_library',
-      'sources': [
-        'common/direct_transport.cc',
-        'common/direct_transport.h',
-        'common/fake_decoder.cc',
-        'common/fake_decoder.h',
-        'common/fake_encoder.cc',
-        'common/fake_encoder.h',
-        'common/flags.cc',
-        'common/flags.h',
-        'common/frame_generator_capturer.cc',
-        'common/frame_generator_capturer.h',
-        'common/generate_ssrcs.cc',
-        'common/generate_ssrcs.h',
-        'common/gl/gl_renderer.cc',
-        'common/gl/gl_renderer.h',
-        'common/linux/glx_renderer.cc',
-        'common/linux/glx_renderer.h',
-        'common/linux/video_renderer_linux.cc',
-        'common/mac/run_tests.mm',
-        'common/mac/video_renderer_mac.h',
-        'common/mac/video_renderer_mac.mm',
-        'common/null_platform_renderer.cc',
-        'common/null_transport.cc',
-        'common/null_transport.h',
-        'common/rtp_rtcp_observer.h',
-        'common/run_tests.cc',
-        'common/run_tests.h',
-        'common/run_loop.cc',
-        'common/run_loop.h',
-        'common/statistics.cc',
-        'common/statistics.h',
-        'common/vcm_capturer.cc',
-        'common/vcm_capturer.h',
-        'common/video_capturer.cc',
-        'common/video_capturer.h',
-        'common/video_renderer.cc',
-        'common/video_renderer.h',
-        'common/win/d3d_renderer.cc',
-        'common/win/d3d_renderer.h',
-        'common/win/run_loop_win.cc',
-      ],
-      'conditions': [
-        ['OS=="linux"', {
-          'sources!': [
-            'common/null_platform_renderer.cc',
-          ],
-        }],
-        ['OS=="mac"', {
-          'sources!': [
-            'common/null_platform_renderer.cc',
-            'common/run_tests.cc',
-          ],
-        }],
-        ['OS!="linux" and OS!="mac"', {
-          'sources!' : [
-            'common/gl/gl_renderer.cc',
-            'common/gl/gl_renderer.h',
-          ],
-        }],
-        ['OS=="win"', {
-          'sources!': [
-            'common/null_platform_renderer.cc',
-            'common/run_loop.cc',
-          ],
-        }],
-      ],
-      'direct_dependent_settings': {
-        'conditions': [
-          ['OS=="linux"', {
-            'libraries': [
-              '-lXext',
-              '-lX11',
-              '-lGL',
-            ],
-          }],
-          #TODO(pbos) : These dependencies should not have to be here, they
-          #             aren't used by test code directly, only by components
-          #             used by the tests.
-          ['OS=="android"', {
-            'libraries' : [
-              '-lGLESv2', '-llog',
-            ],
-          }],
-          ['OS=="mac"', {
-            'xcode_settings' : {
-              'OTHER_LDFLAGS' : [
-                '-framework Foundation',
-                '-framework AppKit',
-                '-framework Cocoa',
-                '-framework OpenGL',
-                '-framework CoreVideo',
-                '-framework CoreAudio',
-                '-framework AudioToolbox',
-              ],
-            },
-          }],
-        ],
-      },
-      'dependencies': [
-        '<(DEPTH)/testing/gtest.gyp:gtest',
-        '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
-        '<(webrtc_root)/modules/modules.gyp:video_capture_module',
-        '<(webrtc_root)/test/test.gyp:test_support',
-        'video_engine_core',
-        '<(webrtc_root)/common_video/common_video.gyp:frame_generator',
-      ],
-    },
-    {
-      'target_name': 'video_loopback',
-      'type': 'executable',
-      'sources': [
-        'loopback.cc',
-        'test_main.cc',
-      ],
-      'dependencies': [
-        '<(DEPTH)/testing/gtest.gyp:gtest',
-        'video_tests_common',
-      ],
-    },
-    {
-      'target_name': 'video_engine_tests',
-      'type': '<(gtest_target_type)',
-      'sources': [
-        'call_tests.cc',
-        'full_stack.cc',
-        'rampup_tests.cc',
-        'send_stream_tests.cc',
-        'test_main.cc',
-      ],
-      'dependencies': [
-        '<(DEPTH)/testing/gtest.gyp:gtest',
-        '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
-        'video_tests_common',
-      ],
-    },
-  ], # targets
-  'conditions': [
-    # TODO(henrike): remove build_with_chromium==1 when the bots are using
-    # Chromium's buildbots.
-    ['build_with_chromium==1 and OS=="android" and gtest_target_type=="shared_library"', {
-      'targets': [
-        {
-          'target_name': 'video_engine_tests_apk_target',
-          'type': 'none',
-          'dependencies': [
-            '<(apk_tests_path):video_engine_tests_apk',
-          ],
-        },
-      ],
-    }],
-    ['test_isolation_mode != "noop"', {
-      'targets': [
-        {
-          'target_name': 'video_engine_tests_run',
-          'type': 'none',
-          'dependencies': [
-            'video_engine_tests',
-          ],
-          'includes': [
-            '../../build/isolate.gypi',
-            'video_engine_tests.isolate',
-          ],
-          'sources': [
-            'video_engine_tests.isolate',
-          ],
-        },
-      ],
-    }],
-  ], # conditions
-}
diff --git a/video_engine/video_engine.gyp b/video_engine/video_engine.gyp
index cd0e9ad..c0be245 100644
--- a/video_engine/video_engine.gyp
+++ b/video_engine/video_engine.gyp
@@ -17,7 +17,6 @@
       'includes': [
         'test/libvietest/libvietest.gypi',
         'test/auto_test/vie_auto_test.gypi',
-        'test/tests.gypi',
       ],
       'conditions': [
         ['OS=="android"', {
diff --git a/video_engine/video_engine_core.gypi b/video_engine/video_engine_core.gypi
index 8bae1fd..3793969 100644
--- a/video_engine/video_engine_core.gypi
+++ b/video_engine/video_engine_core.gypi
@@ -113,23 +113,6 @@
         'vie_render_manager.cc',
         'vie_sender.cc',
         'vie_sync_module.cc',
-
-        # New VideoEngine API
-        'internal/call.cc',
-        'internal/call.h',
-        'internal/transport_adapter.cc',
-        'internal/transport_adapter.h',
-        'internal/video_receive_stream.cc',
-        'internal/video_receive_stream.h',
-        'internal/video_send_stream.cc',
-        'internal/video_send_stream.h',
-        'new_include/call.h',
-        'new_include/config.h',
-        'new_include/frame_callback.h',
-        'new_include/transport.h',
-        'new_include/video_receive_stream.h',
-        'new_include/video_renderer.h',
-        'new_include/video_send_stream.h',
       ], # source
       # TODO(jschuh): Bug 1348: fix size_t to int truncations.
       'msvs_disabled_warnings': [ 4267, ],
diff --git a/video_engine/vie_channel.cc b/video_engine/vie_channel.cc
index b766a64..2913960 100644
--- a/video_engine/vie_channel.cc
+++ b/video_engine/vie_channel.cc
@@ -29,7 +29,7 @@
 #include "webrtc/video_engine/include/vie_errors.h"
 #include "webrtc/video_engine/include/vie_image_process.h"
 #include "webrtc/video_engine/include/vie_rtp_rtcp.h"
-#include "webrtc/video_engine/new_include/frame_callback.h"
+#include "webrtc/frame_callback.h"
 #include "webrtc/video_engine/vie_defines.h"
 
 namespace webrtc {
diff --git a/video_engine/vie_encoder.cc b/video_engine/vie_encoder.cc
index 1c6334a..5bddda4 100644
--- a/video_engine/vie_encoder.cc
+++ b/video_engine/vie_encoder.cc
@@ -28,7 +28,7 @@
 #include "webrtc/system_wrappers/interface/trace_event.h"
 #include "webrtc/video_engine/include/vie_codec.h"
 #include "webrtc/video_engine/include/vie_image_process.h"
-#include "webrtc/video_engine/new_include/frame_callback.h"
+#include "webrtc/frame_callback.h"
 #include "webrtc/video_engine/vie_defines.h"
 
 namespace webrtc {
diff --git a/video_engine/vie_encoder.h b/video_engine/vie_encoder.h
index 2d7bae1..7177f8f 100644
--- a/video_engine/vie_encoder.h
+++ b/video_engine/vie_encoder.h
@@ -21,7 +21,7 @@
 #include "webrtc/modules/video_processing/main/interface/video_processing.h"
 #include "webrtc/system_wrappers/interface/scoped_ptr.h"
 #include "webrtc/typedefs.h"
-#include "webrtc/video_engine/new_include/frame_callback.h"
+#include "webrtc/frame_callback.h"
 #include "webrtc/video_engine/vie_defines.h"
 #include "webrtc/video_engine/vie_frame_provider_base.h"
 
diff --git a/video_engine/test/video_engine_tests.isolate b/video_engine_tests.isolate
similarity index 79%
rename from video_engine/test/video_engine_tests.isolate
rename to video_engine_tests.isolate
index 2f22bda..0c1e92d 100644
--- a/video_engine/test/video_engine_tests.isolate
+++ b/video_engine_tests.isolate
@@ -12,24 +12,24 @@
       # of a Chromium checkout, this is one level above the standalone build.
       'variables': {
         'isolate_dependency_untracked': [
-          '../../../../data/',
-          '../../../../resources/',
+          '../../data/',
+          '../../resources/',
         ],
       },
     }],
     ['OS=="linux" or OS=="mac" or OS=="win"', {
       'variables': {
         'command': [
-          '../../../testing/test_env.py',
-          '../../../tools/swarm_client/googletest/run_test_cases.py',
+          '../testing/test_env.py',
+          '../tools/swarm_client/googletest/run_test_cases.py',
           '<(PRODUCT_DIR)/video_engine_tests<(EXECUTABLE_SUFFIX)',
         ],
         'isolate_dependency_tracked': [
-          '../../../testing/test_env.py',
+          '../testing/test_env.py',
           '<(PRODUCT_DIR)/video_engine_tests<(EXECUTABLE_SUFFIX)',
         ],
         'isolate_dependency_untracked': [
-          '../../../tools/swarm_client/',
+          '../tools/swarm_client/',
         ],
       },
     }],
diff --git a/video_engine/new_include/video_receive_stream.h b/video_receive_stream.h
similarity index 95%
rename from video_engine/new_include/video_receive_stream.h
rename to video_receive_stream.h
index b5b47c5..f968c66 100644
--- a/video_engine/new_include/video_receive_stream.h
+++ b/video_receive_stream.h
@@ -15,10 +15,10 @@
 #include <vector>
 
 #include "webrtc/common_types.h"
-#include "webrtc/video_engine/new_include/config.h"
-#include "webrtc/video_engine/new_include/frame_callback.h"
-#include "webrtc/video_engine/new_include/transport.h"
-#include "webrtc/video_engine/new_include/video_renderer.h"
+#include "webrtc/config.h"
+#include "webrtc/frame_callback.h"
+#include "webrtc/transport.h"
+#include "webrtc/video_renderer.h"
 
 namespace webrtc {
 
diff --git a/video_engine/new_include/video_renderer.h b/video_renderer.h
similarity index 100%
rename from video_engine/new_include/video_renderer.h
rename to video_renderer.h
diff --git a/video_engine/new_include/video_send_stream.h b/video_send_stream.h
similarity index 96%
rename from video_engine/new_include/video_send_stream.h
rename to video_send_stream.h
index f83ee08..af33b7c 100644
--- a/video_engine/new_include/video_send_stream.h
+++ b/video_send_stream.h
@@ -15,9 +15,9 @@
 #include <vector>
 
 #include "webrtc/common_types.h"
-#include "webrtc/video_engine/new_include/config.h"
-#include "webrtc/video_engine/new_include/frame_callback.h"
-#include "webrtc/video_engine/new_include/video_renderer.h"
+#include "webrtc/config.h"
+#include "webrtc/frame_callback.h"
+#include "webrtc/video_renderer.h"
 
 namespace webrtc {
 
diff --git a/webrtc.gyp b/webrtc.gyp
index 08d99ac..9fe514c 100644
--- a/webrtc.gyp
+++ b/webrtc.gyp
@@ -5,9 +5,18 @@
 # 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.
-
 {
-  'includes': ['build/common.gypi',],
+  'conditions': [
+    ['include_tests==1', {
+      'includes': [
+        'webrtc_tests.gypi',
+      ],
+    }],
+  ],
+  'includes': [
+    'build/common.gypi',
+    'video/webrtc_video.gypi',
+  ],
   'variables': {
     'webrtc_all_dependencies': [
       'common_audio/common_audio.gyp:*',
@@ -21,10 +30,11 @@
   },
   'targets': [
     {
-      'target_name': 'webrtc',
+      'target_name': 'webrtc_all',
       'type': 'none',
       'dependencies': [
         '<@(webrtc_all_dependencies)',
+        'webrtc',
       ],
       'conditions': [
         ['include_tests==1', {
@@ -33,6 +43,7 @@
             'test/metrics.gyp:*',
             'test/test.gyp:*',
             'tools/tools.gyp:*',
+            'webrtc_tests',
           ],
         }],
         ['build_with_chromium==0 and OS=="android"', {
@@ -42,5 +53,26 @@
         }],
       ],
     },
+    {
+      # TODO(pbos): This is intended to contain audio parts as well as soon as
+      #             VoiceEngine moves to the same new API format.
+      'target_name': 'webrtc',
+      'type': 'static_library',
+      'sources': [
+        'call.cc',
+        'call.h',
+        'config.h',
+        'frame_callback.h',
+        'transport.h',
+        'video_receive_stream.h',
+        'video_renderer.h',
+        'video_send_stream.h',
+
+        '<@(webrtc_video_sources)',
+      ],
+      'dependencies': [
+        '<@(webrtc_video_dependencies)',
+      ],
+    },
   ],
 }
diff --git a/webrtc_tests.gypi b/webrtc_tests.gypi
new file mode 100644
index 0000000..4073403
--- /dev/null
+++ b/webrtc_tests.gypi
@@ -0,0 +1,83 @@
+# 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.
+{
+  'targets': [
+    {
+      'target_name': 'webrtc_tests',
+      'type': 'none',
+      'dependencies': [
+        'video_engine_tests',
+        'video_loopback',
+      ],
+    },
+    {
+      'target_name': 'video_loopback',
+      'type': 'executable',
+      'sources': [
+        'loopback.cc',
+        'test/test_main.cc',
+      ],
+      'dependencies': [
+        '<(DEPTH)/testing/gtest.gyp:gtest',
+        'test/webrtc_test_common.gyp:webrtc_test_common',
+        'webrtc',
+      ],
+    },
+    {
+      'target_name': 'video_engine_tests',
+      'type': '<(gtest_target_type)',
+      'sources': [
+        'call_tests.cc',
+        'video/full_stack.cc',
+        'video/rampup_tests.cc',
+        'video/video_send_stream_tests.cc',
+        'test/test_main.cc',
+      ],
+      'dependencies': [
+        '<(DEPTH)/testing/gtest.gyp:gtest',
+        '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
+        'modules/modules.gyp:rtp_rtcp',
+        'test/webrtc_test_common.gyp:webrtc_test_common',
+        'webrtc',
+      ],
+    },
+  ],
+  'conditions': [
+    # TODO(henrike): remove build_with_chromium==1 when the bots are using
+    # Chromium's buildbots.
+    ['build_with_chromium==1 and OS=="android" and gtest_target_type=="shared_library"', {
+      'targets': [
+        {
+          'target_name': 'video_engine_tests_apk_target',
+          'type': 'none',
+          'dependencies': [
+            '<(apk_tests_path):video_engine_tests_apk',
+          ],
+        },
+      ],
+    }],
+    ['test_isolation_mode != "noop"', {
+      'targets': [
+        {
+          'target_name': 'video_engine_tests_run',
+          'type': 'none',
+          'dependencies': [
+            'video_engine_tests',
+          ],
+          'includes': [
+            '../build/isolate.gypi',
+            'video_engine_tests.isolate',
+          ],
+          'sources': [
+            'video_engine_tests.isolate',
+          ],
+        },
+      ],
+    }],
+  ],
+}