aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorVittorio Giovara <vittorio.giovara@gmail.com>2015-02-27 19:00:25 +0000
committerMichael Niedermayer <michaelni@gmx.at>2015-03-21 01:52:52 +0100
commit9246eb1ec50402eda3cf5873749c95688d074a8e (patch)
treeedcd3ae543898c0b09545494ec3f2aa06075fc3e /libavcodec
parentc5b2ef3bdf23d16ded3e3aaa66763963e130259d (diff)
downloadffmpeg-9246eb1ec50402eda3cf5873749c95688d074a8e.tar.gz
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 (cherry picked from commit e878ec0d47cd6228c367b2f3128b76d7523f7255) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/aic.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/aic.c b/libavcodec/aic.c
index 3472301f53..5882bf1b9a 100644
--- a/libavcodec/aic.c
+++ b/libavcodec/aic.c
@@ -438,8 +438,8 @@ static av_cold int aic_decode_init(AVCodecContext *avctx)
ctx->mb_width = FFALIGN(avctx->width, 16) >> 4;
ctx->mb_height = FFALIGN(avctx->height, 16) >> 4;
- ctx->num_x_slices = 16;
- ctx->slice_width = ctx->mb_width / 16;
+ ctx->num_x_slices = (ctx->mb_width + 15) >> 4;
+ ctx->slice_width = 16;
for (i = 1; i < 32; i++) {
if (!(ctx->mb_width % i) && (ctx->mb_width / i < 32)) {
ctx->slice_width = ctx->mb_width / i;