From d43696309a64a19e2e738f9e7aa94f6c96409aee Mon Sep 17 00:00:00 2001 From: Alexander Strange Date: Fri, 19 Dec 2008 01:11:52 +0000 Subject: [PATCH] Clear FF_INPUT_BUFFER_PADDING_SIZE bytes at the end of NALs in rbsp_buffer. Fixes valgrind uninitialized value warnings at the end of decoding H.264 frames. Originally committed as revision 16230 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/h264.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 1558721..4f65d85 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -1406,7 +1406,7 @@ static const uint8_t *decode_nal(H264Context *h, const uint8_t *src, int *dst_le } bufidx = h->nal_unit_type == NAL_DPC ? 1 : 0; // use second escape buffer for inter data - h->rbsp_buffer[bufidx]= av_fast_realloc(h->rbsp_buffer[bufidx], &h->rbsp_buffer_size[bufidx], length); + h->rbsp_buffer[bufidx]= av_fast_realloc(h->rbsp_buffer[bufidx], &h->rbsp_buffer_size[bufidx], length+FF_INPUT_BUFFER_PADDING_SIZE); dst= h->rbsp_buffer[bufidx]; if (dst == NULL){ @@ -1430,6 +1430,8 @@ static const uint8_t *decode_nal(H264Context *h, const uint8_t *src, int *dst_le dst[di++]= src[si++]; } + memset(dst+di, 0, FF_INPUT_BUFFER_PADDING_SIZE); + *dst_length= di; *consumed= si + 1;//+1 for the header //FIXME store exact number of bits in the getbitcontext (it is needed for decoding) -- 2.7.4