avcodec/h264_cavlc: Remove code duplication

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2023-09-20 18:38:13 +02:00
parent bd4c778e19
commit ab8a8246c8
1 changed files with 5 additions and 12 deletions

View File

@ -419,20 +419,13 @@ static int decode_residual(const H264Context *h, H264SliceContext *sl,
else
coeff_token = get_vlc2(gb, chroma422_dc_coeff_token_vlc_table,
CHROMA422_DC_COEFF_TOKEN_VLC_BITS, 1);
total_coeff= coeff_token>>2;
}else{
if(n >= LUMA_DC_BLOCK_INDEX){
total_coeff= pred_non_zero_count(h, sl, (n - LUMA_DC_BLOCK_INDEX)*16);
coeff_token = get_vlc2(gb, coeff_token_vlc[total_coeff],
COEFF_TOKEN_VLC_BITS, 2);
total_coeff= coeff_token>>2;
}else{
total_coeff= pred_non_zero_count(h, sl, n);
coeff_token = get_vlc2(gb, coeff_token_vlc[total_coeff],
COEFF_TOKEN_VLC_BITS, 2);
total_coeff= coeff_token>>2;
}
total_coeff = pred_non_zero_count(h, sl, n >= LUMA_DC_BLOCK_INDEX ?
(n - LUMA_DC_BLOCK_INDEX) * 16 : n);
coeff_token = get_vlc2(gb, coeff_token_vlc[total_coeff],
COEFF_TOKEN_VLC_BITS, 2);
}
total_coeff = coeff_token >> 2;
sl->non_zero_count_cache[scan8[n]] = total_coeff;
//FIXME set last_non_zero?