Delete VideoRendererInterface.

Use in chromium was deleted a few days ago.

BUG=webrtc:5426
R=magjed@webrtc.org, pbos@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org

Review URL: https://codereview.webrtc.org/1817473002 .

Cr-Commit-Position: refs/heads/master@{#12099}
diff --git a/webrtc/api/java/android/org/webrtc/SurfaceViewRenderer.java b/webrtc/api/java/android/org/webrtc/SurfaceViewRenderer.java
index dbd6208..e20f67d 100644
--- a/webrtc/api/java/android/org/webrtc/SurfaceViewRenderer.java
+++ b/webrtc/api/java/android/org/webrtc/SurfaceViewRenderer.java
@@ -31,7 +31,7 @@
  * renderFrame() is asynchronous to avoid blocking the calling thread.
  * This class is thread safe and handles access from potentially four different threads:
  * Interaction from the main app in init, release, setMirror, and setScalingtype.
- * Interaction from C++ webrtc::VideoRendererInterface in renderFrame and canApplyRotation.
+ * Interaction from C++ rtc::VideoSinkInterface in renderFrame.
  * Interaction from the Activity lifecycle in surfaceCreated, surfaceChanged, and surfaceDestroyed.
  * Interaction with the layout framework in onMeasure and onSizeChanged.
  */
diff --git a/webrtc/api/java/jni/peerconnection_jni.cc b/webrtc/api/java/jni/peerconnection_jni.cc
index 5a323cd..e93fe19 100644
--- a/webrtc/api/java/jni/peerconnection_jni.cc
+++ b/webrtc/api/java/jni/peerconnection_jni.cc
@@ -106,7 +106,6 @@
 using webrtc::StatsObserver;
 using webrtc::StatsReport;
 using webrtc::StatsReports;
-using webrtc::VideoRendererInterface;
 using webrtc::VideoTrackSourceInterface;
 using webrtc::VideoTrackInterface;
 using webrtc::VideoTrackVector;
@@ -731,32 +730,10 @@
   const jmethodID j_value_ctor_;
 };
 
-// Adapter presenting a cricket::VideoRenderer as a
-// webrtc::VideoRendererInterface.
-class VideoRendererWrapper : public VideoRendererInterface {
- public:
-  static VideoRendererWrapper* Create(cricket::VideoRenderer* renderer) {
-    if (renderer)
-      return new VideoRendererWrapper(renderer);
-    return NULL;
-  }
-
-  virtual ~VideoRendererWrapper() {}
-
-  void RenderFrame(const cricket::VideoFrame* video_frame) override {
-    ScopedLocalRefFrame local_ref_frame(AttachCurrentThreadIfNeeded());
-    renderer_->RenderFrame(video_frame->GetCopyWithRotationApplied());
-  }
-
- private:
-  explicit VideoRendererWrapper(cricket::VideoRenderer* renderer)
-      : renderer_(renderer) {}
-  scoped_ptr<cricket::VideoRenderer> renderer_;
-};
-
-// Wrapper dispatching webrtc::VideoRendererInterface to a Java VideoRenderer
+// Wrapper dispatching rtc::VideoSinkInterface to a Java VideoRenderer
 // instance.
-class JavaVideoRendererWrapper : public VideoRendererInterface {
+class JavaVideoRendererWrapper
+    : public rtc::VideoSinkInterface<cricket::VideoFrame> {
  public:
   JavaVideoRendererWrapper(JNIEnv* jni, jobject j_callbacks)
       : j_callbacks_(jni, j_callbacks),
@@ -776,11 +753,11 @@
 
   virtual ~JavaVideoRendererWrapper() {}
 
-  void RenderFrame(const cricket::VideoFrame* video_frame) override {
+  void OnFrame(const cricket::VideoFrame& video_frame) override {
     ScopedLocalRefFrame local_ref_frame(jni());
-    jobject j_frame = (video_frame->GetNativeHandle() != nullptr)
-                          ? CricketToJavaTextureFrame(video_frame)
-                          : CricketToJavaI420Frame(video_frame);
+    jobject j_frame = (video_frame.GetNativeHandle() != nullptr)
+                          ? CricketToJavaTextureFrame(&video_frame)
+                          : CricketToJavaI420Frame(&video_frame);
     // |j_callbacks_| is responsible for releasing |j_frame| with
     // VideoRenderer.renderFrameDone().
     jni()->CallVoidMethod(*j_callbacks_, j_render_frame_id_, j_frame);
@@ -1997,15 +1974,20 @@
 JOW(void, VideoTrack_nativeAddRenderer)(
     JNIEnv* jni, jclass,
     jlong j_video_track_pointer, jlong j_renderer_pointer) {
-  reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)->AddRenderer(
-      reinterpret_cast<VideoRendererInterface*>(j_renderer_pointer));
+  reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)
+      ->AddOrUpdateSink(
+          reinterpret_cast<rtc::VideoSinkInterface<cricket::VideoFrame>*>(
+              j_renderer_pointer),
+          rtc::VideoSinkWants());
 }
 
 JOW(void, VideoTrack_nativeRemoveRenderer)(
     JNIEnv* jni, jclass,
     jlong j_video_track_pointer, jlong j_renderer_pointer) {
-  reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)->RemoveRenderer(
-      reinterpret_cast<VideoRendererInterface*>(j_renderer_pointer));
+  reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)
+      ->RemoveSink(
+          reinterpret_cast<rtc::VideoSinkInterface<cricket::VideoFrame>*>(
+              j_renderer_pointer));
 }
 
 JOW(jlong, CallSessionFileRotatingLogSink_nativeAddSink)(
diff --git a/webrtc/api/java/src/org/webrtc/VideoRenderer.java b/webrtc/api/java/src/org/webrtc/VideoRenderer.java
index e33a6ab..1b40b3a 100644
--- a/webrtc/api/java/src/org/webrtc/VideoRenderer.java
+++ b/webrtc/api/java/src/org/webrtc/VideoRenderer.java
@@ -13,7 +13,7 @@
 import java.nio.ByteBuffer;
 
 /**
- * Java version of VideoRendererInterface.  In addition to allowing clients to
+ * Java version of VideoSinkInterface.  In addition to allowing clients to
  * define their own rendering behavior (by passing in a Callbacks object), this
  * class also provides a createGui() method for creating a GUI-rendering window
  * on various platforms.
@@ -106,7 +106,7 @@
   public static native void nativeCopyPlane(ByteBuffer src, int width,
       int height, int srcStride, ByteBuffer dst, int dstStride);
 
-  /** The real meat of VideoRendererInterface. */
+  /** The real meat of VideoSinkInterface. */
   public static interface Callbacks {
     // |frame| might have pending rotation and implementation of Callbacks
     // should handle that by applying rotation during rendering. The callee
diff --git a/webrtc/api/mediastreaminterface.h b/webrtc/api/mediastreaminterface.h
index a1ab675..47460b4 100644
--- a/webrtc/api/mediastreaminterface.h
+++ b/webrtc/api/mediastreaminterface.h
@@ -99,26 +99,6 @@
   virtual ~MediaStreamTrackInterface() {}
 };
 
-// Interface for rendering VideoFrames from a VideoTrack
-class VideoRendererInterface
-    : public rtc::VideoSinkInterface<cricket::VideoFrame> {
- public:
-  // |frame| may have pending rotation. For clients which can't apply rotation,
-  // |frame|->GetCopyWithRotationApplied() will return a frame that has the
-  // rotation applied.
-  virtual void RenderFrame(const cricket::VideoFrame* frame) = 0;
-  // Intended to replace RenderFrame.
-  void OnFrame(const cricket::VideoFrame& frame) override {
-    RenderFrame(&frame);
-  }
-
- protected:
-  // The destructor is protected to prevent deletion via the interface.
-  // This is so that we allow reference counted classes, where the destructor
-  // should never be public, to implement the interface.
-  virtual ~VideoRendererInterface() {}
-};
-
 // VideoTrackSourceInterface is a reference counted source used for VideoTracks.
 // The same source can be used in multiple VideoTracks.
 class VideoTrackSourceInterface
@@ -157,16 +137,6 @@
     : public MediaStreamTrackInterface,
       public rtc::VideoSourceInterface<cricket::VideoFrame> {
  public:
-  // AddRenderer and RemoveRenderer are for backwards compatibility
-  // only. They are obsoleted by the methods of
-  // rtc::VideoSourceInterface.
-  virtual void AddRenderer(VideoRendererInterface* renderer) {
-    AddOrUpdateSink(renderer, rtc::VideoSinkWants());
-  }
-  virtual void RemoveRenderer(VideoRendererInterface* renderer) {
-    RemoveSink(renderer);
-  }
-
   // Register a video sink for this track.
   void AddOrUpdateSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink,
                        const rtc::VideoSinkWants& wants) override{};
diff --git a/webrtc/api/mediastreamtrackproxy.h b/webrtc/api/mediastreamtrackproxy.h
index 676ba70..7b059b1 100644
--- a/webrtc/api/mediastreamtrackproxy.h
+++ b/webrtc/api/mediastreamtrackproxy.h
@@ -46,8 +46,6 @@
   PROXY_METHOD1(bool, set_enabled, bool)
   PROXY_METHOD1(bool, set_state, TrackState)
 
-  PROXY_METHOD1(void, AddRenderer, VideoRendererInterface*)
-  PROXY_METHOD1(void, RemoveRenderer, VideoRendererInterface*)
   PROXY_METHOD2(void,
                 AddOrUpdateSink,
                 rtc::VideoSinkInterface<cricket::VideoFrame>*,
diff --git a/webrtc/api/objc/RTCVideoRendererAdapter+Private.h b/webrtc/api/objc/RTCVideoRendererAdapter+Private.h
index c181b9b..f0e0c6c 100644
--- a/webrtc/api/objc/RTCVideoRendererAdapter+Private.h
+++ b/webrtc/api/objc/RTCVideoRendererAdapter+Private.h
@@ -26,12 +26,12 @@
 @property(nonatomic, readonly) id<RTCVideoRenderer> videoRenderer;
 
 /**
- * The native VideoRendererInterface surface exposed by this adapter. Calls made
+ * The native VideoSinkInterface surface exposed by this adapter. Calls made
  * to this interface will be adapted and passed to the RTCVideoRenderer supplied
  * during construction. This pointer is unsafe and owned by this class.
  */
 @property(nonatomic, readonly)
-    webrtc::VideoRendererInterface *nativeVideoRenderer;
+    rtc::VideoSinkInterface<cricket::VideoFrame> *nativeVideoRenderer;
 
 /** Initialize an RTCVideoRendererAdapter with an RTCVideoRenderer. */
 - (instancetype)initWithNativeRenderer:(id<RTCVideoRenderer>)videoRenderer
diff --git a/webrtc/api/objc/RTCVideoRendererAdapter.h b/webrtc/api/objc/RTCVideoRendererAdapter.h
index 434a61b..b0b6f04 100644
--- a/webrtc/api/objc/RTCVideoRendererAdapter.h
+++ b/webrtc/api/objc/RTCVideoRendererAdapter.h
@@ -13,8 +13,8 @@
 NS_ASSUME_NONNULL_BEGIN
 
 /*
- * Creates a webrtc::VideoRendererInterface surface for an RTCVideoRenderer. The
- * webrtc::VideoRendererInterface is used by WebRTC rendering code - this
+ * Creates a rtc::VideoSinkInterface surface for an RTCVideoRenderer. The
+ * rtc::VideoSinkInterface is used by WebRTC rendering code - this
  * adapter adapts calls made to that interface to the RTCVideoRenderer supplied
  * during construction.
  */
diff --git a/webrtc/api/objc/RTCVideoRendererAdapter.mm b/webrtc/api/objc/RTCVideoRendererAdapter.mm
index fdaba68..c4f1ed8 100644
--- a/webrtc/api/objc/RTCVideoRendererAdapter.mm
+++ b/webrtc/api/objc/RTCVideoRendererAdapter.mm
@@ -15,16 +15,17 @@
 
 namespace webrtc {
 
-class VideoRendererAdapter : public VideoRendererInterface {
+class VideoRendererAdapter
+    : public rtc::VideoSinkInterface<cricket::VideoFrame> {
  public:
   VideoRendererAdapter(RTCVideoRendererAdapter* adapter) {
     adapter_ = adapter;
     size_ = CGSizeZero;
   }
 
-  void RenderFrame(const cricket::VideoFrame *nativeVideoFrame) override {
+  void OnFrame(const cricket::VideoFrame& nativeVideoFrame) override {
     const cricket::VideoFrame *frame =
-        nativeVideoFrame->GetCopyWithRotationApplied();
+        nativeVideoFrame.GetCopyWithRotationApplied();
     CGSize current_size = CGSizeMake(frame->GetWidth(), frame->GetHeight());
     if (!CGSizeEqualToSize(size_, current_size)) {
       size_ = current_size;
@@ -56,7 +57,7 @@
   return self;
 }
 
-- (webrtc::VideoRendererInterface *)nativeVideoRenderer {
+- (rtc::VideoSinkInterface<cricket::VideoFrame> *)nativeVideoRenderer {
   return _adapter.get();
 }
 
diff --git a/webrtc/api/objc/RTCVideoTrack.mm b/webrtc/api/objc/RTCVideoTrack.mm
index 5834af7..a32ea7b 100644
--- a/webrtc/api/objc/RTCVideoTrack.mm
+++ b/webrtc/api/objc/RTCVideoTrack.mm
@@ -52,7 +52,7 @@
 
 - (void)dealloc {
   for (RTCVideoRendererAdapter *adapter in _adapters) {
-    self.nativeVideoTrack->RemoveRenderer(adapter.nativeVideoRenderer);
+    self.nativeVideoTrack->RemoveSink(adapter.nativeVideoRenderer);
   }
 }
 
@@ -79,7 +79,8 @@
   RTCVideoRendererAdapter* adapter =
       [[RTCVideoRendererAdapter alloc] initWithNativeRenderer:renderer];
   [_adapters addObject:adapter];
-  self.nativeVideoTrack->AddRenderer(adapter.nativeVideoRenderer);
+  self.nativeVideoTrack->AddOrUpdateSink(adapter.nativeVideoRenderer,
+                                         rtc::VideoSinkWants());
 }
 
 - (void)removeRenderer:(id<RTCVideoRenderer>)renderer {
@@ -97,7 +98,7 @@
   }
   RTCVideoRendererAdapter *adapterToRemove =
       [_adapters objectAtIndex:indexToRemove];
-  self.nativeVideoTrack->RemoveRenderer(adapterToRemove.nativeVideoRenderer);
+  self.nativeVideoTrack->RemoveSink(adapterToRemove.nativeVideoRenderer);
   [_adapters removeObjectAtIndex:indexToRemove];
 }
 
diff --git a/webrtc/api/test/fakevideotrackrenderer.h b/webrtc/api/test/fakevideotrackrenderer.h
index 312cf64..a1ce0f9 100644
--- a/webrtc/api/test/fakevideotrackrenderer.h
+++ b/webrtc/api/test/fakevideotrackrenderer.h
@@ -44,33 +44,6 @@
   rtc::scoped_refptr<VideoTrackInterface> video_track_;
 };
 
-// Similar class, testing the deprecated AddRenderer/RemoveRenderer methods.
-class FakeVideoTrackRendererOld : public VideoRendererInterface {
- public:
-  FakeVideoTrackRendererOld(VideoTrackInterface* video_track)
-      : video_track_(video_track) {
-    video_track_->AddRenderer(this);
-  }
-  ~FakeVideoTrackRendererOld() { video_track_->RemoveRenderer(this); }
-
-  virtual void RenderFrame(const cricket::VideoFrame* video_frame) override {
-    fake_renderer_.RenderFrame(video_frame);
-  }
-
-  int errors() const { return fake_renderer_.errors(); }
-  int width() const { return fake_renderer_.width(); }
-  int height() const { return fake_renderer_.height(); }
-  bool black_frame() const { return fake_renderer_.black_frame(); }
-
-  int num_rendered_frames() const {
-    return fake_renderer_.num_rendered_frames();
-  }
-
- private:
-  cricket::FakeVideoRenderer fake_renderer_;
-  rtc::scoped_refptr<VideoTrackInterface> video_track_;
-};
-
 }  // namespace webrtc
 
 #endif  // WEBRTC_API_TEST_FAKEVIDEOTRACKRENDERER_H_
diff --git a/webrtc/api/videotrack_unittest.cc b/webrtc/api/videotrack_unittest.cc
index 0df8679..d35bcdb 100644
--- a/webrtc/api/videotrack_unittest.cc
+++ b/webrtc/api/videotrack_unittest.cc
@@ -20,7 +20,6 @@
 #include "webrtc/media/engine/webrtcvideoframe.h"
 
 using webrtc::FakeVideoTrackRenderer;
-using webrtc::FakeVideoTrackRendererOld;
 using webrtc::MediaSourceInterface;
 using webrtc::MediaStreamTrackInterface;
 using webrtc::VideoTrackSource;
@@ -74,30 +73,6 @@
   EXPECT_EQ(2, renderer_2->num_rendered_frames());
 }
 
-// Test adding renderers to a video track and render to them by
-// providing frames to the source. Uses the old VideoTrack interface
-// with AddRenderer and RemoveRenderer.
-TEST_F(VideoTrackTest, RenderVideoOld) {
-  // FakeVideoTrackRenderer register itself to |video_track_|
-  rtc::scoped_ptr<FakeVideoTrackRendererOld> renderer_1(
-      new FakeVideoTrackRendererOld(video_track_.get()));
-
-  capturer_.CaptureFrame();
-  EXPECT_EQ(1, renderer_1->num_rendered_frames());
-
-  // FakeVideoTrackRenderer register itself to |video_track_|
-  rtc::scoped_ptr<FakeVideoTrackRenderer> renderer_2(
-      new FakeVideoTrackRenderer(video_track_.get()));
-
-  capturer_.CaptureFrame();
-  EXPECT_EQ(2, renderer_1->num_rendered_frames());
-  EXPECT_EQ(1, renderer_2->num_rendered_frames());
-
-  renderer_1.reset(nullptr);
-  capturer_.CaptureFrame();
-  EXPECT_EQ(2, renderer_2->num_rendered_frames());
-}
-
 // Test that disabling the track results in blacked out frames.
 TEST_F(VideoTrackTest, DisableTrackBlackout) {
   rtc::scoped_ptr<FakeVideoTrackRenderer> renderer(