On 12.05.2015 14:51, Michael Niedermayer wrote: > On Tue, May 12, 2015 at 02:31:38PM +0200, Andreas Cadhalpun wrote: >> @@ -108,6 +109,14 @@ static int decode_packet(int *got_frame, int cached) >> (const uint8_t **)(frame->data), frame->linesize, >> pix_fmt, width, height); >> >> + if ((desc->flags & AV_PIX_FMT_FLAG_PAL || >> + desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) && >> + video_dst_data[1] - video_dst_data[0] > >> video_dst_linesize[0] * height) { >> + /* zero-initialize the padding before the palette */ >> + memset(video_dst_data[0] + video_dst_linesize[0] * height, >> 0, >> + video_dst_data[1] - video_dst_data[0] - >> video_dst_linesize[0] * height); >> + } > > i wonder if this shouldnt be moved to av_image_alloc() ?
It's a bit nicer to do this in av_image_fill_pointers. New patch attached. Best regards, Andreas
>From 636d367e35363cb3388897aeded7d836d381cb11 Mon Sep 17 00:00:00 2001 From: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> Date: Tue, 12 May 2015 15:51:21 +0200 Subject: [PATCH] imgutils: initialize palette padding bytes in av_image_fill_pointers av_image_fill_pointers always aligns the palette, but the padding bytes don't (and can't) get initialized in av_image_copy. Thus initialize them in av_image_fill_pointers. This fixes 'Syscall param write(buf) points to uninitialised byte(s)' valgrind warnings. Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> --- libavutil/imgutils.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavutil/imgutils.c b/libavutil/imgutils.c index a8bc18d..bef3390 100644 --- a/libavutil/imgutils.c +++ b/libavutil/imgutils.c @@ -125,7 +125,11 @@ int av_image_fill_pointers(uint8_t *data[4], enum AVPixelFormat pix_fmt, int hei if (desc->flags & AV_PIX_FMT_FLAG_PAL || desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) { + i = size[0]; size[0] = (size[0] + 3) & ~3; + /* zero-initialize the padding before the palette */ + if (data[0] && size[0] - i > 0) + memset(data[0] + i, 0, size[0] - i); data[1] = ptr + size[0]; /* palette is stored here as 256 32 bits words */ return size[0] + 256 * 4; } -- 2.1.4
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel