15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2014 The WebM project authors. All Rights Reserved.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Use of this source code is governed by a BSD-style license
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  that can be found in the LICENSE file in the root of the source
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  tree. An additional intellectual property rights grant can be found
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  in the file PATENTS.  All contributing project authors may
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  be found in the AUTHORS file in the root of the source tree.
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef VP9_ENCODER_VP9_RESIZE_H_
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define VP9_ENCODER_VP9_RESIZE_H_
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdio.h>
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "vpx/vpx_integer.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void vp9_resize_plane(const uint8_t *const input,
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      int height,
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      int width,
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      int in_stride,
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      uint8_t *output,
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      int height2,
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      int width2,
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      int out_stride);
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void vp9_resize_frame420(const uint8_t *const y,
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         int y_stride,
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         const uint8_t *const u,
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         const uint8_t *const v,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         int uv_stride,
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         int height,
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         int width,
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         uint8_t *oy,
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         int oy_stride,
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         uint8_t *ou,
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         uint8_t *ov,
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         int ouv_stride,
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         int oheight,
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         int owidth);
39void vp9_resize_frame422(const uint8_t *const y,
40                         int y_stride,
41                         const uint8_t *const u,
42                         const uint8_t *const v,
43                         int uv_stride,
44                         int height,
45                         int width,
46                         uint8_t *oy,
47                         int oy_stride,
48                         uint8_t *ou,
49                         uint8_t *ov,
50                         int ouv_stride,
51                         int oheight,
52                         int owidth);
53void vp9_resize_frame444(const uint8_t *const y,
54                         int y_stride,
55                         const uint8_t *const u,
56                         const uint8_t *const v,
57                         int uv_stride,
58                         int height,
59                         int width,
60                         uint8_t *oy,
61                         int oy_stride,
62                         uint8_t *ou,
63                         uint8_t *ov,
64                         int ouv_stride,
65                         int oheight,
66                         int owidth);
67
68#endif    // VP9_ENCODER_VP9_RESIZE_H_
69