Revert "Update webrtc/sdk/objc to new VideoFrameBuffer interface"

This reverts commit b008b45f1e609556a04c1aabb4e8ed6a894265af.

Reason for revert: Breaks external clients.

Original change's description:
> Update webrtc/sdk/objc to new VideoFrameBuffer interface
> 
> More thorough refactoring work is planned for RTCVideoFrame (see webrtc:7785), and this CL just unblocks removing the old interface from webrtc::VideoFrameBuffer.
> 
> Bug: webrtc:7632,webrtc:7785
> Change-Id: I351536c5ca454c2acd8944bbc2ebb1d1439dc50c
> Reviewed-on: https://chromium-review.googlesource.com/530231
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18553}

TBR=magjed@webrtc.org,andersc@webrtc.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7632,webrtc:7785

Change-Id: Ib5c6fcb939175c67c3ac7b3df7cea0f7c2bb0af0
Reviewed-on: https://chromium-review.googlesource.com/533013
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18557}
This commit is contained in:
Magnus Jedvert
2017-06-13 09:14:36 +00:00
committed by Commit Bot
parent 1edbda09d4
commit 5b383c0ebd
4 changed files with 35 additions and 58 deletions

View File

@ -25,29 +25,24 @@ CoreVideoFrameBuffer::CoreVideoFrameBuffer(CVPixelBufferRef pixel_buffer,
int crop_height,
int crop_x,
int crop_y)
: pixel_buffer_(pixel_buffer),
width_(adapted_width),
height_(adapted_height),
: NativeHandleBuffer(pixel_buffer, adapted_width, adapted_height),
pixel_buffer_(pixel_buffer),
buffer_width_(CVPixelBufferGetWidth(pixel_buffer)),
buffer_height_(CVPixelBufferGetHeight(pixel_buffer)),
crop_width_(crop_width),
crop_height_(crop_height),
crop_width_(crop_width), crop_height_(crop_height),
// Can only crop at even pixels.
crop_x_(crop_x & ~1),
crop_y_(crop_y & ~1) {
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) {
: NativeHandleBuffer(pixel_buffer,
CVPixelBufferGetWidth(pixel_buffer),
CVPixelBufferGetHeight(pixel_buffer)),
pixel_buffer_(pixel_buffer),
buffer_width_(width_), buffer_height_(height_),
crop_width_(width_), crop_height_(height_),
crop_x_(0), crop_y_(0) {
CVBufferRetain(pixel_buffer_);
}
@ -55,19 +50,8 @@ 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() {
rtc::scoped_refptr<VideoFrameBuffer>
CoreVideoFrameBuffer::NativeToI420Buffer() {
const OSType pixel_format = CVPixelBufferGetPixelFormatType(pixel_buffer_);
RTC_DCHECK(pixel_format == kCVPixelFormatType_420YpCbCr8BiPlanarFullRange ||
pixel_format == kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange);

View File

@ -19,7 +19,7 @@
namespace webrtc {
class CoreVideoFrameBuffer : public VideoFrameBuffer {
class CoreVideoFrameBuffer : public NativeHandleBuffer {
public:
explicit CoreVideoFrameBuffer(CVPixelBufferRef pixel_buffer);
CoreVideoFrameBuffer(CVPixelBufferRef pixel_buffer,
@ -31,8 +31,7 @@ class CoreVideoFrameBuffer : public VideoFrameBuffer {
int crop_y);
~CoreVideoFrameBuffer() override;
CVPixelBufferRef pixel_buffer() { return pixel_buffer_; }
rtc::scoped_refptr<VideoFrameBuffer> NativeToI420Buffer() override;
// 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
@ -42,17 +41,11 @@ class CoreVideoFrameBuffer : public VideoFrameBuffer {
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_;
// buffer_width/height is the actual pixel buffer resolution. The width/height
// in NativeHandleBuffer, i.e. width()/height(), is the resolution we will
// scale to in NativeToI420Buffer(). Cropping happens before scaling, so:
// buffer_width >= crop_width >= width().
const int buffer_width_;
const int buffer_height_;
const int crop_width_;