PageRenderTime 20ms CodeModel.GetById 12ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 0ms

/media/libvpx/vpx_scale/yv12config.h

http://github.com/zpao/v8monkey
C Header | 73 lines | 38 code | 13 blank | 22 comment | 0 complexity | 640feb1e2a3babd663268d55e5c46f6f MD5 | raw file
 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
12#ifndef YV12_CONFIG_H
13#define YV12_CONFIG_H
14#ifdef __cplusplus
15extern "C"
16{
17#endif
18
19#define VP7BORDERINPIXELS       48
20#define VP8BORDERINPIXELS       32
21
22    /*************************************
23     For INT_YUV:
24
25     Y = (R+G*2+B)/4;
26     U = (R-B)/2;
27     V =  (G*2 - R - B)/4;
28    And
29     R = Y+U-V;
30     G = Y+V;
31     B = Y-U-V;
32    ************************************/
33    typedef enum
34    {
35        REG_YUV = 0,    /* Regular yuv */
36        INT_YUV = 1     /* The type of yuv that can be tranfer to and from RGB through integer transform */
37              }
38              YUV_TYPE;
39
40    typedef struct
41    {
42        int   y_width;
43        int   y_height;
44        int   y_stride;
45/*    int   yinternal_width; */
46
47        int   uv_width;
48        int   uv_height;
49        int   uv_stride;
50/*    int   uvinternal_width; */
51
52        unsigned char *y_buffer;
53        unsigned char *u_buffer;
54        unsigned char *v_buffer;
55
56        unsigned char *buffer_alloc;
57        int border;
58        int frame_size;
59        YUV_TYPE clrtype;
60
61        int corrupted;
62        int flags;
63    } YV12_BUFFER_CONFIG;
64
65    int vp8_yv12_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width, int height, int border);
66    int vp8_yv12_de_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf);
67
68#ifdef __cplusplus
69}
70#endif
71
72
73#endif /*YV12_CONFIG_H*/