]> granicus.if.org Git - libvpx/blob - vpx_scale/yv12config.h
Merge "Fix buf alignment in sub8x8 comp inter-inter pred"
[libvpx] / vpx_scale / yv12config.h
1 /*
2  *  Copyright (c) 2010 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 YV12_CONFIG_H
12 #define YV12_CONFIG_H
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 #include "vpx/vpx_integer.h"
19
20 #define VP8BORDERINPIXELS       32
21 #define VP9INNERBORDERINPIXELS  96
22 #define VP9BORDERINPIXELS      160
23 #define VP9_INTERP_EXTEND        4
24
25   typedef struct yv12_buffer_config {
26     int   y_width;
27     int   y_height;
28     int   y_crop_width;
29     int   y_crop_height;
30     int   y_stride;
31     /*    int   yinternal_width; */
32
33     int   uv_width;
34     int   uv_height;
35     int   uv_crop_width;
36     int   uv_crop_height;
37     int   uv_stride;
38     /*    int   uvinternal_width; */
39
40     int   alpha_width;
41     int   alpha_height;
42     int   alpha_stride;
43
44     uint8_t *y_buffer;
45     uint8_t *u_buffer;
46     uint8_t *v_buffer;
47     uint8_t *alpha_buffer;
48
49     uint8_t *buffer_alloc;
50     int buffer_alloc_sz;
51     int border;
52     int frame_size;
53
54     int corrupted;
55     int flags;
56   } YV12_BUFFER_CONFIG;
57
58   int vp8_yv12_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf,
59                                   int width, int height, int border);
60   int vp8_yv12_realloc_frame_buffer(YV12_BUFFER_CONFIG *ybf,
61                                     int width, int height, int border);
62   int vp8_yv12_de_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf);
63
64   int vp9_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf,
65                              int width, int height, int ss_x, int ss_y,
66                              int border);
67   int vp9_realloc_frame_buffer(YV12_BUFFER_CONFIG *ybf,
68                                int width, int height, int ss_x, int ss_y,
69                                int border);
70   int vp9_free_frame_buffer(YV12_BUFFER_CONFIG *ybf);
71
72 #ifdef __cplusplus
73 }
74 #endif
75
76 #endif  // YV12_CONFIG_H