diff --git a/README.chromium b/README.chromium index 5bade0582..202ce92b1 100644 --- a/README.chromium +++ b/README.chromium @@ -1,6 +1,6 @@ Name: libyuv URL: http://code.google.com/p/libyuv/ -Version: 798 +Version: 800 License: BSD License File: LICENSE diff --git a/include/libyuv/version.h b/include/libyuv/version.h index a7ed685f5..52f264bc9 100644 --- a/include/libyuv/version.h +++ b/include/libyuv/version.h @@ -11,6 +11,6 @@ #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #define INCLUDE_LIBYUV_VERSION_H_ -#define LIBYUV_VERSION 798 +#define LIBYUV_VERSION 800 #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT diff --git a/source/planar_functions.cc b/source/planar_functions.cc index cd95f758a..acc898b84 100644 --- a/source/planar_functions.cc +++ b/source/planar_functions.cc @@ -1889,10 +1889,11 @@ int ARGBSobel(const uint8* src_argb, int src_stride_argb, uint8* row_y2 = row_y1 + kMaxStride / 4; ARGBToBayerRow(src_argb, row_y0, 0x0d090501, width); row_y0[-1] = row_y0[0]; - row_y0[width] = row_y0[width - 1]; + memset(row_y0 + width, row_y0[width - 1], 16); // extrude 16 pixels. ARGBToBayerRow(src_argb, row_y1, 0x0d090501, width); row_y1[-1] = row_y1[0]; - row_y1[width] = row_y1[width - 1]; + memset(row_y1 + width, row_y1[width - 1], 16); + memset(row_y2 + width, 0, 16); for (int y = 0; y < height; ++y) { // Convert next row of ARGB to Y. @@ -2003,10 +2004,11 @@ int ARGBSobelXY(const uint8* src_argb, int src_stride_argb, uint8* row_y2 = row_y1 + kMaxStride / 4; ARGBToBayerRow(src_argb, row_y0, 0x0d090501, width); row_y0[-1] = row_y0[0]; - row_y0[width] = row_y0[width - 1]; + memset(row_y0 + width, row_y0[width - 1], 16); // extrude 16 pixels. ARGBToBayerRow(src_argb, row_y1, 0x0d090501, width); row_y1[-1] = row_y1[0]; - row_y1[width] = row_y1[width - 1]; + memset(row_y1 + width, row_y1[width - 1], 16); + memset(row_y2 + width, 0, 16); for (int y = 0; y < height; ++y) { // Convert next row of ARGB to Y. diff --git a/unit_test/planar_test.cc b/unit_test/planar_test.cc index d54b1a52c..c51d26ea5 100644 --- a/unit_test/planar_test.cc +++ b/unit_test/planar_test.cc @@ -1502,8 +1502,7 @@ static int TestSobel(int width, int height, int benchmark_iterations, return max_diff; } -// TODO(fbarchard): Fix disabled Sobel unittests which are failing DrMemory. -TEST_F(libyuvTest, DISABLED_ARGBSobel_Any) { +TEST_F(libyuvTest, ARGBSobel_Any) { int max_diff = TestSobel(benchmark_width_ - 1, benchmark_height_, benchmark_iterations_, +1, 0); EXPECT_EQ(0, max_diff); @@ -1515,13 +1514,13 @@ TEST_F(libyuvTest, ARGBSobel_Unaligned) { EXPECT_EQ(0, max_diff); } -TEST_F(libyuvTest, DISABLED_ARGBSobel_Invert) { +TEST_F(libyuvTest, ARGBSobel_Invert) { int max_diff = TestSobel(benchmark_width_, benchmark_height_, benchmark_iterations_, -1, 0); EXPECT_EQ(0, max_diff); } -TEST_F(libyuvTest, DISABLED_ARGBSobel_Opt) { +TEST_F(libyuvTest, ARGBSobel_Opt) { int max_diff = TestSobel(benchmark_width_, benchmark_height_, benchmark_iterations_, +1, 0); EXPECT_EQ(0, max_diff); @@ -1570,8 +1569,7 @@ static int TestSobelXY(int width, int height, int benchmark_iterations, return max_diff; } -// TODO(fbarchard): Fix disabled SobelXY unittests which are failing DrMemory. -TEST_F(libyuvTest, DISABLED_ARGBSobelXY_Any) { +TEST_F(libyuvTest, ARGBSobelXY_Any) { int max_diff = TestSobelXY(benchmark_width_ - 1, benchmark_height_, benchmark_iterations_, +1, 0); EXPECT_EQ(0, max_diff); @@ -1583,13 +1581,13 @@ TEST_F(libyuvTest, ARGBSobelXY_Unaligned) { EXPECT_EQ(0, max_diff); } -TEST_F(libyuvTest, DISABLED_ARGBSobelXY_Invert) { +TEST_F(libyuvTest, ARGBSobelXY_Invert) { int max_diff = TestSobelXY(benchmark_width_, benchmark_height_, benchmark_iterations_, -1, 0); EXPECT_EQ(0, max_diff); } -TEST_F(libyuvTest, DISABLED_ARGBSobelXY_Opt) { +TEST_F(libyuvTest, ARGBSobelXY_Opt) { int max_diff = TestSobelXY(benchmark_width_, benchmark_height_, benchmark_iterations_, +1, 0); EXPECT_EQ(0, max_diff);