Index: webrtc/api/video/i420_buffer.cc |
diff --git a/webrtc/api/video/i420_buffer.cc b/webrtc/api/video/i420_buffer.cc |
index 51d83c9df58ba90508bb263434ebfca3c78d8e4e..c4afdba45bbf64ab10560bf540b2d9076914ceb1 100644 |
--- a/webrtc/api/video/i420_buffer.cc |
+++ b/webrtc/api/video/i420_buffer.cc |
@@ -76,8 +76,8 @@ rtc::scoped_refptr<I420Buffer> I420Buffer::Create(int width, |
} |
// static |
-rtc::scoped_refptr<I420Buffer> I420Buffer::Copy( |
- const VideoFrameBuffer& source) { |
+rtc::scoped_refptr<I420Buffer> I420Buffer::Copy(const PlanarYuvBuffer& source) { |
+ RTC_CHECK(source.type() == Type::kI420); |
return Copy(source.width(), source.height(), |
source.DataY(), source.StrideY(), |
source.DataU(), source.StrideU(), |
@@ -103,8 +103,9 @@ rtc::scoped_refptr<I420Buffer> I420Buffer::Copy( |
} |
// static |
-rtc::scoped_refptr<I420Buffer> I420Buffer::Rotate( |
- const VideoFrameBuffer& src, VideoRotation rotation) { |
+rtc::scoped_refptr<I420Buffer> I420Buffer::Rotate(const PlanarYuvBuffer& src, |
+ VideoRotation rotation) { |
+ RTC_CHECK(src.type() == Type::kI420); |
nisse-webrtc
2017/05/29 08:22:22
Hmm. To get better compile time type-checking, cou
magjed_webrtc
2017/05/29 12:12:06
Yeah, this is something I thought about when I did
nisse-webrtc
2017/05/29 12:37:17
Maybe we have to prepare some experimental cl to f
magjed_webrtc
2017/05/29 13:57:02
It's feasible, I uploaded a CL here: https://coder
nisse-webrtc
2017/05/29 14:35:55
I420BufferInterface is good enough, I think. And I
|
RTC_CHECK(src.DataY()); |
RTC_CHECK(src.DataU()); |
RTC_CHECK(src.DataV()); |
@@ -187,12 +188,12 @@ void I420Buffer::SetBlack(I420Buffer* buffer) { |
0, 128, 128) == 0); |
} |
-void I420Buffer::CropAndScaleFrom( |
- const VideoFrameBuffer& src, |
- int offset_x, |
- int offset_y, |
- int crop_width, |
- int crop_height) { |
+void I420Buffer::CropAndScaleFrom(const PlanarYuvBuffer& src, |
+ int offset_x, |
+ int offset_y, |
+ int crop_width, |
+ int crop_height) { |
+ RTC_CHECK(src.type() == Type::kI420); |
RTC_CHECK_LE(crop_width, src.width()); |
RTC_CHECK_LE(crop_height, src.height()); |
RTC_CHECK_LE(crop_width + offset_x, src.width()); |
@@ -224,8 +225,7 @@ void I420Buffer::CropAndScaleFrom( |
RTC_DCHECK_EQ(res, 0); |
} |
-void I420Buffer::CropAndScaleFrom( |
- const VideoFrameBuffer& src) { |
+void I420Buffer::CropAndScaleFrom(const PlanarYuvBuffer& src) { |
const int crop_width = |
std::min(src.width(), width() * src.height() / height()); |
const int crop_height = |
@@ -237,7 +237,7 @@ void I420Buffer::CropAndScaleFrom( |
crop_width, crop_height); |
} |
-void I420Buffer::ScaleFrom(const VideoFrameBuffer& src) { |
+void I420Buffer::ScaleFrom(const PlanarYuvBuffer& src) { |
CropAndScaleFrom(src, 0, 0, src.width(), src.height()); |
} |