ScalePlaneDown34: test dst_width%24 == 0 for armv7
In ScalePlaneDown34(), check if dst_width % 24 == 0 for armv7, and check
if dst_width % 48 == 0 for aarch64.
No-Try: True
Bug: b/369963535, b/366045177
Change-Id: I7dc1227517c83c97a1d1052ef2230d5cec41da10
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5896492
Commit-Queue: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
diff --git a/source/scale.cc b/source/scale.cc
index 5aca604..f4d1053 100644
--- a/source/scale.cc
+++ b/source/scale.cc
@@ -407,7 +407,11 @@
}
#if defined(HAS_SCALEROWDOWN34_NEON)
if (TestCpuFlag(kCpuHasNEON)) {
+#if defined(__aarch64__)
if (dst_width % 48 == 0) {
+#else
+ if (dst_width % 24 == 0) {
+#endif
if (!filtering) {
ScaleRowDown34_0 = ScaleRowDown34_NEON;
ScaleRowDown34_1 = ScaleRowDown34_NEON;
diff --git a/unit_test/scale_test.cc b/unit_test/scale_test.cc
index 6f36c40..429e67e 100644
--- a/unit_test/scale_test.cc
+++ b/unit_test/scale_test.cc
@@ -1054,6 +1054,7 @@
#ifndef DISABLE_SLOW_TESTS
TEST_SCALETO(Scale, 256, 144) /* 128x72 * 2 */
TEST_SCALETO(Scale, 320, 240)
+TEST_SCALETO(Scale, 352, 288)
TEST_SCALETO(Scale, 1280, 720)
TEST_SCALETO(Scale, 1920, 1080)
TEST_SCALETO(Scale, 1080, 1920) // for rotated phones