From d62ee21e6627888e84466b5a5ed15775582ac67b Mon Sep 17 00:00:00 2001 From: Frank Barchard Date: Tue, 19 Apr 2022 18:08:03 -0700 Subject: [PATCH] UVScale fix for vertical-only scaling Bug: b/228841445 Change-Id: I0342856e1bfcea69851d718459d66926bb170219 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3595240 Reviewed-by: Frank Barchard Reviewed-by: Miguel Casas-Sanchez Commit-Queue: Frank Barchard --- README.chromium | 2 +- include/libyuv/version.h | 2 +- source/scale.cc | 4 ++-- source/scale_argb.cc | 2 +- source/scale_common.cc | 2 +- source/scale_uv.cc | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.chromium b/README.chromium index 3cf567e60..388a9145d 100644 --- a/README.chromium +++ b/README.chromium @@ -1,6 +1,6 @@ Name: libyuv URL: http://code.google.com/p/libyuv/ -Version: 1821 +Version: 1822 License: BSD License File: LICENSE diff --git a/include/libyuv/version.h b/include/libyuv/version.h index 3cb9b3dc9..a2d9fce0d 100644 --- a/include/libyuv/version.h +++ b/include/libyuv/version.h @@ -11,6 +11,6 @@ #ifndef INCLUDE_LIBYUV_VERSION_H_ #define INCLUDE_LIBYUV_VERSION_H_ -#define LIBYUV_VERSION 1821 +#define LIBYUV_VERSION 1822 #endif // INCLUDE_LIBYUV_VERSION_H_ diff --git a/source/scale.cc b/source/scale.cc index 59e296372..ad573ef6a 100644 --- a/source/scale.cc +++ b/source/scale.cc @@ -1919,7 +1919,7 @@ void ScalePlane(const uint8_t* src, int dy = FixedDiv(src_height, dst_height); // Arbitrary scale vertically, but unscaled horizontally. ScalePlaneVertical(src_height, dst_width, dst_height, src_stride, - dst_stride, src, dst, 0, 0, dy, 1, filtering); + dst_stride, src, dst, 0, 0, dy, /*bpp=*/1, filtering); return; } if (dst_width <= Abs(src_width) && dst_height <= src_height) { @@ -2013,7 +2013,7 @@ void ScalePlane_16(const uint16_t* src, int dy = FixedDiv(src_height, dst_height); // Arbitrary scale vertically, but unscaled horizontally. ScalePlaneVertical_16(src_height, dst_width, dst_height, src_stride, - dst_stride, src, dst, 0, 0, dy, 1, filtering); + dst_stride, src, dst, 0, 0, dy, /*bpp=*/1, filtering); return; } if (dst_width <= Abs(src_width) && dst_height <= src_height) { diff --git a/source/scale_argb.cc b/source/scale_argb.cc index 3238df05f..10b5c8fe0 100644 --- a/source/scale_argb.cc +++ b/source/scale_argb.cc @@ -1017,7 +1017,7 @@ static void ScaleARGB(const uint8_t* src, if (dx == 0x10000 && (x & 0xffff) == 0) { // Arbitrary scale vertically, but unscaled horizontally. ScalePlaneVertical(src_height, clip_width, clip_height, src_stride, - dst_stride, src, dst, x, y, dy, 4, filtering); + dst_stride, src, dst, x, y, dy, /*bpp=*/4, filtering); return; } if (filtering && dy < 65536) { diff --git a/source/scale_common.cc b/source/scale_common.cc index 4f7b063a0..d54ab9423 100644 --- a/source/scale_common.cc +++ b/source/scale_common.cc @@ -1465,7 +1465,7 @@ void ScalePlaneVertical(int src_height, int x, int y, int dy, - int bpp, + int bpp, // bytes per pixel. 4 for ARGB. enum FilterMode filtering) { // TODO(fbarchard): Allow higher bpp. int dst_width_bytes = dst_width * bpp; diff --git a/source/scale_uv.cc b/source/scale_uv.cc index f4b564277..40f393771 100644 --- a/source/scale_uv.cc +++ b/source/scale_uv.cc @@ -1032,7 +1032,7 @@ static void ScaleUV(const uint8_t* src, if (dx == 0x10000 && (x & 0xffff) == 0) { // Arbitrary scale vertically, but unscaled horizontally. ScalePlaneVertical(src_height, clip_width, clip_height, src_stride, - dst_stride, src, dst, x, y, dy, 4, filtering); + dst_stride, src, dst, x, y, dy, /*bpp=*/2, filtering); return; } if (filtering && (dst_width + 1) / 2 == src_width) {