mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2025-12-08 01:36:47 +08:00
use width + 1 for odd width tests
Bug: libyuv:894, libyuv:898, libyuv:899 Change-Id: Ieba8eaeb8b06f0323824967776673e339b263220 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2809701 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
This commit is contained in:
parent
2cd098f83b
commit
287158925b
@ -1,6 +1,6 @@
|
||||
Name: libyuv
|
||||
URL: http://code.google.com/p/libyuv/
|
||||
Version: 1785
|
||||
Version: 1786
|
||||
License: BSD
|
||||
License File: LICENSE
|
||||
|
||||
|
||||
@ -11,6 +11,6 @@
|
||||
#ifndef INCLUDE_LIBYUV_VERSION_H_
|
||||
#define INCLUDE_LIBYUV_VERSION_H_
|
||||
|
||||
#define LIBYUV_VERSION 1785
|
||||
#define LIBYUV_VERSION 1786
|
||||
|
||||
#endif // INCLUDE_LIBYUV_VERSION_H_
|
||||
|
||||
@ -1003,6 +1003,8 @@ void SplitARGBPlaneAlpha(const uint8_t* src_argb,
|
||||
uint8_t* dst_b, uint8_t* dst_a, int width) =
|
||||
SplitARGBRow_C;
|
||||
|
||||
assert(height > 0);
|
||||
|
||||
if (src_stride_argb == width * 4 && dst_stride_r == width &&
|
||||
dst_stride_g == width && dst_stride_b == width && dst_stride_a == width) {
|
||||
width *= height;
|
||||
@ -1068,6 +1070,7 @@ void SplitARGBPlaneOpaque(const uint8_t* src_argb,
|
||||
int y;
|
||||
void (*SplitXRGBRow)(const uint8_t* src_rgb, uint8_t* dst_r, uint8_t* dst_g,
|
||||
uint8_t* dst_b, int width) = SplitXRGBRow_C;
|
||||
assert(height > 0);
|
||||
|
||||
if (src_stride_argb == width * 4 && dst_stride_r == width &&
|
||||
dst_stride_g == width && dst_stride_b == width) {
|
||||
@ -1131,6 +1134,7 @@ void SplitARGBPlane(const uint8_t* src_argb,
|
||||
int dst_stride_a,
|
||||
int width,
|
||||
int height) {
|
||||
// Negative height means invert the image.
|
||||
if (height < 0) {
|
||||
height = -height;
|
||||
dst_r = dst_r + (height - 1) * dst_stride_r;
|
||||
@ -1171,6 +1175,8 @@ void MergeARGBPlaneAlpha(const uint8_t* src_r,
|
||||
const uint8_t* src_b, const uint8_t* src_a,
|
||||
uint8_t* dst_argb, int width) = MergeARGBRow_C;
|
||||
|
||||
assert(height > 0);
|
||||
|
||||
if (src_stride_r == width && src_stride_g == width && src_stride_b == width &&
|
||||
src_stride_a == width && dst_stride_argb == width * 4) {
|
||||
width *= height;
|
||||
@ -1229,6 +1235,8 @@ void MergeARGBPlaneOpaque(const uint8_t* src_r,
|
||||
const uint8_t* src_b, uint8_t* dst_argb, int width) =
|
||||
MergeXRGBRow_C;
|
||||
|
||||
assert(height > 0);
|
||||
|
||||
if (src_stride_r == width && src_stride_g == width && src_stride_b == width &&
|
||||
dst_stride_argb == width * 4) {
|
||||
width *= height;
|
||||
|
||||
@ -61,6 +61,8 @@ ANY41(MergeARGBRow_Any_AVX2, MergeARGBRow_AVX2, 0, 0, 4, 15)
|
||||
ANY41(MergeARGBRow_Any_NEON, MergeARGBRow_NEON, 0, 0, 4, 15)
|
||||
#endif
|
||||
|
||||
// Note that odd width replication includes 444 due to implementation
|
||||
// on arm that subsamples 444 to 422 internally.
|
||||
// Any 4 planes to 1 with yuvconstants
|
||||
#define ANY41C(NAMEANY, ANY_SIMD, UVSHIFT, DUVSHIFT, BPP, MASK) \
|
||||
void NAMEANY(const uint8_t* y_buf, const uint8_t* u_buf, \
|
||||
@ -77,6 +79,10 @@ ANY41(MergeARGBRow_Any_NEON, MergeARGBRow_NEON, 0, 0, 4, 15)
|
||||
memcpy(temp + 64, u_buf + (n >> UVSHIFT), SS(r, UVSHIFT)); \
|
||||
memcpy(temp + 128, v_buf + (n >> UVSHIFT), SS(r, UVSHIFT)); \
|
||||
memcpy(temp + 192, a_buf + n, r); \
|
||||
if (width & 1) { \
|
||||
temp[64 + SS(r, UVSHIFT)] = temp[64 + SS(r, UVSHIFT) - 1]; \
|
||||
temp[128 + SS(r, UVSHIFT)] = temp[128 + SS(r, UVSHIFT) - 1]; \
|
||||
} \
|
||||
ANY_SIMD(temp, temp + 64, temp + 128, temp + 192, temp + 256, \
|
||||
yuvconstants, MASK + 1); \
|
||||
memcpy(dst_ptr + (n >> DUVSHIFT) * BPP, temp + 256, \
|
||||
@ -200,7 +206,7 @@ ANY41CT(I410AlphaToARGBRow_Any_AVX2,
|
||||
memcpy(temp + 32, b_buf + n, r * SBPP); \
|
||||
memcpy(temp + 48, a_buf + n, r * SBPP); \
|
||||
ANY_SIMD(temp, temp + 16, temp + 32, temp + 48, out, depth, MASK + 1); \
|
||||
memcpy((uint8_t *)dst_ptr + n * BPP, out, r * BPP); \
|
||||
memcpy((uint8_t*)dst_ptr + n * BPP, out, r * BPP); \
|
||||
}
|
||||
|
||||
#ifdef HAS_MERGEAR64ROW_AVX2
|
||||
@ -490,7 +496,7 @@ ANY31CT(I212ToAR30Row_Any_AVX2, I212ToAR30Row_AVX2, 1, 0, uint16_t, 2, 4, 15)
|
||||
memcpy(temp + 16, g_buf + n, r * SBPP); \
|
||||
memcpy(temp + 32, b_buf + n, r * SBPP); \
|
||||
ANY_SIMD(temp, temp + 16, temp + 32, out, depth, MASK + 1); \
|
||||
memcpy((uint8_t *)dst_ptr + n * BPP, out, r * BPP); \
|
||||
memcpy((uint8_t*)dst_ptr + n * BPP, out, r * BPP); \
|
||||
}
|
||||
|
||||
#ifdef HAS_MERGEXR30ROW_AVX2
|
||||
|
||||
@ -4380,13 +4380,14 @@ void NV21ToYUV24Row_C(const uint8_t* src_y,
|
||||
}
|
||||
|
||||
// Filter 2 rows of AYUV UV's (444) into UV (420).
|
||||
// AYUV is VUYA in memory. UV for NV12 is UV order in memory.
|
||||
void AYUVToUVRow_C(const uint8_t* src_ayuv,
|
||||
int src_stride_ayuv,
|
||||
uint8_t* dst_uv,
|
||||
int width) {
|
||||
// Output a row of UV values, filtering 2x2 rows of AYUV.
|
||||
int x;
|
||||
for (x = 0; x < width; x += 2) {
|
||||
for (x = 0; x < width - 1; x += 2) {
|
||||
dst_uv[0] = (src_ayuv[1] + src_ayuv[5] + src_ayuv[src_stride_ayuv + 1] +
|
||||
src_ayuv[src_stride_ayuv + 5] + 2) >>
|
||||
2;
|
||||
@ -4397,12 +4398,8 @@ void AYUVToUVRow_C(const uint8_t* src_ayuv,
|
||||
dst_uv += 2;
|
||||
}
|
||||
if (width & 1) {
|
||||
dst_uv[0] = (src_ayuv[0] + src_ayuv[0] + src_ayuv[src_stride_ayuv + 0] +
|
||||
src_ayuv[src_stride_ayuv + 0] + 2) >>
|
||||
2;
|
||||
dst_uv[1] = (src_ayuv[1] + src_ayuv[1] + src_ayuv[src_stride_ayuv + 1] +
|
||||
src_ayuv[src_stride_ayuv + 1] + 2) >>
|
||||
2;
|
||||
dst_uv[0] = (src_ayuv[1] + src_ayuv[src_stride_ayuv + 1] + 1) >> 1;
|
||||
dst_uv[1] = (src_ayuv[0] + src_ayuv[src_stride_ayuv + 0] + 1) >> 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4413,7 +4410,7 @@ void AYUVToVURow_C(const uint8_t* src_ayuv,
|
||||
int width) {
|
||||
// Output a row of VU values, filtering 2x2 rows of AYUV.
|
||||
int x;
|
||||
for (x = 0; x < width; x += 2) {
|
||||
for (x = 0; x < width - 1; x += 2) {
|
||||
dst_vu[0] = (src_ayuv[0] + src_ayuv[4] + src_ayuv[src_stride_ayuv + 0] +
|
||||
src_ayuv[src_stride_ayuv + 4] + 2) >>
|
||||
2;
|
||||
@ -4424,12 +4421,8 @@ void AYUVToVURow_C(const uint8_t* src_ayuv,
|
||||
dst_vu += 2;
|
||||
}
|
||||
if (width & 1) {
|
||||
dst_vu[0] = (src_ayuv[0] + src_ayuv[0] + src_ayuv[src_stride_ayuv + 0] +
|
||||
src_ayuv[src_stride_ayuv + 0] + 2) >>
|
||||
2;
|
||||
dst_vu[1] = (src_ayuv[1] + src_ayuv[1] + src_ayuv[src_stride_ayuv + 1] +
|
||||
src_ayuv[src_stride_ayuv + 1] + 2) >>
|
||||
2;
|
||||
dst_vu[0] = (src_ayuv[0] + src_ayuv[src_stride_ayuv + 0] + 1) >> 1;
|
||||
dst_vu[1] = (src_ayuv[1] + src_ayuv[src_stride_ayuv + 1] + 1) >> 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -5809,12 +5809,12 @@ void MergeAR64Row_AVX2(const uint16_t* src_r,
|
||||
"+r"(src_a), // %3
|
||||
"+r"(dst_ar64), // %4
|
||||
#if defined(__i386__)
|
||||
"+m"(width) // %5
|
||||
"+m"(width) // %5
|
||||
#else
|
||||
"+rm"(width) // %5
|
||||
"+rm"(width) // %5
|
||||
#endif
|
||||
: "m"(shift), // %6
|
||||
"m"(mask), // %7
|
||||
: "m"(shift), // %6
|
||||
"m"(mask), // %7
|
||||
"m"(MergeAR64Permute) // %8
|
||||
: "memory", "cc", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6",
|
||||
"xmm7");
|
||||
@ -5871,13 +5871,13 @@ void MergeXR64Row_AVX2(const uint16_t* src_r,
|
||||
"subl $0x10,%4 \n"
|
||||
"jg 1b \n"
|
||||
"vzeroupper \n"
|
||||
: "+r"(src_r), // %0
|
||||
"+r"(src_g), // %1
|
||||
"+r"(src_b), // %2
|
||||
"+r"(dst_ar64), // %3
|
||||
"+r"(width) // %4
|
||||
: "m"(shift), // %5
|
||||
"m"(mask), // %6
|
||||
: "+r"(src_r), // %0
|
||||
"+r"(src_g), // %1
|
||||
"+r"(src_b), // %2
|
||||
"+r"(dst_ar64), // %3
|
||||
"+r"(width) // %4
|
||||
: "m"(shift), // %5
|
||||
"m"(mask), // %6
|
||||
"m"(MergeAR64Permute) // %7
|
||||
: "memory", "cc", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6",
|
||||
"xmm7");
|
||||
@ -5934,11 +5934,11 @@ void MergeARGB16To8Row_AVX2(const uint16_t* src_r,
|
||||
"+r"(src_a), // %3
|
||||
"+r"(dst_argb), // %4
|
||||
#if defined(__i386__)
|
||||
"+m"(width) // %5
|
||||
"+m"(width) // %5
|
||||
#else
|
||||
"+rm"(width) // %5
|
||||
"+rm"(width) // %5
|
||||
#endif
|
||||
: "m"(shift), // %6
|
||||
: "m"(shift), // %6
|
||||
"m"(MergeARGB16To8Shuffle) // %7
|
||||
: "memory", "cc", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6");
|
||||
}
|
||||
@ -5984,12 +5984,12 @@ void MergeXRGB16To8Row_AVX2(const uint16_t* src_r,
|
||||
"subl $0x10,%4 \n"
|
||||
"jg 1b \n"
|
||||
"vzeroupper \n"
|
||||
: "+r"(src_r), // %0
|
||||
"+r"(src_g), // %1
|
||||
"+r"(src_b), // %2
|
||||
"+r"(dst_argb), // %3
|
||||
"+r"(width) // %4
|
||||
: "m"(shift), // %5
|
||||
: "+r"(src_r), // %0
|
||||
"+r"(src_g), // %1
|
||||
"+r"(src_b), // %2
|
||||
"+r"(dst_argb), // %3
|
||||
"+r"(width) // %4
|
||||
: "m"(shift), // %5
|
||||
"m"(MergeARGB16To8Shuffle) // %6
|
||||
: "memory", "cc", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6");
|
||||
}
|
||||
|
||||
@ -3713,6 +3713,7 @@ void NV21ToYUV24Row_NEON(const uint8_t* src_y,
|
||||
: "cc", "memory", "v0", "v1", "v2");
|
||||
}
|
||||
|
||||
// AYUV is YVUA in memory. UV for NV12 is UV order in memory.
|
||||
void AYUVToUVRow_NEON(const uint8_t* src_ayuv,
|
||||
int src_stride_ayuv,
|
||||
uint8_t* dst_uv,
|
||||
|
||||
@ -62,7 +62,7 @@ namespace libyuv {
|
||||
"DST_SUBSAMP_X unsupported"); \
|
||||
static_assert(DST_SUBSAMP_Y == 1 || DST_SUBSAMP_Y == 2, \
|
||||
"DST_SUBSAMP_Y unsupported"); \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kSrcHalfWidth = SUBSAMPLE(kWidth, SRC_SUBSAMP_X); \
|
||||
const int kSrcHalfHeight = SUBSAMPLE(kHeight, SRC_SUBSAMP_Y); \
|
||||
@ -137,7 +137,7 @@ namespace libyuv {
|
||||
DST_SUBSAMP_X, DST_SUBSAMP_Y, SRC_DEPTH) \
|
||||
TESTPLANARTOPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, SRC_SUBSAMP_Y, \
|
||||
FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, DST_SUBSAMP_Y, \
|
||||
benchmark_width_ - 4, _Any, +, 0, SRC_DEPTH) \
|
||||
benchmark_width_ + 1, _Any, +, 0, SRC_DEPTH) \
|
||||
TESTPLANARTOPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, SRC_SUBSAMP_Y, \
|
||||
FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, DST_SUBSAMP_Y, \
|
||||
benchmark_width_, _Unaligned, +, 1, SRC_DEPTH) \
|
||||
@ -184,7 +184,7 @@ TESTPLANARTOP(I412, uint16_t, 2, 1, 1, I444, uint8_t, 1, 1, 1, 12)
|
||||
SRC_SUBSAMP_Y, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||
W1280, N, NEG, OFF, PN, OFF_U, OFF_V) \
|
||||
TEST_F(LibYUVConvertTest, SRC_FMT_PLANAR##To##FMT_PLANAR##_##PN##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kSizeUV = \
|
||||
SUBSAMPLE(kWidth, SRC_SUBSAMP_X) * SUBSAMPLE(kHeight, SRC_SUBSAMP_Y); \
|
||||
@ -270,7 +270,7 @@ TESTPLANARTOP(I412, uint16_t, 2, 1, 1, I444, uint8_t, 1, 1, 1, 12)
|
||||
SRC_SUBSAMP_X, SRC_SUBSAMP_Y, FMT_PLANAR, SUBSAMP_X, \
|
||||
SUBSAMP_Y) \
|
||||
TESTAPLANARTOPI(SRC_FMT_PLANAR, PIXEL_STRIDE, SRC_SUBSAMP_X, SRC_SUBSAMP_Y, \
|
||||
FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, benchmark_width_ - 4, \
|
||||
FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, benchmark_width_ + 1, \
|
||||
_Any, +, 0, PN, OFF_U, OFF_V) \
|
||||
TESTAPLANARTOPI(SRC_FMT_PLANAR, PIXEL_STRIDE, SRC_SUBSAMP_X, SRC_SUBSAMP_Y, \
|
||||
FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, benchmark_width_, \
|
||||
@ -318,7 +318,7 @@ int I400ToNV21(const uint8_t* src_y,
|
||||
"DST_SUBSAMP_X unsupported"); \
|
||||
static_assert(DST_SUBSAMP_Y == 1 || DST_SUBSAMP_Y == 2, \
|
||||
"DST_SUBSAMP_Y unsupported"); \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kSrcHalfWidth = SUBSAMPLE(kWidth, SRC_SUBSAMP_X); \
|
||||
const int kSrcHalfHeight = SUBSAMPLE(kHeight, SRC_SUBSAMP_Y); \
|
||||
@ -386,7 +386,7 @@ int I400ToNV21(const uint8_t* src_y,
|
||||
DST_SUBSAMP_X, DST_SUBSAMP_Y, SRC_DEPTH) \
|
||||
TESTPLANARTOBPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, \
|
||||
DST_SUBSAMP_Y, benchmark_width_ - 4, _Any, +, 0, SRC_DEPTH) \
|
||||
DST_SUBSAMP_Y, benchmark_width_ + 1, _Any, +, 0, SRC_DEPTH) \
|
||||
TESTPLANARTOBPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, \
|
||||
DST_SUBSAMP_Y, benchmark_width_, _Unaligned, +, 1, \
|
||||
@ -424,7 +424,7 @@ TESTPLANARTOBP(I212, uint16_t, 2, 2, 1, P212, uint16_t, 2, 2, 1, 12)
|
||||
"DST_SUBSAMP_X unsupported"); \
|
||||
static_assert(DST_SUBSAMP_Y == 1 || DST_SUBSAMP_Y == 2, \
|
||||
"DST_SUBSAMP_Y unsupported"); \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kSrcHalfWidth = SUBSAMPLE(kWidth, SRC_SUBSAMP_X); \
|
||||
const int kSrcHalfHeight = SUBSAMPLE(kHeight, SRC_SUBSAMP_Y); \
|
||||
@ -493,7 +493,7 @@ TESTPLANARTOBP(I212, uint16_t, 2, 2, 1, P212, uint16_t, 2, 2, 1, 12)
|
||||
DST_SUBSAMP_X, DST_SUBSAMP_Y, SRC_DEPTH) \
|
||||
TESTBIPLANARTOBPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, \
|
||||
DST_SUBSAMP_Y, benchmark_width_ - 4, _Any, +, 0, 1, \
|
||||
DST_SUBSAMP_Y, benchmark_width_ + 1, _Any, +, 0, 1, \
|
||||
SRC_DEPTH) \
|
||||
TESTBIPLANARTOBPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, \
|
||||
@ -537,7 +537,7 @@ TESTBIPLANARTOBP(P216, uint16_t, 2, 2, 1, P416, uint16_t, 2, 1, 1, 12)
|
||||
"DST_SUBSAMP_X unsupported"); \
|
||||
static_assert(DST_SUBSAMP_Y == 1 || DST_SUBSAMP_Y == 2, \
|
||||
"DST_SUBSAMP_Y unsupported"); \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kSrcHalfWidth = SUBSAMPLE(kWidth, SRC_SUBSAMP_X); \
|
||||
const int kSrcHalfHeight = SUBSAMPLE(kHeight, SRC_SUBSAMP_Y); \
|
||||
@ -606,7 +606,7 @@ TESTBIPLANARTOBP(P216, uint16_t, 2, 2, 1, P416, uint16_t, 2, 1, 1, 12)
|
||||
DST_SUBSAMP_X, DST_SUBSAMP_Y, SRC_DEPTH) \
|
||||
TESTBIPLANARTOPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, \
|
||||
DST_SUBSAMP_Y, benchmark_width_ - 4, _Any, +, 0, SRC_DEPTH) \
|
||||
DST_SUBSAMP_Y, benchmark_width_ + 1, _Any, +, 0, SRC_DEPTH) \
|
||||
TESTBIPLANARTOPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, \
|
||||
DST_SUBSAMP_Y, benchmark_width_, _Unaligned, +, 1, \
|
||||
@ -654,7 +654,7 @@ TESTBIPLANARTOP(NV21, uint8_t, 1, 2, 2, I420, uint8_t, 1, 2, 2, 8)
|
||||
#define TESTPLANARTOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, W1280, N, NEG, OFF) \
|
||||
TEST_F(LibYUVConvertTest, FMT_PLANAR##To##FMT_B##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = ALIGNINT(benchmark_height_, YALIGN); \
|
||||
const int kStrideB = ALIGNINT(kWidth * BPP_B, ALIGN); \
|
||||
const int kStrideUV = SUBSAMPLE(kWidth, SUBSAMP_X); \
|
||||
@ -702,7 +702,7 @@ TESTBIPLANARTOP(NV21, uint8_t, 1, 2, 2, I420, uint8_t, 1, 2, 2, 8)
|
||||
#define TESTPLANARTOB(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN) \
|
||||
TESTPLANARTOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, benchmark_width_ - 4, _Any, +, 0) \
|
||||
YALIGN, benchmark_width_ + 1, _Any, +, 0) \
|
||||
TESTPLANARTOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, benchmark_width_, _Unaligned, +, 1) \
|
||||
TESTPLANARTOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
@ -774,7 +774,7 @@ TESTPLANARTOB(H420, 2, 2, AR30, 4, 4, 1)
|
||||
#define TESTQPLANARTOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, W1280, N, NEG, OFF, ATTEN) \
|
||||
TEST_F(LibYUVConvertTest, FMT_PLANAR##To##FMT_B##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = ALIGNINT(benchmark_height_, YALIGN); \
|
||||
const int kStrideB = ALIGNINT(kWidth * BPP_B, ALIGN); \
|
||||
const int kStrideUV = SUBSAMPLE(kWidth, SUBSAMP_X); \
|
||||
@ -821,7 +821,7 @@ TESTPLANARTOB(H420, 2, 2, AR30, 4, 4, 1)
|
||||
#define TESTQPLANARTOB(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN) \
|
||||
TESTQPLANARTOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, benchmark_width_ - 4, _Any, +, 0, 0) \
|
||||
YALIGN, benchmark_width_ + 1, _Any, +, 0, 0) \
|
||||
TESTQPLANARTOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, benchmark_width_, _Unaligned, +, 1, 0) \
|
||||
TESTQPLANARTOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
@ -962,7 +962,7 @@ TESTQPLANARTOB(V444Alpha, 1, 1, ABGR, 4, 4, 1)
|
||||
#define TESTBIPLANARTOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, FMT_C, \
|
||||
BPP_B, W1280, N, NEG, OFF) \
|
||||
TEST_F(LibYUVConvertTest, FMT_PLANAR##To##FMT_B##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kStrideB = kWidth * BPP_B; \
|
||||
const int kStrideUV = SUBSAMPLE(kWidth, SUBSAMP_X); \
|
||||
@ -1015,7 +1015,7 @@ TESTQPLANARTOB(V444Alpha, 1, 1, ABGR, 4, 4, 1)
|
||||
|
||||
#define TESTBIPLANARTOB(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, FMT_C, BPP_B) \
|
||||
TESTBIPLANARTOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, FMT_C, BPP_B, \
|
||||
benchmark_width_ - 4, _Any, +, 0) \
|
||||
benchmark_width_ + 1, _Any, +, 0) \
|
||||
TESTBIPLANARTOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, FMT_C, BPP_B, \
|
||||
benchmark_width_, _Unaligned, +, 1) \
|
||||
TESTBIPLANARTOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, FMT_C, BPP_B, \
|
||||
@ -1070,7 +1070,7 @@ TESTBIPLANARTOB(NV12, 2, 2, RGB565, RGB565, 2)
|
||||
#define TESTATOPLANARI(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||
W1280, N, NEG, OFF) \
|
||||
TEST_F(LibYUVConvertTest, FMT_A##To##FMT_PLANAR##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = ALIGNINT(benchmark_height_, YALIGN); \
|
||||
const int kStrideUV = SUBSAMPLE(kWidth, SUBSAMP_X); \
|
||||
const int kStride = (kStrideUV * SUBSAMP_X * 8 * BPP_A + 7) / 8; \
|
||||
@ -1117,7 +1117,7 @@ TESTBIPLANARTOB(NV12, 2, 2, RGB565, RGB565, 2)
|
||||
|
||||
#define TESTATOPLANAR(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y) \
|
||||
TESTATOPLANARI(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||
benchmark_width_ - 4, _Any, +, 0) \
|
||||
benchmark_width_ + 1, _Any, +, 0) \
|
||||
TESTATOPLANARI(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||
benchmark_width_, _Unaligned, +, 1) \
|
||||
TESTATOPLANARI(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||
@ -1152,7 +1152,7 @@ TESTATOPLANAR(YUY2, 2, 1, I422, 2, 1)
|
||||
#define TESTATOBIPLANARI(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, \
|
||||
SUBSAMP_Y, W1280, N, NEG, OFF) \
|
||||
TEST_F(LibYUVConvertTest, FMT_A##To##FMT_PLANAR##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kStride = SUBSAMPLE(kWidth, SUB_A) * BPP_A; \
|
||||
const int kStrideUV = SUBSAMPLE(kWidth, SUBSAMP_X); \
|
||||
@ -1198,7 +1198,7 @@ TESTATOPLANAR(YUY2, 2, 1, I422, 2, 1)
|
||||
|
||||
#define TESTATOBIPLANAR(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y) \
|
||||
TESTATOBIPLANARI(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||
benchmark_width_ - 4, _Any, +, 0) \
|
||||
benchmark_width_ + 1, _Any, +, 0) \
|
||||
TESTATOBIPLANARI(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||
benchmark_width_, _Unaligned, +, 1) \
|
||||
TESTATOBIPLANARI(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||
@ -1218,7 +1218,7 @@ TESTATOBIPLANAR(AYUV, 1, 4, NV21, 2, 2)
|
||||
#define TESTATOBI(FMT_A, TYPE_A, EPP_A, STRIDE_A, HEIGHT_A, FMT_B, TYPE_B, \
|
||||
EPP_B, STRIDE_B, HEIGHT_B, W1280, N, NEG, OFF) \
|
||||
TEST_F(LibYUVConvertTest, FMT_A##To##FMT_B##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kHeightA = (kHeight + HEIGHT_A - 1) / HEIGHT_A * HEIGHT_A; \
|
||||
const int kHeightB = (kHeight + HEIGHT_B - 1) / HEIGHT_B * HEIGHT_B; \
|
||||
@ -1292,7 +1292,7 @@ TESTATOBIPLANAR(AYUV, 1, 4, NV21, 2, 2)
|
||||
#define TESTATOB(FMT_A, TYPE_A, EPP_A, STRIDE_A, HEIGHT_A, FMT_B, TYPE_B, \
|
||||
EPP_B, STRIDE_B, HEIGHT_B) \
|
||||
TESTATOBI(FMT_A, TYPE_A, EPP_A, STRIDE_A, HEIGHT_A, FMT_B, TYPE_B, EPP_B, \
|
||||
STRIDE_B, HEIGHT_B, benchmark_width_ - 4, _Any, +, 0) \
|
||||
STRIDE_B, HEIGHT_B, benchmark_width_ + 1, _Any, +, 0) \
|
||||
TESTATOBI(FMT_A, TYPE_A, EPP_A, STRIDE_A, HEIGHT_A, FMT_B, TYPE_B, EPP_B, \
|
||||
STRIDE_B, HEIGHT_B, benchmark_width_, _Unaligned, +, 1) \
|
||||
TESTATOBI(FMT_A, TYPE_A, EPP_A, STRIDE_A, HEIGHT_A, FMT_B, TYPE_B, EPP_B, \
|
||||
@ -1374,7 +1374,7 @@ TESTATOB(AB64, uint16_t, 4, 4, 1, AR64, uint16_t, 4, 4, 1)
|
||||
#define TESTATOBDI(FMT_A, BPP_A, STRIDE_A, HEIGHT_A, FMT_B, BPP_B, STRIDE_B, \
|
||||
HEIGHT_B, W1280, N, NEG, OFF) \
|
||||
TEST_F(LibYUVConvertTest, FMT_A##To##FMT_B##Dither##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kHeightA = (kHeight + HEIGHT_A - 1) / HEIGHT_A * HEIGHT_A; \
|
||||
const int kHeightB = (kHeight + HEIGHT_B - 1) / HEIGHT_B * HEIGHT_B; \
|
||||
@ -1444,7 +1444,7 @@ TESTATOB(AB64, uint16_t, 4, 4, 1, AR64, uint16_t, 4, 4, 1)
|
||||
#define TESTATOBD(FMT_A, BPP_A, STRIDE_A, HEIGHT_A, FMT_B, BPP_B, STRIDE_B, \
|
||||
HEIGHT_B) \
|
||||
TESTATOBDI(FMT_A, BPP_A, STRIDE_A, HEIGHT_A, FMT_B, BPP_B, STRIDE_B, \
|
||||
HEIGHT_B, benchmark_width_ - 4, _Any, +, 0) \
|
||||
HEIGHT_B, benchmark_width_ + 1, _Any, +, 0) \
|
||||
TESTATOBDI(FMT_A, BPP_A, STRIDE_A, HEIGHT_A, FMT_B, BPP_B, STRIDE_B, \
|
||||
HEIGHT_B, benchmark_width_, _Unaligned, +, 1) \
|
||||
TESTATOBDI(FMT_A, BPP_A, STRIDE_A, HEIGHT_A, FMT_B, BPP_B, STRIDE_B, \
|
||||
@ -1461,7 +1461,7 @@ TESTATOBD(ARGB, 4, 4, 1, RGB565, 2, 2, 1)
|
||||
#define TESTSYMI(FMT_ATOB, TYPE_A, EPP_A, STRIDE_A, HEIGHT_A, W1280, N, NEG, \
|
||||
OFF) \
|
||||
TEST_F(LibYUVConvertTest, FMT_ATOB##_Symetric##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kHeightA = (kHeight + HEIGHT_A - 1) / HEIGHT_A * HEIGHT_A; \
|
||||
const int kStrideA = \
|
||||
@ -1500,7 +1500,7 @@ TESTATOBD(ARGB, 4, 4, 1, RGB565, 2, 2, 1)
|
||||
}
|
||||
|
||||
#define TESTSYM(FMT_ATOB, TYPE_A, EPP_A, STRIDE_A, HEIGHT_A) \
|
||||
TESTSYMI(FMT_ATOB, TYPE_A, EPP_A, STRIDE_A, HEIGHT_A, benchmark_width_ - 4, \
|
||||
TESTSYMI(FMT_ATOB, TYPE_A, EPP_A, STRIDE_A, HEIGHT_A, benchmark_width_ + 1, \
|
||||
_Any, +, 0) \
|
||||
TESTSYMI(FMT_ATOB, TYPE_A, EPP_A, STRIDE_A, HEIGHT_A, benchmark_width_, \
|
||||
_Unaligned, +, 1) \
|
||||
@ -2685,7 +2685,7 @@ TEST_F(LibYUVConvertTest, TestDither) {
|
||||
#define TESTPLANARTOBID(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, W1280, N, NEG, OFF, FMT_C, BPP_C) \
|
||||
TEST_F(LibYUVConvertTest, FMT_PLANAR##To##FMT_B##Dither##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = ALIGNINT(benchmark_height_, YALIGN); \
|
||||
const int kStrideB = ALIGNINT(kWidth * BPP_B, ALIGN); \
|
||||
const int kStrideUV = SUBSAMPLE(kWidth, SUBSAMP_X); \
|
||||
@ -2738,7 +2738,7 @@ TEST_F(LibYUVConvertTest, TestDither) {
|
||||
#define TESTPLANARTOBD(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, FMT_C, BPP_C) \
|
||||
TESTPLANARTOBID(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, benchmark_width_ - 4, _Any, +, 0, FMT_C, BPP_C) \
|
||||
YALIGN, benchmark_width_ + 1, _Any, +, 0, FMT_C, BPP_C) \
|
||||
TESTPLANARTOBID(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, benchmark_width_, _Unaligned, +, 1, FMT_C, BPP_C) \
|
||||
TESTPLANARTOBID(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
@ -2815,7 +2815,7 @@ TESTPTOB(TestUYVYToNV12, UYVYToI420, UYVYToNV12)
|
||||
#define TESTPLANARTOEI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, SUB_B, BPP_B, \
|
||||
W1280, N, NEG, OFF, FMT_C, BPP_C) \
|
||||
TEST_F(LibYUVConvertTest, FMT_PLANAR##To##FMT_B##_##FMT_C##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kStrideB = SUBSAMPLE(kWidth, SUB_B) * BPP_B; \
|
||||
const int kStrideUV = SUBSAMPLE(kWidth, SUBSAMP_X); \
|
||||
@ -2863,7 +2863,7 @@ TESTPTOB(TestUYVYToNV12, UYVYToI420, UYVYToNV12)
|
||||
#define TESTPLANARTOE(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, SUB_B, BPP_B, \
|
||||
FMT_C, BPP_C) \
|
||||
TESTPLANARTOEI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, SUB_B, BPP_B, \
|
||||
benchmark_width_ - 4, _Any, +, 0, FMT_C, BPP_C) \
|
||||
benchmark_width_ + 1, _Any, +, 0, FMT_C, BPP_C) \
|
||||
TESTPLANARTOEI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, SUB_B, BPP_B, \
|
||||
benchmark_width_, _Unaligned, +, 1, FMT_C, BPP_C) \
|
||||
TESTPLANARTOEI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, SUB_B, BPP_B, \
|
||||
@ -2927,7 +2927,7 @@ TESTPLANARTOE(I422, 2, 1, UYVY, 2, 4, ARGB, 4)
|
||||
#define TESTQPLANARTOEI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, SUB_B, BPP_B, \
|
||||
W1280, N, NEG, OFF, FMT_C, BPP_C, ATTEN) \
|
||||
TEST_F(LibYUVConvertTest, FMT_PLANAR##To##FMT_B##_##FMT_C##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kStrideB = SUBSAMPLE(kWidth, SUB_B) * BPP_B; \
|
||||
const int kSizeUV = \
|
||||
@ -2980,7 +2980,7 @@ TESTPLANARTOE(I422, 2, 1, UYVY, 2, 4, ARGB, 4)
|
||||
#define TESTQPLANARTOE(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, SUB_B, BPP_B, \
|
||||
FMT_C, BPP_C) \
|
||||
TESTQPLANARTOEI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, SUB_B, BPP_B, \
|
||||
benchmark_width_ - 4, _Any, +, 0, FMT_C, BPP_C, 0) \
|
||||
benchmark_width_ + 1, _Any, +, 0, FMT_C, BPP_C, 0) \
|
||||
TESTQPLANARTOEI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, SUB_B, BPP_B, \
|
||||
benchmark_width_, _Unaligned, +, 1, FMT_C, BPP_C, 0) \
|
||||
TESTQPLANARTOEI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, SUB_B, BPP_B, \
|
||||
@ -3028,7 +3028,7 @@ TESTQPLANARTOE(V444Alpha, 1, 1, ABGR, 1, 4, ARGB, 4)
|
||||
#define TESTPLANETOEI(FMT_A, SUB_A, BPP_A, FMT_B, SUB_B, BPP_B, W1280, N, NEG, \
|
||||
OFF, FMT_C, BPP_C) \
|
||||
TEST_F(LibYUVConvertTest, FMT_A##To##FMT_B##_##FMT_C##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kStrideA = SUBSAMPLE(kWidth, SUB_A) * BPP_A; \
|
||||
const int kStrideB = SUBSAMPLE(kWidth, SUB_B) * BPP_B; \
|
||||
@ -3065,7 +3065,7 @@ TESTQPLANARTOE(V444Alpha, 1, 1, ABGR, 1, 4, ARGB, 4)
|
||||
|
||||
#define TESTPLANETOE(FMT_A, SUB_A, BPP_A, FMT_B, SUB_B, BPP_B, FMT_C, BPP_C) \
|
||||
TESTPLANETOEI(FMT_A, SUB_A, BPP_A, FMT_B, SUB_B, BPP_B, \
|
||||
benchmark_width_ - 4, _Any, +, 0, FMT_C, BPP_C) \
|
||||
benchmark_width_ + 1, _Any, +, 0, FMT_C, BPP_C) \
|
||||
TESTPLANETOEI(FMT_A, SUB_A, BPP_A, FMT_B, SUB_B, BPP_B, benchmark_width_, \
|
||||
_Unaligned, +, 1, FMT_C, BPP_C) \
|
||||
TESTPLANETOEI(FMT_A, SUB_A, BPP_A, FMT_B, SUB_B, BPP_B, benchmark_width_, \
|
||||
@ -3223,7 +3223,7 @@ TEST_F(LibYUVConvertTest, ABGRToAR30Row_Opt) {
|
||||
#define TESTPLANAR16TOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_MASK, FMT_B, \
|
||||
BPP_B, ALIGN, YALIGN, W1280, N, NEG, SOFF, DOFF) \
|
||||
TEST_F(LibYUVConvertTest, FMT_PLANAR##To##FMT_B##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = ALIGNINT(benchmark_height_, YALIGN); \
|
||||
const int kStrideB = ALIGNINT(kWidth * BPP_B, ALIGN); \
|
||||
const int kStrideUV = SUBSAMPLE(kWidth, SUBSAMP_X); \
|
||||
@ -3270,7 +3270,7 @@ TEST_F(LibYUVConvertTest, ABGRToAR30Row_Opt) {
|
||||
#define TESTPLANAR16TOB(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_MASK, FMT_B, \
|
||||
BPP_B, ALIGN, YALIGN) \
|
||||
TESTPLANAR16TOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_MASK, FMT_B, BPP_B, \
|
||||
ALIGN, YALIGN, benchmark_width_ - 4, _Any, +, 0, 0) \
|
||||
ALIGN, YALIGN, benchmark_width_ + 1, _Any, +, 0, 0) \
|
||||
TESTPLANAR16TOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_MASK, FMT_B, BPP_B, \
|
||||
ALIGN, YALIGN, benchmark_width_, _Unaligned, +, 1, 1) \
|
||||
TESTPLANAR16TOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_MASK, FMT_B, BPP_B, \
|
||||
@ -3326,7 +3326,7 @@ TESTPLANAR16TOB(I012, 2, 2, 0xfff, AR30, 4, 4, 1)
|
||||
#define TESTQPLANAR16TOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, \
|
||||
ALIGN, YALIGN, W1280, N, NEG, OFF, ATTEN, S_DEPTH) \
|
||||
TEST_F(LibYUVConvertTest, FMT_PLANAR##To##FMT_B##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = ALIGNINT(benchmark_height_, YALIGN); \
|
||||
const int kStrideB = ALIGNINT(kWidth * BPP_B, ALIGN); \
|
||||
const int kStrideUV = SUBSAMPLE(kWidth, SUBSAMP_X); \
|
||||
@ -3382,7 +3382,7 @@ TESTPLANAR16TOB(I012, 2, 2, 0xfff, AR30, 4, 4, 1)
|
||||
#define TESTQPLANAR16TOB(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, \
|
||||
ALIGN, YALIGN, S_DEPTH) \
|
||||
TESTQPLANAR16TOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, benchmark_width_ - 4, _Any, +, 0, 0, S_DEPTH) \
|
||||
YALIGN, benchmark_width_ + 1, _Any, +, 0, 0, S_DEPTH) \
|
||||
TESTQPLANAR16TOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, benchmark_width_, _Unaligned, +, 1, 0, S_DEPTH) \
|
||||
TESTQPLANAR16TOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
@ -3544,7 +3544,7 @@ TESTQPLANAR16TOB(V410Alpha, 1, 1, ABGR, 4, 4, 1, 10)
|
||||
#define TESTBIPLANAR16TOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, \
|
||||
ALIGN, YALIGN, W1280, N, NEG, SOFF, DOFF, S_DEPTH) \
|
||||
TEST_F(LibYUVConvertTest, FMT_PLANAR##To##FMT_B##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = ALIGNINT(benchmark_height_, YALIGN); \
|
||||
const int kStrideB = ALIGNINT(kWidth * BPP_B, ALIGN); \
|
||||
const int kStrideUV = SUBSAMPLE(kWidth, SUBSAMP_X) * 2; \
|
||||
@ -3588,7 +3588,7 @@ TESTQPLANAR16TOB(V410Alpha, 1, 1, ABGR, 4, 4, 1, 10)
|
||||
#define TESTBIPLANAR16TOB(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, \
|
||||
ALIGN, YALIGN, S_DEPTH) \
|
||||
TESTBIPLANAR16TOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, benchmark_width_ - 4, _Any, +, 0, 0, S_DEPTH) \
|
||||
YALIGN, benchmark_width_ + 1, _Any, +, 0, 0, S_DEPTH) \
|
||||
TESTBIPLANAR16TOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
YALIGN, benchmark_width_, _Unaligned, +, 1, 1, S_DEPTH) \
|
||||
TESTBIPLANAR16TOBI(FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, FMT_B, BPP_B, ALIGN, \
|
||||
|
||||
@ -155,7 +155,7 @@ static int TestAttenuateI(int width,
|
||||
}
|
||||
|
||||
TEST_F(LibYUVPlanarTest, ARGBAttenuate_Any) {
|
||||
int max_diff = TestAttenuateI(benchmark_width_ - 1, benchmark_height_,
|
||||
int max_diff = TestAttenuateI(benchmark_width_ + 1, benchmark_height_,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_, +1, 0);
|
||||
EXPECT_LE(max_diff, 2);
|
||||
@ -228,7 +228,7 @@ static int TestUnattenuateI(int width,
|
||||
}
|
||||
|
||||
TEST_F(LibYUVPlanarTest, ARGBUnattenuate_Any) {
|
||||
int max_diff = TestUnattenuateI(benchmark_width_ - 1, benchmark_height_,
|
||||
int max_diff = TestUnattenuateI(benchmark_width_ + 1, benchmark_height_,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_, +1, 0);
|
||||
EXPECT_LE(max_diff, 2);
|
||||
@ -1076,7 +1076,7 @@ TEST_F(LibYUVPlanarTest, TestInterpolatePlane) {
|
||||
#define TESTTERP(FMT_A, BPP_A, STRIDE_A, FMT_B, BPP_B, STRIDE_B, W1280, TERP, \
|
||||
N, NEG, OFF) \
|
||||
TEST_F(LibYUVPlanarTest, ARGBInterpolate##TERP##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kHeight = benchmark_height_; \
|
||||
const int kStrideA = \
|
||||
(kWidth * BPP_A + STRIDE_A - 1) / STRIDE_A * STRIDE_A; \
|
||||
@ -1108,7 +1108,7 @@ TEST_F(LibYUVPlanarTest, TestInterpolatePlane) {
|
||||
}
|
||||
|
||||
#define TESTINTERPOLATE(TERP) \
|
||||
TESTTERP(ARGB, 4, 1, ARGB, 4, 1, benchmark_width_ - 1, TERP, _Any, +, 0) \
|
||||
TESTTERP(ARGB, 4, 1, ARGB, 4, 1, benchmark_width_ + 1, TERP, _Any, +, 0) \
|
||||
TESTTERP(ARGB, 4, 1, ARGB, 4, 1, benchmark_width_, TERP, _Unaligned, +, 1) \
|
||||
TESTTERP(ARGB, 4, 1, ARGB, 4, 1, benchmark_width_, TERP, _Invert, -, 0) \
|
||||
TESTTERP(ARGB, 4, 1, ARGB, 4, 1, benchmark_width_, TERP, _Opt, +, 0)
|
||||
@ -1174,7 +1174,7 @@ static int TestBlend(int width,
|
||||
|
||||
TEST_F(LibYUVPlanarTest, ARGBBlend_Any) {
|
||||
int max_diff =
|
||||
TestBlend(benchmark_width_ - 4, benchmark_height_, benchmark_iterations_,
|
||||
TestBlend(benchmark_width_ + 1, benchmark_height_, benchmark_iterations_,
|
||||
disable_cpu_flags_, benchmark_cpu_info_, +1, 0, 1);
|
||||
EXPECT_LE(max_diff, 1);
|
||||
}
|
||||
@ -1280,7 +1280,7 @@ TEST_F(LibYUVPlanarTest, BlendPlane_Unaligned) {
|
||||
disable_cpu_flags_, benchmark_cpu_info_, +1, 1);
|
||||
}
|
||||
TEST_F(LibYUVPlanarTest, BlendPlane_Any) {
|
||||
TestBlendPlane(benchmark_width_ - 4, benchmark_height_, benchmark_iterations_,
|
||||
TestBlendPlane(benchmark_width_ + 1, benchmark_height_, benchmark_iterations_,
|
||||
disable_cpu_flags_, benchmark_cpu_info_, +1, 1);
|
||||
}
|
||||
TEST_F(LibYUVPlanarTest, BlendPlane_Invert) {
|
||||
@ -1375,7 +1375,7 @@ TEST_F(LibYUVPlanarTest, I420Blend_Unaligned) {
|
||||
|
||||
// TODO(fbarchard): DISABLED because _Any uses C. Avoid C and re-enable.
|
||||
TEST_F(LibYUVPlanarTest, DISABLED_I420Blend_Any) {
|
||||
TestI420Blend(benchmark_width_ - 4, benchmark_height_, benchmark_iterations_,
|
||||
TestI420Blend(benchmark_width_ + 1, benchmark_height_, benchmark_iterations_,
|
||||
disable_cpu_flags_, benchmark_cpu_info_, +1, 0);
|
||||
}
|
||||
TEST_F(LibYUVPlanarTest, I420Blend_Invert) {
|
||||
@ -1524,7 +1524,7 @@ static int TestMultiply(int width,
|
||||
}
|
||||
|
||||
TEST_F(LibYUVPlanarTest, ARGBMultiply_Any) {
|
||||
int max_diff = TestMultiply(benchmark_width_ - 1, benchmark_height_,
|
||||
int max_diff = TestMultiply(benchmark_width_ + 1, benchmark_height_,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_, +1, 0);
|
||||
EXPECT_LE(max_diff, 1);
|
||||
@ -1599,7 +1599,7 @@ static int TestAdd(int width,
|
||||
|
||||
TEST_F(LibYUVPlanarTest, ARGBAdd_Any) {
|
||||
int max_diff =
|
||||
TestAdd(benchmark_width_ - 1, benchmark_height_, benchmark_iterations_,
|
||||
TestAdd(benchmark_width_ + 1, benchmark_height_, benchmark_iterations_,
|
||||
disable_cpu_flags_, benchmark_cpu_info_, +1, 0);
|
||||
EXPECT_LE(max_diff, 1);
|
||||
}
|
||||
@ -1672,7 +1672,7 @@ static int TestSubtract(int width,
|
||||
}
|
||||
|
||||
TEST_F(LibYUVPlanarTest, ARGBSubtract_Any) {
|
||||
int max_diff = TestSubtract(benchmark_width_ - 1, benchmark_height_,
|
||||
int max_diff = TestSubtract(benchmark_width_ + 1, benchmark_height_,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_, +1, 0);
|
||||
EXPECT_LE(max_diff, 1);
|
||||
@ -1745,7 +1745,7 @@ static int TestSobel(int width,
|
||||
|
||||
TEST_F(LibYUVPlanarTest, ARGBSobel_Any) {
|
||||
int max_diff =
|
||||
TestSobel(benchmark_width_ - 1, benchmark_height_, benchmark_iterations_,
|
||||
TestSobel(benchmark_width_ + 1, benchmark_height_, benchmark_iterations_,
|
||||
disable_cpu_flags_, benchmark_cpu_info_, +1, 0);
|
||||
EXPECT_EQ(0, max_diff);
|
||||
}
|
||||
@ -1818,7 +1818,7 @@ static int TestSobelToPlane(int width,
|
||||
}
|
||||
|
||||
TEST_F(LibYUVPlanarTest, ARGBSobelToPlane_Any) {
|
||||
int max_diff = TestSobelToPlane(benchmark_width_ - 1, benchmark_height_,
|
||||
int max_diff = TestSobelToPlane(benchmark_width_ + 1, benchmark_height_,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_, +1, 0);
|
||||
EXPECT_EQ(0, max_diff);
|
||||
@ -1890,7 +1890,7 @@ static int TestSobelXY(int width,
|
||||
}
|
||||
|
||||
TEST_F(LibYUVPlanarTest, ARGBSobelXY_Any) {
|
||||
int max_diff = TestSobelXY(benchmark_width_ - 1, benchmark_height_,
|
||||
int max_diff = TestSobelXY(benchmark_width_ + 1, benchmark_height_,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_, +1, 0);
|
||||
EXPECT_EQ(0, max_diff);
|
||||
@ -1975,7 +1975,7 @@ static int TestBlur(int width,
|
||||
static const int kBlurSize = 55;
|
||||
TEST_F(LibYUVPlanarTest, DISABLED_ARM(ARGBBlur_Any)) {
|
||||
int max_diff =
|
||||
TestBlur(benchmark_width_ - 1, benchmark_height_, benchmark_iterations_,
|
||||
TestBlur(benchmark_width_ + 1, benchmark_height_, benchmark_iterations_,
|
||||
disable_cpu_flags_, benchmark_cpu_info_, +1, 0, kBlurSize);
|
||||
EXPECT_LE(max_diff, 1);
|
||||
}
|
||||
@ -2004,7 +2004,7 @@ TEST_F(LibYUVPlanarTest, DISABLED_ARM(ARGBBlur_Opt)) {
|
||||
static const int kBlurSmallSize = 5;
|
||||
TEST_F(LibYUVPlanarTest, DISABLED_ARM(ARGBBlurSmall_Any)) {
|
||||
int max_diff =
|
||||
TestBlur(benchmark_width_ - 1, benchmark_height_, benchmark_iterations_,
|
||||
TestBlur(benchmark_width_ + 1, benchmark_height_, benchmark_iterations_,
|
||||
disable_cpu_flags_, benchmark_cpu_info_, +1, 0, kBlurSmallSize);
|
||||
EXPECT_LE(max_diff, 1);
|
||||
}
|
||||
@ -2509,7 +2509,7 @@ static int TestARGBRect(int width,
|
||||
}
|
||||
|
||||
TEST_F(LibYUVPlanarTest, ARGBRect_Any) {
|
||||
int max_diff = TestARGBRect(benchmark_width_ - 1, benchmark_height_,
|
||||
int max_diff = TestARGBRect(benchmark_width_ + 1, benchmark_height_,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_, +1, 0, 4);
|
||||
EXPECT_EQ(0, max_diff);
|
||||
@ -2537,7 +2537,7 @@ TEST_F(LibYUVPlanarTest, ARGBRect_Opt) {
|
||||
}
|
||||
|
||||
TEST_F(LibYUVPlanarTest, SetPlane_Any) {
|
||||
int max_diff = TestARGBRect(benchmark_width_ - 1, benchmark_height_,
|
||||
int max_diff = TestARGBRect(benchmark_width_ + 1, benchmark_height_,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_, +1, 0, 1);
|
||||
EXPECT_EQ(0, max_diff);
|
||||
@ -3047,7 +3047,7 @@ TEST_F(LibYUVPlanarTest, SplitXRGBPlane_Opt) {
|
||||
// Merge 4 channels
|
||||
#define TESTQPLANARTOPI(FUNC, STYPE, DTYPE, DEPTH, W1280, N, NEG, OFF) \
|
||||
TEST_F(LibYUVPlanarTest, FUNC##Plane_##DEPTH##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kPixels = kWidth * benchmark_height_; \
|
||||
align_buffer_page_end(src_memory_r, kPixels * sizeof(STYPE) + OFF); \
|
||||
align_buffer_page_end(src_memory_g, kPixels * sizeof(STYPE) + OFF); \
|
||||
@ -3091,7 +3091,7 @@ TEST_F(LibYUVPlanarTest, SplitXRGBPlane_Opt) {
|
||||
// Merge 3 channel RGB into 4 channel XRGB with opaque alpha
|
||||
#define TESTQPLANAROTOPI(FUNC, STYPE, DTYPE, DEPTH, W1280, N, NEG, OFF) \
|
||||
TEST_F(LibYUVPlanarTest, FUNC##Plane_Opaque_##DEPTH##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kPixels = kWidth * benchmark_height_; \
|
||||
align_buffer_page_end(src_memory_r, kPixels * sizeof(STYPE) + OFF); \
|
||||
align_buffer_page_end(src_memory_g, kPixels * sizeof(STYPE) + OFF); \
|
||||
@ -3128,14 +3128,13 @@ TEST_F(LibYUVPlanarTest, SplitXRGBPlane_Opt) {
|
||||
free_aligned_buffer_page_end(dst_memory_opt); \
|
||||
}
|
||||
|
||||
// TODO(fbarchard): fix bug and change to benchmark_width - 1
|
||||
#define TESTQPLANARTOP(FUNC, STYPE, DTYPE, DEPTH) \
|
||||
TESTQPLANARTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_ - 4, _Any, +, 0) \
|
||||
TESTQPLANARTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_ + 1, _Any, +, 0) \
|
||||
TESTQPLANARTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_, _Unaligned, +, \
|
||||
1) \
|
||||
TESTQPLANARTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_, _Invert, -, 0) \
|
||||
TESTQPLANARTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_, _Opt, +, 0) \
|
||||
TESTQPLANAROTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_ - 4, _Any, +, \
|
||||
TESTQPLANAROTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_ + 1, _Any, +, \
|
||||
0) \
|
||||
TESTQPLANAROTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_, _Unaligned, +, \
|
||||
1) \
|
||||
@ -3151,7 +3150,7 @@ TESTQPLANARTOP(MergeARGB16To8, uint16_t, uint8_t, 16)
|
||||
|
||||
#define TESTTPLANARTOPI(FUNC, STYPE, DTYPE, DEPTH, W1280, N, NEG, OFF) \
|
||||
TEST_F(LibYUVPlanarTest, FUNC##Plane_##DEPTH##N) { \
|
||||
const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
|
||||
const int kWidth = W1280; \
|
||||
const int kPixels = kWidth * benchmark_height_; \
|
||||
align_buffer_page_end(src_memory_r, kPixels * sizeof(STYPE) + OFF); \
|
||||
align_buffer_page_end(src_memory_g, kPixels * sizeof(STYPE) + OFF); \
|
||||
@ -3188,13 +3187,13 @@ TESTQPLANARTOP(MergeARGB16To8, uint16_t, uint8_t, 16)
|
||||
free_aligned_buffer_page_end(dst_memory_opt); \
|
||||
}
|
||||
|
||||
// TODO(fbarchard): Fix MergeXR30 and change _any to width - 1
|
||||
#define TESTTPLANARTOP(FUNC, STYPE, DTYPE, DEPTH) \
|
||||
TESTTPLANARTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_ - 4, _Any, +, 0) \
|
||||
TESTTPLANARTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_ + 1, _Any, +, 0) \
|
||||
TESTTPLANARTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_, _Unaligned, +, \
|
||||
1) \
|
||||
TESTTPLANARTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_, _Invert, -, 0) \
|
||||
TESTTPLANARTOPI(FUNC, STYPE, DTYPE, DEPTH, benchmark_width_, _Opt, +, 0)
|
||||
|
||||
TESTTPLANARTOP(MergeXR30, uint16_t, uint8_t, 10)
|
||||
TESTTPLANARTOP(MergeXR30, uint16_t, uint8_t, 12)
|
||||
TESTTPLANARTOP(MergeXR30, uint16_t, uint8_t, 16)
|
||||
|
||||
@ -156,29 +156,29 @@ TEST_F(LibYUVRotateTest, RotatePlane270_Opt) {
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_RotatePlane0_Odd) {
|
||||
TestRotatePlane(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_width_ - 3, benchmark_height_ - 1, kRotate0,
|
||||
TestRotatePlane(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_width_ + 1, benchmark_height_ + 1, kRotate0,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_RotatePlane90_Odd) {
|
||||
TestRotatePlane(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_height_ - 1, benchmark_width_ - 3, kRotate90,
|
||||
TestRotatePlane(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_height_ + 1, benchmark_width_ + 1, kRotate90,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_RotatePlane180_Odd) {
|
||||
TestRotatePlane(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_width_ - 3, benchmark_height_ - 1, kRotate180,
|
||||
TestRotatePlane(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_width_ + 1, benchmark_height_ + 1, kRotate180,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_RotatePlane270_Odd) {
|
||||
TestRotatePlane(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_height_ - 1, benchmark_width_ - 3, kRotate270,
|
||||
TestRotatePlane(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_height_ + 1, benchmark_width_ + 1, kRotate270,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
@ -108,29 +108,29 @@ TEST_F(LibYUVRotateTest, I420Rotate270_Opt) {
|
||||
// Odd width tests work but disabled because they use C code and can be
|
||||
// tested by passing an odd width command line or environment variable.
|
||||
TEST_F(LibYUVRotateTest, DISABLED_I420Rotate0_Odd) {
|
||||
I420TestRotate(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_width_ - 3, benchmark_height_ - 1, kRotate0,
|
||||
I420TestRotate(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_width_ + 1, benchmark_height_ + 1, kRotate0,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_I420Rotate90_Odd) {
|
||||
I420TestRotate(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_height_ - 1, benchmark_width_ - 3, kRotate90,
|
||||
I420TestRotate(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_height_ + 1, benchmark_width_ + 1, kRotate90,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_I420Rotate180_Odd) {
|
||||
I420TestRotate(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_width_ - 3, benchmark_height_ - 1, kRotate180,
|
||||
I420TestRotate(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_width_ + 1, benchmark_height_ + 1, kRotate180,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_I420Rotate270_Odd) {
|
||||
I420TestRotate(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_height_ - 1, benchmark_width_ - 3, kRotate270,
|
||||
I420TestRotate(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_height_ + 1, benchmark_width_ + 1, kRotate270,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
@ -225,29 +225,29 @@ TEST_F(LibYUVRotateTest, I444Rotate270_Opt) {
|
||||
// Odd width tests work but disabled because they use C code and can be
|
||||
// tested by passing an odd width command line or environment variable.
|
||||
TEST_F(LibYUVRotateTest, DISABLED_I444Rotate0_Odd) {
|
||||
I444TestRotate(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_width_ - 3, benchmark_height_ - 1, kRotate0,
|
||||
I444TestRotate(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_width_ + 1, benchmark_height_ + 1, kRotate0,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_I444Rotate90_Odd) {
|
||||
I444TestRotate(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_height_ - 1, benchmark_width_ - 3, kRotate90,
|
||||
I444TestRotate(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_height_ + 1, benchmark_width_ + 1, kRotate90,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_I444Rotate180_Odd) {
|
||||
I444TestRotate(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_width_ - 3, benchmark_height_ - 1, kRotate180,
|
||||
I444TestRotate(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_width_ + 1, benchmark_height_ + 1, kRotate180,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_I444Rotate270_Odd) {
|
||||
I444TestRotate(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_height_ - 1, benchmark_width_ - 3, kRotate270,
|
||||
I444TestRotate(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_height_ + 1, benchmark_width_ + 1, kRotate270,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
@ -340,29 +340,29 @@ TEST_F(LibYUVRotateTest, NV12Rotate270_Opt) {
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_NV12Rotate0_Odd) {
|
||||
NV12TestRotate(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_width_ - 3, benchmark_height_ - 1, kRotate0,
|
||||
NV12TestRotate(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_width_ + 1, benchmark_height_ + 1, kRotate0,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_NV12Rotate90_Odd) {
|
||||
NV12TestRotate(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_height_ - 1, benchmark_width_ - 3, kRotate90,
|
||||
NV12TestRotate(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_height_ + 1, benchmark_width_ + 1, kRotate90,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_NV12Rotate180_Odd) {
|
||||
NV12TestRotate(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_width_ - 3, benchmark_height_ - 1, kRotate180,
|
||||
NV12TestRotate(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_width_ + 1, benchmark_height_ + 1, kRotate180,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
TEST_F(LibYUVRotateTest, DISABLED_NV12Rotate270_Odd) {
|
||||
NV12TestRotate(benchmark_width_ - 3, benchmark_height_ - 1,
|
||||
benchmark_height_ - 1, benchmark_width_ - 3, kRotate270,
|
||||
NV12TestRotate(benchmark_width_ + 1, benchmark_height_ + 1,
|
||||
benchmark_height_ + 1, benchmark_width_ + 1, kRotate270,
|
||||
benchmark_iterations_, disable_cpu_flags_,
|
||||
benchmark_cpu_info_);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user