Revision 77d40dce

View differences:

libavcodec/h264.c
2169 2169
    if(h->deblocking_filter) {
2170 2170
        for(mb_x= 0; mb_x<s->mb_width; mb_x++){
2171 2171
            for(mb_y=end_mb_y - FRAME_MBAFF; mb_y<= end_mb_y; mb_y++){
2172
                int list, mb_xy, mb_type, is_complex;
2172
                int list, mb_xy, mb_type;
2173 2173
                mb_xy = h->mb_xy = mb_x + mb_y*s->mb_stride;
2174 2174
                h->slice_num= h->slice_table[mb_xy];
2175 2175
                mb_type= s->current_picture.mb_type[mb_xy];
......
2178 2178
                if(FRAME_MBAFF)
2179 2179
                    h->mb_mbaff = h->mb_field_decoding_flag = !!IS_INTERLACED(mb_type);
2180 2180

  
2181
                is_complex = CONFIG_SMALL || h->is_complex || IS_INTRA_PCM(mb_type) || s->qscale == 0; //FIXME qscale might be wrong
2182

  
2183 2181
                s->mb_x= mb_x;
2184 2182
                s->mb_y= mb_y;
2185 2183
                dest_y  = s->current_picture.data[0] + (mb_x + mb_y * s->linesize  ) * 16;
......
2199 2197
                    linesize   = h->mb_linesize   = s->linesize;
2200 2198
                    uvlinesize = h->mb_uvlinesize = s->uvlinesize;
2201 2199
                }
2202
                backup_mb_border(h, dest_y, dest_cb, dest_cr, linesize, uvlinesize, !is_complex);
2200
                backup_mb_border(h, dest_y, dest_cb, dest_cr, linesize, uvlinesize, 0);
2203 2201
                if(fill_filter_caches(h, mb_type) < 0)
2204 2202
                    continue;
2205 2203
                h->chroma_qp[0] = get_chroma_qp(h, 0, s->current_picture.qscale_table[mb_xy]);
2206 2204
                h->chroma_qp[1] = get_chroma_qp(h, 1, s->current_picture.qscale_table[mb_xy]);
2207 2205

  
2208
                if (is_complex && FRAME_MBAFF) {
2206
                if (FRAME_MBAFF) {
2209 2207
                    ff_h264_filter_mb     (h, mb_x, mb_y, dest_y, dest_cb, dest_cr, linesize, uvlinesize);
2210 2208
                } else {
2211 2209
                    ff_h264_filter_mb_fast(h, mb_x, mb_y, dest_y, dest_cb, dest_cr, linesize, uvlinesize);

Also available in: Unified diff