| 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 */
|
|
|