| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 #include "webrtc/common_video/include/video_frame_buffer.h" | 10 #include "webrtc/common_video/include/video_frame_buffer.h" |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 src, | 198 src, |
| 199 (src->width() - crop_width) / 2, (src->height() - crop_height) / 2, | 199 (src->width() - crop_width) / 2, (src->height() - crop_height) / 2, |
| 200 crop_width, crop_height); | 200 crop_width, crop_height); |
| 201 } | 201 } |
| 202 | 202 |
| 203 void I420Buffer::ScaleFrom(const rtc::scoped_refptr<VideoFrameBuffer>& src) { | 203 void I420Buffer::ScaleFrom(const rtc::scoped_refptr<VideoFrameBuffer>& src) { |
| 204 CropAndScaleFrom(src, 0, 0, src->width(), src->height()); | 204 CropAndScaleFrom(src, 0, 0, src->width(), src->height()); |
| 205 } | 205 } |
| 206 | 206 |
| 207 // static | 207 // static |
| 208 rtc::scoped_refptr<I420Buffer> I420Buffer::CopyKeepStride( | |
| 209 const rtc::scoped_refptr<VideoFrameBuffer>& source) { | |
| 210 int width = source->width(); | |
| 211 int height = source->height(); | |
| 212 int stride_y = source->StrideY(); | |
| 213 int stride_u = source->StrideU(); | |
| 214 int stride_v = source->StrideV(); | |
| 215 rtc::scoped_refptr<I420Buffer> target = | |
| 216 I420Buffer::Create(width, height, stride_y, stride_u, stride_v); | |
| 217 RTC_CHECK(libyuv::I420Copy(source->DataY(), stride_y, | |
| 218 source->DataU(), stride_u, | |
| 219 source->DataV(), stride_v, | |
| 220 target->MutableDataY(), stride_y, | |
| 221 target->MutableDataU(), stride_u, | |
| 222 target->MutableDataV(), stride_v, | |
| 223 width, height) == 0); | |
| 224 | |
| 225 return target; | |
| 226 } | |
| 227 | |
| 228 // static | |
| 229 rtc::scoped_refptr<VideoFrameBuffer> I420Buffer::Rotate( | 208 rtc::scoped_refptr<VideoFrameBuffer> I420Buffer::Rotate( |
| 230 const rtc::scoped_refptr<VideoFrameBuffer>& src, | 209 const rtc::scoped_refptr<VideoFrameBuffer>& src, |
| 231 VideoRotation rotation) { | 210 VideoRotation rotation) { |
| 232 RTC_DCHECK(src->DataY()); | 211 RTC_DCHECK(src->DataY()); |
| 233 RTC_DCHECK(src->DataU()); | 212 RTC_DCHECK(src->DataU()); |
| 234 RTC_DCHECK(src->DataV()); | 213 RTC_DCHECK(src->DataV()); |
| 235 | 214 |
| 236 if (rotation == webrtc::kVideoRotation_0) { | 215 if (rotation == webrtc::kVideoRotation_0) { |
| 237 return src; | 216 return src; |
| 238 } | 217 } |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 void* WrappedI420Buffer::native_handle() const { | 341 void* WrappedI420Buffer::native_handle() const { |
| 363 return nullptr; | 342 return nullptr; |
| 364 } | 343 } |
| 365 | 344 |
| 366 rtc::scoped_refptr<VideoFrameBuffer> WrappedI420Buffer::NativeToI420Buffer() { | 345 rtc::scoped_refptr<VideoFrameBuffer> WrappedI420Buffer::NativeToI420Buffer() { |
| 367 RTC_NOTREACHED(); | 346 RTC_NOTREACHED(); |
| 368 return nullptr; | 347 return nullptr; |
| 369 } | 348 } |
| 370 | 349 |
| 371 } // namespace webrtc | 350 } // namespace webrtc |
| OLD | NEW |