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