New file api/video/BUILD.gn

Build targets involving files under api/video/ are moved into this
file, from api/BUILD.gn. In addition, drop "_api" part of target
names, and move the header file api/videosinkinterface.h to
api/video/video_sink_interface.h.

Bug: webrtc:9253
Change-Id: I2896d3f063db8dff902bc29738578395b2fcc155
Reviewed-on: https://webrtc-review.googlesource.com/75500
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23207}
diff --git a/BUILD.gn b/BUILD.gn
index c1ccb5c..4f019c1 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -345,7 +345,7 @@
 
     if (build_with_mozilla) {
       deps += [
-        "api:video_frame_api",
+        "api/video:video_frame",
         "system_wrappers:field_trial_default",
         "system_wrappers:metrics_default",
       ]
@@ -381,7 +381,7 @@
     ":typedefs",
     "api:array_view",
     "api:optional",
-    "api:video_bitrate_allocation",
+    "api/video:video_bitrate_allocation",
     "rtc_base:checks",
     "rtc_base:deprecation",
     "rtc_base:stringutils",
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 989858f..effdb5d 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -105,10 +105,10 @@
     ":libjingle_logging_api",
     ":optional",
     ":rtc_stats_api",
-    ":video_frame_api",
     "audio:audio_mixer_api",
     "audio_codecs:audio_codecs_api",
     "transport:bitrate_settings",
+    "video:video_frame",
 
     # Basically, don't add stuff here. You might break sensitive downstream
     # targets like pnacl. API should not depend on anything outside of this
@@ -220,80 +220,56 @@
   ]
 }
 
+# TODO(bugs.webrtc.org/9253): Deprecated, replaced by video:video_frame.
+# Delete after downstream users are updated.
 rtc_source_set("video_frame_api") {
   visibility = [ "*" ]
   sources = [
-    "video/video_content_type.cc",
-    "video/video_content_type.h",
-    "video/video_frame.cc",
-    "video/video_frame.h",
-    "video/video_frame_buffer.cc",
-    "video/video_frame_buffer.h",
-    "video/video_rotation.h",
-    "video/video_timing.cc",
-    "video/video_timing.h",
     "videosinkinterface.h",
   ]
 
-  deps = [
-    "../rtc_base:checks",
-    "../rtc_base:rtc_base_approved",
+  public_deps = [  # no-presubmit-check TODO(webrtc:8603)
+    "video:video_frame",
   ]
 }
 
+# TODO(bugs.webrtc.org/9253): Deprecated, replaced by video:encoded_frame.
+# Delete after downstream users are updated.
 rtc_source_set("encoded_frame_api") {
   visibility = [ "*" ]
-  sources = [
-    "video/encoded_frame.cc",
-    "video/encoded_frame.h",
-  ]
 
-  deps = [
-    "../modules/video_coding:encoded_frame",
+  public_deps = [  # no-presubmit-check TODO(webrtc:8603)
+    "video:encoded_frame",
   ]
 }
 
+# TODO(bugs.webrtc.org/9253): Deprecated, replaced by video:video_stream_decoder.
+# Delete after downstream users are updated.
 rtc_source_set("video_stream_decoder") {
   visibility = [ "*" ]
-  sources = [
-    "video/video_stream_decoder.h",
-  ]
 
-  deps = [
-    ":encoded_frame_api",
-    ":optional",
-    ":video_frame_api",
-    "../api/video_codecs:video_codecs_api",
+  public_deps = [  # no-presubmit-check TODO(webrtc:8603)
+    "video:video_stream_decoder",
   ]
 }
 
+# TODO(bugs.webrtc.org/9253): Deprecated, replaced by video:video_stream_decoder_create.
+# Delete after downstream users are updated.
 rtc_source_set("video_stream_decoder_create") {
   visibility = [ "*" ]
   allow_poison = [ "software_video_codecs" ]  # TODO(bugs.webrtc.org/7925): Remove.
-  sources = [
-    "video/video_stream_decoder_create.cc",
-    "video/video_stream_decoder_create.h",
-  ]
 
-  deps = [
-    ":video_stream_decoder",
-    "../rtc_base:rtc_base_approved",
-    "../video:video_stream_decoder_impl",
+  public_deps = [  # no-presubmit-check TODO(webrtc:8603)
+    "video:video_stream_decoder_create",
   ]
 }
 
+# TODO(bugs.webrtc.org/9253): Deprecated, replaced by video:video_frame_i420.
+# Delete after downstream users are updated.
 rtc_source_set("video_frame_api_i420") {
   visibility = [ "*" ]
-  sources = [
-    "video/i420_buffer.cc",
-    "video/i420_buffer.h",
-  ]
-  deps = [
-    ":video_frame_api",
-    "../rtc_base:checks",
-    "../rtc_base:rtc_base",
-    "../rtc_base/memory:aligned_malloc",
-    "//third_party/libyuv",
+  public_deps = [  # no-presubmit-check TODO(webrtc:8603)
+    "video:video_frame_i420",
   ]
 }
 
@@ -344,18 +320,12 @@
   ]
 }
 
+# TODO(bugs.webrtc.org/9253): Deprecated, replaced by video:video_bitrate_allocation.
+# Delete after downstream users are updated.
 rtc_source_set("video_bitrate_allocation") {
   visibility = [ "*" ]
-  sources = [
-    "video/video_bitrate_allocation.cc",
-    "video/video_bitrate_allocation.h",
-  ]
-  deps = [
-    ":optional",
-    "..:typedefs",
-    "../rtc_base:checks",
-    "../rtc_base:safe_conversions",
-    "../rtc_base:stringutils",
+  public_deps = [  # no-presubmit-check TODO(webrtc:8603)
+    "video:video_bitrate_allocation",
   ]
 }
 
diff --git a/api/mediastreaminterface.h b/api/mediastreaminterface.h
index 2e2cff0..34a3143 100644
--- a/api/mediastreaminterface.h
+++ b/api/mediastreaminterface.h
@@ -27,7 +27,7 @@
 // TODO(zhihuang): Remove unrelated headers once downstream applications stop
 // relying on them; they were previously transitively included by
 // mediachannel.h, which is no longer a dependency of this file.
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "api/videosourceinterface.h"
 #include "modules/audio_processing/include/audio_processing_statistics.h"
 #include "rtc_base/ratetracker.h"
diff --git a/api/video/BUILD.gn b/api/video/BUILD.gn
new file mode 100644
index 0000000..14f68e6
--- /dev/null
+++ b/api/video/BUILD.gn
@@ -0,0 +1,101 @@
+# Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
+#
+# Use of this source code is governed by a BSD-style license
+# that can be found in the LICENSE file in the root of the source
+# tree. An additional intellectual property rights grant can be found
+# in the file PATENTS.  All contributing project authors may
+# be found in the AUTHORS file in the root of the source tree.
+
+import("../../webrtc.gni")
+
+rtc_source_set("video_frame") {
+  visibility = [ "*" ]
+  sources = [
+    "video_content_type.cc",
+    "video_content_type.h",
+    "video_frame.cc",
+    "video_frame.h",
+    "video_frame_buffer.cc",
+    "video_frame_buffer.h",
+    "video_rotation.h",
+    "video_sink_interface.h",
+    "video_timing.cc",
+    "video_timing.h",
+  ]
+
+  deps = [
+    "../../rtc_base:checks",
+    "../../rtc_base:rtc_base_approved",
+  ]
+}
+
+rtc_source_set("video_frame_i420") {
+  visibility = [ "*" ]
+  sources = [
+    "i420_buffer.cc",
+    "i420_buffer.h",
+  ]
+  deps = [
+    ":video_frame",
+    "../../rtc_base:checks",
+    "../../rtc_base:rtc_base",
+    "../../rtc_base/memory:aligned_malloc",
+    "//third_party/libyuv",
+  ]
+}
+
+rtc_source_set("encoded_frame") {
+  visibility = [ "*" ]
+  sources = [
+    "encoded_frame.cc",
+    "encoded_frame.h",
+  ]
+
+  deps = [
+    "../../modules/video_coding:encoded_frame",
+  ]
+}
+
+rtc_source_set("video_bitrate_allocation") {
+  visibility = [ "*" ]
+  sources = [
+    "video_bitrate_allocation.cc",
+    "video_bitrate_allocation.h",
+  ]
+  deps = [
+    "..:optional",
+    "../..:typedefs",
+    "../../rtc_base:checks",
+    "../../rtc_base:safe_conversions",
+    "../../rtc_base:stringutils",
+  ]
+}
+
+rtc_source_set("video_stream_decoder") {
+  visibility = [ "*" ]
+  sources = [
+    "video_stream_decoder.h",
+  ]
+
+  deps = [
+    ":encoded_frame",
+    ":video_frame",
+    "..:optional",
+    "../video_codecs:video_codecs_api",
+  ]
+}
+
+rtc_source_set("video_stream_decoder_create") {
+  visibility = [ "*" ]
+  allow_poison = [ "software_video_codecs" ]  # TODO(bugs.webrtc.org/7925): Remove.
+  sources = [
+    "video_stream_decoder_create.cc",
+    "video_stream_decoder_create.h",
+  ]
+
+  deps = [
+    ":video_stream_decoder",
+    "../../rtc_base:rtc_base_approved",
+    "../../video:video_stream_decoder_impl",
+  ]
+}
diff --git a/api/video/video_sink_interface.h b/api/video/video_sink_interface.h
new file mode 100644
index 0000000..aac8b4a
--- /dev/null
+++ b/api/video/video_sink_interface.h
@@ -0,0 +1,32 @@
+/*
+ *  Copyright (c) 2016 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 API_VIDEO_VIDEO_SINK_INTERFACE_H_
+#define API_VIDEO_VIDEO_SINK_INTERFACE_H_
+
+#include <rtc_base/checks.h>
+
+namespace rtc {
+
+template <typename VideoFrameT>
+class VideoSinkInterface {
+ public:
+  virtual ~VideoSinkInterface() = default;
+
+  virtual void OnFrame(const VideoFrameT& frame) = 0;
+
+  // Should be called by the source when it discards the frame due to rate
+  // limiting.
+  virtual void OnDiscardedFrame() {}
+};
+
+}  // namespace rtc
+
+#endif  // API_VIDEO_VIDEO_SINK_INTERFACE_H_
diff --git a/api/video_codecs/BUILD.gn b/api/video_codecs/BUILD.gn
index 38951fd..00609a7 100644
--- a/api/video_codecs/BUILD.gn
+++ b/api/video_codecs/BUILD.gn
@@ -27,12 +27,12 @@
 
   deps = [
     "..:optional",
-    "..:video_frame_api",
     "../..:webrtc_common",
     "../../:typedefs",
     "../../common_video",
     "../../rtc_base:checks",
     "../../rtc_base:rtc_base_approved",
+    "../video:video_frame",
   ]
 }
 
diff --git a/api/videosinkinterface.h b/api/videosinkinterface.h
index 2399320..21957b4 100644
--- a/api/videosinkinterface.h
+++ b/api/videosinkinterface.h
@@ -11,22 +11,8 @@
 #ifndef API_VIDEOSINKINTERFACE_H_
 #define API_VIDEOSINKINTERFACE_H_
 
-#include <rtc_base/checks.h>
-
-namespace rtc {
-
-template <typename VideoFrameT>
-class VideoSinkInterface {
- public:
-  virtual ~VideoSinkInterface() {}
-
-  virtual void OnFrame(const VideoFrameT& frame) = 0;
-
-  // Should be called by the source when it discards the frame due to rate
-  // limiting.
-  virtual void OnDiscardedFrame() {}
-};
-
-}  // namespace rtc
+// TODO(nisse): Place holder for moved file. Delete after applications are
+// updated.
+#include "api/video/video_sink_interface.h"
 
 #endif  // API_VIDEOSINKINTERFACE_H_
diff --git a/api/videosourceinterface.h b/api/videosourceinterface.h
index 065e2dc..17f1604 100644
--- a/api/videosourceinterface.h
+++ b/api/videosourceinterface.h
@@ -14,7 +14,7 @@
 #include <limits>
 
 #include "api/optional.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 
 namespace rtc {
 
diff --git a/call/BUILD.gn b/call/BUILD.gn
index 19ee903..57883a5 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -222,7 +222,7 @@
     "../api:libjingle_peerconnection_api",
     "../api:optional",
     "../api:transport_api",
-    "../api:video_frame_api",
+    "../api/video:video_frame",
     "../api/video_codecs:video_codecs_api",
     "../common_video:common_video",
     "../modules/rtp_rtcp:rtp_rtcp_format",
diff --git a/call/video_receive_stream.h b/call/video_receive_stream.h
index 1adc696..3f01796 100644
--- a/call/video_receive_stream.h
+++ b/call/video_receive_stream.h
@@ -21,7 +21,7 @@
 #include "api/rtpparameters.h"
 #include "api/video/video_content_type.h"
 #include "api/video/video_timing.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "call/rtp_config.h"
 #include "common_types.h"  // NOLINT(build/include)
 #include "common_video/include/frame_callback.h"
diff --git a/call/video_send_stream.h b/call/video_send_stream.h
index 10d4ba1..50de2cc 100644
--- a/call/video_send_stream.h
+++ b/call/video_send_stream.h
@@ -19,7 +19,7 @@
 #include "api/call/transport.h"
 #include "api/rtpparameters.h"
 #include "api/rtp_headers.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "api/videosourceinterface.h"
 #include "api/video_codecs/video_encoder_factory.h"
 #include "call/rtp_config.h"
diff --git a/common_video/BUILD.gn b/common_video/BUILD.gn
index 3bbbde9..0e3f2da 100644
--- a/common_video/BUILD.gn
+++ b/common_video/BUILD.gn
@@ -58,8 +58,8 @@
     "..:webrtc_common",
     "../:typedefs",
     "../api:optional",
-    "../api:video_frame_api",
-    "../api:video_frame_api_i420",
+    "../api/video:video_frame",
+    "../api/video:video_frame_i420",
     "../media:rtc_h264_profile_id",
     "../modules:module_api",
     "../rtc_base:checks",
@@ -108,8 +108,8 @@
 
     deps = [
       ":common_video",
-      "../api:video_frame_api",
-      "../api:video_frame_api_i420",
+      "../api/video:video_frame",
+      "../api/video:video_frame_i420",
       "../modules/video_capture:video_capture",
       "../rtc_base:rtc_base",
       "../rtc_base:rtc_base_approved",
diff --git a/common_video/include/incoming_video_stream.h b/common_video/include/incoming_video_stream.h
index 405416c..8063061 100644
--- a/common_video/include/incoming_video_stream.h
+++ b/common_video/include/incoming_video_stream.h
@@ -11,7 +11,7 @@
 #ifndef COMMON_VIDEO_INCLUDE_INCOMING_VIDEO_STREAM_H_
 #define COMMON_VIDEO_INCLUDE_INCOMING_VIDEO_STREAM_H_
 
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "common_video/video_render_frames.h"
 #include "rtc_base/race_checker.h"
 #include "rtc_base/task_queue.h"
diff --git a/examples/BUILD.gn b/examples/BUILD.gn
index ed6e060..90b8679 100644
--- a/examples/BUILD.gn
+++ b/examples/BUILD.gn
@@ -632,7 +632,7 @@
     }
     deps = [
       "../api:libjingle_peerconnection_api",
-      "../api:video_frame_api_i420",
+      "../api/video:video_frame_i420",
       "../rtc_base:checks",
       "../rtc_base:stringutils",
     ]
@@ -667,9 +667,9 @@
     deps += [
       "../api:libjingle_peerconnection_api",
       "../api:libjingle_peerconnection_test_api",
-      "../api:video_frame_api",
       "../api/audio_codecs:builtin_audio_decoder_factory",
       "../api/audio_codecs:builtin_audio_encoder_factory",
+      "../api/video:video_frame",
       "../api/video_codecs:builtin_video_decoder_factory",
       "../api/video_codecs:builtin_video_encoder_factory",
       "../media:rtc_audio_video",
@@ -803,9 +803,9 @@
     deps = [
       "../api:libjingle_peerconnection_api",
       "../api:libjingle_peerconnection_test_api",
-      "../api:video_frame_api",
       "../api/audio_codecs:builtin_audio_decoder_factory",
       "../api/audio_codecs:builtin_audio_encoder_factory",
+      "../api/video:video_frame",
       "../media:rtc_audio_video",
       "../media:rtc_internal_video_codecs",
       "../media:rtc_media",
diff --git a/examples/unityplugin/video_observer.h b/examples/unityplugin/video_observer.h
index ec98c86..84c03d3 100644
--- a/examples/unityplugin/video_observer.h
+++ b/examples/unityplugin/video_observer.h
@@ -14,7 +14,7 @@
 #include <mutex>
 
 #include "api/mediastreaminterface.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "examples/unityplugin/unity_plugin_apis.h"
 
 class VideoObserver : public rtc::VideoSinkInterface<webrtc::VideoFrame> {
diff --git a/media/BUILD.gn b/media/BUILD.gn
index 4d71132..2808191 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -121,9 +121,9 @@
     "..:webrtc_common",
     "../api:libjingle_peerconnection_api",
     "../api:optional",
-    "../api:video_frame_api",
-    "../api:video_frame_api_i420",
     "../api/audio_codecs:audio_codecs_api",
+    "../api/video:video_frame",
+    "../api/video:video_frame_i420",
     "../api/video_codecs:video_codecs_api",
     "../call:call_interfaces",
     "../call:video_stream_api",
@@ -206,7 +206,7 @@
     ":rtc_media_base",
     ":rtc_software_fallback_wrappers",
     "..:webrtc_common",
-    "../api:video_frame_api_i420",
+    "../api/video:video_frame_i420",
     "../api/video_codecs:video_codecs_api",
     "../call:call_interfaces",
     "../call:video_stream_api",
@@ -347,9 +347,9 @@
     "../api:libjingle_peerconnection_api",
     "../api:optional",
     "../api:transport_api",
-    "../api:video_frame_api",
-    "../api:video_frame_api_i420",
     "../api/audio_codecs:audio_codecs_api",
+    "../api/video:video_frame",
+    "../api/video:video_frame_i420",
     "../api/video_codecs:video_codecs_api",
     "../call",
     "../call:call_interfaces",
@@ -452,7 +452,7 @@
     deps = [
       ":rtc_audio_video",
       "../api:libjingle_peerconnection_api",
-      "../api:video_frame_api_i420",
+      "../api/video:video_frame_i420",
       "../call:video_stream_api",
       "../common_video:common_video",
       "../modules/audio_coding:rent_a_codec",
@@ -499,7 +499,7 @@
       ":rtc_media_base",
       "..:webrtc_common",
       "../api:call_api",
-      "../api:video_frame_api",
+      "../api/video:video_frame",
       "../api/video_codecs:video_codecs_api",
       "../call:call_interfaces",
       "../call:mock_rtp_interfaces",
@@ -558,7 +558,7 @@
       ":rtc_audio_video",
       ":rtc_constants",
       ":rtc_data",
-      "../api:video_frame_api_i420",
+      "../api/video:video_frame_i420",
       "../modules/audio_processing:mocks",
       "../modules/video_coding:video_codec_interface",
       "../pc:rtc_pc",
@@ -651,9 +651,9 @@
       ":rtc_software_fallback_wrappers",
       "../api:libjingle_peerconnection_api",
       "../api:mock_video_codec_factory",
-      "../api:video_frame_api",
       "../api/audio_codecs:builtin_audio_decoder_factory",
       "../api/audio_codecs:builtin_audio_encoder_factory",
+      "../api/video:video_frame",
       "../api/video_codecs:video_codecs_api",
       "../audio",
       "../call:call_interfaces",
diff --git a/media/base/fakevideorenderer.h b/media/base/fakevideorenderer.h
index fa9aff7..a7c532a 100644
--- a/media/base/fakevideorenderer.h
+++ b/media/base/fakevideorenderer.h
@@ -12,7 +12,7 @@
 #define MEDIA_BASE_FAKEVIDEORENDERER_H_
 
 #include "api/video/video_frame.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/logging.h"
 
diff --git a/media/base/mediachannel.h b/media/base/mediachannel.h
index 57cbb3e..e504230 100644
--- a/media/base/mediachannel.h
+++ b/media/base/mediachannel.h
@@ -25,7 +25,7 @@
 #include "api/rtpreceiverinterface.h"
 #include "api/video/video_content_type.h"
 #include "api/video/video_timing.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "api/videosourceinterface.h"
 #include "call/video_config.h"
 #include "media/base/codec.h"
diff --git a/media/base/videobroadcaster.h b/media/base/videobroadcaster.h
index 078368e..119769d 100644
--- a/media/base/videobroadcaster.h
+++ b/media/base/videobroadcaster.h
@@ -16,7 +16,7 @@
 #include <vector>
 
 #include "api/video/video_frame.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "media/base/videosourcebase.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/thread_checker.h"
diff --git a/media/engine/webrtcvideoengine.h b/media/engine/webrtcvideoengine.h
index e17da3d..15ff4ef 100644
--- a/media/engine/webrtcvideoengine.h
+++ b/media/engine/webrtcvideoengine.h
@@ -21,7 +21,7 @@
 #include "api/optional.h"
 #include "api/video/video_frame.h"
 #include "api/video_codecs/sdp_video_format.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "api/videosourceinterface.h"
 #include "call/call.h"
 #include "call/flexfec_receive_stream.h"
diff --git a/modules/BUILD.gn b/modules/BUILD.gn
index 0182584..7a50406 100644
--- a/modules/BUILD.gn
+++ b/modules/BUILD.gn
@@ -54,9 +54,9 @@
     "../:typedefs",
     "../api:libjingle_peerconnection_api",
     "../api:optional",
-    "../api:video_frame_api",
-    "../api:video_frame_api_i420",
     "../api/transport:network_control",
+    "../api/video:video_frame",
+    "../api/video:video_frame_i420",
     "../rtc_base:deprecation",
     "../rtc_base:rtc_base_approved",
     "video_coding:codec_globals_headers",
diff --git a/modules/rtp_rtcp/BUILD.gn b/modules/rtp_rtcp/BUILD.gn
index 24cb05e..7f9fed9 100644
--- a/modules/rtp_rtcp/BUILD.gn
+++ b/modules/rtp_rtcp/BUILD.gn
@@ -87,8 +87,8 @@
     "../../api:array_view",
     "../../api:libjingle_peerconnection_api",
     "../../api:optional",
-    "../../api:video_frame_api",
     "../../api/audio_codecs:audio_codecs_api",
+    "../../api/video:video_frame",
     "../../common_video",
     "../../rtc_base:checks",
     "../../rtc_base:deprecation",
@@ -405,7 +405,7 @@
       "../../api:libjingle_peerconnection_api",
       "../../api:optional",
       "../../api:transport_api",
-      "../../api:video_frame_api",
+      "../../api/video:video_frame",
       "../../call:rtp_receiver",
       "../../common_video:common_video",
       "../../logging:mocks",
diff --git a/modules/video_capture/BUILD.gn b/modules/video_capture/BUILD.gn
index 96d5173..ae65554 100644
--- a/modules/video_capture/BUILD.gn
+++ b/modules/video_capture/BUILD.gn
@@ -31,8 +31,8 @@
     "../..:webrtc_common",
     "../../:typedefs",
     "../../api:libjingle_peerconnection_api",
-    "../../api:video_frame_api",
-    "../../api:video_frame_api_i420",
+    "../../api/video:video_frame",
+    "../../api/video:video_frame_i420",
     "../../common_video",
     "../../media:rtc_media_base",
     "../../rtc_base:rtc_base_approved",
@@ -231,8 +231,8 @@
       deps = [
         ":video_capture_internal_impl",
         ":video_capture_module",
-        "../../api:video_frame_api",
-        "../../api:video_frame_api_i420",
+        "../../api/video:video_frame",
+        "../../api/video:video_frame_i420",
         "../../common_video:common_video",
         "../../rtc_base:rtc_base_approved",
         "../../system_wrappers:system_wrappers",
diff --git a/modules/video_capture/video_capture.h b/modules/video_capture/video_capture.h
index 28340a5..fb3a461 100644
--- a/modules/video_capture/video_capture.h
+++ b/modules/video_capture/video_capture.h
@@ -12,7 +12,7 @@
 #define MODULES_VIDEO_CAPTURE_VIDEO_CAPTURE_H_
 
 #include "api/video/video_rotation.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "modules/include/module.h"
 #include "modules/video_capture/video_capture_defines.h"
 
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index bd06f3f..bcdd9b1 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -18,7 +18,7 @@
     ":video_codec_interface",
     "../../:webrtc_common",
     "../../api:optional",
-    "../../api:video_frame_api_i420",
+    "../../api/video:video_frame_i420",
     "../../common_video:common_video",
     "../../modules:module_api",
     "../../modules:module_api_public",
@@ -139,11 +139,11 @@
     "..:module_api_public",
     "../..:webrtc_common",
     "../../:typedefs",
-    "../../api:encoded_frame_api",
     "../../api:fec_controller_api",
     "../../api:optional",
-    "../../api:video_frame_api",
-    "../../api:video_frame_api_i420",
+    "../../api/video:encoded_frame",
+    "../../api/video:video_frame",
+    "../../api/video:video_frame_i420",
     "../../api/video_codecs:video_codecs_api",
     "../../call:video_stream_api",
     "../../common_video",
@@ -176,7 +176,7 @@
     "..:module_api",
     "../..:typedefs",
     "../..:webrtc_common",
-    "../../api:video_frame_api",
+    "../../api/video:video_frame",
     "../../api/video_codecs:video_codecs_api",
     "../../common_video:common_video",
   ]
@@ -265,7 +265,7 @@
   deps = [
     ":video_codec_interface",
     ":video_coding_utility",
-    "../../api:video_frame_api_i420",
+    "../../api/video:video_frame_i420",
     "../../api/video_codecs:video_codecs_api",
     "../../media:rtc_h264_profile_id",
     "../../media:rtc_media_base",
@@ -319,7 +319,7 @@
     ":video_coding_utility",
     "../..:webrtc_common",
     "../../:typedefs",
-    "../../api:video_frame_api_i420",
+    "../../api/video:video_frame_i420",
     "../../common_video:common_video",
     "../../rtc_base:checks",
     "../../rtc_base:rtc_base_approved",
@@ -348,8 +348,8 @@
     ":video_coding_utility",
     "..:module_api",
     "../..:webrtc_common",
-    "../../api:video_frame_api",
-    "../../api:video_frame_api_i420",
+    "../../api/video:video_frame",
+    "../../api/video:video_frame_i420",
     "../../api/video_codecs:video_codecs_api",
     "../../common_video:common_video",
     "../../rtc_base:rtc_base",
@@ -389,7 +389,7 @@
     "../..:webrtc_common",
     "../../:typedefs",
     "../../api:optional",
-    "../../api:video_frame_api",
+    "../../api/video:video_frame",
     "../../api/video_codecs:video_codecs_api",
     "../../common_video",
     "../../rtc_base:checks",
@@ -431,7 +431,7 @@
     "../..:webrtc_common",
     "../../:typedefs",
     "../../api:optional",
-    "../../api:video_frame_api",
+    "../../api/video:video_frame",
     "../../api/video_codecs:video_codecs_api",
     "../../common_video",
     "../../rtc_base:checks",
@@ -540,7 +540,7 @@
       ]
 
       deps = [
-        "../../api:video_frame_api",
+        "../../api/video:video_frame",
         "../../api/video_codecs:video_codecs_api",
         "../../media:rtc_audio_video",
         "../../media:rtc_media_base",
@@ -577,8 +577,8 @@
       ":video_codec_interface",
       ":video_coding",
       ":webrtc_vp8_helpers",
-      "../../api:video_frame_api",
-      "../../api:video_frame_api_i420",
+      "../../api/video:video_frame",
+      "../../api/video:video_frame_i420",
       "../../common_video:common_video",
       "../../rtc_base:checks",
       "../../rtc_base:rtc_base_approved",
@@ -613,8 +613,8 @@
       ":webrtc_vp9_helpers",
       "../..:webrtc_common",
       "../../:typedefs",
-      "../../api:video_frame_api",
-      "../../api:video_frame_api_i420",
+      "../../api/video:video_frame",
+      "../../api/video:video_frame_i420",
       "../../api/video_codecs:video_codecs_api",
       "../../common_video:common_video",
       "../../media:rtc_audio_video",
@@ -734,8 +734,8 @@
       "../../api:create_videocodec_test_fixture_api",
       "../../api:mock_video_codec_factory",
       "../../api:optional",
-      "../../api:video_frame_api_i420",
       "../../api:videocodec_test_fixture_api",
+      "../../api/video:video_frame_i420",
       "../../api/video_codecs:video_codecs_api",
       "../../common_video",
       "../../media:rtc_h264_profile_id",
@@ -839,8 +839,8 @@
       "..:module_api",
       "../..:webrtc_common",
       "../../:typedefs",
-      "../../api:video_frame_api",
-      "../../api:video_frame_api_i420",
+      "../../api/video:video_frame",
+      "../../api/video:video_frame_i420",
       "../../api/video_codecs:video_codecs_api",
       "../../common_video:common_video",
       "../../media:rtc_media_base",
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 7eee652..15e050b 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -73,7 +73,7 @@
     "../api:libjingle_peerconnection_api",
     "../api:optional",
     "../api:ortc_api",
-    "../api:video_frame_api",
+    "../api/video:video_frame",
     "../call:rtp_interfaces",
     "../call:rtp_receiver",
     "../common_video:common_video",
@@ -195,7 +195,7 @@
     "../api:libjingle_peerconnection_api",
     "../api:optional",
     "../api:rtc_stats_api",
-    "../api:video_frame_api",
+    "../api/video:video_frame",
     "../api/video_codecs:video_codecs_api",
     "../call:call_interfaces",
     "../common_video:common_video",
diff --git a/pc/channel.h b/pc/channel.h
index 50356fa..86f9aa6 100644
--- a/pc/channel.h
+++ b/pc/channel.h
@@ -21,7 +21,7 @@
 #include "api/call/audio_sink.h"
 #include "api/jsep.h"
 #include "api/rtpreceiverinterface.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "api/videosourceinterface.h"
 #include "call/rtp_packet_sink_interface.h"
 #include "media/base/mediachannel.h"
diff --git a/pc/videotracksource.h b/pc/videotracksource.h
index d4731d0..7f81a7b 100644
--- a/pc/videotracksource.h
+++ b/pc/videotracksource.h
@@ -13,7 +13,7 @@
 
 #include "api/mediastreaminterface.h"
 #include "api/notifier.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "media/base/mediachannel.h"
 #include "rtc_base/thread_checker.h"
 
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 7e3dcfb..eea2090 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -134,8 +134,8 @@
         ":native_video",
         ":videoframebuffer_objc",
         "../api:libjingle_peerconnection_api",
-        "../api:video_frame_api",
-        "../api:video_frame_api_i420",
+        "../api/video:video_frame",
+        "../api/video:video_frame_i420",
         "../common_video",
         "../media:rtc_media_base",
         "../rtc_base:checks",
@@ -162,8 +162,8 @@
       ]
       deps = [
         ":common_objc",
-        "//api:video_frame_api",
-        "//api:video_frame_api_i420",
+        "//api/video:video_frame",
+        "//api/video:video_frame_i420",
         "//common_video",
         "//rtc_base:checks",
         "//rtc_base:rtc_base_approved",
@@ -212,7 +212,7 @@
         ":videosource_objc",
         "../api:libjingle_peerconnection_api",
         "../api:optional",
-        "../api:video_frame_api",
+        "../api/video:video_frame",
         "../common_video",
         "../media:rtc_media_base",
         "../rtc_base:checks",
@@ -297,7 +297,7 @@
           ":video_objc",
           ":videoframebuffer_objc",
           ":videorenderer_objc",
-          "../api:video_frame_api",
+          "../api/video:video_frame",
           "../rtc_base:checks",
           "../rtc_base:rtc_base_approved",
         ]
@@ -677,8 +677,8 @@
         ":videorendereradapter_objc",
         ":videosource_objc",
         "../api:libjingle_peerconnection_api",
-        "../api:video_frame_api",
         "../api/audio_codecs:builtin_audio_decoder_factory",
+        "../api/video:video_frame",
         "../api/video_codecs:video_codecs_api",
         "../common_video",
         "../media:rtc_media_base",
@@ -720,7 +720,7 @@
             ":videosource_objc",
             ":videotoolbox_objc",
             "../../system_wrappers:system_wrappers_default",
-            "../api:video_frame_api_i420",
+            "../api/video:video_frame_i420",
             "../common_video:common_video",
             "../media:rtc_media_base",
             "../media:rtc_media_tests_utils",
@@ -1023,7 +1023,7 @@
         ":videoframebuffer_objc",
         ":videorenderer_objc",
         "../api:libjingle_peerconnection_api",
-        "../api:video_frame_api",
+        "../api/video:video_frame",
         "../api/video_codecs:video_codecs_api",
         "../common_video",
         "../rtc_base:rtc_base",
@@ -1063,8 +1063,8 @@
         ":videoframebuffer_objc",
         ":videorenderer_objc",
         ":wrapped_native_codec_objc",
-        "../api:video_frame_api",
-        "../api:video_frame_api_i420",
+        "../api/video:video_frame",
+        "../api/video:video_frame_i420",
         "../api/video_codecs:video_codecs_api",
         "../common_video",
         "../media:rtc_audio_video",
@@ -1119,7 +1119,7 @@
         ":videocodec_objc",
         ":videoframebuffer_objc",
         ":videosource_objc",
-        "../api:video_frame_api",
+        "../api/video:video_frame",
         "../api/video_codecs:video_codecs_api",
         "../common_video",
         "../media:rtc_audio_video",
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index 0bdccd6..7035286 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -373,7 +373,7 @@
     ":native_api_jni",
     "../..:webrtc_common",
     "../../api:libjingle_peerconnection_api",
-    "../../api:video_frame_api",
+    "../../api/video:video_frame",
     "../../api/video_codecs:video_codecs_api",
     "../../common_video:common_video",
     "../../media:rtc_audio_video",
@@ -1232,7 +1232,7 @@
     ":native_api_jni",
     ":video_jni",
     "//api:libjingle_peerconnection_api",
-    "//api:video_frame_api",
+    "//api/video:video_frame",
     "//rtc_base:rtc_base_approved",
   ]
 }
diff --git a/sdk/android/src/jni/video_renderer.cc b/sdk/android/src/jni/video_renderer.cc
index 0271bd1..889012a 100644
--- a/sdk/android/src/jni/video_renderer.cc
+++ b/sdk/android/src/jni/video_renderer.cc
@@ -11,7 +11,7 @@
 #include <jni.h>
 
 #include "api/video/video_frame.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "sdk/android/generated_video_jni/jni/VideoRenderer_jni.h"
 #include "sdk/android/src/jni/jni_helpers.h"
 #include "sdk/android/src/jni/videoframe.h"
diff --git a/sdk/objc/Framework/Native/api/video_renderer.h b/sdk/objc/Framework/Native/api/video_renderer.h
index 712a3de..ffba02b 100644
--- a/sdk/objc/Framework/Native/api/video_renderer.h
+++ b/sdk/objc/Framework/Native/api/video_renderer.h
@@ -16,7 +16,7 @@
 #include <memory>
 
 #include "api/video/video_frame.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 
 namespace webrtc {
 
diff --git a/sdk/objc/Framework/Native/src/objc_video_renderer.h b/sdk/objc/Framework/Native/src/objc_video_renderer.h
index a71f6fd..9b7c9b0 100644
--- a/sdk/objc/Framework/Native/src/objc_video_renderer.h
+++ b/sdk/objc/Framework/Native/src/objc_video_renderer.h
@@ -15,7 +15,7 @@
 #import <Foundation/Foundation.h>
 
 #include "api/video/video_frame.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 
 @protocol RTCVideoRenderer;
 
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 54e2097..c62d349 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -64,8 +64,8 @@
     "../:typedefs",
     "../api:libjingle_peerconnection_api",
     "../api:optional",
-    "../api:video_frame_api",
-    "../api:video_frame_api_i420",
+    "../api/video:video_frame",
+    "../api/video:video_frame_i420",
     "../api/video_codecs:video_codecs_api",
     "../call:video_stream_api",
     "../common_video",
@@ -241,8 +241,8 @@
       ":video_test_common",
       "..:webrtc_common",
       "../:typedefs",
-      "../api:video_frame_api",
-      "../api:video_frame_api_i420",
+      "../api/video:video_frame",
+      "../api/video:video_frame_i420",
       "../common_video",
       "../rtc_base:checks",
       "../rtc_base:rtc_base_approved",
@@ -319,7 +319,7 @@
       ":test_support_test_artifacts",
       ":video_test_common",
       ":video_test_support",
-      "../api:video_frame_api_i420",
+      "../api/video:video_frame_i420",
       "../modules/rtp_rtcp:rtp_rtcp",
       "../rtc_base:rtc_base_approved",
       "../test:single_threaded_task_queue",
@@ -553,10 +553,10 @@
     "../:typedefs",
     "../api:libjingle_peerconnection_api",
     "../api:transport_api",
-    "../api:video_frame_api",
-    "../api:video_frame_api_i420",
     "../api/audio_codecs:builtin_audio_decoder_factory",
     "../api/audio_codecs:builtin_audio_encoder_factory",
+    "../api/video:video_frame",
+    "../api/video:video_frame_i420",
     "../api/video_codecs:video_codecs_api",
     "../audio",
     "../call",
@@ -660,7 +660,7 @@
     ":test_support",
     "..:webrtc_common",
     "../:typedefs",
-    "../api:video_frame_api",
+    "../api/video:video_frame",
     "../common_video",
     "../media:rtc_media_base",
     "../rtc_base:checks",
diff --git a/test/fake_videorenderer.h b/test/fake_videorenderer.h
index 89a5ceb..a2c953f 100644
--- a/test/fake_videorenderer.h
+++ b/test/fake_videorenderer.h
@@ -12,7 +12,7 @@
 #define TEST_FAKE_VIDEORENDERER_H_
 
 #include "api/video/video_frame.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 
 namespace webrtc {
 namespace test {
diff --git a/test/video_renderer.h b/test/video_renderer.h
index ffdb907..17815c1 100644
--- a/test/video_renderer.h
+++ b/test/video_renderer.h
@@ -12,7 +12,7 @@
 
 #include <stddef.h>
 
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 
 namespace webrtc {
 class VideoFrame;
diff --git a/video/BUILD.gn b/video/BUILD.gn
index c4e66c3..25ec808 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -62,8 +62,8 @@
     "../api:libjingle_peerconnection_api",
     "../api:optional",
     "../api:transport_api",
-    "../api:video_frame_api",
-    "../api:video_frame_api_i420",
+    "../api/video:video_frame",
+    "../api/video:video_frame_i420",
     "../api/video_codecs:video_codecs_api",
     "../call:bitrate_allocator",
     "../call:call_interfaces",
@@ -116,10 +116,10 @@
   ]
 
   deps = [
-    "../api:encoded_frame_api",
     "../api:optional",
-    "../api:video_frame_api",
-    "../api:video_stream_decoder",
+    "../api/video:encoded_frame",
+    "../api/video:video_frame",
+    "../api/video:video_stream_decoder",
     "../api/video_codecs:video_codecs_api",
     "../modules/video_coding:video_coding",
     "../rtc_base:rtc_base_approved",
@@ -358,8 +358,8 @@
       ":video",
       ":video_mocks",
       "../api:optional",
-      "../api:video_frame_api",
-      "../api:video_frame_api_i420",
+      "../api/video:video_frame",
+      "../api/video:video_frame_i420",
       "../api/video_codecs:video_codecs_api",
       "../call:call_interfaces",
       "../call:mock_bitrate_allocator",
diff --git a/video/video_stream_decoder.h b/video/video_stream_decoder.h
index 7a43525..c542d8b 100644
--- a/video/video_stream_decoder.h
+++ b/video/video_stream_decoder.h
@@ -16,7 +16,7 @@
 #include <memory>
 #include <vector>
 
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
 #include "modules/video_coding/include/video_coding_defines.h"
 #include "rtc_base/criticalsection.h"
diff --git a/video/video_stream_encoder.h b/video/video_stream_encoder.h
index 34cfc95..2feee27 100644
--- a/video/video_stream_encoder.h
+++ b/video/video_stream_encoder.h
@@ -19,7 +19,7 @@
 
 #include "api/video/video_rotation.h"
 #include "api/video_codecs/video_encoder.h"
-#include "api/videosinkinterface.h"
+#include "api/video/video_sink_interface.h"
 #include "call/call.h"
 #include "common_types.h"  // NOLINT(build/include)
 #include "common_video/include/video_bitrate_allocator.h"