libavcodec/rv40.c:434: error: Uninitialized Value
  The value read from mb_strong[_] was never initialized.

libavcodec/rv40.c:434:40: 
432.         if(!row)
433.             y_h_deblock &= ~MASK_Y_TOP_ROW;
434.         if(row == s->mb_height - 1 || (mb_strong[POS_CUR] | mb_strong[POS_BOTTOM]))
                                            ^
435.             y_h_deblock &= ~(MASK_Y_TOP_ROW << 16);
436.         /* Calculating chroma patterns is similar and easier since there is

static void rv40_loop_filter(RV34DecContext *r, int row)
{
    MpegEncContext *s = &r->s;
    int mb_pos, mb_x;
    int i, j, k;
    uint8_t *Y, *C;
    int alpha, beta, betaY, betaC;
    int q;
    int mbtype[4];
    int mb_strong[4];
    int clip[4];
    int cbp[4];
    int uvcbp[4][2];
    unsigned mvmasks[4];
    mb_pos = row * s->mb_stride;
    for(mb_x = 0; mb_x < s->mb_width; mb_x++, mb_pos++){
        int mbtype = s->current_picture_ptr->f.mb_type[mb_pos];
        if(IS_INTRA(mbtype) || IS_SEPARATE_DC(mbtype))
            r->cbp_luma  [mb_pos] = r->deblock_coefs[mb_pos] = 0xFFFF;
        if(IS_INTRA(mbtype))
            r->cbp_chroma[mb_pos] = 0xFF;
    }
    mb_pos = row * s->mb_stride;
    for(mb_x = 0; mb_x < s->mb_width; mb_x++, mb_pos++){
        int y_h_deblock, y_v_deblock;
        int c_v_deblock[2], c_h_deblock[2];
        int clip_left;
        int avail[4];
        unsigned y_to_deblock;
        int c_to_deblock[2];
        q = s->current_picture_ptr->f.qscale_table[mb_pos];
        alpha = rv40_alpha_tab[q];
        beta  = rv40_beta_tab [q];
        betaY = betaC = beta * 3;
        if(s->width * s->height <= 176*144)
            betaY += beta;
        avail[0] = 1;
        avail[1] = row;
        avail[2] = mb_x;
        avail[3] = row < s->mb_height - 1;
        for(i = 0; i < 4; i++){
            if(avail[i]){
                int pos = mb_pos + neighbour_offs_x[i] + neighbour_offs_y[i]*s->mb_stride;
                mvmasks[i] = r->deblock_coefs[pos];
                mbtype [i] = s->current_picture_ptr->f.mb_type[pos];
                cbp    [i] = r->cbp_luma[pos];
                uvcbp[i][0] = r->cbp_chroma[pos] & 0xF;
                uvcbp[i][1] = r->cbp_chroma[pos] >> 4;
            }else{
                mvmasks[i] = 0;
                mbtype [i] = mbtype[0];
                cbp    [i] = 0;
                uvcbp[i][0] = uvcbp[i][1] = 0;
            }
            mb_strong[i] = IS_INTRA(mbtype[i]) || IS_SEPARATE_DC(mbtype[i]);
            clip[i] = rv40_filter_clip_tbl[mb_strong[i] + 1][q];
        }
        y_to_deblock =  mvmasks[POS_CUR]
                     | (mvmasks[POS_BOTTOM] << 16);
        y_h_deblock =   y_to_deblock
                    | ((cbp[POS_CUR]                           <<  4) & ~MASK_Y_TOP_ROW)
                    | ((cbp[POS_TOP]        & MASK_Y_LAST_ROW) >> 12);
        y_v_deblock =   y_to_deblock
                    | ((cbp[POS_CUR]                      << 1) & ~MASK_Y_LEFT_COL)
                    | ((cbp[POS_LEFT] & MASK_Y_RIGHT_COL) >> 3);
        if(!mb_x)
            y_v_deblock &= ~MASK_Y_LEFT_COL;
        if(!row)
            y_h_deblock &= ~MASK_Y_TOP_ROW;
        if(row == s->mb_height - 1 || (mb_strong[POS_CUR] | mb_strong[POS_BOTTOM]))
            y_h_deblock &= ~(MASK_Y_TOP_ROW << 16);
        for(i = 0; i < 2; i++){
            c_to_deblock[i] = (uvcbp[POS_BOTTOM][i] << 4) | uvcbp[POS_CUR][i];
            c_v_deblock[i] =   c_to_deblock[i]
                           | ((uvcbp[POS_CUR] [i]                       << 1) & ~MASK_C_LEFT_COL)
                           | ((uvcbp[POS_LEFT][i]   & MASK_C_RIGHT_COL) >> 1);
            c_h_deblock[i] =   c_to_deblock[i]
                           | ((uvcbp[POS_TOP][i]    & MASK_C_LAST_ROW)  >> 2)
                           |  (uvcbp[POS_CUR][i]                        << 2);
            if(!mb_x)
                c_v_deblock[i] &= ~MASK_C_LEFT_COL;
            if(!row)
                c_h_deblock[i] &= ~MASK_C_TOP_ROW;
            if(row == s->mb_height - 1 || (mb_strong[POS_CUR] | mb_strong[POS_BOTTOM]))
                c_h_deblock[i] &= ~(MASK_C_TOP_ROW << 4);
        }
        for(j = 0; j < 16; j += 4){
            Y = s->current_picture_ptr->f.data[0] + mb_x*16 + (row*16 + j) * s->linesize;
            for(i = 0; i < 4; i++, Y += 4){
                int ij = i + j;
                int clip_cur = y_to_deblock & (MASK_CUR << ij) ? clip[POS_CUR] : 0;
                int dither = j ? ij : i*4;
                if(y_h_deblock & (MASK_BOTTOM << ij)){
                    rv40_adaptive_loop_filter(&r->rdsp, Y+4*s->linesize,
                                              s->linesize, dither,
                                              y_to_deblock & (MASK_BOTTOM << ij) ? clip[POS_CUR] : 0,
                                              clip_cur, alpha, beta, betaY,
                                              0, 0, 0);
                }
                if(y_v_deblock & (MASK_CUR << ij) && (i || !(mb_strong[POS_CUR] | mb_strong[POS_LEFT]))){
                    if(!i)
                        clip_left = mvmasks[POS_LEFT] & (MASK_RIGHT << j) ? clip[POS_LEFT] : 0;
                    else
                        clip_left = y_to_deblock & (MASK_CUR << (ij-1)) ? clip[POS_CUR] : 0;
                    rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither,
                                              clip_cur,
                                              clip_left,
                                              alpha, beta, betaY, 0, 0, 1);
                }
                if(!j && y_h_deblock & (MASK_CUR << i) && (mb_strong[POS_CUR] | mb_strong[POS_TOP])){
                    rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither,
                                       clip_cur,
                                       mvmasks[POS_TOP] & (MASK_TOP << i) ? clip[POS_TOP] : 0,
                                       alpha, beta, betaY, 0, 1, 0);
                }
                if(y_v_deblock & (MASK_CUR << ij) && !i && (mb_strong[POS_CUR] | mb_strong[POS_LEFT])){
                    clip_left = mvmasks[POS_LEFT] & (MASK_RIGHT << j) ? clip[POS_LEFT] : 0;
                    rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither,
                                       clip_cur,
                                       clip_left,
                                       alpha, beta, betaY, 0, 1, 1);
                }
            }
        }
        for(k = 0; k < 2; k++){
            for(j = 0; j < 2; j++){
                C = s->current_picture_ptr->f.data[k + 1] + mb_x*8 + (row*8 + j*4) * s->uvlinesize;
                for(i = 0; i < 2; i++, C += 4){
                    int ij = i + j*2;
                    int clip_cur = c_to_deblock[k] & (MASK_CUR << ij) ? clip[POS_CUR] : 0;
                    if(c_h_deblock[k] & (MASK_CUR << (ij+2))){
                        int clip_bot = c_to_deblock[k] & (MASK_CUR << (ij+2)) ? clip[POS_CUR] : 0;
                        rv40_adaptive_loop_filter(&r->rdsp, C+4*s->uvlinesize, s->uvlinesize, i*8,
                                           clip_bot,
                                           clip_cur,
                                           alpha, beta, betaC, 1, 0, 0);
                    }
                    if((c_v_deblock[k] & (MASK_CUR << ij)) && (i || !(mb_strong[POS_CUR] | mb_strong[POS_LEFT]))){
                        if(!i)
                            clip_left = uvcbp[POS_LEFT][k] & (MASK_CUR << (2*j+1)) ? clip[POS_LEFT] : 0;
                        else
                            clip_left = c_to_deblock[k]    & (MASK_CUR << (ij-1))  ? clip[POS_CUR]  : 0;
                        rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, j*8,
                                           clip_cur,
                                           clip_left,
                                           alpha, beta, betaC, 1, 0, 1);
                    }
                    if(!j && c_h_deblock[k] & (MASK_CUR << ij) && (mb_strong[POS_CUR] | mb_strong[POS_TOP])){
                        int clip_top = uvcbp[POS_TOP][k] & (MASK_CUR << (ij+2)) ? clip[POS_TOP] : 0;
                        rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, i*8,
                                           clip_cur,
                                           clip_top,
                                           alpha, beta, betaC, 1, 1, 0);
                    }
                    if(c_v_deblock[k] & (MASK_CUR << ij) && !i && (mb_strong[POS_CUR] | mb_strong[POS_LEFT])){
                        clip_left = uvcbp[POS_LEFT][k] & (MASK_CUR << (2*j+1)) ? clip[POS_LEFT] : 0;
                        rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, j*8,
                                           clip_cur,
                                           clip_left,
                                           alpha, beta, betaC, 1, 1, 1);
                    }
                }
            }
        }
    }
}
['static void rv40_loop_filter(RV34DecContext *r, int row)\n{\n    MpegEncContext *s = &r->s;\n    int mb_pos, mb_x;\n    int i, j, k;\n    uint8_t *Y, *C;\n    int alpha, beta, betaY, betaC;\n    int q;\n    int mbtype[4];\n    int mb_strong[4];\n    int clip[4];\n    int cbp[4];\n    int uvcbp[4][2];\n    unsigned mvmasks[4];\n    mb_pos = row * s->mb_stride;\n    for(mb_x = 0; mb_x < s->mb_width; mb_x++, mb_pos++){\n        int mbtype = s->current_picture_ptr->f.mb_type[mb_pos];\n        if(IS_INTRA(mbtype) || IS_SEPARATE_DC(mbtype))\n            r->cbp_luma  [mb_pos] = r->deblock_coefs[mb_pos] = 0xFFFF;\n        if(IS_INTRA(mbtype))\n            r->cbp_chroma[mb_pos] = 0xFF;\n    }\n    mb_pos = row * s->mb_stride;\n    for(mb_x = 0; mb_x < s->mb_width; mb_x++, mb_pos++){\n        int y_h_deblock, y_v_deblock;\n        int c_v_deblock[2], c_h_deblock[2];\n        int clip_left;\n        int avail[4];\n        unsigned y_to_deblock;\n        int c_to_deblock[2];\n        q = s->current_picture_ptr->f.qscale_table[mb_pos];\n        alpha = rv40_alpha_tab[q];\n        beta  = rv40_beta_tab [q];\n        betaY = betaC = beta * 3;\n        if(s->width * s->height <= 176*144)\n            betaY += beta;\n        avail[0] = 1;\n        avail[1] = row;\n        avail[2] = mb_x;\n        avail[3] = row < s->mb_height - 1;\n        for(i = 0; i < 4; i++){\n            if(avail[i]){\n                int pos = mb_pos + neighbour_offs_x[i] + neighbour_offs_y[i]*s->mb_stride;\n                mvmasks[i] = r->deblock_coefs[pos];\n                mbtype [i] = s->current_picture_ptr->f.mb_type[pos];\n                cbp    [i] = r->cbp_luma[pos];\n                uvcbp[i][0] = r->cbp_chroma[pos] & 0xF;\n                uvcbp[i][1] = r->cbp_chroma[pos] >> 4;\n            }else{\n                mvmasks[i] = 0;\n                mbtype [i] = mbtype[0];\n                cbp    [i] = 0;\n                uvcbp[i][0] = uvcbp[i][1] = 0;\n            }\n            mb_strong[i] = IS_INTRA(mbtype[i]) || IS_SEPARATE_DC(mbtype[i]);\n            clip[i] = rv40_filter_clip_tbl[mb_strong[i] + 1][q];\n        }\n        y_to_deblock =  mvmasks[POS_CUR]\n                     | (mvmasks[POS_BOTTOM] << 16);\n        y_h_deblock =   y_to_deblock\n                    | ((cbp[POS_CUR]                           <<  4) & ~MASK_Y_TOP_ROW)\n                    | ((cbp[POS_TOP]        & MASK_Y_LAST_ROW) >> 12);\n        y_v_deblock =   y_to_deblock\n                    | ((cbp[POS_CUR]                      << 1) & ~MASK_Y_LEFT_COL)\n                    | ((cbp[POS_LEFT] & MASK_Y_RIGHT_COL) >> 3);\n        if(!mb_x)\n            y_v_deblock &= ~MASK_Y_LEFT_COL;\n        if(!row)\n            y_h_deblock &= ~MASK_Y_TOP_ROW;\n        if(row == s->mb_height - 1 || (mb_strong[POS_CUR] | mb_strong[POS_BOTTOM]))\n            y_h_deblock &= ~(MASK_Y_TOP_ROW << 16);\n        for(i = 0; i < 2; i++){\n            c_to_deblock[i] = (uvcbp[POS_BOTTOM][i] << 4) | uvcbp[POS_CUR][i];\n            c_v_deblock[i] =   c_to_deblock[i]\n                           | ((uvcbp[POS_CUR] [i]                       << 1) & ~MASK_C_LEFT_COL)\n                           | ((uvcbp[POS_LEFT][i]   & MASK_C_RIGHT_COL) >> 1);\n            c_h_deblock[i] =   c_to_deblock[i]\n                           | ((uvcbp[POS_TOP][i]    & MASK_C_LAST_ROW)  >> 2)\n                           |  (uvcbp[POS_CUR][i]                        << 2);\n            if(!mb_x)\n                c_v_deblock[i] &= ~MASK_C_LEFT_COL;\n            if(!row)\n                c_h_deblock[i] &= ~MASK_C_TOP_ROW;\n            if(row == s->mb_height - 1 || (mb_strong[POS_CUR] | mb_strong[POS_BOTTOM]))\n                c_h_deblock[i] &= ~(MASK_C_TOP_ROW << 4);\n        }\n        for(j = 0; j < 16; j += 4){\n            Y = s->current_picture_ptr->f.data[0] + mb_x*16 + (row*16 + j) * s->linesize;\n            for(i = 0; i < 4; i++, Y += 4){\n                int ij = i + j;\n                int clip_cur = y_to_deblock & (MASK_CUR << ij) ? clip[POS_CUR] : 0;\n                int dither = j ? ij : i*4;\n                if(y_h_deblock & (MASK_BOTTOM << ij)){\n                    rv40_adaptive_loop_filter(&r->rdsp, Y+4*s->linesize,\n                                              s->linesize, dither,\n                                              y_to_deblock & (MASK_BOTTOM << ij) ? clip[POS_CUR] : 0,\n                                              clip_cur, alpha, beta, betaY,\n                                              0, 0, 0);\n                }\n                if(y_v_deblock & (MASK_CUR << ij) && (i || !(mb_strong[POS_CUR] | mb_strong[POS_LEFT]))){\n                    if(!i)\n                        clip_left = mvmasks[POS_LEFT] & (MASK_RIGHT << j) ? clip[POS_LEFT] : 0;\n                    else\n                        clip_left = y_to_deblock & (MASK_CUR << (ij-1)) ? clip[POS_CUR] : 0;\n                    rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither,\n                                              clip_cur,\n                                              clip_left,\n                                              alpha, beta, betaY, 0, 0, 1);\n                }\n                if(!j && y_h_deblock & (MASK_CUR << i) && (mb_strong[POS_CUR] | mb_strong[POS_TOP])){\n                    rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither,\n                                       clip_cur,\n                                       mvmasks[POS_TOP] & (MASK_TOP << i) ? clip[POS_TOP] : 0,\n                                       alpha, beta, betaY, 0, 1, 0);\n                }\n                if(y_v_deblock & (MASK_CUR << ij) && !i && (mb_strong[POS_CUR] | mb_strong[POS_LEFT])){\n                    clip_left = mvmasks[POS_LEFT] & (MASK_RIGHT << j) ? clip[POS_LEFT] : 0;\n                    rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither,\n                                       clip_cur,\n                                       clip_left,\n                                       alpha, beta, betaY, 0, 1, 1);\n                }\n            }\n        }\n        for(k = 0; k < 2; k++){\n            for(j = 0; j < 2; j++){\n                C = s->current_picture_ptr->f.data[k + 1] + mb_x*8 + (row*8 + j*4) * s->uvlinesize;\n                for(i = 0; i < 2; i++, C += 4){\n                    int ij = i + j*2;\n                    int clip_cur = c_to_deblock[k] & (MASK_CUR << ij) ? clip[POS_CUR] : 0;\n                    if(c_h_deblock[k] & (MASK_CUR << (ij+2))){\n                        int clip_bot = c_to_deblock[k] & (MASK_CUR << (ij+2)) ? clip[POS_CUR] : 0;\n                        rv40_adaptive_loop_filter(&r->rdsp, C+4*s->uvlinesize, s->uvlinesize, i*8,\n                                           clip_bot,\n                                           clip_cur,\n                                           alpha, beta, betaC, 1, 0, 0);\n                    }\n                    if((c_v_deblock[k] & (MASK_CUR << ij)) && (i || !(mb_strong[POS_CUR] | mb_strong[POS_LEFT]))){\n                        if(!i)\n                            clip_left = uvcbp[POS_LEFT][k] & (MASK_CUR << (2*j+1)) ? clip[POS_LEFT] : 0;\n                        else\n                            clip_left = c_to_deblock[k]    & (MASK_CUR << (ij-1))  ? clip[POS_CUR]  : 0;\n                        rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, j*8,\n                                           clip_cur,\n                                           clip_left,\n                                           alpha, beta, betaC, 1, 0, 1);\n                    }\n                    if(!j && c_h_deblock[k] & (MASK_CUR << ij) && (mb_strong[POS_CUR] | mb_strong[POS_TOP])){\n                        int clip_top = uvcbp[POS_TOP][k] & (MASK_CUR << (ij+2)) ? clip[POS_TOP] : 0;\n                        rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, i*8,\n                                           clip_cur,\n                                           clip_top,\n                                           alpha, beta, betaC, 1, 1, 0);\n                    }\n                    if(c_v_deblock[k] & (MASK_CUR << ij) && !i && (mb_strong[POS_CUR] | mb_strong[POS_LEFT])){\n                        clip_left = uvcbp[POS_LEFT][k] & (MASK_CUR << (2*j+1)) ? clip[POS_LEFT] : 0;\n                        rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, j*8,\n                                           clip_cur,\n                                           clip_left,\n                                           alpha, beta, betaC, 1, 1, 1);\n                    }\n                }\n            }\n        }\n    }\n}']