Index: webrtc/media/base/videoframe_unittest.h |
diff --git a/webrtc/media/base/videoframe_unittest.h b/webrtc/media/base/videoframe_unittest.h |
index 13fb790c1a71dc2606516e0f8dd9538652d549b6..8040804f83bfe9da6fe64b01e38f6f122d4661da 100644 |
--- a/webrtc/media/base/videoframe_unittest.h |
+++ b/webrtc/media/base/videoframe_unittest.h |
@@ -768,54 +768,6 @@ class VideoFrameTest : public testing::Test { |
EXPECT_TRUE(IsEqual(*frame1, frame2, 2)); |
} |
- // Test constructing an image from a RGB565 buffer |
- void ConstructRGB565() { |
- T frame1, frame2; |
- size_t out_size = kWidth * kHeight * 2; |
- std::unique_ptr<uint8_t[]> outbuf(new uint8_t[out_size + kAlignment]); |
- uint8_t* out = ALIGNP(outbuf.get(), kAlignment); |
- T frame; |
- ASSERT_TRUE(LoadFrameNoRepeat(&frame1)); |
- EXPECT_EQ(out_size, frame1.ConvertToRgbBuffer(cricket::FOURCC_RGBP, |
- out, |
- out_size, kWidth * 2)); |
- EXPECT_TRUE(LoadFrame(out, out_size, cricket::FOURCC_RGBP, |
- kWidth, kHeight, &frame2)); |
- EXPECT_TRUE(IsEqual(frame1, frame2, 20)); |
- } |
- |
- // Test constructing an image from a ARGB1555 buffer |
- void ConstructARGB1555() { |
- T frame1, frame2; |
- size_t out_size = kWidth * kHeight * 2; |
- std::unique_ptr<uint8_t[]> outbuf(new uint8_t[out_size + kAlignment]); |
- uint8_t* out = ALIGNP(outbuf.get(), kAlignment); |
- T frame; |
- ASSERT_TRUE(LoadFrameNoRepeat(&frame1)); |
- EXPECT_EQ(out_size, frame1.ConvertToRgbBuffer(cricket::FOURCC_RGBO, |
- out, |
- out_size, kWidth * 2)); |
- EXPECT_TRUE(LoadFrame(out, out_size, cricket::FOURCC_RGBO, |
- kWidth, kHeight, &frame2)); |
- EXPECT_TRUE(IsEqual(frame1, frame2, 20)); |
- } |
- |
- // Test constructing an image from a ARGB4444 buffer |
- void ConstructARGB4444() { |
- T frame1, frame2; |
- size_t out_size = kWidth * kHeight * 2; |
- std::unique_ptr<uint8_t[]> outbuf(new uint8_t[out_size + kAlignment]); |
- uint8_t* out = ALIGNP(outbuf.get(), kAlignment); |
- T frame; |
- ASSERT_TRUE(LoadFrameNoRepeat(&frame1)); |
- EXPECT_EQ(out_size, frame1.ConvertToRgbBuffer(cricket::FOURCC_R444, |
- out, |
- out_size, kWidth * 2)); |
- EXPECT_TRUE(LoadFrame(out, out_size, cricket::FOURCC_R444, |
- kWidth, kHeight, &frame2)); |
- EXPECT_TRUE(IsEqual(frame1, frame2, 20)); |
- } |
- |
// Macro to help test different rotations |
#define TEST_MIRROR(FOURCC, BPP) \ |
void Construct##FOURCC##Mirror() { \ |
@@ -1011,66 +963,6 @@ class VideoFrameTest : public testing::Test { |
EXPECT_EQ(3, frame.video_frame_buffer()->StrideV()); |
} |
- // Test 1 pixel edge case image ARGB buffer. |
- void ConstructARGB1Pixel() { |
- T frame; |
- uint8_t pixel[4] = {64, 128, 192, 255}; |
- for (int i = 0; i < repeat_; ++i) { |
- EXPECT_TRUE(frame.Init(cricket::FOURCC_ARGB, 1, 1, 1, 1, pixel, |
- sizeof(pixel), 0, |
- webrtc::kVideoRotation_0)); |
- } |
- // Convert back to ARGB. |
- size_t out_size = 4; |
- std::unique_ptr<uint8_t[]> outbuf(new uint8_t[out_size + kAlignment]); |
- uint8_t* out = ALIGNP(outbuf.get(), kAlignment); |
- |
- EXPECT_EQ(out_size, frame.ConvertToRgbBuffer(cricket::FOURCC_ARGB, |
- out, |
- out_size, // buffer size |
- out_size)); // stride |
- #ifdef USE_LMI_CONVERT |
- // TODO(fbarchard): Expected to fail, but not crash. |
- EXPECT_FALSE(IsPlaneEqual("argb", pixel, 4, out, 4, 3, 1, 2)); |
- #else |
- // TODO(fbarchard): Check for overwrite. |
- EXPECT_TRUE(IsPlaneEqual("argb", pixel, 4, out, 4, 3, 1, 2)); |
- #endif |
- } |
- |
- // Test Black, White and Grey pixels. |
- void ConstructARGBBlackWhitePixel() { |
- T frame; |
- uint8_t pixel[10 * 4] = {0, 0, 0, 255, // Black. |
- 0, 0, 0, 255, // Black. |
- 64, 64, 64, 255, // Dark Grey. |
- 64, 64, 64, 255, // Dark Grey. |
- 128, 128, 128, 255, // Grey. |
- 128, 128, 128, 255, // Grey. |
- 196, 196, 196, 255, // Light Grey. |
- 196, 196, 196, 255, // Light Grey. |
- 255, 255, 255, 255, // White. |
- 255, 255, 255, 255}; // White. |
- |
- for (int i = 0; i < repeat_; ++i) { |
- EXPECT_TRUE(frame.Init(cricket::FOURCC_ARGB, 10, 1, 10, 1, pixel, |
- sizeof(pixel), 1, 1, 0, |
- webrtc::kVideoRotation_0)); |
- } |
- // Convert back to ARGB |
- size_t out_size = 10 * 4; |
- std::unique_ptr<uint8_t[]> outbuf(new uint8_t[out_size + kAlignment]); |
- uint8_t* out = ALIGNP(outbuf.get(), kAlignment); |
- |
- EXPECT_EQ(out_size, frame.ConvertToRgbBuffer(cricket::FOURCC_ARGB, |
- out, |
- out_size, // buffer size. |
- out_size)); // stride. |
- EXPECT_TRUE(IsPlaneEqual("argb", pixel, out_size, |
- out, out_size, |
- out_size, 1, 2)); |
- } |
- |
// Test constructing an image from an I420 buffer with horizontal cropping. |
void ConstructI420CropHorizontal() { |
T frame1, frame2; |
@@ -1439,348 +1331,6 @@ class VideoFrameTest : public testing::Test { |
// Conversion tests // |
////////////////////// |
- enum ToFrom { TO, FROM }; |
- |
- // Helper function for test converting from I420 to packed formats. |
- inline void ConvertToBuffer(int bpp, |
- int rowpad, |
- bool invert, |
- ToFrom to_from, |
- int error, |
- uint32_t fourcc, |
- int (*RGBToI420)(const uint8_t* src_frame, |
- int src_stride_frame, |
- uint8_t* dst_y, |
- int dst_stride_y, |
- uint8_t* dst_u, |
- int dst_stride_u, |
- uint8_t* dst_v, |
- int dst_stride_v, |
- int width, |
- int height)) { |
- T frame1, frame2; |
- int repeat_to = (to_from == TO) ? repeat_ : 1; |
- int repeat_from = (to_from == FROM) ? repeat_ : 1; |
- |
- int astride = kWidth * bpp + rowpad; |
- size_t out_size = astride * kHeight; |
- std::unique_ptr<uint8_t[]> outbuf(new uint8_t[out_size + kAlignment + 1]); |
- memset(outbuf.get(), 0, out_size + kAlignment + 1); |
- uint8_t* outtop = ALIGNP(outbuf.get(), kAlignment); |
- uint8_t* out = outtop; |
- int stride = astride; |
- if (invert) { |
- out += (kHeight - 1) * stride; // Point to last row. |
- stride = -stride; |
- } |
- ASSERT_TRUE(LoadFrameNoRepeat(&frame1)); |
- |
- for (int i = 0; i < repeat_to; ++i) { |
- EXPECT_EQ(out_size, frame1.ConvertToRgbBuffer(fourcc, |
- out, |
- out_size, stride)); |
- } |
- frame2.InitToEmptyBuffer(kWidth, kHeight); |
- for (int i = 0; i < repeat_from; ++i) { |
- EXPECT_EQ(0, RGBToI420(out, stride, |
- frame2.video_frame_buffer()->MutableDataY(), |
- frame2.video_frame_buffer()->StrideY(), |
- frame2.video_frame_buffer()->MutableDataU(), |
- frame2.video_frame_buffer()->StrideU(), |
- frame2.video_frame_buffer()->MutableDataV(), |
- frame2.video_frame_buffer()->StrideV(), |
- kWidth, kHeight)); |
- } |
- if (rowpad) { |
- EXPECT_EQ(0, outtop[kWidth * bpp]); // Ensure stride skipped end of row. |
- EXPECT_NE(0, outtop[astride]); // Ensure pixel at start of 2nd row. |
- } else { |
- EXPECT_NE(0, outtop[kWidth * bpp]); // Expect something to be here. |
- } |
- EXPECT_EQ(0, outtop[out_size]); // Ensure no overrun. |
- EXPECT_TRUE(IsEqual(frame1, frame2, error)); |
- } |
- |
- static const int kError = 20; |
- static const int kErrorHigh = 40; |
- static const int kOddStride = 23; |
- |
- // Tests ConvertToRGBBuffer formats. |
- void ConvertToARGBBuffer() { |
- ConvertToBuffer(4, 0, false, TO, kError, |
- cricket::FOURCC_ARGB, libyuv::ARGBToI420); |
- } |
- void ConvertToBGRABuffer() { |
- ConvertToBuffer(4, 0, false, TO, kError, |
- cricket::FOURCC_BGRA, libyuv::BGRAToI420); |
- } |
- void ConvertToABGRBuffer() { |
- ConvertToBuffer(4, 0, false, TO, kError, |
- cricket::FOURCC_ABGR, libyuv::ABGRToI420); |
- } |
- void ConvertToRGB24Buffer() { |
- ConvertToBuffer(3, 0, false, TO, kError, |
- cricket::FOURCC_24BG, libyuv::RGB24ToI420); |
- } |
- void ConvertToRAWBuffer() { |
- ConvertToBuffer(3, 0, false, TO, kError, |
- cricket::FOURCC_RAW, libyuv::RAWToI420); |
- } |
- void ConvertToRGB565Buffer() { |
- ConvertToBuffer(2, 0, false, TO, kError, |
- cricket::FOURCC_RGBP, libyuv::RGB565ToI420); |
- } |
- void ConvertToARGB1555Buffer() { |
- ConvertToBuffer(2, 0, false, TO, kError, |
- cricket::FOURCC_RGBO, libyuv::ARGB1555ToI420); |
- } |
- void ConvertToARGB4444Buffer() { |
- ConvertToBuffer(2, 0, false, TO, kError, |
- cricket::FOURCC_R444, libyuv::ARGB4444ToI420); |
- } |
- void ConvertToI400Buffer() { |
- ConvertToBuffer(1, 0, false, TO, 128, |
- cricket::FOURCC_I400, libyuv::I400ToI420); |
- } |
- void ConvertToYUY2Buffer() { |
- ConvertToBuffer(2, 0, false, TO, kError, |
- cricket::FOURCC_YUY2, libyuv::YUY2ToI420); |
- } |
- void ConvertToUYVYBuffer() { |
- ConvertToBuffer(2, 0, false, TO, kError, |
- cricket::FOURCC_UYVY, libyuv::UYVYToI420); |
- } |
- |
- // Tests ConvertToRGBBuffer formats with odd stride. |
- void ConvertToARGBBufferStride() { |
- ConvertToBuffer(4, kOddStride, false, TO, kError, |
- cricket::FOURCC_ARGB, libyuv::ARGBToI420); |
- } |
- void ConvertToBGRABufferStride() { |
- ConvertToBuffer(4, kOddStride, false, TO, kError, |
- cricket::FOURCC_BGRA, libyuv::BGRAToI420); |
- } |
- void ConvertToABGRBufferStride() { |
- ConvertToBuffer(4, kOddStride, false, TO, kError, |
- cricket::FOURCC_ABGR, libyuv::ABGRToI420); |
- } |
- void ConvertToRGB24BufferStride() { |
- ConvertToBuffer(3, kOddStride, false, TO, kError, |
- cricket::FOURCC_24BG, libyuv::RGB24ToI420); |
- } |
- void ConvertToRAWBufferStride() { |
- ConvertToBuffer(3, kOddStride, false, TO, kError, |
- cricket::FOURCC_RAW, libyuv::RAWToI420); |
- } |
- void ConvertToRGB565BufferStride() { |
- ConvertToBuffer(2, kOddStride, false, TO, kError, |
- cricket::FOURCC_RGBP, libyuv::RGB565ToI420); |
- } |
- void ConvertToARGB1555BufferStride() { |
- ConvertToBuffer(2, kOddStride, false, TO, kError, |
- cricket::FOURCC_RGBO, libyuv::ARGB1555ToI420); |
- } |
- void ConvertToARGB4444BufferStride() { |
- ConvertToBuffer(2, kOddStride, false, TO, kError, |
- cricket::FOURCC_R444, libyuv::ARGB4444ToI420); |
- } |
- void ConvertToI400BufferStride() { |
- ConvertToBuffer(1, kOddStride, false, TO, 128, |
- cricket::FOURCC_I400, libyuv::I400ToI420); |
- } |
- void ConvertToYUY2BufferStride() { |
- ConvertToBuffer(2, kOddStride, false, TO, kError, |
- cricket::FOURCC_YUY2, libyuv::YUY2ToI420); |
- } |
- void ConvertToUYVYBufferStride() { |
- ConvertToBuffer(2, kOddStride, false, TO, kError, |
- cricket::FOURCC_UYVY, libyuv::UYVYToI420); |
- } |
- |
- // Tests ConvertToRGBBuffer formats with negative stride to invert image. |
- void ConvertToARGBBufferInverted() { |
- ConvertToBuffer(4, 0, true, TO, kError, |
- cricket::FOURCC_ARGB, libyuv::ARGBToI420); |
- } |
- void ConvertToBGRABufferInverted() { |
- ConvertToBuffer(4, 0, true, TO, kError, |
- cricket::FOURCC_BGRA, libyuv::BGRAToI420); |
- } |
- void ConvertToABGRBufferInverted() { |
- ConvertToBuffer(4, 0, true, TO, kError, |
- cricket::FOURCC_ABGR, libyuv::ABGRToI420); |
- } |
- void ConvertToRGB24BufferInverted() { |
- ConvertToBuffer(3, 0, true, TO, kError, |
- cricket::FOURCC_24BG, libyuv::RGB24ToI420); |
- } |
- void ConvertToRAWBufferInverted() { |
- ConvertToBuffer(3, 0, true, TO, kError, |
- cricket::FOURCC_RAW, libyuv::RAWToI420); |
- } |
- void ConvertToRGB565BufferInverted() { |
- ConvertToBuffer(2, 0, true, TO, kError, |
- cricket::FOURCC_RGBP, libyuv::RGB565ToI420); |
- } |
- void ConvertToARGB1555BufferInverted() { |
- ConvertToBuffer(2, 0, true, TO, kError, |
- cricket::FOURCC_RGBO, libyuv::ARGB1555ToI420); |
- } |
- void ConvertToARGB4444BufferInverted() { |
- ConvertToBuffer(2, 0, true, TO, kError, |
- cricket::FOURCC_R444, libyuv::ARGB4444ToI420); |
- } |
- void ConvertToI400BufferInverted() { |
- ConvertToBuffer(1, 0, true, TO, 128, |
- cricket::FOURCC_I400, libyuv::I400ToI420); |
- } |
- void ConvertToYUY2BufferInverted() { |
- ConvertToBuffer(2, 0, true, TO, kError, |
- cricket::FOURCC_YUY2, libyuv::YUY2ToI420); |
- } |
- void ConvertToUYVYBufferInverted() { |
- ConvertToBuffer(2, 0, true, TO, kError, |
- cricket::FOURCC_UYVY, libyuv::UYVYToI420); |
- } |
- |
- // Tests ConvertFrom formats. |
- void ConvertFromARGBBuffer() { |
- ConvertToBuffer(4, 0, false, FROM, kError, |
- cricket::FOURCC_ARGB, libyuv::ARGBToI420); |
- } |
- void ConvertFromBGRABuffer() { |
- ConvertToBuffer(4, 0, false, FROM, kError, |
- cricket::FOURCC_BGRA, libyuv::BGRAToI420); |
- } |
- void ConvertFromABGRBuffer() { |
- ConvertToBuffer(4, 0, false, FROM, kError, |
- cricket::FOURCC_ABGR, libyuv::ABGRToI420); |
- } |
- void ConvertFromRGB24Buffer() { |
- ConvertToBuffer(3, 0, false, FROM, kError, |
- cricket::FOURCC_24BG, libyuv::RGB24ToI420); |
- } |
- void ConvertFromRAWBuffer() { |
- ConvertToBuffer(3, 0, false, FROM, kError, |
- cricket::FOURCC_RAW, libyuv::RAWToI420); |
- } |
- void ConvertFromRGB565Buffer() { |
- ConvertToBuffer(2, 0, false, FROM, kError, |
- cricket::FOURCC_RGBP, libyuv::RGB565ToI420); |
- } |
- void ConvertFromARGB1555Buffer() { |
- ConvertToBuffer(2, 0, false, FROM, kError, |
- cricket::FOURCC_RGBO, libyuv::ARGB1555ToI420); |
- } |
- void ConvertFromARGB4444Buffer() { |
- ConvertToBuffer(2, 0, false, FROM, kError, |
- cricket::FOURCC_R444, libyuv::ARGB4444ToI420); |
- } |
- void ConvertFromI400Buffer() { |
- ConvertToBuffer(1, 0, false, FROM, 128, |
- cricket::FOURCC_I400, libyuv::I400ToI420); |
- } |
- void ConvertFromYUY2Buffer() { |
- ConvertToBuffer(2, 0, false, FROM, kError, |
- cricket::FOURCC_YUY2, libyuv::YUY2ToI420); |
- } |
- void ConvertFromUYVYBuffer() { |
- ConvertToBuffer(2, 0, false, FROM, kError, |
- cricket::FOURCC_UYVY, libyuv::UYVYToI420); |
- } |
- |
- // Tests ConvertFrom formats with odd stride. |
- void ConvertFromARGBBufferStride() { |
- ConvertToBuffer(4, kOddStride, false, FROM, kError, |
- cricket::FOURCC_ARGB, libyuv::ARGBToI420); |
- } |
- void ConvertFromBGRABufferStride() { |
- ConvertToBuffer(4, kOddStride, false, FROM, kError, |
- cricket::FOURCC_BGRA, libyuv::BGRAToI420); |
- } |
- void ConvertFromABGRBufferStride() { |
- ConvertToBuffer(4, kOddStride, false, FROM, kError, |
- cricket::FOURCC_ABGR, libyuv::ABGRToI420); |
- } |
- void ConvertFromRGB24BufferStride() { |
- ConvertToBuffer(3, kOddStride, false, FROM, kError, |
- cricket::FOURCC_24BG, libyuv::RGB24ToI420); |
- } |
- void ConvertFromRAWBufferStride() { |
- ConvertToBuffer(3, kOddStride, false, FROM, kError, |
- cricket::FOURCC_RAW, libyuv::RAWToI420); |
- } |
- void ConvertFromRGB565BufferStride() { |
- ConvertToBuffer(2, kOddStride, false, FROM, kError, |
- cricket::FOURCC_RGBP, libyuv::RGB565ToI420); |
- } |
- void ConvertFromARGB1555BufferStride() { |
- ConvertToBuffer(2, kOddStride, false, FROM, kError, |
- cricket::FOURCC_RGBO, libyuv::ARGB1555ToI420); |
- } |
- void ConvertFromARGB4444BufferStride() { |
- ConvertToBuffer(2, kOddStride, false, FROM, kError, |
- cricket::FOURCC_R444, libyuv::ARGB4444ToI420); |
- } |
- void ConvertFromI400BufferStride() { |
- ConvertToBuffer(1, kOddStride, false, FROM, 128, |
- cricket::FOURCC_I400, libyuv::I400ToI420); |
- } |
- void ConvertFromYUY2BufferStride() { |
- ConvertToBuffer(2, kOddStride, false, FROM, kError, |
- cricket::FOURCC_YUY2, libyuv::YUY2ToI420); |
- } |
- void ConvertFromUYVYBufferStride() { |
- ConvertToBuffer(2, kOddStride, false, FROM, kError, |
- cricket::FOURCC_UYVY, libyuv::UYVYToI420); |
- } |
- |
- // Tests ConvertFrom formats with negative stride to invert image. |
- void ConvertFromARGBBufferInverted() { |
- ConvertToBuffer(4, 0, true, FROM, kError, |
- cricket::FOURCC_ARGB, libyuv::ARGBToI420); |
- } |
- void ConvertFromBGRABufferInverted() { |
- ConvertToBuffer(4, 0, true, FROM, kError, |
- cricket::FOURCC_BGRA, libyuv::BGRAToI420); |
- } |
- void ConvertFromABGRBufferInverted() { |
- ConvertToBuffer(4, 0, true, FROM, kError, |
- cricket::FOURCC_ABGR, libyuv::ABGRToI420); |
- } |
- void ConvertFromRGB24BufferInverted() { |
- ConvertToBuffer(3, 0, true, FROM, kError, |
- cricket::FOURCC_24BG, libyuv::RGB24ToI420); |
- } |
- void ConvertFromRAWBufferInverted() { |
- ConvertToBuffer(3, 0, true, FROM, kError, |
- cricket::FOURCC_RAW, libyuv::RAWToI420); |
- } |
- void ConvertFromRGB565BufferInverted() { |
- ConvertToBuffer(2, 0, true, FROM, kError, |
- cricket::FOURCC_RGBP, libyuv::RGB565ToI420); |
- } |
- void ConvertFromARGB1555BufferInverted() { |
- ConvertToBuffer(2, 0, true, FROM, kError, |
- cricket::FOURCC_RGBO, libyuv::ARGB1555ToI420); |
- } |
- void ConvertFromARGB4444BufferInverted() { |
- ConvertToBuffer(2, 0, true, FROM, kError, |
perkj_webrtc
2016/08/30 07:13:39
these are all tested as part of libyuv instead?
nisse-webrtc
2016/08/30 07:46:07
I can't say if they have the same coverage, but th
|
- cricket::FOURCC_R444, libyuv::ARGB4444ToI420); |
- } |
- void ConvertFromI400BufferInverted() { |
- ConvertToBuffer(1, 0, true, FROM, 128, |
- cricket::FOURCC_I400, libyuv::I400ToI420); |
- } |
- void ConvertFromYUY2BufferInverted() { |
- ConvertToBuffer(2, 0, true, FROM, kError, |
- cricket::FOURCC_YUY2, libyuv::YUY2ToI420); |
- } |
- void ConvertFromUYVYBufferInverted() { |
- ConvertToBuffer(2, 0, true, FROM, kError, |
- cricket::FOURCC_UYVY, libyuv::UYVYToI420); |
- } |
- |
// Test converting from I420 to I422. |
void ConvertToI422Buffer() { |
T frame1, frame2; |