diff --git a/libavcodec/cavs.c b/libavcodec/cavs.c index 9feb69fe6d22a7231052c38564e1bf7bdd9b88ef..60826f717ce6f996f6a18aa0aeabd1a93b637441 100644 --- a/libavcodec/cavs.c +++ b/libavcodec/cavs.c @@ -1037,16 +1037,12 @@ static void decode_mb_b(AVSContext *h, enum mb_t mb_type) { if(mb_type & 1) { /* 16x8 macroblock types */ if(flags & FWD0) mv_pred(h, MV_FWD_X0, MV_FWD_C2, MV_PRED_TOP, BLK_16X8, 1); - if(flags & SYM0) { - mv_pred(h, MV_FWD_X0, MV_FWD_C2, MV_PRED_TOP, BLK_16X8, 1); + if(flags & SYM0) mv_pred_sym(h, &h->mv[MV_FWD_X0], BLK_16X8); - } if(flags & FWD1) mv_pred(h, MV_FWD_X2, MV_FWD_A1, MV_PRED_LEFT, BLK_16X8, 1); - if(flags & SYM1) { - mv_pred(h, MV_FWD_X2, MV_FWD_A1, MV_PRED_LEFT, BLK_16X8, 1); - mv_pred_sym(h, &h->mv[9], BLK_16X8); - } + if(flags & SYM1) + mv_pred_sym(h, &h->mv[MV_FWD_X2], BLK_16X8); if(flags & BWD0) mv_pred(h, MV_BWD_X0, MV_BWD_C2, MV_PRED_TOP, BLK_16X8, 0); if(flags & BWD1) @@ -1054,16 +1050,12 @@ static void decode_mb_b(AVSContext *h, enum mb_t mb_type) { } else { /* 8x16 macroblock types */ if(flags & FWD0) mv_pred(h, MV_FWD_X0, MV_FWD_B3, MV_PRED_LEFT, BLK_8X16, 1); - if(flags & SYM0) { - mv_pred(h, MV_FWD_X0, MV_FWD_B3, MV_PRED_LEFT, BLK_8X16, 1); + if(flags & SYM0) mv_pred_sym(h, &h->mv[MV_FWD_X0], BLK_8X16); - } if(flags & FWD1) mv_pred(h, MV_FWD_X1, MV_FWD_C2, MV_PRED_TOPRIGHT,BLK_8X16, 1); - if(flags & SYM1) { - mv_pred(h, MV_FWD_X1, MV_FWD_C2, MV_PRED_TOPRIGHT,BLK_8X16, 1); - mv_pred_sym(h, &h->mv[6], BLK_8X16); - } + if(flags & SYM1) + mv_pred_sym(h, &h->mv[MV_FWD_X1], BLK_8X16); if(flags & BWD0) mv_pred(h, MV_BWD_X0, MV_BWD_B3, MV_PRED_LEFT, BLK_8X16, 0); if(flags & BWD1) diff --git a/libavcodec/cavsdata.h b/libavcodec/cavsdata.h index eea0b8df0d78fcb5007c170d7c4d688515b3c1fe..0dc6d51fc10475de02fae783a2d13e558ea63531 100644 --- a/libavcodec/cavsdata.h +++ b/libavcodec/cavsdata.h @@ -130,36 +130,36 @@ enum mv_loc_t { }; static const uint8_t partition_flags[30] = { - 0, //I_8X8 - 0, //P_SKIP - 0, //P_16X16 - SPLITH, //P_16X8 - SPLITV,//P_8X16 - SPLITH|SPLITV,//P_8X8 - SPLITH|SPLITV,//B_SKIP - SPLITH|SPLITV,//B_DIRECT - 0, //B_FWD_16X16 - 0, //B_BWD_16X16 - 0, //B_SYM_16X16 - FWD0|FWD1|SPLITH, - FWD0|FWD1 |SPLITV, - BWD0|BWD1|SPLITH, - BWD0|BWD1 |SPLITV, - FWD0|BWD1|SPLITH, - FWD0|BWD1 |SPLITV, - BWD0|FWD1|SPLITH, - BWD0|FWD1 |SPLITV, - FWD0|SYM1|SPLITH, - FWD0|SYM1 |SPLITV, - BWD0|SYM1|SPLITH, - BWD0|SYM1 |SPLITV, - SYM0|FWD1|SPLITH, - SYM0|FWD1 |SPLITV, - SYM0|BWD1|SPLITH, - SYM0|BWD1 |SPLITV, - SYM0|SYM1|SPLITH, - SYM0|SYM1 |SPLITV, - SPLITH|SPLITV,//B_8X8 = 29 + 0, //I_8X8 + 0, //P_SKIP + 0, //P_16X16 + SPLITH, //P_16X8 + SPLITV, //P_8X16 + SPLITH|SPLITV, //P_8X8 + SPLITH|SPLITV, //B_SKIP + SPLITH|SPLITV, //B_DIRECT + 0, //B_FWD_16X16 + 0, //B_BWD_16X16 + 0, //B_SYM_16X16 + FWD0|FWD1 |SPLITH, + FWD0|FWD1 |SPLITV, + BWD0|BWD1 |SPLITH, + BWD0|BWD1 |SPLITV, + FWD0|BWD1 |SPLITH, + FWD0|BWD1 |SPLITV, + BWD0|FWD1 |SPLITH, + BWD0|FWD1 |SPLITV, + FWD0|FWD1 |SYM1|SPLITH, + FWD0|FWD1 |SYM1 |SPLITV, + BWD0|FWD1 |SYM1|SPLITH, + BWD0|FWD1 |SYM1 |SPLITV, + FWD0|FWD1|SYM0 |SPLITH, + FWD0|FWD1|SYM0 |SPLITV, + FWD0|BWD1|SYM0 |SPLITH, + FWD0|BWD1|SYM0 |SPLITV, + FWD0|FWD1|SYM0|SYM1|SPLITH, + FWD0|FWD1|SYM0|SYM1 |SPLITV, + SPLITH|SPLITV, //B_8X8 = 29 }; static const uint8_t scan3x3[4] = {4,5,7,8};