Delete cricket::VideoRenderer.

TBR=glaznev@webrtc.org (deleting an #include in main_wnd.h)
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#12101}
diff --git a/webrtc/api/java/jni/peerconnection_jni.cc b/webrtc/api/java/jni/peerconnection_jni.cc
index e93fe19..1ff471b 100644
--- a/webrtc/api/java/jni/peerconnection_jni.cc
+++ b/webrtc/api/java/jni/peerconnection_jni.cc
@@ -66,7 +66,6 @@
 #include "webrtc/base/ssladapter.h"
 #include "webrtc/base/stringutils.h"
 #include "webrtc/media/base/videocapturer.h"
-#include "webrtc/media/base/videorenderer.h"
 #include "webrtc/media/devices/videorendererfactory.h"
 #include "webrtc/media/engine/webrtcvideodecoderfactory.h"
 #include "webrtc/media/engine/webrtcvideoencoderfactory.h"
diff --git a/webrtc/api/test/fakevideotrackrenderer.h b/webrtc/api/test/fakevideotrackrenderer.h
index a1ce0f9..3bd3d0b 100644
--- a/webrtc/api/test/fakevideotrackrenderer.h
+++ b/webrtc/api/test/fakevideotrackrenderer.h
@@ -26,7 +26,7 @@
   ~FakeVideoTrackRenderer() { video_track_->RemoveSink(this); }
 
   virtual void OnFrame(const cricket::VideoFrame& video_frame) override {
-    fake_renderer_.RenderFrame(&video_frame);
+    fake_renderer_.OnFrame(video_frame);
   }
 
   int errors() const { return fake_renderer_.errors(); }
diff --git a/webrtc/examples/peerconnection/client/main_wnd.h b/webrtc/examples/peerconnection/client/main_wnd.h
index 0e7f796..80db2a5 100644
--- a/webrtc/examples/peerconnection/client/main_wnd.h
+++ b/webrtc/examples/peerconnection/client/main_wnd.h
@@ -21,7 +21,6 @@
 #include "webrtc/media/base/mediachannel.h"
 #include "webrtc/media/base/videocommon.h"
 #include "webrtc/media/base/videoframe.h"
-#include "webrtc/media/base/videorenderer.h"
 
 class MainWndCallback {
  public:
diff --git a/webrtc/media/base/fakevideorenderer.h b/webrtc/media/base/fakevideorenderer.h
index 5cc1a59..00fbc40 100644
--- a/webrtc/media/base/fakevideorenderer.h
+++ b/webrtc/media/base/fakevideorenderer.h
@@ -14,12 +14,12 @@
 #include "webrtc/base/logging.h"
 #include "webrtc/base/sigslot.h"
 #include "webrtc/media/base/videoframe.h"
-#include "webrtc/media/base/videorenderer.h"
+#include "webrtc/media/base/videosinkinterface.h"
 
 namespace cricket {
 
 // Faked video renderer that has a callback for actions on rendering.
-class FakeVideoRenderer : public VideoRenderer {
+class FakeVideoRenderer : public rtc::VideoSinkInterface<cricket::VideoFrame> {
  public:
   FakeVideoRenderer()
       : errors_(0),
@@ -30,24 +30,18 @@
         num_rendered_frames_(0),
         black_frame_(false) {}
 
-  virtual bool RenderFrame(const VideoFrame* frame) {
+  virtual void OnFrame(const VideoFrame& frame) {
     rtc::CritScope cs(&crit_);
     // TODO(zhurunz) Check with VP8 team to see if we can remove this
     // tolerance on Y values.
-    black_frame_ = CheckFrameColorYuv(6, 48, 128, 128, 128, 128, frame);
+    black_frame_ = CheckFrameColorYuv(6, 48, 128, 128, 128, 128, &frame);
     // Treat unexpected frame size as error.
-    if (!frame) {
-      LOG(LS_WARNING) << "RenderFrame expected non-null frame.";
-      ++errors_;
-      return false;
-    }
     ++num_rendered_frames_;
-    width_ = static_cast<int>(frame->GetWidth());
-    height_ = static_cast<int>(frame->GetHeight());
-    rotation_ = frame->GetVideoRotation();
-    timestamp_ = frame->GetTimeStamp();
-    SignalRenderFrame(frame);
-    return true;
+    width_ = static_cast<int>(frame.GetWidth());
+    height_ = static_cast<int>(frame.GetHeight());
+    rotation_ = frame.GetVideoRotation();
+    timestamp_ = frame.GetTimeStamp();
+    SignalRenderFrame(&frame);
   }
 
   int errors() const { return errors_; }
diff --git a/webrtc/media/base/videorenderer.h b/webrtc/media/base/videorenderer.h
deleted file mode 100644
index 5e32873..0000000
--- a/webrtc/media/base/videorenderer.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *  Copyright (c) 2004 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_MEDIA_BASE_VIDEORENDERER_H_
-#define WEBRTC_MEDIA_BASE_VIDEORENDERER_H_
-
-#include "webrtc/media/base/videosinkinterface.h"
-
-namespace cricket {
-
-class VideoFrame;
-
-// Abstract interface for rendering VideoFrames.
-class VideoRenderer : public rtc::VideoSinkInterface<VideoFrame> {
- public:
-  virtual ~VideoRenderer() {}
-  // Called when a new frame is available for display.
-  virtual bool RenderFrame(const VideoFrame *frame) = 0;
-  // Intended to replace RenderFrame.
-  void OnFrame(const cricket::VideoFrame& frame) override {
-    // Unused return value
-    RenderFrame(&frame);
-  }
-};
-
-}  // namespace cricket
-
-#endif  // WEBRTC_MEDIA_BASE_VIDEORENDERER_H_
diff --git a/webrtc/media/devices/carbonvideorenderer.cc b/webrtc/media/devices/carbonvideorenderer.cc
index 95b808d..f753ca8 100644
--- a/webrtc/media/devices/carbonvideorenderer.cc
+++ b/webrtc/media/devices/carbonvideorenderer.cc
@@ -92,7 +92,7 @@
   return true;
 }
 
-bool CarbonVideoRenderer::SetSize(int width, int height, int reserved) {
+bool CarbonVideoRenderer::SetSize(int width, int height) {
   if (width != image_width_ || height != image_height_) {
     // Grab the image lock while changing its size.
     rtc::CritScope cs(&image_crit_);
@@ -104,10 +104,7 @@
   return true;
 }
 
-bool CarbonVideoRenderer::RenderFrame(const VideoFrame* video_frame) {
-  if (!video_frame) {
-    return false;
-  }
+void CarbonVideoRenderer::OnFrame(const VideoFrame& video_frame) {
   {
     const VideoFrame* frame = video_frame->GetCopyWithRotationApplied();
 
diff --git a/webrtc/media/devices/carbonvideorenderer.h b/webrtc/media/devices/carbonvideorenderer.h
index 0f801c2..e90c131 100644
--- a/webrtc/media/devices/carbonvideorenderer.h
+++ b/webrtc/media/devices/carbonvideorenderer.h
@@ -19,25 +19,24 @@
 #include <Carbon/Carbon.h>
 
 #include "webrtc/base/criticalsection.h"
-#include "webrtc/media/base/videorenderer.h"
+#include "webrtc/media/base/videosinkinterface.h"
 
 namespace cricket {
 
-class CarbonVideoRenderer : public VideoRenderer {
+class CarbonVideoRenderer
+    : public rtc::VideoSinkInterface<cricket::VideoFrame> {
  public:
   CarbonVideoRenderer(int x, int y);
   virtual ~CarbonVideoRenderer();
 
-  // Implementation of pure virtual methods of VideoRenderer.
-  // These two methods may be executed in different threads.
-  // SetSize is called before RenderFrame.
-  virtual bool SetSize(int width, int height, int reserved);
-  virtual bool RenderFrame(const VideoFrame* frame);
+  // Implementation of VideoSinkInterface.
+  void OnFrame(const VideoFrame& frame) override;
 
   // Needs to be called on the main thread.
   bool Initialize();
 
  private:
+  bool SetSize(int width, int height);
   bool DrawFrame();
 
   static OSStatus DrawEventHandler(EventHandlerCallRef handler,
diff --git a/webrtc/media/devices/gdivideorenderer.cc b/webrtc/media/devices/gdivideorenderer.cc
index 78cba3f..f9472e5 100644
--- a/webrtc/media/devices/gdivideorenderer.cc
+++ b/webrtc/media/devices/gdivideorenderer.cc
@@ -30,25 +30,27 @@
   VideoWindow(int x, int y, int width, int height);
   virtual ~VideoWindow();
 
-  // Called when the video size changes. If it is called the first time, we
-  // create and start the thread. Otherwise, we send kSetSizeMsg to the thread.
-  // Context: non-worker thread.
-  bool SetSize(int width, int height);
-
   // Called when a new frame is available. Upon this call, we send
   // kRenderFrameMsg to the window thread. Context: non-worker thread. It may be
   // better to pass RGB bytes to VideoWindow. However, we pass VideoFrame to put
   // all the thread synchronization within VideoWindow.
-  bool RenderFrame(const VideoFrame* frame);
+  void OnFrame(const VideoFrame& frame);
 
  protected:
   // Override virtual method of rtc::Win32Window. Context: worker Thread.
-  virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam,
-                         LRESULT& result);
+  bool OnMessage(UINT uMsg,
+                 WPARAM wParam,
+                 LPARAM lParam,
+                 LRESULT& result) override;
 
  private:
   enum { kSetSizeMsg = WM_USER, kRenderFrameMsg};
 
+  // Called when the video size changes. If it is called the first time, we
+  // create and start the thread. Otherwise, we send kSetSizeMsg to the thread.
+  // Context: non-worker thread.
+  bool SetSize(int width, int height);
+
   class WindowThread : public rtc::Thread {
    public:
     explicit WindowThread(VideoWindow* window) : window_(window) {}
@@ -128,20 +130,17 @@
   return true;
 }
 
-bool GdiVideoRenderer::VideoWindow::RenderFrame(const VideoFrame* video_frame) {
+void GdiVideoRenderer::VideoWindow::OnFrame(const VideoFrame& video_frame) {
   if (!handle()) {
-    return false;
+    return;
   }
 
-  const VideoFrame* frame = video_frame->GetCopyWithRotationApplied();
+  const VideoFrame* frame = video_frame.GetCopyWithRotationApplied();
 
-  if (!SetSize(static_cast<int>(frame->GetWidth()),
-               static_cast<int>(frame->GetHeight()))) {
-    return false;
+  if (SetSize(static_cast<int>(frame->GetWidth()),
+              static_cast<int>(frame->GetHeight()))) {
+    SendMessage(handle(), kRenderFrameMsg, reinterpret_cast<WPARAM>(frame), 0);
   }
-
-  SendMessage(handle(), kRenderFrameMsg, reinterpret_cast<WPARAM>(frame), 0);
-  return true;
 }
 
 bool GdiVideoRenderer::VideoWindow::OnMessage(UINT uMsg, WPARAM wParam,
@@ -243,18 +242,13 @@
 }
 GdiVideoRenderer::~GdiVideoRenderer() {}
 
-bool GdiVideoRenderer::SetSize(int width, int height, int reserved) {
-  if (!window_.get()) {  // Create the window for the first frame
-    window_.reset(new VideoWindow(initial_x_, initial_y_, width, height));
+void GdiVideoRenderer::OnFrame(const VideoFrame& frame) {
+  if (!window_.get()) { // Create the window for the first frame
+    window_.reset(new VideoWindow(initial_x_, initial_y_,
+                                  static_cast<int>(frame.GetWidth()),
+                                  static_cast<int>(frame.GetHeight())));
   }
-  return window_->SetSize(width, height);
-}
-
-bool GdiVideoRenderer::RenderFrame(const VideoFrame* frame) {
-  if (!frame || !window_.get()) {
-    return false;
-  }
-  return window_->RenderFrame(frame);
+  window_->OnFrame(frame);
 }
 
 }  // namespace cricket
diff --git a/webrtc/media/devices/gdivideorenderer.h b/webrtc/media/devices/gdivideorenderer.h
index 140e523..c88ebd7 100644
--- a/webrtc/media/devices/gdivideorenderer.h
+++ b/webrtc/media/devices/gdivideorenderer.h
@@ -18,20 +18,19 @@
 
 #include <memory>
 
-#include "webrtc/media/base/videorenderer.h"
+#include "webrtc/media/base/videosinkinterface.h"
 
 namespace cricket {
 
-class GdiVideoRenderer : public VideoRenderer {
+class VideoFrame;
+
+class GdiVideoRenderer : public rtc::VideoSinkInterface<cricket::VideoFrame> {
  public:
   GdiVideoRenderer(int x, int y);
   virtual ~GdiVideoRenderer();
 
-  // Implementation of pure virtual methods of VideoRenderer.
-  // These two methods may be executed in different threads.
-  // SetSize is called before RenderFrame.
-  virtual bool SetSize(int width, int height, int reserved);
-  virtual bool RenderFrame(const VideoFrame* frame);
+  // Implementation of VideoSinkInterface
+  void OnFrame(const VideoFrame& frame) override;
 
  private:
   class VideoWindow;  // forward declaration, defined in the .cc file
diff --git a/webrtc/media/devices/gtkvideorenderer.cc b/webrtc/media/devices/gtkvideorenderer.cc
index ec98776..d4077c2 100644
--- a/webrtc/media/devices/gtkvideorenderer.cc
+++ b/webrtc/media/devices/gtkvideorenderer.cc
@@ -59,7 +59,7 @@
   // implicitly destroyed by the above.
 }
 
-bool GtkVideoRenderer::SetSize(int width, int height, int reserved) {
+bool GtkVideoRenderer::SetSize(int width, int height) {
   ScopedGdkLock lock;
 
   // If the dimension is the same, no-op.
@@ -80,16 +80,12 @@
   return true;
 }
 
-bool GtkVideoRenderer::RenderFrame(const VideoFrame* video_frame) {
-  if (!video_frame) {
-    return false;
-  }
-
-  const VideoFrame* frame = video_frame->GetCopyWithRotationApplied();
+void GtkVideoRenderer::OnFrame(const VideoFrame& video_frame) {
+  const VideoFrame* frame = video_frame.GetCopyWithRotationApplied();
 
   // Need to set size as the frame might be rotated.
-  if (!SetSize(frame->GetWidth(), frame->GetHeight(), 0)) {
-    return false;
+  if (!SetSize(frame->GetWidth(), frame->GetHeight())) {
+    return;
   }
 
   // convert I420 frame to ABGR format, which is accepted by GTK
@@ -101,7 +97,7 @@
   ScopedGdkLock lock;
 
   if (IsClosed()) {
-    return false;
+    return;
   }
 
   // draw the ABGR image
@@ -117,7 +113,6 @@
 
   // Run the Gtk main loop to refresh the window.
   Pump();
-  return true;
 }
 
 bool GtkVideoRenderer::Initialize(int width, int height) {
diff --git a/webrtc/media/devices/gtkvideorenderer.h b/webrtc/media/devices/gtkvideorenderer.h
index a852f8c..750a5bb 100644
--- a/webrtc/media/devices/gtkvideorenderer.h
+++ b/webrtc/media/devices/gtkvideorenderer.h
@@ -17,24 +17,24 @@
 #include <memory>
 
 #include "webrtc/base/basictypes.h"
-#include "webrtc/media/base/videorenderer.h"
+#include "webrtc/media/base/videosinkinterface.h"
 
 typedef struct _GtkWidget GtkWidget;  // forward declaration, defined in gtk.h
 
 namespace cricket {
 
-class GtkVideoRenderer : public VideoRenderer {
+class VideoFrame;
+
+class GtkVideoRenderer : public rtc::VideoSinkInterface<VideoFrame> {
  public:
   GtkVideoRenderer(int x, int y);
   virtual ~GtkVideoRenderer();
 
-  // Implementation of pure virtual methods of VideoRenderer.
-  // These two methods may be executed in different threads.
-  // SetSize is called before RenderFrame.
-  virtual bool SetSize(int width, int height, int reserved);
-  virtual bool RenderFrame(const VideoFrame* frame);
+  // Implementation of VideoSinkInterface.
+  void OnFrame(const VideoFrame& frame) override;
 
  private:
+  bool SetSize(int width, int height);
   // Initialize the attributes when the first frame arrives.
   bool Initialize(int width, int height);
   // Pump the Gtk event loop until there are no events left.
diff --git a/webrtc/media/devices/videorendererfactory.h b/webrtc/media/devices/videorendererfactory.h
index 4f7b7e74..0bacdbd 100644
--- a/webrtc/media/devices/videorendererfactory.h
+++ b/webrtc/media/devices/videorendererfactory.h
@@ -14,7 +14,7 @@
 #ifndef WEBRTC_MEDIA_DEVICES_VIDEORENDERERFACTORY_H_
 #define WEBRTC_MEDIA_DEVICES_VIDEORENDERERFACTORY_H_
 
-#include "webrtc/media/base/videorenderer.h"
+#include "webrtc/media/base/videosinkinterface.h"
 #if defined(WEBRTC_LINUX) && defined(HAVE_GTK)
 #include "webrtc/media/devices/gtkvideorenderer.h"
 #elif defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) && !defined(CARBON_DEPRECATED)
@@ -27,7 +27,9 @@
 
 class VideoRendererFactory {
  public:
-  static VideoRenderer* CreateGuiVideoRenderer(int x, int y) {
+  static rtc::VideoSinkInterface<cricket::VideoFrame>* CreateGuiVideoRenderer(
+      int x,
+      int y) {
   #if defined(WEBRTC_LINUX) && defined(HAVE_GTK)
     return new GtkVideoRenderer(x, y);
   #elif defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) && \
diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc
index fe5c610..f835c12 100644
--- a/webrtc/media/engine/webrtcvideoengine2.cc
+++ b/webrtc/media/engine/webrtcvideoengine2.cc
@@ -22,7 +22,6 @@
 #include "webrtc/base/trace_event.h"
 #include "webrtc/call.h"
 #include "webrtc/media/base/videocapturer.h"
-#include "webrtc/media/base/videorenderer.h"
 #include "webrtc/media/engine/constants.h"
 #include "webrtc/media/engine/simulcast.h"
 #include "webrtc/media/engine/webrtcmediaengine.h"
diff --git a/webrtc/media/media.gyp b/webrtc/media/media.gyp
index b9cac3d..f9cff46 100644
--- a/webrtc/media/media.gyp
+++ b/webrtc/media/media.gyp
@@ -70,7 +70,6 @@
         'base/videoframe.h',
         'base/videoframefactory.cc',
         'base/videoframefactory.h',
-        'base/videorenderer.h',
         'base/videosourcebase.cc',
         'base/videosourcebase.h',
         'base/yuvframegenerator.cc',