mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2025-12-10 02:36:46 +08:00
DrMemory fix for Sobel overread.
BUG=262 TESTED=Sobel* unittests re-enabled. Review URL: https://webrtc-codereview.appspot.com/2273008 git-svn-id: http://libyuv.googlecode.com/svn/trunk@800 16f28f9a-4ce2-e073-06de-1de4eb20be90
This commit is contained in:
parent
47e856c632
commit
a927c6fb87
@ -1,6 +1,6 @@
|
||||
Name: libyuv
|
||||
URL: http://code.google.com/p/libyuv/
|
||||
Version: 798
|
||||
Version: 800
|
||||
License: BSD
|
||||
License File: LICENSE
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user