1/*
2 *  Copyright (c) 2014 The WebM project authors. All Rights Reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  that can be found in the LICENSE file in the root of the source
6 *  tree. An additional intellectual property rights grant can be found
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef VP9_ENCODER_VP9_RESIZE_H_
12#define VP9_ENCODER_VP9_RESIZE_H_
13
14#include <stdio.h>
15#include "vpx/vpx_integer.h"
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21void vp9_resize_plane(const uint8_t *const input,
22                      int height,
23                      int width,
24                      int in_stride,
25                      uint8_t *output,
26                      int height2,
27                      int width2,
28                      int out_stride);
29void vp9_resize_frame420(const uint8_t *const y,
30                         int y_stride,
31                         const uint8_t *const u,
32                         const uint8_t *const v,
33                         int uv_stride,
34                         int height,
35                         int width,
36                         uint8_t *oy,
37                         int oy_stride,
38                         uint8_t *ou,
39                         uint8_t *ov,
40                         int ouv_stride,
41                         int oheight,
42                         int owidth);
43void vp9_resize_frame422(const uint8_t *const y,
44                         int y_stride,
45                         const uint8_t *const u,
46                         const uint8_t *const v,
47                         int uv_stride,
48                         int height,
49                         int width,
50                         uint8_t *oy,
51                         int oy_stride,
52                         uint8_t *ou,
53                         uint8_t *ov,
54                         int ouv_stride,
55                         int oheight,
56                         int owidth);
57void vp9_resize_frame444(const uint8_t *const y,
58                         int y_stride,
59                         const uint8_t *const u,
60                         const uint8_t *const v,
61                         int uv_stride,
62                         int height,
63                         int width,
64                         uint8_t *oy,
65                         int oy_stride,
66                         uint8_t *ou,
67                         uint8_t *ov,
68                         int ouv_stride,
69                         int oheight,
70                         int owidth);
71
72#if CONFIG_VP9_HIGHBITDEPTH
73void vp9_highbd_resize_plane(const uint8_t *const input,
74                             int height,
75                             int width,
76                             int in_stride,
77                             uint8_t *output,
78                             int height2,
79                             int width2,
80                             int out_stride,
81                             int bd);
82void vp9_highbd_resize_frame420(const uint8_t *const y,
83                                int y_stride,
84                                const uint8_t *const u,
85                                const uint8_t *const v,
86                                int uv_stride,
87                                int height,
88                                int width,
89                                uint8_t *oy,
90                                int oy_stride,
91                                uint8_t *ou,
92                                uint8_t *ov,
93                                int ouv_stride,
94                                int oheight,
95                                int owidth,
96                                int bd);
97void vp9_highbd_resize_frame422(const uint8_t *const y,
98                                int y_stride,
99                                const uint8_t *const u,
100                                const uint8_t *const v,
101                                int uv_stride,
102                                int height,
103                                int width,
104                                uint8_t *oy,
105                                int oy_stride,
106                                uint8_t *ou,
107                                uint8_t *ov,
108                                int ouv_stride,
109                                int oheight,
110                                int owidth,
111                                int bd);
112void vp9_highbd_resize_frame444(const uint8_t *const y,
113                                int y_stride,
114                                const uint8_t *const u,
115                                const uint8_t *const v,
116                                int uv_stride,
117                                int height,
118                                int width,
119                                uint8_t *oy,
120                                int oy_stride,
121                                uint8_t *ou,
122                                uint8_t *ov,
123                                int ouv_stride,
124                                int oheight,
125                                int owidth,
126                                int bd);
127#endif    // CONFIG_VP9_HIGHBITDEPTH
128
129#ifdef __cplusplus
130}  // extern "C"
131#endif
132
133#endif    // VP9_ENCODER_VP9_RESIZE_H_
134