Delete method cricket::VideoFrame::Copy.

Should be unused in Chrome since cl
https://codereview.chromium.org/2068703002/

TBR=tkchin@webrtc.org,magjed@webrtc.org
BUG=webrtc:5682

Review-Url: https://codereview.webrtc.org/2080253002
Cr-Commit-Position: refs/heads/master@{#13236}
diff --git a/talk/app/webrtc/objc/RTCI420Frame.mm b/talk/app/webrtc/objc/RTCI420Frame.mm
index 6c6c564..1646510 100644
--- a/talk/app/webrtc/objc/RTCI420Frame.mm
+++ b/talk/app/webrtc/objc/RTCI420Frame.mm
@@ -29,7 +29,7 @@
 
 #include <memory>
 
-#include "webrtc/media/base/videoframe.h"
+#include "webrtc/media/engine/webrtcvideoframe.h"
 
 @implementation RTCI420Frame {
   std::unique_ptr<cricket::VideoFrame> _videoFrame;
@@ -98,7 +98,10 @@
   if (self = [super init]) {
     // Keep a shallow copy of the video frame. The underlying frame buffer is
     // not copied.
-    _videoFrame.reset(videoFrame->Copy());
+    _videoFrame.reset(new cricket::WebRtcVideoFrame(
+        videoFrame->video_frame_buffer(),
+        videoFrame->rotation(),
+        videoFrame->timestamp_us()));
   }
   return self;
 }
diff --git a/webrtc/api/java/jni/peerconnection_jni.cc b/webrtc/api/java/jni/peerconnection_jni.cc
index a5ba254..2b08f75 100644
--- a/webrtc/api/java/jni/peerconnection_jni.cc
+++ b/webrtc/api/java/jni/peerconnection_jni.cc
@@ -768,7 +768,8 @@
   // ownership of the frame, and the frame should be released with
   // VideoRenderer.releaseNativeFrame().
   static jlong javaShallowCopy(const cricket::VideoFrame* frame) {
-    return jlongFromPointer(frame->Copy());
+    return jlongFromPointer(new cricket::WebRtcVideoFrame(
+        frame->video_frame_buffer(), frame->rotation(), frame->timestamp_us()));
   }
 
   // Return a VideoRenderer.I420Frame referring to the data in |frame|.
diff --git a/webrtc/media/base/videoframe.h b/webrtc/media/base/videoframe.h
index 4015f90..10dc1bd 100644
--- a/webrtc/media/base/videoframe.h
+++ b/webrtc/media/base/videoframe.h
@@ -51,11 +51,6 @@
   // Indicates the rotation angle in degrees.
   virtual webrtc::VideoRotation rotation() const = 0;
 
-  // Make a shallow copy of the frame. The frame buffer itself is not copied.
-  // Both the current and new VideoFrame will share a single reference-counted
-  // frame buffer.
-  virtual VideoFrame *Copy() const = 0;
-
   // Return a copy of frame which has its pending rotation applied. The
   // ownership of the returned frame is held by this frame.
   virtual const VideoFrame* GetCopyWithRotationApplied() const = 0;
diff --git a/webrtc/media/base/videoframe_unittest.h b/webrtc/media/base/videoframe_unittest.h
index 3998561..38c3f85 100644
--- a/webrtc/media/base/videoframe_unittest.h
+++ b/webrtc/media/base/videoframe_unittest.h
@@ -1808,31 +1808,6 @@
     EXPECT_TRUE(IsEqual(frame1, frame2, 1));
   }
 
-  ///////////////////
-  // General tests //
-  ///////////////////
-
-  void Copy() {
-    std::unique_ptr<T> source(new T);
-    std::unique_ptr<cricket::VideoFrame> target;
-    ASSERT_TRUE(LoadFrameNoRepeat(source.get()));
-    target.reset(source->Copy());
-    EXPECT_TRUE(IsEqual(*source, *target, 0));
-    source.reset();
-    ASSERT_TRUE(target->video_frame_buffer() != NULL);
-    EXPECT_TRUE(target->video_frame_buffer()->DataY() != NULL);
-  }
-
-  void CopyIsRef() {
-    std::unique_ptr<T> source(new T);
-    std::unique_ptr<const cricket::VideoFrame> target;
-    ASSERT_TRUE(LoadFrameNoRepeat(source.get()));
-    target.reset(source->Copy());
-    EXPECT_TRUE(IsEqual(*source, *target, 0));
-    const T* const_source = source.get();
-    EXPECT_EQ(const_source->video_frame_buffer(), target->video_frame_buffer());
-  }
-
   int repeat_;
 };
 
diff --git a/webrtc/media/engine/webrtcvideoframe.cc b/webrtc/media/engine/webrtcvideoframe.cc
index 4f89c8b..067c80f 100644
--- a/webrtc/media/engine/webrtcvideoframe.cc
+++ b/webrtc/media/engine/webrtcvideoframe.cc
@@ -78,10 +78,6 @@
   return video_frame_buffer_;
 }
 
-VideoFrame* WebRtcVideoFrame::Copy() const {
-  return new WebRtcVideoFrame(video_frame_buffer_, rotation_, timestamp_us_);
-}
-
 size_t WebRtcVideoFrame::ConvertToRgbBuffer(uint32_t to_fourcc,
                                             uint8_t* buffer,
                                             size_t size,
diff --git a/webrtc/media/engine/webrtcvideoframe.h b/webrtc/media/engine/webrtcvideoframe.h
index 487e32e..cec2f83 100644
--- a/webrtc/media/engine/webrtcvideoframe.h
+++ b/webrtc/media/engine/webrtcvideoframe.h
@@ -75,8 +75,6 @@
 
   webrtc::VideoRotation rotation() const override { return rotation_; }
 
-  VideoFrame* Copy() const override;
-
   size_t ConvertToRgbBuffer(uint32_t to_fourcc,
                             uint8_t* buffer,
                             size_t size,
diff --git a/webrtc/media/engine/webrtcvideoframe_unittest.cc b/webrtc/media/engine/webrtcvideoframe_unittest.cc
index abfd0ae..a725246 100644
--- a/webrtc/media/engine/webrtcvideoframe_unittest.cc
+++ b/webrtc/media/engine/webrtcvideoframe_unittest.cc
@@ -245,9 +245,6 @@
 // TEST_WEBRTCVIDEOFRAME(ConvertToI422Buffer)
 // TEST_WEBRTCVIDEOFRAME(ConstructARGBBlackWhitePixel)
 
-TEST_WEBRTCVIDEOFRAME(Copy)
-TEST_WEBRTCVIDEOFRAME(CopyIsRef)
-
 // These functions test implementation-specific details.
 // Tests the Init function with different cropped size.
 TEST_F(WebRtcVideoFrameTest, InitEvenSize) {
@@ -292,24 +289,6 @@
   EXPECT_EQ(40, frame.timestamp_us());
 }
 
-TEST_F(WebRtcVideoFrameTest, CopyTextureFrame) {
-  webrtc::test::FakeNativeHandle* dummy_handle =
-      new webrtc::test::FakeNativeHandle();
-  webrtc::NativeHandleBuffer* buffer =
-      new rtc::RefCountedObject<webrtc::test::FakeNativeHandleBuffer>(
-          dummy_handle, 640, 480);
-  // Timestamp is converted from ns to us, so last three digits are lost.
-  cricket::WebRtcVideoFrame frame1(buffer, 20000, webrtc::kVideoRotation_0);
-  cricket::VideoFrame* frame2 = frame1.Copy();
-  EXPECT_EQ(frame1.video_frame_buffer()->native_handle(),
-            frame2->video_frame_buffer()->native_handle());
-  EXPECT_EQ(frame1.width(), frame2->width());
-  EXPECT_EQ(frame1.height(), frame2->height());
-  EXPECT_EQ(frame1.GetTimeStamp(), frame2->GetTimeStamp());
-  EXPECT_EQ(frame1.timestamp_us(), frame2->timestamp_us());
-  delete frame2;
-}
-
 TEST_F(WebRtcVideoFrameTest, ApplyRotationToFrame) {
   WebRtcVideoTestFrame applied0;
   EXPECT_TRUE(IsNull(applied0));
diff --git a/webrtc/sdk/objc/Framework/Classes/RTCVideoFrame.mm b/webrtc/sdk/objc/Framework/Classes/RTCVideoFrame.mm
index 5b2d258..dcce32d 100644
--- a/webrtc/sdk/objc/Framework/Classes/RTCVideoFrame.mm
+++ b/webrtc/sdk/objc/Framework/Classes/RTCVideoFrame.mm
@@ -12,6 +12,8 @@
 
 #include <memory>
 
+#include "webrtc/media/engine/webrtcvideoframe.h"
+
 @implementation RTCVideoFrame {
   std::unique_ptr<cricket::VideoFrame> _videoFrame;
   rtc::scoped_refptr<webrtc::VideoFrameBuffer> _i420Buffer;
@@ -105,7 +107,10 @@
   if (self = [super init]) {
     // Keep a shallow copy of the video frame. The underlying frame buffer is
     // not copied.
-    _videoFrame.reset(nativeFrame->Copy());
+    _videoFrame.reset(new cricket::WebRtcVideoFrame(
+        nativeFrame->video_frame_buffer(),
+        nativeFrame->rotation(),
+        nativeFrame->timestamp_us()));
   }
   return self;
 }