Kostya Shishkov <[email protected]> writes: > 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
Disgusting even. > 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); Why do "codecs" need to care about container quirks? Something doesn't smell quite right. -- Måns Rullgård [email protected] _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
