Commit e878ec0d authored by Vittorio Giovara's avatar Vittorio Giovara

aic: Fix decoding files with odd dimensions

Normally the aic decoder finds the proper slice combination (multiple of
some number less than 32) but in case of odd width, it resorts to the
default values, which were actually swapped.
The number of slices is modified to account for such odd width cases.

CC: libav-stable@libav.org
parent 33d412eb
...@@ -434,8 +434,8 @@ static av_cold int aic_decode_init(AVCodecContext *avctx) ...@@ -434,8 +434,8 @@ static av_cold int aic_decode_init(AVCodecContext *avctx)
ctx->mb_width = FFALIGN(avctx->width, 16) >> 4; ctx->mb_width = FFALIGN(avctx->width, 16) >> 4;
ctx->mb_height = FFALIGN(avctx->height, 16) >> 4; ctx->mb_height = FFALIGN(avctx->height, 16) >> 4;
ctx->num_x_slices = 16; ctx->num_x_slices = (ctx->mb_width + 15) >> 4;
ctx->slice_width = ctx->mb_width / 16; ctx->slice_width = 16;
for (i = 1; i < 32; i++) { for (i = 1; i < 32; i++) {
if (!(ctx->mb_width % i) && (ctx->mb_width / i < 32)) { if (!(ctx->mb_width % i) && (ctx->mb_width / i < 32)) {
ctx->slice_width = ctx->mb_width / i; ctx->slice_width = ctx->mb_width / i;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment