libavcodec/h264_loopfilter.c:594: error: Uninitialized Value
  The value read from bS[_] was never initialized.

libavcodec/h264_loopfilter.c:594:16: 
592.             // Do not use s->qscale as luma quantizer because it has not the same
593.             // value in IPCM macroblocks.
594.             if(bS[0]+bS[1]+bS[2]+bS[3]){
                    ^
595.                 qp = (h->cur_pic.qscale_table[mb_xy] + h->cur_pic.qscale_table[mbm_xy] + 1) >> 1;
596.                 ff_tlog(h->avctx, "filter mb:%d/%d dir:%d edge:%d, QPy:%d ls:%d uvls:%d", mb_x, mb_y, dir, edge, qp, linesize, uvlinesize);

static av_always_inline void filter_mb_dir(const H264Context *h, H264SliceContext *sl,
                                           int mb_x, int mb_y,
                                           uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr,
                                           unsigned int linesize, unsigned int uvlinesize,
                                           int mb_xy, int mb_type, int mvy_limit,
                                           int first_vertical_edge_done, int a, int b,
                                           int chroma, int dir)
{
    int edge;
    int chroma_qp_avg[2];
    int chroma444 = CHROMA444(h);
    int chroma422 = CHROMA422(h);
    const int mbm_xy = dir == 0 ? mb_xy -1 : sl->top_mb_xy;
    const int mbm_type = dir == 0 ? sl->left_type[LTOP] : sl->top_type;
    static const uint8_t mask_edge_tab[2][8]={{0,3,3,3,1,1,1,1},
                                              {0,3,1,1,3,3,3,3}};
    const int mask_edge = mask_edge_tab[dir][(mb_type>>3)&7];
    const int edges = mask_edge== 3 && !(sl->cbp&15) ? 1 : 4;
    const int mask_par0 = mb_type & (MB_TYPE_16x16 | (MB_TYPE_8x16 >> dir));
    if(mbm_type && !first_vertical_edge_done){
        if (FRAME_MBAFF(h) && (dir == 1) && ((mb_y&1) == 0)
            && IS_INTERLACED(mbm_type&~mb_type)
            ) {
            unsigned int tmp_linesize   = 2 *   linesize;
            unsigned int tmp_uvlinesize = 2 * uvlinesize;
            int mbn_xy = mb_xy - 2 * h->mb_stride;
            int j;
            for(j=0; j<2; j++, mbn_xy += h->mb_stride){
                DECLARE_ALIGNED(8, int16_t, bS)[4];
                int qp;
                if (IS_INTRA(mb_type | h->cur_pic.mb_type[mbn_xy])) {
                    AV_WN64A(bS, 0x0003000300030003ULL);
                } else {
                    if (!CABAC(h) && IS_8x8DCT(h->cur_pic.mb_type[mbn_xy])) {
                        bS[0]= 1+((h->cbp_table[mbn_xy] & 0x4000) || sl->non_zero_count_cache[scan8[0]+0]);
                        bS[1]= 1+((h->cbp_table[mbn_xy] & 0x4000) || sl->non_zero_count_cache[scan8[0]+1]);
                        bS[2]= 1+((h->cbp_table[mbn_xy] & 0x8000) || sl->non_zero_count_cache[scan8[0]+2]);
                        bS[3]= 1+((h->cbp_table[mbn_xy] & 0x8000) || sl->non_zero_count_cache[scan8[0]+3]);
                    }else{
                    const uint8_t *mbn_nnz = h->non_zero_count[mbn_xy] + 3*4;
                    int i;
                    for( i = 0; i < 4; i++ ) {
                        bS[i] = 1 + !!(sl->non_zero_count_cache[scan8[0]+i] | mbn_nnz[i]);
                    }
                    }
                }
                qp = (h->cur_pic.qscale_table[mb_xy] + h->cur_pic.qscale_table[mbn_xy] + 1) >> 1;
                ff_tlog(h->avctx, "filter mb:%d/%d dir:%d edge:%d, QPy:%d ls:%d uvls:%d", mb_x, mb_y, dir, edge, qp, tmp_linesize, tmp_uvlinesize);
                { int i; for (i = 0; i < 4; i++) ff_tlog(h->avctx, " bS[%d]:%d", i, bS[i]); ff_tlog(h->avctx, "\n"); }
                filter_mb_edgeh( &img_y[j*linesize], tmp_linesize, bS, qp, a, b, h, 0 );
                chroma_qp_avg[0] = (sl->chroma_qp[0] + get_chroma_qp(h, 0, h->cur_pic.qscale_table[mbn_xy]) + 1) >> 1;
                chroma_qp_avg[1] = (sl->chroma_qp[1] + get_chroma_qp(h, 1, h->cur_pic.qscale_table[mbn_xy]) + 1) >> 1;
                if (chroma) {
                    if (chroma444) {
                        filter_mb_edgeh (&img_cb[j*uvlinesize], tmp_uvlinesize, bS, chroma_qp_avg[0], a, b, h, 0);
                        filter_mb_edgeh (&img_cr[j*uvlinesize], tmp_uvlinesize, bS, chroma_qp_avg[1], a, b, h, 0);
                    } else {
                        filter_mb_edgech(&img_cb[j*uvlinesize], tmp_uvlinesize, bS, chroma_qp_avg[0], a, b, h, 0);
                        filter_mb_edgech(&img_cr[j*uvlinesize], tmp_uvlinesize, bS, chroma_qp_avg[1], a, b, h, 0);
                    }
                }
            }
        }else{
            DECLARE_ALIGNED(8, int16_t, bS)[4];
            int qp;
            if( IS_INTRA(mb_type|mbm_type)) {
                AV_WN64A(bS, 0x0003000300030003ULL);
                if (   (!IS_INTERLACED(mb_type|mbm_type))
                    || ((FRAME_MBAFF(h) || (h->picture_structure != PICT_FRAME)) && (dir == 0))
                )
                    AV_WN64A(bS, 0x0004000400040004ULL);
            } else {
                int i;
                int mv_done;
                if( dir && FRAME_MBAFF(h) && IS_INTERLACED(mb_type ^ mbm_type)) {
                    AV_WN64A(bS, 0x0001000100010001ULL);
                    mv_done = 1;
                }
                else if( mask_par0 && ((mbm_type & (MB_TYPE_16x16 | (MB_TYPE_8x16 >> dir)))) ) {
                    int b_idx= 8 + 4;
                    int bn_idx= b_idx - (dir ? 8:1);
                    bS[0] = bS[1] = bS[2] = bS[3] = check_mv(sl, 8 + 4, bn_idx, mvy_limit);
                    mv_done = 1;
                }
                else
                    mv_done = 0;
                for( i = 0; i < 4; i++ ) {
                    int x = dir == 0 ? 0 : i;
                    int y = dir == 0 ? i    : 0;
                    int b_idx= 8 + 4 + x + 8*y;
                    int bn_idx= b_idx - (dir ? 8:1);
                    if (sl->non_zero_count_cache[b_idx] |
                        sl->non_zero_count_cache[bn_idx]) {
                        bS[i] = 2;
                    }
                    else if(!mv_done)
                    {
                        bS[i] = check_mv(sl, b_idx, bn_idx, mvy_limit);
                    }
                }
            }
            if(bS[0]+bS[1]+bS[2]+bS[3]){
                qp = (h->cur_pic.qscale_table[mb_xy] + h->cur_pic.qscale_table[mbm_xy] + 1) >> 1;
                ff_tlog(h->avctx, "filter mb:%d/%d dir:%d edge:%d, QPy:%d ls:%d uvls:%d", mb_x, mb_y, dir, edge, qp, linesize, uvlinesize);
                chroma_qp_avg[0] = (sl->chroma_qp[0] + get_chroma_qp(h, 0, h->cur_pic.qscale_table[mbm_xy]) + 1) >> 1;
                chroma_qp_avg[1] = (sl->chroma_qp[1] + get_chroma_qp(h, 1, h->cur_pic.qscale_table[mbm_xy]) + 1) >> 1;
                if( dir == 0 ) {
                    filter_mb_edgev( &img_y[0], linesize, bS, qp, a, b, h, 1 );
                    if (chroma) {
                        if (chroma444) {
                            filter_mb_edgev ( &img_cb[0], uvlinesize, bS, chroma_qp_avg[0], a, b, h, 1);
                            filter_mb_edgev ( &img_cr[0], uvlinesize, bS, chroma_qp_avg[1], a, b, h, 1);
                        } else {
                            filter_mb_edgecv( &img_cb[0], uvlinesize, bS, chroma_qp_avg[0], a, b, h, 1);
                            filter_mb_edgecv( &img_cr[0], uvlinesize, bS, chroma_qp_avg[1], a, b, h, 1);
                        }
                    }
                } else {
                    filter_mb_edgeh( &img_y[0], linesize, bS, qp, a, b, h, 1 );
                    if (chroma) {
                        if (chroma444) {
                            filter_mb_edgeh ( &img_cb[0], uvlinesize, bS, chroma_qp_avg[0], a, b, h, 1);
                            filter_mb_edgeh ( &img_cr[0], uvlinesize, bS, chroma_qp_avg[1], a, b, h, 1);
                        } else {
                            filter_mb_edgech( &img_cb[0], uvlinesize, bS, chroma_qp_avg[0], a, b, h, 1);
                            filter_mb_edgech( &img_cr[0], uvlinesize, bS, chroma_qp_avg[1], a, b, h, 1);
                        }
                    }
                }
            }
        }
    }
    for( edge = 1; edge < edges; edge++ ) {
        DECLARE_ALIGNED(8, int16_t, bS)[4];
        int qp;
        const int deblock_edge = !IS_8x8DCT(mb_type & (edge<<24));
        if (!deblock_edge && (!chroma422 || dir == 0))
            continue;
        if( IS_INTRA(mb_type)) {
            AV_WN64A(bS, 0x0003000300030003ULL);
        } else {
            int i;
            int mv_done;
            if( edge & mask_edge ) {
                AV_ZERO64(bS);
                mv_done = 1;
            }
            else if( mask_par0 ) {
                int b_idx= 8 + 4 + edge * (dir ? 8:1);
                int bn_idx= b_idx - (dir ? 8:1);
                bS[0] = bS[1] = bS[2] = bS[3] = check_mv(sl, b_idx, bn_idx, mvy_limit);
                mv_done = 1;
            }
            else
                mv_done = 0;
            for( i = 0; i < 4; i++ ) {
                int x = dir == 0 ? edge : i;
                int y = dir == 0 ? i    : edge;
                int b_idx= 8 + 4 + x + 8*y;
                int bn_idx= b_idx - (dir ? 8:1);
                if (sl->non_zero_count_cache[b_idx] |
                    sl->non_zero_count_cache[bn_idx]) {
                    bS[i] = 2;
                }
                else if(!mv_done)
                {
                    bS[i] = check_mv(sl, b_idx, bn_idx, mvy_limit);
                }
            }
            if(bS[0]+bS[1]+bS[2]+bS[3] == 0)
                continue;
        }
        qp = h->cur_pic.qscale_table[mb_xy];
        ff_tlog(h->avctx, "filter mb:%d/%d dir:%d edge:%d, QPy:%d ls:%d uvls:%d", mb_x, mb_y, dir, edge, qp, linesize, uvlinesize);
        if( dir == 0 ) {
            filter_mb_edgev( &img_y[4*edge << h->pixel_shift], linesize, bS, qp, a, b, h, 0 );
            if (chroma) {
                if (chroma444) {
                    filter_mb_edgev ( &img_cb[4*edge << h->pixel_shift], uvlinesize, bS, sl->chroma_qp[0], a, b, h, 0);
                    filter_mb_edgev ( &img_cr[4*edge << h->pixel_shift], uvlinesize, bS, sl->chroma_qp[1], a, b, h, 0);
                } else if( (edge&1) == 0 ) {
                    filter_mb_edgecv( &img_cb[2*edge << h->pixel_shift], uvlinesize, bS, sl->chroma_qp[0], a, b, h, 0);
                    filter_mb_edgecv( &img_cr[2*edge << h->pixel_shift], uvlinesize, bS, sl->chroma_qp[1], a, b, h, 0);
                }
            }
        } else {
            if (chroma422) {
                if (deblock_edge)
                    filter_mb_edgeh(&img_y[4*edge*linesize], linesize, bS, qp, a, b, h, 0);
                if (chroma) {
                    filter_mb_edgech(&img_cb[4*edge*uvlinesize], uvlinesize, bS, sl->chroma_qp[0], a, b, h, 0);
                    filter_mb_edgech(&img_cr[4*edge*uvlinesize], uvlinesize, bS, sl->chroma_qp[1], a, b, h, 0);
                }
            } else {
                filter_mb_edgeh(&img_y[4*edge*linesize], linesize, bS, qp, a, b, h, 0);
                if (chroma) {
                    if (chroma444) {
                        filter_mb_edgeh (&img_cb[4*edge*uvlinesize], uvlinesize, bS, sl->chroma_qp[0], a, b, h, 0);
                        filter_mb_edgeh (&img_cr[4*edge*uvlinesize], uvlinesize, bS, sl->chroma_qp[1], a, b, h, 0);
                    } else if ((edge&1) == 0) {
                        filter_mb_edgech(&img_cb[2*edge*uvlinesize], uvlinesize, bS, sl->chroma_qp[0], a, b, h, 0);
                        filter_mb_edgech(&img_cr[2*edge*uvlinesize], uvlinesize, bS, sl->chroma_qp[1], a, b, h, 0);
                    }
                }
            }
        }
    }
}
['static av_always_inline void filter_mb_dir(const H264Context *h, H264SliceContext *sl,\n                                           int mb_x, int mb_y,\n                                           uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr,\n                                           unsigned int linesize, unsigned int uvlinesize,\n                                           int mb_xy, int mb_type, int mvy_limit,\n                                           int first_vertical_edge_done, int a, int b,\n                                           int chroma, int dir)\n{\n    int edge;\n    int chroma_qp_avg[2];\n    int chroma444 = CHROMA444(h);\n    int chroma422 = CHROMA422(h);\n    const int mbm_xy = dir == 0 ? mb_xy -1 : sl->top_mb_xy;\n    const int mbm_type = dir == 0 ? sl->left_type[LTOP] : sl->top_type;\n    static const uint8_t mask_edge_tab[2][8]={{0,3,3,3,1,1,1,1},\n                                              {0,3,1,1,3,3,3,3}};\n    const int mask_edge = mask_edge_tab[dir][(mb_type>>3)&7];\n    const int edges = mask_edge== 3 && !(sl->cbp&15) ? 1 : 4;\n    const int mask_par0 = mb_type & (MB_TYPE_16x16 | (MB_TYPE_8x16 >> dir));\n    if(mbm_type && !first_vertical_edge_done){\n        if (FRAME_MBAFF(h) && (dir == 1) && ((mb_y&1) == 0)\n            && IS_INTERLACED(mbm_type&~mb_type)\n            ) {\n            unsigned int tmp_linesize   = 2 *   linesize;\n            unsigned int tmp_uvlinesize = 2 * uvlinesize;\n            int mbn_xy = mb_xy - 2 * h->mb_stride;\n            int j;\n            for(j=0; j<2; j++, mbn_xy += h->mb_stride){\n                DECLARE_ALIGNED(8, int16_t, bS)[4];\n                int qp;\n                if (IS_INTRA(mb_type | h->cur_pic.mb_type[mbn_xy])) {\n                    AV_WN64A(bS, 0x0003000300030003ULL);\n                } else {\n                    if (!CABAC(h) && IS_8x8DCT(h->cur_pic.mb_type[mbn_xy])) {\n                        bS[0]= 1+((h->cbp_table[mbn_xy] & 0x4000) || sl->non_zero_count_cache[scan8[0]+0]);\n                        bS[1]= 1+((h->cbp_table[mbn_xy] & 0x4000) || sl->non_zero_count_cache[scan8[0]+1]);\n                        bS[2]= 1+((h->cbp_table[mbn_xy] & 0x8000) || sl->non_zero_count_cache[scan8[0]+2]);\n                        bS[3]= 1+((h->cbp_table[mbn_xy] & 0x8000) || sl->non_zero_count_cache[scan8[0]+3]);\n                    }else{\n                    const uint8_t *mbn_nnz = h->non_zero_count[mbn_xy] + 3*4;\n                    int i;\n                    for( i = 0; i < 4; i++ ) {\n                        bS[i] = 1 + !!(sl->non_zero_count_cache[scan8[0]+i] | mbn_nnz[i]);\n                    }\n                    }\n                }\n                qp = (h->cur_pic.qscale_table[mb_xy] + h->cur_pic.qscale_table[mbn_xy] + 1) >> 1;\n                ff_tlog(h->avctx, "filter mb:%d/%d dir:%d edge:%d, QPy:%d ls:%d uvls:%d", mb_x, mb_y, dir, edge, qp, tmp_linesize, tmp_uvlinesize);\n                { int i; for (i = 0; i < 4; i++) ff_tlog(h->avctx, " bS[%d]:%d", i, bS[i]); ff_tlog(h->avctx, "\\n"); }\n                filter_mb_edgeh( &img_y[j*linesize], tmp_linesize, bS, qp, a, b, h, 0 );\n                chroma_qp_avg[0] = (sl->chroma_qp[0] + get_chroma_qp(h, 0, h->cur_pic.qscale_table[mbn_xy]) + 1) >> 1;\n                chroma_qp_avg[1] = (sl->chroma_qp[1] + get_chroma_qp(h, 1, h->cur_pic.qscale_table[mbn_xy]) + 1) >> 1;\n                if (chroma) {\n                    if (chroma444) {\n                        filter_mb_edgeh (&img_cb[j*uvlinesize], tmp_uvlinesize, bS, chroma_qp_avg[0], a, b, h, 0);\n                        filter_mb_edgeh (&img_cr[j*uvlinesize], tmp_uvlinesize, bS, chroma_qp_avg[1], a, b, h, 0);\n                    } else {\n                        filter_mb_edgech(&img_cb[j*uvlinesize], tmp_uvlinesize, bS, chroma_qp_avg[0], a, b, h, 0);\n                        filter_mb_edgech(&img_cr[j*uvlinesize], tmp_uvlinesize, bS, chroma_qp_avg[1], a, b, h, 0);\n                    }\n                }\n            }\n        }else{\n            DECLARE_ALIGNED(8, int16_t, bS)[4];\n            int qp;\n            if( IS_INTRA(mb_type|mbm_type)) {\n                AV_WN64A(bS, 0x0003000300030003ULL);\n                if (   (!IS_INTERLACED(mb_type|mbm_type))\n                    || ((FRAME_MBAFF(h) || (h->picture_structure != PICT_FRAME)) && (dir == 0))\n                )\n                    AV_WN64A(bS, 0x0004000400040004ULL);\n            } else {\n                int i;\n                int mv_done;\n                if( dir && FRAME_MBAFF(h) && IS_INTERLACED(mb_type ^ mbm_type)) {\n                    AV_WN64A(bS, 0x0001000100010001ULL);\n                    mv_done = 1;\n                }\n                else if( mask_par0 && ((mbm_type & (MB_TYPE_16x16 | (MB_TYPE_8x16 >> dir)))) ) {\n                    int b_idx= 8 + 4;\n                    int bn_idx= b_idx - (dir ? 8:1);\n                    bS[0] = bS[1] = bS[2] = bS[3] = check_mv(sl, 8 + 4, bn_idx, mvy_limit);\n                    mv_done = 1;\n                }\n                else\n                    mv_done = 0;\n                for( i = 0; i < 4; i++ ) {\n                    int x = dir == 0 ? 0 : i;\n                    int y = dir == 0 ? i    : 0;\n                    int b_idx= 8 + 4 + x + 8*y;\n                    int bn_idx= b_idx - (dir ? 8:1);\n                    if (sl->non_zero_count_cache[b_idx] |\n                        sl->non_zero_count_cache[bn_idx]) {\n                        bS[i] = 2;\n                    }\n                    else if(!mv_done)\n                    {\n                        bS[i] = check_mv(sl, b_idx, bn_idx, mvy_limit);\n                    }\n                }\n            }\n            if(bS[0]+bS[1]+bS[2]+bS[3]){\n                qp = (h->cur_pic.qscale_table[mb_xy] + h->cur_pic.qscale_table[mbm_xy] + 1) >> 1;\n                ff_tlog(h->avctx, "filter mb:%d/%d dir:%d edge:%d, QPy:%d ls:%d uvls:%d", mb_x, mb_y, dir, edge, qp, linesize, uvlinesize);\n                chroma_qp_avg[0] = (sl->chroma_qp[0] + get_chroma_qp(h, 0, h->cur_pic.qscale_table[mbm_xy]) + 1) >> 1;\n                chroma_qp_avg[1] = (sl->chroma_qp[1] + get_chroma_qp(h, 1, h->cur_pic.qscale_table[mbm_xy]) + 1) >> 1;\n                if( dir == 0 ) {\n                    filter_mb_edgev( &img_y[0], linesize, bS, qp, a, b, h, 1 );\n                    if (chroma) {\n                        if (chroma444) {\n                            filter_mb_edgev ( &img_cb[0], uvlinesize, bS, chroma_qp_avg[0], a, b, h, 1);\n                            filter_mb_edgev ( &img_cr[0], uvlinesize, bS, chroma_qp_avg[1], a, b, h, 1);\n                        } else {\n                            filter_mb_edgecv( &img_cb[0], uvlinesize, bS, chroma_qp_avg[0], a, b, h, 1);\n                            filter_mb_edgecv( &img_cr[0], uvlinesize, bS, chroma_qp_avg[1], a, b, h, 1);\n                        }\n                    }\n                } else {\n                    filter_mb_edgeh( &img_y[0], linesize, bS, qp, a, b, h, 1 );\n                    if (chroma) {\n                        if (chroma444) {\n                            filter_mb_edgeh ( &img_cb[0], uvlinesize, bS, chroma_qp_avg[0], a, b, h, 1);\n                            filter_mb_edgeh ( &img_cr[0], uvlinesize, bS, chroma_qp_avg[1], a, b, h, 1);\n                        } else {\n                            filter_mb_edgech( &img_cb[0], uvlinesize, bS, chroma_qp_avg[0], a, b, h, 1);\n                            filter_mb_edgech( &img_cr[0], uvlinesize, bS, chroma_qp_avg[1], a, b, h, 1);\n                        }\n                    }\n                }\n            }\n        }\n    }\n    for( edge = 1; edge < edges; edge++ ) {\n        DECLARE_ALIGNED(8, int16_t, bS)[4];\n        int qp;\n        const int deblock_edge = !IS_8x8DCT(mb_type & (edge<<24));\n        if (!deblock_edge && (!chroma422 || dir == 0))\n            continue;\n        if( IS_INTRA(mb_type)) {\n            AV_WN64A(bS, 0x0003000300030003ULL);\n        } else {\n            int i;\n            int mv_done;\n            if( edge & mask_edge ) {\n                AV_ZERO64(bS);\n                mv_done = 1;\n            }\n            else if( mask_par0 ) {\n                int b_idx= 8 + 4 + edge * (dir ? 8:1);\n                int bn_idx= b_idx - (dir ? 8:1);\n                bS[0] = bS[1] = bS[2] = bS[3] = check_mv(sl, b_idx, bn_idx, mvy_limit);\n                mv_done = 1;\n            }\n            else\n                mv_done = 0;\n            for( i = 0; i < 4; i++ ) {\n                int x = dir == 0 ? edge : i;\n                int y = dir == 0 ? i    : edge;\n                int b_idx= 8 + 4 + x + 8*y;\n                int bn_idx= b_idx - (dir ? 8:1);\n                if (sl->non_zero_count_cache[b_idx] |\n                    sl->non_zero_count_cache[bn_idx]) {\n                    bS[i] = 2;\n                }\n                else if(!mv_done)\n                {\n                    bS[i] = check_mv(sl, b_idx, bn_idx, mvy_limit);\n                }\n            }\n            if(bS[0]+bS[1]+bS[2]+bS[3] == 0)\n                continue;\n        }\n        qp = h->cur_pic.qscale_table[mb_xy];\n        ff_tlog(h->avctx, "filter mb:%d/%d dir:%d edge:%d, QPy:%d ls:%d uvls:%d", mb_x, mb_y, dir, edge, qp, linesize, uvlinesize);\n        if( dir == 0 ) {\n            filter_mb_edgev( &img_y[4*edge << h->pixel_shift], linesize, bS, qp, a, b, h, 0 );\n            if (chroma) {\n                if (chroma444) {\n                    filter_mb_edgev ( &img_cb[4*edge << h->pixel_shift], uvlinesize, bS, sl->chroma_qp[0], a, b, h, 0);\n                    filter_mb_edgev ( &img_cr[4*edge << h->pixel_shift], uvlinesize, bS, sl->chroma_qp[1], a, b, h, 0);\n                } else if( (edge&1) == 0 ) {\n                    filter_mb_edgecv( &img_cb[2*edge << h->pixel_shift], uvlinesize, bS, sl->chroma_qp[0], a, b, h, 0);\n                    filter_mb_edgecv( &img_cr[2*edge << h->pixel_shift], uvlinesize, bS, sl->chroma_qp[1], a, b, h, 0);\n                }\n            }\n        } else {\n            if (chroma422) {\n                if (deblock_edge)\n                    filter_mb_edgeh(&img_y[4*edge*linesize], linesize, bS, qp, a, b, h, 0);\n                if (chroma) {\n                    filter_mb_edgech(&img_cb[4*edge*uvlinesize], uvlinesize, bS, sl->chroma_qp[0], a, b, h, 0);\n                    filter_mb_edgech(&img_cr[4*edge*uvlinesize], uvlinesize, bS, sl->chroma_qp[1], a, b, h, 0);\n                }\n            } else {\n                filter_mb_edgeh(&img_y[4*edge*linesize], linesize, bS, qp, a, b, h, 0);\n                if (chroma) {\n                    if (chroma444) {\n                        filter_mb_edgeh (&img_cb[4*edge*uvlinesize], uvlinesize, bS, sl->chroma_qp[0], a, b, h, 0);\n                        filter_mb_edgeh (&img_cr[4*edge*uvlinesize], uvlinesize, bS, sl->chroma_qp[1], a, b, h, 0);\n                    } else if ((edge&1) == 0) {\n                        filter_mb_edgech(&img_cb[2*edge*uvlinesize], uvlinesize, bS, sl->chroma_qp[0], a, b, h, 0);\n                        filter_mb_edgech(&img_cr[2*edge*uvlinesize], uvlinesize, bS, sl->chroma_qp[1], a, b, h, 0);\n                    }\n                }\n            }\n        }\n    }\n}']