| Index: webrtc/common_video/video_frame_buffer.cc
 | 
| diff --git a/webrtc/common_video/video_frame_buffer.cc b/webrtc/common_video/video_frame_buffer.cc
 | 
| index 2fb35401314a317de60923480251b6dc8e6d9ccb..14e19dc0e33f4bd90b07345ec387dd9b29495f40 100644
 | 
| --- a/webrtc/common_video/video_frame_buffer.cc
 | 
| +++ b/webrtc/common_video/video_frame_buffer.cc
 | 
| @@ -187,20 +187,20 @@ rtc::scoped_refptr<VideoFrameBuffer> I420Buffer::NativeToI420Buffer() {
 | 
|  }
 | 
|  
 | 
|  rtc::scoped_refptr<I420Buffer> I420Buffer::Copy(
 | 
| -    const rtc::scoped_refptr<VideoFrameBuffer>& buffer) {
 | 
| -  int width = buffer->width();
 | 
| -  int height = buffer->height();
 | 
| -  rtc::scoped_refptr<I420Buffer> copy =
 | 
| +    const rtc::scoped_refptr<VideoFrameBuffer>& source) {
 | 
| +  int width = source->width();
 | 
| +  int height = source->height();
 | 
| +  rtc::scoped_refptr<I420Buffer> target =
 | 
|        new rtc::RefCountedObject<I420Buffer>(width, height);
 | 
| -  RTC_CHECK(libyuv::I420Copy(buffer->DataY(), buffer->StrideY(),
 | 
| -                             buffer->DataU(), buffer->StrideU(),
 | 
| -                             buffer->DataV(), buffer->StrideV(),
 | 
| -                             copy->MutableDataY(), copy->StrideY(),
 | 
| -                             copy->MutableDataU(), copy->StrideU(),
 | 
| -                             copy->MutableDataV(), copy->StrideV(),
 | 
| +  RTC_CHECK(libyuv::I420Copy(source->DataY(), source->StrideY(),
 | 
| +                             source->DataU(), source->StrideU(),
 | 
| +                             source->DataV(), source->StrideV(),
 | 
| +                             target->MutableDataY(), target->StrideY(),
 | 
| +                             target->MutableDataU(), target->StrideU(),
 | 
| +                             target->MutableDataV(), target->StrideV(),
 | 
|                               width, height) == 0);
 | 
|  
 | 
| -  return copy;
 | 
| +  return target;
 | 
|  }
 | 
|  
 | 
|  void I420Buffer::SetToBlack() {
 | 
| @@ -265,6 +265,27 @@ void I420Buffer::ScaleFrom(const rtc::scoped_refptr<VideoFrameBuffer>& src) {
 | 
|    CropAndScaleFrom(src, 0, 0, src->width(), src->height());
 | 
|  }
 | 
|  
 | 
| +rtc::scoped_refptr<I420Buffer> I420Buffer::CopyKeepStride(
 | 
| +    const rtc::scoped_refptr<VideoFrameBuffer>& source) {
 | 
| +  int width = source->width();
 | 
| +  int height = source->height();
 | 
| +  int stride_y = source->StrideY();
 | 
| +  int stride_u = source->StrideU();
 | 
| +  int stride_v = source->StrideV();
 | 
| +  rtc::scoped_refptr<I420Buffer> target =
 | 
| +      new rtc::RefCountedObject<I420Buffer>(
 | 
| +          width, height, stride_y, stride_u, stride_v);
 | 
| +  RTC_CHECK(libyuv::I420Copy(source->DataY(), stride_y,
 | 
| +                             source->DataU(), stride_u,
 | 
| +                             source->DataV(), stride_v,
 | 
| +                             target->MutableDataY(), stride_y,
 | 
| +                             target->MutableDataU(), stride_u,
 | 
| +                             target->MutableDataV(), stride_v,
 | 
| +                             width, height) == 0);
 | 
| +
 | 
| +  return target;
 | 
| +}
 | 
| +
 | 
|  NativeHandleBuffer::NativeHandleBuffer(void* native_handle,
 | 
|                                         int width,
 | 
|                                         int height)
 | 
| 
 |