141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org/* 241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * Copyright 2012 The LibYuv Project Authors. All rights reserved. 341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * 441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * Use of this source code is governed by a BSD-style license 541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * that can be found in the LICENSE file in the root of the source 641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * tree. An additional intellectual property rights grant can be found 741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * in the file PATENTS. All contributing project authors may 841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * be found in the AUTHORS file in the root of the source tree. 941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org */ 1041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 1141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#ifndef INCLUDE_LIBYUV_SCALE_ARGB_H_ // NOLINT 1241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#define INCLUDE_LIBYUV_SCALE_ARGB_H_ 1341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 1441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#include "libyuv/basic_types.h" 1541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#include "libyuv/scale.h" // For FilterMode 1641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 1741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#ifdef __cplusplus 1841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgnamespace libyuv { 1941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgextern "C" { 2041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#endif 2141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 2241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 2341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBScale(const uint8* src_argb, int src_stride_argb, 2441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int src_width, int src_height, 2541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_argb, int dst_stride_argb, 2641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int dst_width, int dst_height, 2741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org enum FilterMode filtering); 2841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 2941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Clipped scale takes destination rectangle coordinates for clip values. 3041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 3141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint ARGBScaleClip(const uint8* src_argb, int src_stride_argb, 3241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int src_width, int src_height, 3341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_argb, int dst_stride_argb, 3441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int dst_width, int dst_height, 3541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int clip_x, int clip_y, int clip_width, int clip_height, 3641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org enum FilterMode filtering); 3741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 3841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// TODO(fbarchard): Implement this. 3941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Scale with YUV conversion to ARGB and clipping. 4041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 4141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgint YUVToARGBScaleClip(const uint8* src_y, int src_stride_y, 4241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_u, int src_stride_u, 4341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_v, int src_stride_v, 4441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint32 src_fourcc, 4541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int src_width, int src_height, 4641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint8* dst_argb, int dst_stride_argb, 4741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org uint32 dst_fourcc, 4841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int dst_width, int dst_height, 4941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int clip_x, int clip_y, int clip_width, int clip_height, 5041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org enum FilterMode filtering); 5141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 5241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#ifdef __cplusplus 5341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org} // extern "C" 5441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org} // namespace libyuv 5541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#endif 5641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 5741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#endif // INCLUDE_LIBYUV_SCALE_ARGB_H_ NOLINT 58