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

Reply via email to