Merge "Copy macroblock data to a buffer before encoding it"
[profile/ivi/libvpx.git] / vp8 / decoder / ec_types.h
1 /*
2  *  Copyright (c) 2011 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 VP8_DEC_EC_TYPES_H
12 #define VP8_DEC_EC_TYPES_H
13
14 #define MAX_OVERLAPS 16
15
16
17
18 /* The area (pixel area in Q6) the block pointed to by bmi overlaps
19  * another block with.
20  */
21 typedef struct
22 {
23     int overlap;
24     union b_mode_info *bmi;
25 } OVERLAP_NODE;
26
27 /* Structure to keep track of overlapping blocks on a block level. */
28 typedef struct
29 {
30     /* TODO(holmer): This array should be exchanged for a linked list */
31     OVERLAP_NODE overlaps[MAX_OVERLAPS];
32 } B_OVERLAP;
33
34 /* Structure used to hold all the overlaps of a macroblock. The overlaps of a
35  * macroblock is further divided into block overlaps.
36  */
37 typedef struct
38 {
39     B_OVERLAP overlaps[16];
40 } MB_OVERLAP;
41
42 /* Structure for keeping track of motion vectors and which reference frame they
43  * refer to. Used for motion vector interpolation.
44  */
45 typedef struct
46 {
47     MV mv;
48     MV_REFERENCE_FRAME ref_frame;
49 } EC_BLOCK;
50
51 #endif /* VP8_DEC_EC_TYPES_H */