Quoting Vittorio Giovara (2015-02-27 20:00:25)
> 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.
> ---
> Thanks to Kostya for the helpful guidance.
> Vittorio
>
> libavcodec/aic.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/aic.c b/libavcodec/aic.c
> index dac9d8b..5687dbe 100644
> --- a/libavcodec/aic.c
> +++ b/libavcodec/aic.c
> @@ -434,8 +434,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;
> --
> 1.9.3 (Apple Git-50)
>
Also, should probably go into stable.
--
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel