Remove corevideoframebuffer target.

This target is deprecated and downstream projects have been updated.

This CL replaces https://webrtc-review.googlesource.com/c/src/+/46521

Bug: webrtc:8470
Change-Id: Icf4696c946fd0a1aeeb687c4960586ba0cc52dc0
Reviewed-on: https://webrtc-review.googlesource.com/48362
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21908}
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 0e26a4a..2f5a666 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -307,7 +307,6 @@
 
       deps = [
         ":common_objc",
-        ":corevideoframebuffer_objc",
         ":peerconnectionfactory_objc",
         ":video_objc",
         "../api:video_frame_api",
@@ -341,7 +340,6 @@
 
       deps += [
         ":common_objc",
-        ":corevideoframebuffer_objc",
         ":default_codec_factory_objc",
         ":native_api",
         ":native_video",
@@ -576,7 +574,6 @@
 
       deps = [
         ":common_objc",
-        ":corevideoframebuffer_objc",
         ":native_api",
         ":native_video",
         ":videotracksource_objc",
@@ -915,29 +912,6 @@
       ]
     }
 
-    rtc_static_library("corevideoframebuffer_objc") {
-      sources = [
-        "objc/Framework/Classes/Video/corevideo_frame_buffer.cc",
-        "objc/Framework/Classes/Video/corevideo_frame_buffer.h",
-      ]
-
-      deps = [
-        "../api:video_frame_api_i420",
-        "../common_video",
-        "../rtc_base:checks",
-        "../rtc_base:rtc_base_approved",
-        "//third_party/libyuv",
-      ]
-
-      if (!build_with_chromium && is_clang) {
-        # Suppress warnings from the Chromium Clang plugin
-        # (bugs.webrtc.org/163).
-        suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
-      }
-
-      libs = [ "CoreVideo.framework" ]
-    }
-
     rtc_static_library("video_toolbox_cc") {
       visibility = [ ":videotoolbox_objc" ]
       sources = [
diff --git a/sdk/objc/Framework/Classes/Video/corevideo_frame_buffer.cc b/sdk/objc/Framework/Classes/Video/corevideo_frame_buffer.cc
deleted file mode 100644
index 3ddaa71..0000000
--- a/sdk/objc/Framework/Classes/Video/corevideo_frame_buffer.cc
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- *  Copyright 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.
- */
-
-#include "sdk/objc/Framework/Classes/Video/corevideo_frame_buffer.h"
-
-#include "api/video/i420_buffer.h"
-#include "common_video/libyuv/include/webrtc_libyuv.h"
-#include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
-#include "third_party/libyuv/include/libyuv/convert.h"
-
-namespace webrtc {
-
-CoreVideoFrameBuffer::CoreVideoFrameBuffer(CVPixelBufferRef pixel_buffer,
-                                           int adapted_width,
-                                           int adapted_height,
-                                           int crop_width,
-                                           int crop_height,
-                                           int crop_x,
-                                           int crop_y)
-    : pixel_buffer_(pixel_buffer),
-      width_(adapted_width),
-      height_(adapted_height),
-      buffer_width_(CVPixelBufferGetWidth(pixel_buffer)),
-      buffer_height_(CVPixelBufferGetHeight(pixel_buffer)),
-      crop_width_(crop_width),
-      crop_height_(crop_height),
-      // Can only crop at even pixels.
-      crop_x_(crop_x & ~1),
-      crop_y_(crop_y & ~1) {
-  CVBufferRetain(pixel_buffer_);
-}
-
-CoreVideoFrameBuffer::CoreVideoFrameBuffer(CVPixelBufferRef pixel_buffer)
-    : pixel_buffer_(pixel_buffer),
-      width_(CVPixelBufferGetWidth(pixel_buffer)),
-      height_(CVPixelBufferGetHeight(pixel_buffer)),
-      buffer_width_(width_),
-      buffer_height_(height_),
-      crop_width_(width_),
-      crop_height_(height_),
-      crop_x_(0),
-      crop_y_(0) {
-  CVBufferRetain(pixel_buffer_);
-}
-
-CoreVideoFrameBuffer::~CoreVideoFrameBuffer() {
-  CVBufferRelease(pixel_buffer_);
-}
-
-VideoFrameBuffer::Type CoreVideoFrameBuffer::type() const {
-  return Type::kNative;
-}
-
-int CoreVideoFrameBuffer::width() const {
-  return width_;
-}
-
-int CoreVideoFrameBuffer::height() const {
-  return height_;
-}
-
-rtc::scoped_refptr<I420BufferInterface> CoreVideoFrameBuffer::ToI420() {
-  const OSType pixel_format = CVPixelBufferGetPixelFormatType(pixel_buffer_);
-  RTC_DCHECK(pixel_format == kCVPixelFormatType_420YpCbCr8BiPlanarFullRange ||
-             pixel_format == kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange);
-
-  CVPixelBufferLockBaseAddress(pixel_buffer_, kCVPixelBufferLock_ReadOnly);
-  const uint8_t* src_y = static_cast<const uint8_t*>(
-      CVPixelBufferGetBaseAddressOfPlane(pixel_buffer_, 0));
-  const int src_y_stride = CVPixelBufferGetBytesPerRowOfPlane(pixel_buffer_, 0);
-  const uint8_t* src_uv = static_cast<const uint8_t*>(
-      CVPixelBufferGetBaseAddressOfPlane(pixel_buffer_, 1));
-  const int src_uv_stride =
-      CVPixelBufferGetBytesPerRowOfPlane(pixel_buffer_, 1);
-
-  // Crop just by modifying pointers.
-  src_y += src_y_stride * crop_y_ + crop_x_;
-  src_uv += src_uv_stride * (crop_y_ / 2) + crop_x_;
-
-  // TODO(magjed): Use a frame buffer pool.
-  NV12ToI420Scaler nv12_to_i420_scaler;
-  rtc::scoped_refptr<I420Buffer> buffer =
-      new rtc::RefCountedObject<I420Buffer>(width_, height_);
-  nv12_to_i420_scaler.NV12ToI420Scale(
-      src_y, src_y_stride,
-      src_uv, src_uv_stride,
-      crop_width_, crop_height_,
-      buffer->MutableDataY(), buffer->StrideY(),
-      buffer->MutableDataU(), buffer->StrideU(),
-      buffer->MutableDataV(), buffer->StrideV(),
-      buffer->width(), buffer->height());
-
-  CVPixelBufferUnlockBaseAddress(pixel_buffer_, kCVPixelBufferLock_ReadOnly);
-
-  return buffer;
-}
-
-bool CoreVideoFrameBuffer::RequiresCropping() const {
-  return crop_width_ != buffer_width_ || crop_height_ != buffer_height_;
-}
-
-bool CoreVideoFrameBuffer::CropAndScaleTo(
-    std::vector<uint8_t>* tmp_buffer,
-    CVPixelBufferRef output_pixel_buffer) const {
-  // Prepare output pointers.
-  RTC_DCHECK_EQ(CVPixelBufferGetPixelFormatType(output_pixel_buffer),
-                kCVPixelFormatType_420YpCbCr8BiPlanarFullRange);
-  CVReturn cv_ret = CVPixelBufferLockBaseAddress(output_pixel_buffer, 0);
-  if (cv_ret != kCVReturnSuccess) {
-    RTC_LOG(LS_ERROR) << "Failed to lock base address: " << cv_ret;
-    return false;
-  }
-  const int dst_width = CVPixelBufferGetWidth(output_pixel_buffer);
-  const int dst_height = CVPixelBufferGetHeight(output_pixel_buffer);
-  uint8_t* dst_y = reinterpret_cast<uint8_t*>(
-      CVPixelBufferGetBaseAddressOfPlane(output_pixel_buffer, 0));
-  const int dst_y_stride =
-      CVPixelBufferGetBytesPerRowOfPlane(output_pixel_buffer, 0);
-  uint8_t* dst_uv = reinterpret_cast<uint8_t*>(
-      CVPixelBufferGetBaseAddressOfPlane(output_pixel_buffer, 1));
-  const int dst_uv_stride =
-      CVPixelBufferGetBytesPerRowOfPlane(output_pixel_buffer, 1);
-
-  // Prepare source pointers.
-  const OSType src_pixel_format =
-      CVPixelBufferGetPixelFormatType(pixel_buffer_);
-  RTC_DCHECK(
-      src_pixel_format == kCVPixelFormatType_420YpCbCr8BiPlanarFullRange ||
-      src_pixel_format == kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange);
-  CVPixelBufferLockBaseAddress(pixel_buffer_, kCVPixelBufferLock_ReadOnly);
-  const uint8_t* src_y = static_cast<const uint8_t*>(
-      CVPixelBufferGetBaseAddressOfPlane(pixel_buffer_, 0));
-  const int src_y_stride = CVPixelBufferGetBytesPerRowOfPlane(pixel_buffer_, 0);
-  const uint8_t* src_uv = static_cast<const uint8_t*>(
-      CVPixelBufferGetBaseAddressOfPlane(pixel_buffer_, 1));
-  const int src_uv_stride =
-      CVPixelBufferGetBytesPerRowOfPlane(pixel_buffer_, 1);
-
-  // Crop just by modifying pointers.
-  src_y += src_y_stride * crop_y_ + crop_x_;
-  src_uv += src_uv_stride * (crop_y_ / 2) + crop_x_;
-
-  if (crop_width_ == dst_width && crop_height_ == dst_height) {
-    tmp_buffer->clear();
-    tmp_buffer->shrink_to_fit();
-  } else {
-    const int src_chroma_width = (crop_width_ + 1) / 2;
-    const int src_chroma_height = (crop_height_ + 1) / 2;
-    const int dst_chroma_width = (dst_width + 1) / 2;
-    const int dst_chroma_height = (dst_height + 1) / 2;
-    tmp_buffer->resize(src_chroma_width * src_chroma_height * 2 +
-                       dst_chroma_width * dst_chroma_height * 2);
-    tmp_buffer->shrink_to_fit();
-  }
-
-  NV12Scale(tmp_buffer->data(),
-            src_y, src_y_stride,
-            src_uv, src_uv_stride,
-            crop_width_, crop_height_,
-            dst_y, dst_y_stride,
-            dst_uv, dst_uv_stride,
-            dst_width, dst_height);
-
-  CVPixelBufferUnlockBaseAddress(pixel_buffer_, kCVPixelBufferLock_ReadOnly);
-  CVPixelBufferUnlockBaseAddress(output_pixel_buffer, 0);
-
-  return true;
-}
-
-}  // namespace webrtc
diff --git a/sdk/objc/Framework/Classes/Video/corevideo_frame_buffer.h b/sdk/objc/Framework/Classes/Video/corevideo_frame_buffer.h
deleted file mode 100644
index f0b094b..0000000
--- a/sdk/objc/Framework/Classes/Video/corevideo_frame_buffer.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- *  Copyright 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 SDK_OBJC_FRAMEWORK_CLASSES_VIDEO_COREVIDEO_FRAME_BUFFER_H_
-#define SDK_OBJC_FRAMEWORK_CLASSES_VIDEO_COREVIDEO_FRAME_BUFFER_H_
-
-#include <CoreVideo/CoreVideo.h>
-
-#include <vector>
-
-#include "common_video/include/video_frame_buffer.h"
-
-namespace webrtc {
-
-class CoreVideoFrameBuffer : public VideoFrameBuffer {
- public:
-  explicit CoreVideoFrameBuffer(CVPixelBufferRef pixel_buffer);
-  CoreVideoFrameBuffer(CVPixelBufferRef pixel_buffer,
-                       int adapted_width,
-                       int adapted_height,
-                       int crop_width,
-                       int crop_height,
-                       int crop_x,
-                       int crop_y);
-  ~CoreVideoFrameBuffer() override;
-
-  CVPixelBufferRef pixel_buffer() { return pixel_buffer_; }
-
-  // Returns true if the internal pixel buffer needs to be cropped.
-  bool RequiresCropping() const;
-  // Crop and scales the internal pixel buffer to the output pixel buffer. The
-  // tmp buffer is used for intermediary splitting the UV channels. This
-  // function returns true if successful.
-  bool CropAndScaleTo(std::vector<uint8_t>* tmp_buffer,
-                      CVPixelBufferRef output_pixel_buffer) const;
-
- private:
-  Type type() const override;
-  int width() const override;
-  int height() const override;
-  rtc::scoped_refptr<I420BufferInterface> ToI420() override;
-
-  CVPixelBufferRef pixel_buffer_;
-  // buffer_width/height is the actual pixel buffer resolution. The
-  // width_/height_ is the resolution we will scale to in ToI420(). Cropping
-  // happens before scaling, so: buffer_width >= crop_width >= width().
-  const int width_;
-  const int height_;
-  const int buffer_width_;
-  const int buffer_height_;
-  const int crop_width_;
-  const int crop_height_;
-  const int crop_x_;
-  const int crop_y_;
-};
-
-}  // namespace webrtc
-
-#endif  // SDK_OBJC_FRAMEWORK_CLASSES_VIDEO_COREVIDEO_FRAME_BUFFER_H_