Commit 2d9535ad authored by Anton Khirnov's avatar 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.
parent be822d77
...@@ -219,7 +219,7 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, ...@@ -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 *height+=2; // some of the optimized chroma MC reads one line too much
// which is also done in mpeg decoders with lowres > 0 // 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; linesize_align[i] = STRIDE_ALIGN;
//STRIDE_ALIGN is 8 for SSE* but this does not work for SVQ1 chroma planes //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 //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, ...@@ -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 || 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_VP6 || s->codec_id == CODEC_ID_VP6F ||
s->codec_id == CODEC_ID_VP6A) { 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; linesize_align[i] = 16;
} }
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment