diff options
author | Anton Khirnov <anton@khirnov.net> | 2012-01-28 11:46:22 +0400 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2012-01-28 22:44:55 +0400 |
commit | 2d9535ad317733c977a89194975f14e0cc04fb7f (patch) | |
tree | 3deda3c8c6ab754c3a38eb9728bc66a62a1d6227 /libavcodec/utils.c | |
parent | be822d77b6f8363df0a49c568662187d655711e2 (diff) |
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.
Diffstat (limited to 'libavcodec/utils.c')
-rw-r--r-- | libavcodec/utils.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 707ecb5fef..34a4122d5d 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 |