mirror of https://git.ffmpeg.org/ffmpeg.git
vc1: Set the is_intra bitfield to all 1 when needed
Keep the code as similar as possible across the codepaths to ease spotting it for factorization. Based on a patch from Michael Niedermayer <michaelni@gmx.at>.
This commit is contained in:
parent
b67138598c
commit
d25afb579f
|
@ -1648,8 +1648,9 @@ static int vc1_decode_p_mb_intfr(VC1Context *v)
|
|||
s->current_picture.motion_val[1][s->block_index[i]][0] = 0;
|
||||
s->current_picture.motion_val[1][s->block_index[i]][1] = 0;
|
||||
}
|
||||
v->is_intra[s->mb_x] = 0x3f; // Set the bitfield to all 1.
|
||||
s->mb_intra = 1;
|
||||
s->current_picture.mb_type[mb_pos] = MB_TYPE_INTRA;
|
||||
s->mb_intra = v->is_intra[s->mb_x] = 1;
|
||||
fieldtx = v->fieldtx_plane[mb_pos] = get_bits1(gb);
|
||||
mb_has_coeffs = get_bits1(gb);
|
||||
if (mb_has_coeffs)
|
||||
|
@ -1816,7 +1817,8 @@ static int vc1_decode_p_mb_intfi(VC1Context *v)
|
|||
|
||||
idx_mbmode = get_vlc2(gb, v->mbmode_vlc->table, VC1_IF_MBMODE_VLC_BITS, 2);
|
||||
if (idx_mbmode <= 1) { // intra MB
|
||||
s->mb_intra = v->is_intra[s->mb_x] = 1;
|
||||
v->is_intra[s->mb_x] = 0x3f; // Set the bitfield to all 1.
|
||||
s->mb_intra = 1;
|
||||
s->current_picture.motion_val[1][s->block_index[0] + v->blocks_off][0] = 0;
|
||||
s->current_picture.motion_val[1][s->block_index[0] + v->blocks_off][1] = 0;
|
||||
s->current_picture.mb_type[mb_pos + v->mb_off] = MB_TYPE_INTRA;
|
||||
|
@ -2093,7 +2095,8 @@ static void vc1_decode_b_mb_intfi(VC1Context *v)
|
|||
|
||||
idx_mbmode = get_vlc2(gb, v->mbmode_vlc->table, VC1_IF_MBMODE_VLC_BITS, 2);
|
||||
if (idx_mbmode <= 1) { // intra MB
|
||||
s->mb_intra = v->is_intra[s->mb_x] = 1;
|
||||
v->is_intra[s->mb_x] = 0x3f; // Set the bitfield to all 1.
|
||||
s->mb_intra = 1;
|
||||
s->current_picture.motion_val[1][s->block_index[0]][0] = 0;
|
||||
s->current_picture.motion_val[1][s->block_index[0]][1] = 0;
|
||||
s->current_picture.mb_type[mb_pos + v->mb_off] = MB_TYPE_INTRA;
|
||||
|
@ -2311,8 +2314,9 @@ static int vc1_decode_b_mb_intfr(VC1Context *v)
|
|||
s->mv[1][i][0] = s->current_picture.motion_val[1][s->block_index[i]][0] = 0;
|
||||
s->mv[1][i][1] = s->current_picture.motion_val[1][s->block_index[i]][1] = 0;
|
||||
}
|
||||
v->is_intra[s->mb_x] = 0x3f; // Set the bitfield to all 1.
|
||||
s->mb_intra = 1;
|
||||
s->current_picture.mb_type[mb_pos] = MB_TYPE_INTRA;
|
||||
s->mb_intra = v->is_intra[s->mb_x] = 1;
|
||||
fieldtx = v->fieldtx_plane[mb_pos] = get_bits1(gb);
|
||||
mb_has_coeffs = get_bits1(gb);
|
||||
if (mb_has_coeffs)
|
||||
|
|
Loading…
Reference in New Issue