| Index: media/base/yuv_convert_unittest.cc
|
| diff --git a/media/base/yuv_convert_unittest.cc b/media/base/yuv_convert_unittest.cc
|
| index a05e15a2e025d449bfe17fb1d71fdb406378f65a..ec872c89b684bf0cb2be0ff62e8a031eacf1b4f0 100644
|
| --- a/media/base/yuv_convert_unittest.cc
|
| +++ b/media/base/yuv_convert_unittest.cc
|
| @@ -2,21 +2,23 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "media/base/yuv_convert.h"
|
| +
|
| #include <stddef.h>
|
| #include <stdint.h>
|
|
|
| +#include <memory>
|
| +
|
| #include "base/base_paths.h"
|
| #include "base/cpu.h"
|
| #include "base/files/file_util.h"
|
| #include "base/logging.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| #include "base/path_service.h"
|
| #include "build/build_config.h"
|
| #include "media/base/djb2.h"
|
| #include "media/base/simd/convert_rgb_to_yuv.h"
|
| #include "media/base/simd/convert_yuv_to_rgb.h"
|
| #include "media/base/simd/filter_yuv.h"
|
| -#include "media/base/yuv_convert.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "ui/gfx/geometry/rect.h"
|
|
|
| @@ -46,10 +48,10 @@ static const int kSourceAOffset = kSourceYSize * 12 / 8;
|
| static const int kYUVA12Size = kSourceYSize * 20 / 8;
|
| #endif
|
|
|
| -// Helper for reading test data into a scoped_ptr<uint8_t[]>.
|
| +// Helper for reading test data into a std::unique_ptr<uint8_t[]>.
|
| static void ReadData(const base::FilePath::CharType* filename,
|
| int expected_size,
|
| - scoped_ptr<uint8_t[]>* data) {
|
| + std::unique_ptr<uint8_t[]>* data) {
|
| data->reset(new uint8_t[expected_size]);
|
|
|
| base::FilePath path;
|
| @@ -70,22 +72,22 @@ static void ReadData(const base::FilePath::CharType* filename,
|
| CHECK_EQ(bytes_read, expected_size);
|
| }
|
|
|
| -static void ReadYV12Data(scoped_ptr<uint8_t[]>* data) {
|
| +static void ReadYV12Data(std::unique_ptr<uint8_t[]>* data) {
|
| ReadData(FILE_PATH_LITERAL("bali_640x360_P420.yuv"), kYUV12Size, data);
|
| }
|
|
|
| -static void ReadYV16Data(scoped_ptr<uint8_t[]>* data) {
|
| +static void ReadYV16Data(std::unique_ptr<uint8_t[]>* data) {
|
| ReadData(FILE_PATH_LITERAL("bali_640x360_P422.yuv"), kYUV16Size, data);
|
| }
|
|
|
| #if !defined(ARCH_CPU_ARM_FAMILY) && !defined(ARCH_CPU_MIPS_FAMILY) && \
|
| !defined(OS_ANDROID)
|
| -static void ReadYV12AData(scoped_ptr<uint8_t[]>* data) {
|
| +static void ReadYV12AData(std::unique_ptr<uint8_t[]>* data) {
|
| ReadData(FILE_PATH_LITERAL("bali_640x360_P420_alpha.yuv"), kYUVA12Size, data);
|
| }
|
| #endif
|
|
|
| -static void ReadRGB24Data(scoped_ptr<uint8_t[]>* data) {
|
| +static void ReadRGB24Data(std::unique_ptr<uint8_t[]>* data) {
|
| ReadData(FILE_PATH_LITERAL("bali_640x360_RGB24.rgb"), kRGB24Size, data);
|
| }
|
|
|
| @@ -102,9 +104,10 @@ namespace media {
|
|
|
| TEST(YUVConvertTest, YV12) {
|
| // Allocate all surfaces.
|
| - scoped_ptr<uint8_t[]> yuv_bytes;
|
| - scoped_ptr<uint8_t[]> rgb_bytes(new uint8_t[kRGBSize]);
|
| - scoped_ptr<uint8_t[]> rgb_converted_bytes(new uint8_t[kRGBSizeConverted]);
|
| + std::unique_ptr<uint8_t[]> yuv_bytes;
|
| + std::unique_ptr<uint8_t[]> rgb_bytes(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> rgb_converted_bytes(
|
| + new uint8_t[kRGBSizeConverted]);
|
|
|
| // Read YUV reference data from file.
|
| ReadYV12Data(&yuv_bytes);
|
| @@ -131,9 +134,10 @@ TEST(YUVConvertTest, YV12) {
|
|
|
| TEST(YUVConvertTest, YV16) {
|
| // Allocate all surfaces.
|
| - scoped_ptr<uint8_t[]> yuv_bytes;
|
| - scoped_ptr<uint8_t[]> rgb_bytes(new uint8_t[kRGBSize]);
|
| - scoped_ptr<uint8_t[]> rgb_converted_bytes(new uint8_t[kRGBSizeConverted]);
|
| + std::unique_ptr<uint8_t[]> yuv_bytes;
|
| + std::unique_ptr<uint8_t[]> rgb_bytes(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> rgb_converted_bytes(
|
| + new uint8_t[kRGBSizeConverted]);
|
|
|
| // Read YUV reference data from file.
|
| ReadYV16Data(&yuv_bytes);
|
| @@ -199,8 +203,8 @@ class YUVScaleTest : public ::testing::TestWithParam<YUVScaleTestData> {
|
| return NULL;
|
| }
|
|
|
| - scoped_ptr<uint8_t[]> yuv_bytes_;
|
| - scoped_ptr<uint8_t[]> rgb_bytes_;
|
| + std::unique_ptr<uint8_t[]> yuv_bytes_;
|
| + std::unique_ptr<uint8_t[]> rgb_bytes_;
|
| };
|
|
|
| TEST_P(YUVScaleTest, NoScale) {
|
| @@ -316,9 +320,9 @@ INSTANTIATE_TEST_CASE_P(
|
| // This tests a known worst case YUV value, and for overflow.
|
| TEST(YUVConvertTest, Clamp) {
|
| // Allocate all surfaces.
|
| - scoped_ptr<uint8_t[]> yuv_bytes(new uint8_t[1]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes(new uint8_t[1]);
|
| - scoped_ptr<uint8_t[]> rgb_converted_bytes(new uint8_t[1]);
|
| + std::unique_ptr<uint8_t[]> yuv_bytes(new uint8_t[1]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes(new uint8_t[1]);
|
| + std::unique_ptr<uint8_t[]> rgb_converted_bytes(new uint8_t[1]);
|
|
|
| // Values that failed previously in bug report.
|
| unsigned char y = 255u;
|
| @@ -349,8 +353,8 @@ TEST(YUVConvertTest, Clamp) {
|
|
|
| TEST(YUVConvertTest, RGB24ToYUV) {
|
| // Allocate all surfaces.
|
| - scoped_ptr<uint8_t[]> rgb_bytes;
|
| - scoped_ptr<uint8_t[]> yuv_converted_bytes(new uint8_t[kYUV12Size]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes;
|
| + std::unique_ptr<uint8_t[]> yuv_converted_bytes(new uint8_t[kYUV12Size]);
|
|
|
| // Read RGB24 reference data from file.
|
| ReadRGB24Data(&rgb_bytes);
|
| @@ -372,10 +376,10 @@ TEST(YUVConvertTest, RGB24ToYUV) {
|
|
|
| TEST(YUVConvertTest, RGB32ToYUV) {
|
| // Allocate all surfaces.
|
| - scoped_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes(new uint8_t[kRGBSize]);
|
| - scoped_ptr<uint8_t[]> yuv_converted_bytes(new uint8_t[kYUV12Size]);
|
| - scoped_ptr<uint8_t[]> rgb_converted_bytes(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> yuv_converted_bytes(new uint8_t[kYUV12Size]);
|
| + std::unique_ptr<uint8_t[]> rgb_converted_bytes(new uint8_t[kRGBSize]);
|
|
|
| // Read YUV reference data from file.
|
| base::FilePath yuv_url;
|
| @@ -443,7 +447,7 @@ TEST(YUVConvertTest, DownScaleYUVToRGB32WithRect) {
|
| .Append(FILE_PATH_LITERAL("data"))
|
| .Append(FILE_PATH_LITERAL("bali_640x360_P420.yuv"));
|
| const size_t size_of_yuv = kSourceYSize * 12 / 8; // 12 bpp.
|
| - scoped_ptr<uint8_t[]> yuv_bytes(new uint8_t[size_of_yuv]);
|
| + std::unique_ptr<uint8_t[]> yuv_bytes(new uint8_t[size_of_yuv]);
|
| EXPECT_EQ(static_cast<int>(size_of_yuv),
|
| base::ReadFile(yuv_url,
|
| reinterpret_cast<char*>(yuv_bytes.get()),
|
| @@ -452,7 +456,7 @@ TEST(YUVConvertTest, DownScaleYUVToRGB32WithRect) {
|
| // Scale the full frame of YUV to 32 bit ARGB.
|
| // The API currently only supports down-scaling, so we don't test up-scaling.
|
| const size_t size_of_rgb_scaled = kDownScaledWidth * kDownScaledHeight * kBpp;
|
| - scoped_ptr<uint8_t[]> rgb_scaled_bytes(new uint8_t[size_of_rgb_scaled]);
|
| + std::unique_ptr<uint8_t[]> rgb_scaled_bytes(new uint8_t[size_of_rgb_scaled]);
|
| gfx::Rect sub_rect(0, 0, kDownScaledWidth, kDownScaledHeight);
|
|
|
| // We can't compare with the full-frame scaler because it uses slightly
|
| @@ -509,10 +513,12 @@ TEST(YUVConvertTest, DownScaleYUVToRGB32WithRect) {
|
| #if !defined(OS_ANDROID)
|
| TEST(YUVConvertTest, YUVAtoARGB_MMX_MatchReference) {
|
| // Allocate all surfaces.
|
| - scoped_ptr<uint8_t[]> yuv_bytes;
|
| - scoped_ptr<uint8_t[]> rgb_bytes(new uint8_t[kRGBSize]);
|
| - scoped_ptr<uint8_t[]> rgb_converted_bytes(new uint8_t[kRGBSizeConverted]);
|
| - scoped_ptr<uint8_t[]> rgb_converted_bytes_ref(new uint8_t[kRGBSizeConverted]);
|
| + std::unique_ptr<uint8_t[]> yuv_bytes;
|
| + std::unique_ptr<uint8_t[]> rgb_bytes(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> rgb_converted_bytes(
|
| + new uint8_t[kRGBSizeConverted]);
|
| + std::unique_ptr<uint8_t[]> rgb_converted_bytes_ref(
|
| + new uint8_t[kRGBSizeConverted]);
|
|
|
| // Read YUV reference data from file.
|
| ReadYV12AData(&yuv_bytes);
|
| @@ -558,10 +564,10 @@ TEST(YUVConvertTest, RGB32ToYUV_SSE2_MatchReference) {
|
| }
|
|
|
| // Allocate all surfaces.
|
| - scoped_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes(new uint8_t[kRGBSize]);
|
| - scoped_ptr<uint8_t[]> yuv_converted_bytes(new uint8_t[kYUV12Size]);
|
| - scoped_ptr<uint8_t[]> yuv_reference_bytes(new uint8_t[kYUV12Size]);
|
| + std::unique_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> yuv_converted_bytes(new uint8_t[kYUV12Size]);
|
| + std::unique_ptr<uint8_t[]> yuv_reference_bytes(new uint8_t[kYUV12Size]);
|
|
|
| ReadYV12Data(&yuv_bytes);
|
|
|
| @@ -644,9 +650,9 @@ TEST(YUVConvertTest, ConvertYUVToRGB32Row_SSE) {
|
| return;
|
| }
|
|
|
| - scoped_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes_reference(new uint8_t[kRGBSize]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes_converted(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes_reference(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes_converted(new uint8_t[kRGBSize]);
|
| ReadYV12Data(&yuv_bytes);
|
|
|
| const int kWidth = 167;
|
| @@ -678,9 +684,9 @@ TEST(YUVConvertTest, ScaleYUVToRGB32Row_SSE) {
|
| return;
|
| }
|
|
|
| - scoped_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes_reference(new uint8_t[kRGBSize]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes_converted(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes_reference(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes_converted(new uint8_t[kRGBSize]);
|
| ReadYV12Data(&yuv_bytes);
|
|
|
| const int kWidth = 167;
|
| @@ -712,9 +718,9 @@ TEST(YUVConvertTest, LinearScaleYUVToRGB32Row_SSE) {
|
| return;
|
| }
|
|
|
| - scoped_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes_reference(new uint8_t[kRGBSize]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes_converted(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes_reference(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes_converted(new uint8_t[kRGBSize]);
|
| ReadYV12Data(&yuv_bytes);
|
|
|
| const int kWidth = 167;
|
| @@ -741,8 +747,8 @@ TEST(YUVConvertTest, LinearScaleYUVToRGB32Row_SSE) {
|
| #endif // defined(OS_WIN) && (ARCH_CPU_X86 || COMPONENT_BUILD)
|
|
|
| TEST(YUVConvertTest, FilterYUVRows_C_OutOfBounds) {
|
| - scoped_ptr<uint8_t[]> src(new uint8_t[16]);
|
| - scoped_ptr<uint8_t[]> dst(new uint8_t[16]);
|
| + std::unique_ptr<uint8_t[]> src(new uint8_t[16]);
|
| + std::unique_ptr<uint8_t[]> dst(new uint8_t[16]);
|
|
|
| memset(src.get(), 0xff, 16);
|
| memset(dst.get(), 0, 16);
|
| @@ -762,8 +768,8 @@ TEST(YUVConvertTest, FilterYUVRows_SSE2_OutOfBounds) {
|
| return;
|
| }
|
|
|
| - scoped_ptr<uint8_t[]> src(new uint8_t[16]);
|
| - scoped_ptr<uint8_t[]> dst(new uint8_t[16]);
|
| + std::unique_ptr<uint8_t[]> src(new uint8_t[16]);
|
| + std::unique_ptr<uint8_t[]> dst(new uint8_t[16]);
|
|
|
| memset(src.get(), 0xff, 16);
|
| memset(dst.get(), 0, 16);
|
| @@ -784,9 +790,9 @@ TEST(YUVConvertTest, FilterYUVRows_SSE2_UnalignedDestination) {
|
| }
|
|
|
| const int kSize = 64;
|
| - scoped_ptr<uint8_t[]> src(new uint8_t[kSize]);
|
| - scoped_ptr<uint8_t[]> dst_sample(new uint8_t[kSize]);
|
| - scoped_ptr<uint8_t[]> dst(new uint8_t[kSize]);
|
| + std::unique_ptr<uint8_t[]> src(new uint8_t[kSize]);
|
| + std::unique_ptr<uint8_t[]> dst_sample(new uint8_t[kSize]);
|
| + std::unique_ptr<uint8_t[]> dst(new uint8_t[kSize]);
|
|
|
| memset(dst_sample.get(), 0, kSize);
|
| memset(dst.get(), 0, kSize);
|
| @@ -808,9 +814,9 @@ TEST(YUVConvertTest, FilterYUVRows_SSE2_UnalignedDestination) {
|
| #if defined(ARCH_CPU_X86_64)
|
|
|
| TEST(YUVConvertTest, ScaleYUVToRGB32Row_SSE2_X64) {
|
| - scoped_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes_reference(new uint8_t[kRGBSize]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes_converted(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes_reference(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes_converted(new uint8_t[kRGBSize]);
|
| ReadYV12Data(&yuv_bytes);
|
|
|
| const int kWidth = 167;
|
| @@ -836,9 +842,9 @@ TEST(YUVConvertTest, ScaleYUVToRGB32Row_SSE2_X64) {
|
| }
|
|
|
| TEST(YUVConvertTest, LinearScaleYUVToRGB32Row_MMX_X64) {
|
| - scoped_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes_reference(new uint8_t[kRGBSize]);
|
| - scoped_ptr<uint8_t[]> rgb_bytes_converted(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> yuv_bytes(new uint8_t[kYUV12Size]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes_reference(new uint8_t[kRGBSize]);
|
| + std::unique_ptr<uint8_t[]> rgb_bytes_converted(new uint8_t[kRGBSize]);
|
| ReadYV12Data(&yuv_bytes);
|
|
|
| const int kWidth = 167;
|
|
|