| Index: third_party/libvpx/source/libvpx/third_party/libyuv/include/libyuv/scale.h
|
| diff --git a/third_party/libvpx/source/libvpx/third_party/libyuv/include/libyuv/scale.h b/third_party/libvpx/source/libvpx/third_party/libyuv/include/libyuv/scale.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..102158d1ab28fcfe122ee825f2388db1a160a03c
|
| --- /dev/null
|
| +++ b/third_party/libvpx/source/libvpx/third_party/libyuv/include/libyuv/scale.h
|
| @@ -0,0 +1,103 @@
|
| +/*
|
| + * 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
|
| + * be found in the AUTHORS file in the root of the source tree.
|
| + */
|
| +
|
| +#ifndef INCLUDE_LIBYUV_SCALE_H_ // NOLINT
|
| +#define INCLUDE_LIBYUV_SCALE_H_
|
| +
|
| +#include "libyuv/basic_types.h"
|
| +
|
| +#ifdef __cplusplus
|
| +namespace libyuv {
|
| +extern "C" {
|
| +#endif
|
| +
|
| +// 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);
|
| +
|
| +LIBYUV_API
|
| +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
|
| +// used. This produces basic (blocky) quality at the fastest speed.
|
| +// If filtering is kFilterBilinear, interpolation is used to produce a better
|
| +// quality image, at the expense of speed.
|
| +// If filtering is kFilterBox, averaging is used to produce ever better
|
| +// 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,
|
| + int src_width, int src_height,
|
| + uint8* dst_y, int dst_stride_y,
|
| + uint8* dst_u, int dst_stride_u,
|
| + uint8* dst_v, int dst_stride_v,
|
| + int dst_width, int dst_height,
|
| + enum FilterMode filtering);
|
| +
|
| +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,
|
| + LIBYUV_BOOL 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 specialized scalers.
|
| +LIBYUV_API
|
| +void SetUseReferenceImpl(LIBYUV_BOOL use);
|
| +#endif // __cplusplus
|
| +
|
| +#ifdef __cplusplus
|
| +} // extern "C"
|
| +} // namespace libyuv
|
| +#endif
|
| +
|
| +#endif // INCLUDE_LIBYUV_SCALE_H_ NOLINT
|
|
|