[SCM] libav/experimental: Clear FF_INPUT_BUFFER_PADDING_SIZE bytes at the end of NALs in rbsp_buffer.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:33:49 UTC 2013


The following commit has been merged in the experimental branch:
commit d43696309a64a19e2e738f9e7aa94f6c96409aee
Author: Alexander Strange <astrange at ithinksw.com>
Date:   Fri Dec 19 01:11:52 2008 +0000

    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

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)

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list