[FFmpeg-cvslog] avcodec_align_dimensions2: set only 4 linesizes, not AV_NUM_DATA_POINTERS.

Anton Khirnov git at videolan.org
Sun Jan 29 00:58:39 CET 2012


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sat Jan 28 08:46:22 2012 +0100| [2d9535ad317733c977a89194975f14e0cc04fb7f] | committer: Anton Khirnov

avcodec_align_dimensions2: set only 4 linesizes, not AV_NUM_DATA_POINTERS.

This function is video-only, so there's no point in setting more
linesizes.

Fixes stack corruption in avplay.

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

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

diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 707ecb5..34a4122 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -219,7 +219,7 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
         *height+=2; // some of the optimized chroma MC reads one line too much
                     // which is also done in mpeg decoders with lowres > 0
 
-    for (i = 0; i < AV_NUM_DATA_POINTERS; i++)
+    for (i = 0; i < 4; i++)
         linesize_align[i] = STRIDE_ALIGN;
 //STRIDE_ALIGN is 8 for SSE* but this does not work for SVQ1 chroma planes
 //we could change STRIDE_ALIGN to 16 for x86/sse but it would increase the
@@ -229,7 +229,7 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
     if(s->codec_id == CODEC_ID_SVQ1 || s->codec_id == CODEC_ID_VP5 ||
        s->codec_id == CODEC_ID_VP6 || s->codec_id == CODEC_ID_VP6F ||
        s->codec_id == CODEC_ID_VP6A) {
-        for (i = 0; i < AV_NUM_DATA_POINTERS; i++)
+        for (i = 0; i < 4; i++)
             linesize_align[i] = 16;
     }
 #endif



More information about the ffmpeg-cvslog mailing list