libavcodec/cavsdec.c:826: error: Uninitialized Value
  The value read from sub_type[_] was never initialized.

libavcodec/cavsdec.c:826:17: 
824.         }
825.         for (block = 0; block < 4; block++) {
826.             if (sub_type[block] == B_SUB_BWD)
                     ^
827.                 ff_cavs_mv(h, mv_scan[block] + MV_BWD_OFFS,
828.                            mv_scan[block] + MV_BWD_OFFS - 3,

static void decode_mb_b(AVSContext *h, enum cavs_mb mb_type)
{
    int block;
    enum cavs_sub_mb sub_type[4];
    int flags;
    ff_cavs_init_mb(h);
    h->mv[MV_FWD_X0] = ff_cavs_dir_mv;
    set_mvs(&h->mv[MV_FWD_X0], BLK_16X16);
    h->mv[MV_BWD_X0] = ff_cavs_dir_mv;
    set_mvs(&h->mv[MV_BWD_X0], BLK_16X16);
    switch (mb_type) {
    case B_SKIP:
    case B_DIRECT:
        if (!h->col_type_base[h->mbidx]) {
            ff_cavs_mv(h, MV_FWD_X0, MV_FWD_C2, MV_PRED_BSKIP, BLK_16X16, 1);
            ff_cavs_mv(h, MV_BWD_X0, MV_BWD_C2, MV_PRED_BSKIP, BLK_16X16, 0);
        } else
            for (block = 0; block < 4; block++)
                mv_pred_direct(h, &h->mv[mv_scan[block]],
                               &h->col_mv[h->mbidx * 4 + block]);
        break;
    case B_FWD_16X16:
        ff_cavs_mv(h, MV_FWD_X0, MV_FWD_C2, MV_PRED_MEDIAN, BLK_16X16, 1);
        break;
    case B_SYM_16X16:
        ff_cavs_mv(h, MV_FWD_X0, MV_FWD_C2, MV_PRED_MEDIAN, BLK_16X16, 1);
        mv_pred_sym(h, &h->mv[MV_FWD_X0], BLK_16X16);
        break;
    case B_BWD_16X16:
        ff_cavs_mv(h, MV_BWD_X0, MV_BWD_C2, MV_PRED_MEDIAN, BLK_16X16, 0);
        break;
    case B_8X8:
        for (block = 0; block < 4; block++)
            sub_type[block] = get_bits(&h->s.gb, 2);
        for (block = 0; block < 4; block++) {
            switch (sub_type[block]) {
            case B_SUB_DIRECT:
                if (!h->col_type_base[h->mbidx]) {
                    ff_cavs_mv(h, mv_scan[block], mv_scan[block] - 3,
                               MV_PRED_BSKIP, BLK_8X8, 1);
                    ff_cavs_mv(h, mv_scan[block] + MV_BWD_OFFS,
                               mv_scan[block] - 3 + MV_BWD_OFFS,
                               MV_PRED_BSKIP, BLK_8X8, 0);
                } else
                    mv_pred_direct(h, &h->mv[mv_scan[block]],
                                   &h->col_mv[h->mbidx * 4 + block]);
                break;
            case B_SUB_FWD:
                ff_cavs_mv(h, mv_scan[block], mv_scan[block] - 3,
                           MV_PRED_MEDIAN, BLK_8X8, 1);
                break;
            case B_SUB_SYM:
                ff_cavs_mv(h, mv_scan[block], mv_scan[block] - 3,
                           MV_PRED_MEDIAN, BLK_8X8, 1);
                mv_pred_sym(h, &h->mv[mv_scan[block]], BLK_8X8);
                break;
            }
        }
        for (block = 0; block < 4; block++) {
            if (sub_type[block] == B_SUB_BWD)
                ff_cavs_mv(h, mv_scan[block] + MV_BWD_OFFS,
                           mv_scan[block] + MV_BWD_OFFS - 3,
                           MV_PRED_MEDIAN, BLK_8X8, 0);
        }
        break;
    default:
        assert((mb_type > B_SYM_16X16) && (mb_type < B_8X8));
        flags = ff_cavs_partition_flags[mb_type];
        if (mb_type & 1) {
            if (flags & FWD0)
                ff_cavs_mv(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)
                ff_cavs_mv(h, MV_FWD_X2, MV_FWD_A1, MV_PRED_LEFT, BLK_16X8, 1);
            if (flags & SYM1)
                mv_pred_sym(h, &h->mv[MV_FWD_X2], BLK_16X8);
            if (flags & BWD0)
                ff_cavs_mv(h, MV_BWD_X0, MV_BWD_C2, MV_PRED_TOP,  BLK_16X8, 0);
            if (flags & BWD1)
                ff_cavs_mv(h, MV_BWD_X2, MV_BWD_A1, MV_PRED_LEFT, BLK_16X8, 0);
        } else {
            if (flags & FWD0)
                ff_cavs_mv(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)
                ff_cavs_mv(h, MV_FWD_X1, MV_FWD_C2, MV_PRED_TOPRIGHT, BLK_8X16, 1);
            if (flags & SYM1)
                mv_pred_sym(h, &h->mv[MV_FWD_X1], BLK_8X16);
            if (flags & BWD0)
                ff_cavs_mv(h, MV_BWD_X0, MV_BWD_B3, MV_PRED_LEFT, BLK_8X16, 0);
            if (flags & BWD1)
                ff_cavs_mv(h, MV_BWD_X1, MV_BWD_C2, MV_PRED_TOPRIGHT, BLK_8X16, 0);
        }
    }
    ff_cavs_inter(h, mb_type);
    set_intra_mode_default(h);
    if (mb_type != B_SKIP)
        decode_residual_inter(h);
    ff_cavs_filter(h, mb_type);
}
['static void decode_mb_b(AVSContext *h, enum cavs_mb mb_type)\n{\n    int block;\n    enum cavs_sub_mb sub_type[4];\n    int flags;\n    ff_cavs_init_mb(h);\n    h->mv[MV_FWD_X0] = ff_cavs_dir_mv;\n    set_mvs(&h->mv[MV_FWD_X0], BLK_16X16);\n    h->mv[MV_BWD_X0] = ff_cavs_dir_mv;\n    set_mvs(&h->mv[MV_BWD_X0], BLK_16X16);\n    switch (mb_type) {\n    case B_SKIP:\n    case B_DIRECT:\n        if (!h->col_type_base[h->mbidx]) {\n            ff_cavs_mv(h, MV_FWD_X0, MV_FWD_C2, MV_PRED_BSKIP, BLK_16X16, 1);\n            ff_cavs_mv(h, MV_BWD_X0, MV_BWD_C2, MV_PRED_BSKIP, BLK_16X16, 0);\n        } else\n            for (block = 0; block < 4; block++)\n                mv_pred_direct(h, &h->mv[mv_scan[block]],\n                               &h->col_mv[h->mbidx * 4 + block]);\n        break;\n    case B_FWD_16X16:\n        ff_cavs_mv(h, MV_FWD_X0, MV_FWD_C2, MV_PRED_MEDIAN, BLK_16X16, 1);\n        break;\n    case B_SYM_16X16:\n        ff_cavs_mv(h, MV_FWD_X0, MV_FWD_C2, MV_PRED_MEDIAN, BLK_16X16, 1);\n        mv_pred_sym(h, &h->mv[MV_FWD_X0], BLK_16X16);\n        break;\n    case B_BWD_16X16:\n        ff_cavs_mv(h, MV_BWD_X0, MV_BWD_C2, MV_PRED_MEDIAN, BLK_16X16, 0);\n        break;\n    case B_8X8:\n        for (block = 0; block < 4; block++)\n            sub_type[block] = get_bits(&h->s.gb, 2);\n        for (block = 0; block < 4; block++) {\n            switch (sub_type[block]) {\n            case B_SUB_DIRECT:\n                if (!h->col_type_base[h->mbidx]) {\n                    ff_cavs_mv(h, mv_scan[block], mv_scan[block] - 3,\n                               MV_PRED_BSKIP, BLK_8X8, 1);\n                    ff_cavs_mv(h, mv_scan[block] + MV_BWD_OFFS,\n                               mv_scan[block] - 3 + MV_BWD_OFFS,\n                               MV_PRED_BSKIP, BLK_8X8, 0);\n                } else\n                    mv_pred_direct(h, &h->mv[mv_scan[block]],\n                                   &h->col_mv[h->mbidx * 4 + block]);\n                break;\n            case B_SUB_FWD:\n                ff_cavs_mv(h, mv_scan[block], mv_scan[block] - 3,\n                           MV_PRED_MEDIAN, BLK_8X8, 1);\n                break;\n            case B_SUB_SYM:\n                ff_cavs_mv(h, mv_scan[block], mv_scan[block] - 3,\n                           MV_PRED_MEDIAN, BLK_8X8, 1);\n                mv_pred_sym(h, &h->mv[mv_scan[block]], BLK_8X8);\n                break;\n            }\n        }\n        for (block = 0; block < 4; block++) {\n            if (sub_type[block] == B_SUB_BWD)\n                ff_cavs_mv(h, mv_scan[block] + MV_BWD_OFFS,\n                           mv_scan[block] + MV_BWD_OFFS - 3,\n                           MV_PRED_MEDIAN, BLK_8X8, 0);\n        }\n        break;\n    default:\n        assert((mb_type > B_SYM_16X16) && (mb_type < B_8X8));\n        flags = ff_cavs_partition_flags[mb_type];\n        if (mb_type & 1) {\n            if (flags & FWD0)\n                ff_cavs_mv(h, MV_FWD_X0, MV_FWD_C2, MV_PRED_TOP,  BLK_16X8, 1);\n            if (flags & SYM0)\n                mv_pred_sym(h, &h->mv[MV_FWD_X0], BLK_16X8);\n            if (flags & FWD1)\n                ff_cavs_mv(h, MV_FWD_X2, MV_FWD_A1, MV_PRED_LEFT, BLK_16X8, 1);\n            if (flags & SYM1)\n                mv_pred_sym(h, &h->mv[MV_FWD_X2], BLK_16X8);\n            if (flags & BWD0)\n                ff_cavs_mv(h, MV_BWD_X0, MV_BWD_C2, MV_PRED_TOP,  BLK_16X8, 0);\n            if (flags & BWD1)\n                ff_cavs_mv(h, MV_BWD_X2, MV_BWD_A1, MV_PRED_LEFT, BLK_16X8, 0);\n        } else {\n            if (flags & FWD0)\n                ff_cavs_mv(h, MV_FWD_X0, MV_FWD_B3, MV_PRED_LEFT, BLK_8X16, 1);\n            if (flags & SYM0)\n                mv_pred_sym(h, &h->mv[MV_FWD_X0], BLK_8X16);\n            if (flags & FWD1)\n                ff_cavs_mv(h, MV_FWD_X1, MV_FWD_C2, MV_PRED_TOPRIGHT, BLK_8X16, 1);\n            if (flags & SYM1)\n                mv_pred_sym(h, &h->mv[MV_FWD_X1], BLK_8X16);\n            if (flags & BWD0)\n                ff_cavs_mv(h, MV_BWD_X0, MV_BWD_B3, MV_PRED_LEFT, BLK_8X16, 0);\n            if (flags & BWD1)\n                ff_cavs_mv(h, MV_BWD_X1, MV_BWD_C2, MV_PRED_TOPRIGHT, BLK_8X16, 0);\n        }\n    }\n    ff_cavs_inter(h, mb_type);\n    set_intra_mode_default(h);\n    if (mb_type != B_SKIP)\n        decode_residual_inter(h);\n    ff_cavs_filter(h, mb_type);\n}']