On Sun, Nov 23, 2014 at 11:44 PM, Luca Barbato <lu_z...@gentoo.org> wrote: > The code currently set the information in at least 4 places, spare > some pointless loops. > > Make the code in the loop a little uniform to make easier factorize > it out later. > --- > libavcodec/vc1_block.c | 26 +++++++++++--------------- > 1 file changed, 11 insertions(+), 15 deletions(-) > > diff --git a/libavcodec/vc1_block.c b/libavcodec/vc1_block.c > index acd5145..ab7f7a3 100644 > --- a/libavcodec/vc1_block.c > +++ b/libavcodec/vc1_block.c > @@ -1650,8 +1650,6 @@ static int vc1_decode_p_mb_intfr(VC1Context *v) > } > s->current_picture.mb_type[mb_pos] = > MB_TYPE_INTRA; > s->mb_intra = v->is_intra[s->mb_x] = 1; > - for (i = 0; i < 6; i++) > - v->mb_type[0][s->block_index[i]] = 1; > fieldtx = v->fieldtx_plane[mb_pos] = get_bits1(gb); > mb_has_coeffs = get_bits1(gb); > if (mb_has_coeffs) > @@ -1664,11 +1662,11 @@ static int vc1_decode_p_mb_intfr(VC1Context *v) > s->c_dc_scale = s->c_dc_scale_table[mquant]; > dst_idx = 0; > for (i = 0; i < 6; i++) { > - s->dc_val[0][s->block_index[i]] = 0; > + v->a_avail = v->c_avail = 0; > + v->mb_type[0][s->block_index[i]] = 1; > + s->dc_val[0][s->block_index[i]] = 0; > dst_idx += i >> 2; > val = ((cbp >> (5 - i)) & 1); > - v->mb_type[0][s->block_index[i]] = s->mb_intra; > - v->a_avail = v->c_avail = 0; > if (i == 2 || i == 3 || !s->first_slice_line) > v->a_avail = v->mb_type[0][s->block_index[i] - > s->block_wrap[i]]; > if (i == 1 || i == 3 || s->mb_x) > @@ -1833,11 +1831,11 @@ static int vc1_decode_p_mb_intfi(VC1Context *v) > cbp = 1 + get_vlc2(&v->s.gb, v->cbpcy_vlc->table, > VC1_ICBPCY_VLC_BITS, 2); > dst_idx = 0; > for (i = 0; i < 6; i++) { > - s->dc_val[0][s->block_index[i]] = 0; > + v->a_avail = v->c_avail = 0; > v->mb_type[0][s->block_index[i]] = 1; > + s->dc_val[0][s->block_index[i]] = 0; > dst_idx += i >> 2; > val = ((cbp >> (5 - i)) & 1); > - v->a_avail = v->c_avail = 0; > if (i == 2 || i == 3 || !s->first_slice_line) > v->a_avail = v->mb_type[0][s->block_index[i] - > s->block_wrap[i]]; > if (i == 1 || i == 3 || s->mb_x) > @@ -2110,11 +2108,11 @@ static void vc1_decode_b_mb_intfi(VC1Context *v) > cbp = 1 + get_vlc2(&v->s.gb, v->cbpcy_vlc->table, > VC1_ICBPCY_VLC_BITS, 2); > dst_idx = 0; > for (i = 0; i < 6; i++) { > - s->dc_val[0][s->block_index[i]] = 0; > + v->a_avail = v->c_avail = 0; > + v->mb_type[0][s->block_index[i]] = 1; > + s->dc_val[0][s->block_index[i]] = 0; > dst_idx += i >> 2; > val = ((cbp >> (5 - i)) & 1); > - v->mb_type[0][s->block_index[i]] = s->mb_intra; > - v->a_avail = v->c_avail = 0; > if (i == 2 || i == 3 || !s->first_slice_line) > v->a_avail = v->mb_type[0][s->block_index[i] - > s->block_wrap[i]]; > if (i == 1 || i == 3 || s->mb_x) > @@ -2315,8 +2313,6 @@ static int vc1_decode_b_mb_intfr(VC1Context *v) > } > s->current_picture.mb_type[mb_pos] = MB_TYPE_INTRA; > s->mb_intra = v->is_intra[s->mb_x] = 1; > - for (i = 0; i < 6; i++) > - v->mb_type[0][s->block_index[i]] = 1; > fieldtx = v->fieldtx_plane[mb_pos] = get_bits1(gb); > mb_has_coeffs = get_bits1(gb); > if (mb_has_coeffs) > @@ -2329,11 +2325,11 @@ static int vc1_decode_b_mb_intfr(VC1Context *v) > s->c_dc_scale = s->c_dc_scale_table[mquant]; > dst_idx = 0; > for (i = 0; i < 6; i++) { > - s->dc_val[0][s->block_index[i]] = 0; > + v->a_avail = v->c_avail = 0; > + v->mb_type[0][s->block_index[i]] = 1; > + s->dc_val[0][s->block_index[i]] = 0; > dst_idx += i >> 2; > val = ((cbp >> (5 - i)) & 1); > - v->mb_type[0][s->block_index[i]] = s->mb_intra; > - v->a_avail = v->c_avail = 0; > if (i == 2 || i == 3 || !s->first_slice_line) > v->a_avail = v->mb_type[0][s->block_index[i] - > s->block_wrap[i]]; > if (i == 1 || i == 3 || s->mb_x)
The set LGTM -- Vittorio _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel