Index: source/libvpx/third_party/libyuv/include/libyuv/scale.h |
=================================================================== |
--- source/libvpx/third_party/libyuv/include/libyuv/scale.h (revision 278778) |
+++ source/libvpx/third_party/libyuv/include/libyuv/scale.h (working copy) |
@@ -1,30 +1,45 @@ |
/* |
- * Copyright (c) 2011 The LibYuv project authors. All Rights Reserved. |
+ * Copyright 2011 The LibYuv Project Authors. All rights reserved. |
* |
* Use of this source code is governed by a BSD-style license |
* that can be found in the LICENSE file in the root of the source |
* tree. An additional intellectual property rights grant can be found |
- * in the file PATENTS. All contributing project authors may |
+ * in the file PATENTS. All contributing project authors may |
* be found in the AUTHORS file in the root of the source tree. |
*/ |
-#ifndef INCLUDE_LIBYUV_SCALE_H_ |
+#ifndef INCLUDE_LIBYUV_SCALE_H_ // NOLINT |
#define INCLUDE_LIBYUV_SCALE_H_ |
-#include "third_party/libyuv/include/libyuv/basic_types.h" |
+#include "basic_types.h" |
#ifdef __cplusplus |
namespace libyuv { |
extern "C" { |
#endif |
-// Supported filtering |
-typedef enum { |
- kFilterNone = 0, // Point sample; Fastest |
- kFilterBilinear = 1, // Faster than box, but lower quality scaling down. |
- kFilterBox = 2 // Highest quality |
+// Supported filtering. |
+typedef enum FilterMode { |
+ kFilterNone = 0, // Point sample; Fastest. |
+ kFilterLinear = 1, // Filter horizontally only. |
+ kFilterBilinear = 2, // Faster than box, but lower quality scaling down. |
+ kFilterBox = 3 // Highest quality. |
} FilterModeEnum; |
+// Scale a YUV plane. |
+LIBYUV_API |
+void ScalePlane(const uint8* src, int src_stride, |
+ int src_width, int src_height, |
+ uint8* dst, int dst_stride, |
+ int dst_width, int dst_height, |
+ enum FilterMode filtering); |
+ |
+void ScalePlane_16(const uint16* src, int src_stride, |
+ int src_width, int src_height, |
+ uint16* dst, int dst_stride, |
+ int dst_width, int dst_height, |
+ enum FilterMode filtering); |
+ |
// Scales a YUV 4:2:0 image from the src width and height to the |
// dst width and height. |
// If filtering is kFilterNone, a simple nearest-neighbor algorithm is |
@@ -35,6 +50,7 @@ |
// quality image, at further expense of speed. |
// Returns 0 if successful. |
+LIBYUV_API |
int I420Scale(const uint8* src_y, int src_stride_y, |
const uint8* src_u, int src_stride_u, |
const uint8* src_v, int src_stride_v, |
@@ -43,28 +59,44 @@ |
uint8* dst_u, int dst_stride_u, |
uint8* dst_v, int dst_stride_v, |
int dst_width, int dst_height, |
- FilterModeEnum filtering); |
+ enum FilterMode filtering); |
-// Legacy API. Deprecated |
+LIBYUV_API |
+int I420Scale_16(const uint16* src_y, int src_stride_y, |
+ const uint16* src_u, int src_stride_u, |
+ const uint16* src_v, int src_stride_v, |
+ int src_width, int src_height, |
+ uint16* dst_y, int dst_stride_y, |
+ uint16* dst_u, int dst_stride_u, |
+ uint16* dst_v, int dst_stride_v, |
+ int dst_width, int dst_height, |
+ enum FilterMode filtering); |
+ |
+#ifdef __cplusplus |
+// Legacy API. Deprecated. |
+LIBYUV_API |
int Scale(const uint8* src_y, const uint8* src_u, const uint8* src_v, |
int src_stride_y, int src_stride_u, int src_stride_v, |
int src_width, int src_height, |
uint8* dst_y, uint8* dst_u, uint8* dst_v, |
int dst_stride_y, int dst_stride_u, int dst_stride_v, |
int dst_width, int dst_height, |
- int interpolate); |
+ LIBYUV_BOOL interpolate); |
-// Legacy API. Deprecated |
-int ScaleOffset(const uint8* src, int src_width, int src_height, |
- uint8* dst, int dst_width, int dst_height, int dst_yoffset, |
- int interpolate); |
+// Legacy API. Deprecated. |
+LIBYUV_API |
+int ScaleOffset(const uint8* src_i420, int src_width, int src_height, |
+ uint8* dst_i420, int dst_width, int dst_height, int dst_yoffset, |
+ LIBYUV_BOOL interpolate); |
-// For testing, allow disabling of optimizations. |
-void SetUseReferenceImpl(int use); |
+// For testing, allow disabling of specialized scalers. |
+LIBYUV_API |
+void SetUseReferenceImpl(LIBYUV_BOOL use); |
+#endif // __cplusplus |
#ifdef __cplusplus |
} // extern "C" |
} // namespace libyuv |
#endif |
-#endif // INCLUDE_LIBYUV_SCALE_H_ |
+#endif // INCLUDE_LIBYUV_SCALE_H_ NOLINT |