1dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org/*
2dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org *  Copyright (c) 2014 The WebM project authors. All Rights Reserved.
3dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org *
4dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org *  Use of this source code is governed by a BSD-style license
5dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org *  that can be found in the LICENSE file in the root of the source
6dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org *  tree. An additional intellectual property rights grant can be found
7dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org *  in the file PATENTS.  All contributing project authors may
8dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org *  be found in the AUTHORS file in the root of the source tree.
9dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org */
10dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org
11dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org#ifndef VP9_ENCODER_VP9_RESIZE_H_
12dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org#define VP9_ENCODER_VP9_RESIZE_H_
13dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org
14dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org#include <stdio.h>
15dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org#include "vpx/vpx_integer.h"
16dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org
17dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.orgvoid vp9_resize_plane(const uint8_t *const input,
18dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                      int height,
19dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                      int width,
20dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                      int in_stride,
21dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                      uint8_t *output,
22dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                      int height2,
23dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                      int width2,
24dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                      int out_stride);
25dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.orgvoid vp9_resize_frame420(const uint8_t *const y,
26dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int y_stride,
27dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         const uint8_t *const u,
28dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         const uint8_t *const v,
29dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int uv_stride,
30dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int height,
31dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int width,
32dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         uint8_t *oy,
33dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int oy_stride,
34dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         uint8_t *ou,
35dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         uint8_t *ov,
36dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int ouv_stride,
37dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int oheight,
38dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int owidth);
39dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.orgvoid vp9_resize_frame422(const uint8_t *const y,
40dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int y_stride,
41dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         const uint8_t *const u,
42dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         const uint8_t *const v,
43dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int uv_stride,
44dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int height,
45dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int width,
46dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         uint8_t *oy,
47dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int oy_stride,
48dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         uint8_t *ou,
49dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         uint8_t *ov,
50dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int ouv_stride,
51dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int oheight,
52dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int owidth);
53dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.orgvoid vp9_resize_frame444(const uint8_t *const y,
54dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int y_stride,
55dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         const uint8_t *const u,
56dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         const uint8_t *const v,
57dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int uv_stride,
58dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int height,
59dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int width,
60dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         uint8_t *oy,
61dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int oy_stride,
62dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         uint8_t *ou,
63dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         uint8_t *ov,
64dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int ouv_stride,
65dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int oheight,
66dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org                         int owidth);
67dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org
68dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org#endif    // VP9_ENCODER_VP9_RESIZE_H_
69