Revision 820089cb

View differences:

libavcodec/vc1.c
3205 3205
                            left_cbp = v->cbp[s->mb_x - 1]            >> (i * 4);
3206 3206
                            top_cbp  = v->cbp[s->mb_x - s->mb_stride] >> (i * 4);
3207 3207
                        }else{
3208
                            left_cbp = (i & 1) ? (pat >> ((i-1)*4)) : (v->cbp[s->mb_x - 1]           >> ((i+1)*4));
3209
                            top_cbp  = (i & 2) ? (pat >> ((i-2)*4)) : (v->cbp[s->mb_x - s->mb_stride] >> ((i+2)*4));
3208
                            left_cbp = (i & 1) ? (cbp >> ((i-1)*4)) : (v->cbp[s->mb_x - 1]           >> ((i+1)*4));
3209
                            top_cbp  = (i & 2) ? (cbp >> ((i-2)*4)) : (v->cbp[s->mb_x - s->mb_stride] >> ((i+2)*4));
3210 3210
                        }
3211 3211
                        if(left_cbp & 0xC)
3212 3212
                            vc1_loop_filter(s->dest[dst_idx] + off, 1, i & 4 ? s->uvlinesize : s->linesize, 8, mquant);
......
3222 3222
                            left_cbp = v->cbp[s->mb_x - 1]            >> (i * 4);
3223 3223
                            top_cbp  = v->cbp[s->mb_x - s->mb_stride] >> (i * 4);
3224 3224
                        }else{
3225
                            left_cbp = (i & 1) ? (pat >> ((i-1)*4)) : (v->cbp[s->mb_x - 1]           >> ((i+1)*4));
3226
                            top_cbp  = (i & 2) ? (pat >> ((i-2)*4)) : (v->cbp[s->mb_x - s->mb_stride] >> ((i+2)*4));
3225
                            left_cbp = (i & 1) ? (cbp >> ((i-1)*4)) : (v->cbp[s->mb_x - 1]           >> ((i+1)*4));
3226
                            top_cbp  = (i & 2) ? (cbp >> ((i-2)*4)) : (v->cbp[s->mb_x - s->mb_stride] >> ((i+2)*4));
3227 3227
                        }
3228
                        if(left_cbp & 0xC)
3229
                            vc1_loop_filter(s->dest[dst_idx] + off, 1, i & 4 ? s->uvlinesize : s->linesize, 8, mquant);
3230
                        if(top_cbp  & 0xA)
3231
                            vc1_loop_filter(s->dest[dst_idx] + off, i & 4 ? s->uvlinesize : s->linesize, 1, 8, mquant);
3228 3232
                    }
3229 3233
                    pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, first_block, s->dest[dst_idx] + off, (i&4)?s->uvlinesize:s->linesize, (i&4) && (s->flags & CODEC_FLAG_GRAY), filter, left_cbp, top_cbp);
3230 3234
                    block_cbp |= pat << (i << 2);
......
3332 3336
                            left_cbp = v->cbp[s->mb_x - 1]            >> (i * 4);
3333 3337
                            top_cbp  = v->cbp[s->mb_x - s->mb_stride] >> (i * 4);
3334 3338
                        }else{
3335
                            left_cbp = (i & 1) ? (pat >> ((i-1)*4)) : (v->cbp[s->mb_x - 1]           >> ((i+1)*4));
3336
                            top_cbp  = (i & 2) ? (pat >> ((i-2)*4)) : (v->cbp[s->mb_x - s->mb_stride] >> ((i+2)*4));
3339
                            left_cbp = (i & 1) ? (cbp >> ((i-1)*4)) : (v->cbp[s->mb_x - 1]           >> ((i+1)*4));
3340
                            top_cbp  = (i & 2) ? (cbp >> ((i-2)*4)) : (v->cbp[s->mb_x - s->mb_stride] >> ((i+2)*4));
3337 3341
                        }
3338 3342
                        if(left_cbp & 0xC)
3339 3343
                            vc1_loop_filter(s->dest[dst_idx] + off, 1, i & 4 ? s->uvlinesize : s->linesize, 8, mquant);
......
3349 3353
                            left_cbp = v->cbp[s->mb_x - 1]            >> (i * 4);
3350 3354
                            top_cbp  = v->cbp[s->mb_x - s->mb_stride] >> (i * 4);
3351 3355
                        }else{
3352
                            left_cbp = (i & 1) ? (pat >> ((i-1)*4)) : (v->cbp[s->mb_x - 1]           >> ((i+1)*4));
3353
                            top_cbp  = (i & 2) ? (pat >> ((i-2)*4)) : (v->cbp[s->mb_x - s->mb_stride] >> ((i+2)*4));
3356
                            left_cbp = (i & 1) ? (cbp >> ((i-1)*4)) : (v->cbp[s->mb_x - 1]           >> ((i+1)*4));
3357
                            top_cbp  = (i & 2) ? (cbp >> ((i-2)*4)) : (v->cbp[s->mb_x - s->mb_stride] >> ((i+2)*4));
3354 3358
                        }
3359
                        if(left_cbp & 0xC)
3360
                            vc1_loop_filter(s->dest[dst_idx] + off, 1, i & 4 ? s->uvlinesize : s->linesize, 8, mquant);
3361
                        if(top_cbp  & 0xA)
3362
                            vc1_loop_filter(s->dest[dst_idx] + off, i & 4 ? s->uvlinesize : s->linesize, 1, 8, mquant);
3355 3363
                    }
3356 3364
                    pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, first_block, s->dest[dst_idx] + off, (i&4)?s->uvlinesize:s->linesize, (i&4) && (s->flags & CODEC_FLAG_GRAY), filter, left_cbp, top_cbp);
3357 3365
                    block_cbp |= pat << (i << 2);

Also available in: Unified diff