When scaling a 1x1, dx/dy is 0. Switch to point sample
BUG=none
TEST=none
R=dingkai@google.com
Review URL: https://webrtc-codereview.appspot.com/1582007
git-svn-id: http://libyuv.googlecode.com/svn/trunk@714 16f28f9a-4ce2-e073-06de-1de4eb20be90
diff --git a/README.chromium b/README.chromium
index 52f22b6..56d52fa 100644
--- a/README.chromium
+++ b/README.chromium
@@ -1,6 +1,6 @@
Name: libyuv
URL: http://code.google.com/p/libyuv/
-Version: 713
+Version: 715
License: BSD
License File: LICENSE
diff --git a/include/libyuv/version.h b/include/libyuv/version.h
index e1f2971..cc922ed 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 713
+#define LIBYUV_VERSION 715
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
diff --git a/source/scale_argb.cc b/source/scale_argb.cc
index 8648a75..46fefce 100644
--- a/source/scale_argb.cc
+++ b/source/scale_argb.cc
@@ -1120,29 +1120,33 @@
}
// Special case for integer step values.
- if (((dx | dy) & 0xffff) == 0 && dx && dy) {
- // Optimized even scale down. ie 2, 4, 6, 8, 10x.
- if (!(dx & 0x10000) && !(dy & 0x10000)) {
- if ((dx >> 16) == 2) {
- // Optimized 1/2 horizontal.
- ScaleARGBDown2(src_width, src_height, clip_width, clip_height,
- src_stride, dst_stride, src, dst,
- x, dx, y, dy, filtering);
+ if (((dx | dy) & 0xffff) == 0) {
+ if (!dx || !dy) {
+ filtering = kFilterNone;
+ } else {
+ // Optimized even scale down. ie 2, 4, 6, 8, 10x.
+ if (!(dx & 0x10000) && !(dy & 0x10000)) {
+ if ((dx >> 16) == 2) {
+ // Optimized 1/2 horizontal.
+ ScaleARGBDown2(src_width, src_height, clip_width, clip_height,
+ src_stride, dst_stride, src, dst,
+ x, dx, y, dy, filtering);
+ return;
+ }
+ ScaleARGBDownEven(src_width, src_height, clip_width, clip_height,
+ src_stride, dst_stride, src, dst,
+ x, dx, y, dy, filtering);
return;
}
- ScaleARGBDownEven(src_width, src_height, clip_width, clip_height,
- src_stride, dst_stride, src, dst,
- x, dx, y, dy, filtering);
- return;
- }
- // Optimized odd scale down. ie 3, 5, 7, 9x.
- if ((dx & 0x10000) && (dy & 0x10000)) {
- filtering = kFilterNone;
- if (dst_width == src_width && dst_height == src_height) {
- // Straight copy.
- ARGBCopy(src + (y >> 16) * src_stride + (x >> 16) * 4, src_stride,
- dst, dst_stride, clip_width, clip_height);
- return;
+ // Optimized odd scale down. ie 3, 5, 7, 9x.
+ if ((dx & 0x10000) && (dy & 0x10000)) {
+ filtering = kFilterNone;
+ if (dst_width == src_width && dst_height == src_height) {
+ // Straight copy.
+ ARGBCopy(src + (y >> 16) * src_stride + (x >> 16) * 4, src_stride,
+ dst, dst_stride, clip_width, clip_height);
+ return;
+ }
}
}
}