[FFmpeg-cvslog] swscale: add padding to conversion buffer.

Sean McGovern git at videolan.org
Sat Nov 12 03:02:01 CET 2011


ffmpeg | branch: master | Sean McGovern <gseanmcg at gmail.com> | Thu Nov 10 19:16:58 2011 -0500| [124e56454dc9adbcc20fcf124785865549e04d7a] | committer: Ronald S. Bultje

swscale: add padding to conversion buffer.

Altivec does unaligned reads from this buffer in
hscale_altivec_real(), and can thus read up to 16 bytes beyond
the end of the buffer. Therefore, add an extra 16 bytes of
padding at the end of the conversion buffer.

This fixes fate-lavfi-pixfmts_scale on AltiVec-enabled builds
under valgrind.

Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=124e56454dc9adbcc20fcf124785865549e04d7a
---

 libswscale/utils.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/libswscale/utils.c b/libswscale/utils.c
index 862b273..51bec62 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -871,7 +871,7 @@ int sws_init_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter)
     if (c->dstBpc == 16)
         dst_stride <<= 1;
     FF_ALLOC_OR_GOTO(c, c->formatConvBuffer,
-                     FFALIGN(srcW, 16) * 2 * FFALIGN(c->srcBpc, 8) >> 3,
+                     (FFALIGN(srcW, 16) * 2 * FFALIGN(c->srcBpc, 8) >> 3) + 16,
                      fail);
     if (HAVE_MMX2 && cpu_flags & AV_CPU_FLAG_MMX2 && c->srcBpc == 8 && c->dstBpc <= 10) {
         c->canMMX2BeUsed= (dstW >=srcW && (dstW&31)==0 && (srcW&15)==0) ? 1 : 0;



More information about the ffmpeg-cvslog mailing list