Index: unit_test/convert_test.cc |
diff --git a/unit_test/convert_test.cc b/unit_test/convert_test.cc |
index 50d2569b2e6411818d4a7de9fbced8aba481e125..1d42eb97984ec599fa106dadc5b744834bf7e481 100644 |
--- a/unit_test/convert_test.cc |
+++ b/unit_test/convert_test.cc |
@@ -1885,4 +1885,40 @@ TESTPLANARTOE(I422, 2, 1, UYVY, 2, 4, ARGB, 4) |
TESTQPLANARTOE(I420Alpha, 2, 2, ARGB, 1, 4, ABGR, 4) |
TESTQPLANARTOE(I420Alpha, 2, 2, ABGR, 1, 4, ARGB, 4) |
+TEST_F(LibYUVConvertTest, RotateWithARGBSource) { |
+ // 2x2 frames |
+ uint32_t src[4]; |
+ uint32_t dst[4]; |
+ // some random input |
+ src[0] = 0x11000000; |
+ src[1] = 0x00450000; |
+ src[2] = 0x00009f00; |
+ src[3] = 0x000000ff; |
+ // zeros on destination |
+ dst[0] = 0x00000000; |
+ dst[1] = 0x00000000; |
+ dst[2] = 0x00000000; |
+ dst[3] = 0x00000000; |
+ |
+ int r = ConvertToARGB( |
+ reinterpret_cast<uint8_t*>(src), |
+ 16, // input size |
+ reinterpret_cast<uint8_t*>(dst), |
+ 8, // destination stride |
+ 0, // crop_x |
+ 0, // crop_y |
+ 2, // width |
+ 2, // height |
+ 2, // crop width |
+ 2, // crop height |
+ kRotate90, FOURCC_ARGB); |
+ |
+ EXPECT_EQ(r, 0); |
+ // 90 degrees rotation, no conversion |
+ EXPECT_EQ(dst[0], src[2]); |
+ EXPECT_EQ(dst[1], src[0]); |
+ EXPECT_EQ(dst[2], src[3]); |
+ EXPECT_EQ(dst[3], src[1]); |
+} |
+ |
} // namespace libyuv |