From 151aa6b3f7b00c9be05ffda848bc42748af19f04 Mon Sep 17 00:00:00 2001 From: andersc Date: Fri, 25 Aug 2017 01:33:18 -0700 Subject: [PATCH] Adjust for initial cropping when adapting frame. When adapting a frame, any initial cropping coordinate was replaced by the coordinate calculated for adapting. Offset initial coordinate instead. BUG=webrtc:7880 Review-Url: https://codereview.webrtc.org/2975613002 Cr-Commit-Position: refs/heads/master@{#19509} --- webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm | 4 ++-- .../sdk/objc/Framework/Classes/Video/objcvideotracksource.mm | 4 ++-- .../sdk/objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm b/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm index 72c9a26423..7d3669f33d 100644 --- a/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm +++ b/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm @@ -21,11 +21,11 @@ int _bufferHeight; int _cropWidth; int _cropHeight; - int _cropX; - int _cropY; } @synthesize pixelBuffer = _pixelBuffer; +@synthesize cropX = _cropX; +@synthesize cropY = _cropY; - (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer { return [self initWithPixelBuffer:pixelBuffer diff --git a/webrtc/sdk/objc/Framework/Classes/Video/objcvideotracksource.mm b/webrtc/sdk/objc/Framework/Classes/Video/objcvideotracksource.mm index 4200cbc891..d3ec3bd12c 100644 --- a/webrtc/sdk/objc/Framework/Classes/Video/objcvideotracksource.mm +++ b/webrtc/sdk/objc/Framework/Classes/Video/objcvideotracksource.mm @@ -54,8 +54,8 @@ void ObjcVideoTrackSource::OnCapturedFrame(RTCVideoFrame* frame) { adaptedHeight:adapted_height cropWidth:crop_width cropHeight:crop_height - cropX:crop_x - cropY:crop_y]); + cropX:crop_x + rtcPixelBuffer.cropX + cropY:crop_y + rtcPixelBuffer.cropY]); } else { // Adapted I420 frame. // TODO(magjed): Optimize this I420 path. diff --git a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h index 63505ab2de..ffcdf26042 100644 --- a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h +++ b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h @@ -69,6 +69,8 @@ RTC_EXPORT @interface RTCCVPixelBuffer : NSObject @property(nonatomic, readonly) CVPixelBufferRef pixelBuffer; +@property(nonatomic, readonly) int cropX; +@property(nonatomic, readonly) int cropY; - (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer; - (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer