On Wed, Dec 28, 2011 at 12:50:29AM -0500, Derek Buitenhuis wrote:
> From: Carl Eugen Hoyos <[email protected]>
> 
> ---
>  libavcodec/rawdec.c |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)
> 
> diff --git a/libavcodec/rawdec.c b/libavcodec/rawdec.c
> index ddd8583..340278b 100644
> --- a/libavcodec/rawdec.c
> +++ b/libavcodec/rawdec.c
> @@ -172,7 +172,13 @@ static int raw_decode(AVCodecContext *avctx,
>              frame->palette_has_changed = 1;
>          }
>      }
> -    if(avctx->pix_fmt==PIX_FMT_BGR24 && 
> ((frame->linesize[0]+3)&~3)*avctx->height <= buf_size)
> +    if((avctx->pix_fmt==PIX_FMT_BGR24    ||
> +        avctx->pix_fmt==PIX_FMT_GRAY8    ||
> +        avctx->pix_fmt==PIX_FMT_RGB555LE ||
> +        avctx->pix_fmt==PIX_FMT_RGB555BE ||
> +        avctx->pix_fmt==PIX_FMT_RGB565LE ||
> +        avctx->pix_fmt==PIX_FMT_PAL8) &&
> +        ((frame->linesize[0]+3)&~3)*avctx->height <= buf_size)
>          frame->linesize[0] = (frame->linesize[0]+3)&~3;
>  
>      if(context->flip)
> -- 

looks stupid

It obviously tries to say "if we can pad linesize to DWORD then do it" and
that's because M$ raw in AVI requires it. But it can be done in more generic
way and preferably with comment, like:

 // M$ raw data in AVI is padded to 4 bytes
 if (isRGB(avctx->pix_fmt) && FFALIGN(linesize, 4) * height <= buf_size)
    linesize = FFALIGN(linesize, 4);
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to