Index: libvpx/source/libvpx/vp8/common/blockd.h |
diff --git a/libvpx/source/libvpx/vp8/common/blockd.h b/libvpx/source/libvpx/vp8/common/blockd.h |
index 96155237a76f8677f66786189d8ed01a5dca258c..fc8e0722c2ec04d1ee3786aa2e946d2fbbb58934 100644 |
--- a/libvpx/source/libvpx/vp8/common/blockd.h |
+++ b/libvpx/source/libvpx/vp8/common/blockd.h |
@@ -137,11 +137,16 @@ typedef enum |
modes for the Y blocks to the left and above us; for interframes, there |
is a single probability table. */ |
-union b_mode_info |
+typedef struct |
{ |
- B_PREDICTION_MODE as_mode; |
- int_mv mv; |
-}; |
+ B_PREDICTION_MODE mode; |
+ union |
+ { |
+ int as_int; |
+ MV as_mv; |
+ } mv; |
+} B_MODE_INFO; |
+ |
typedef enum |
{ |
@@ -156,26 +161,38 @@ typedef struct |
{ |
MB_PREDICTION_MODE mode, uv_mode; |
MV_REFERENCE_FRAME ref_frame; |
- int_mv mv; |
+ union |
+ { |
+ int as_int; |
+ MV as_mv; |
+ } mv; |
unsigned char partitioning; |
unsigned char mb_skip_coeff; /* does this mb has coefficients at all, 1=no coefficients, 0=need decode tokens */ |
+ unsigned char dc_diff; |
unsigned char need_to_clamp_mvs; |
+ |
unsigned char segment_id; /* Which set of segmentation parameters should be used for this MB */ |
+ |
+ unsigned char force_no_skip; /* encoder only */ |
} MB_MODE_INFO; |
+ |
typedef struct |
{ |
MB_MODE_INFO mbmi; |
- union b_mode_info bmi[16]; |
+ B_MODE_INFO bmi[16]; |
} MODE_INFO; |
+ |
typedef struct |
{ |
short *qcoeff; |
short *dqcoeff; |
unsigned char *predictor; |
short *diff; |
+ short *reference; |
+ |
short *dequant; |
/* 16 Y blocks, 4 U blocks, 4 V blocks each with 16 entries */ |
@@ -189,13 +206,15 @@ typedef struct |
int eob; |
- union b_mode_info bmi; |
+ B_MODE_INFO bmi; |
+ |
} BLOCKD; |
-typedef struct MacroBlockD |
+typedef struct |
{ |
DECLARE_ALIGNED(16, short, diff[400]); /* from idct diff */ |
DECLARE_ALIGNED(16, unsigned char, predictor[384]); |
+/* not used DECLARE_ALIGNED(16, short, reference[384]); */ |
DECLARE_ALIGNED(16, short, qcoeff[400]); |
DECLARE_ALIGNED(16, short, dqcoeff[400]); |
DECLARE_ALIGNED(16, char, eobs[25]); |
@@ -252,9 +271,6 @@ typedef struct MacroBlockD |
int mb_to_top_edge; |
int mb_to_bottom_edge; |
- int ref_frame_cost[MAX_REF_FRAMES]; |
- |
- |
unsigned int frames_since_golden; |
unsigned int frames_till_alt_ref_frame; |
vp8_subpix_fn_t subpixel_predict; |
@@ -266,14 +282,6 @@ typedef struct MacroBlockD |
int corrupted; |
-#if ARCH_X86 || ARCH_X86_64 |
- /* This is an intermediate buffer currently used in sub-pixel motion search |
- * to keep a copy of the reference area. This buffer can be used for other |
- * purpose. |
- */ |
- DECLARE_ALIGNED(32, unsigned char, y_buf[22*32]); |
-#endif |
- |
#if CONFIG_RUNTIME_CPU_DETECT |
struct VP8_COMMON_RTCD *rtcd; |
#endif |
@@ -283,20 +291,4 @@ typedef struct MacroBlockD |
extern void vp8_build_block_doffsets(MACROBLOCKD *x); |
extern void vp8_setup_block_dptrs(MACROBLOCKD *x); |
-static void update_blockd_bmi(MACROBLOCKD *xd) |
-{ |
- int i; |
- int is_4x4; |
- is_4x4 = (xd->mode_info_context->mbmi.mode == SPLITMV) || |
- (xd->mode_info_context->mbmi.mode == B_PRED); |
- |
- if (is_4x4) |
- { |
- for (i = 0; i < 16; i++) |
- { |
- xd->block[i].bmi = xd->mode_info_context->bmi[i]; |
- } |
- } |
-} |
- |
#endif /* __INC_BLOCKD_H */ |