Band quant tables should not be assigned inside band tile loop,
one time is enough. Patch by Maxim (max_pole, gmx de) Originally committed as revision 22279 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
committed by
Kostya Shishkov
parent
0209cd0719
commit
7fcb98a7ec
@@ -568,6 +568,18 @@ static int decode_band(IVI5DecContext *ctx, int plane_num,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (band->blk_size == 8) {
|
||||||
|
band->intra_base = &ivi5_base_quant_8x8_intra[band->quant_mat][0];
|
||||||
|
band->inter_base = &ivi5_base_quant_8x8_inter[band->quant_mat][0];
|
||||||
|
band->intra_scale = &ivi5_scale_quant_8x8_intra[band->quant_mat][0];
|
||||||
|
band->inter_scale = &ivi5_scale_quant_8x8_inter[band->quant_mat][0];
|
||||||
|
} else {
|
||||||
|
band->intra_base = ivi5_base_quant_4x4_intra;
|
||||||
|
band->inter_base = ivi5_base_quant_4x4_inter;
|
||||||
|
band->intra_scale = ivi5_scale_quant_4x4_intra;
|
||||||
|
band->inter_scale = ivi5_scale_quant_4x4_inter;
|
||||||
|
}
|
||||||
|
|
||||||
band->rv_map = &ctx->rvmap_tabs[band->rvmap_sel];
|
band->rv_map = &ctx->rvmap_tabs[band->rvmap_sel];
|
||||||
|
|
||||||
/* apply corrections to the selected rvmap table if present */
|
/* apply corrections to the selected rvmap table if present */
|
||||||
@@ -593,18 +605,6 @@ static int decode_band(IVI5DecContext *ctx, int plane_num,
|
|||||||
if (result < 0)
|
if (result < 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (band->blk_size == 8) {
|
|
||||||
band->intra_base = &ivi5_base_quant_8x8_intra[band->quant_mat][0];
|
|
||||||
band->inter_base = &ivi5_base_quant_8x8_inter[band->quant_mat][0];
|
|
||||||
band->intra_scale = &ivi5_scale_quant_8x8_intra[band->quant_mat][0];
|
|
||||||
band->inter_scale = &ivi5_scale_quant_8x8_inter[band->quant_mat][0];
|
|
||||||
} else {
|
|
||||||
band->intra_base = ivi5_base_quant_4x4_intra;
|
|
||||||
band->inter_base = ivi5_base_quant_4x4_inter;
|
|
||||||
band->intra_scale = ivi5_scale_quant_4x4_intra;
|
|
||||||
band->inter_scale = ivi5_scale_quant_4x4_inter;
|
|
||||||
}
|
|
||||||
|
|
||||||
result = ff_ivi_decode_blocks(&ctx->gb, band, tile);
|
result = ff_ivi_decode_blocks(&ctx->gb, band, tile);
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Corrupted blocks data encountered!\n");
|
av_log(avctx, AV_LOG_ERROR, "Corrupted blocks data encountered!\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user