Anton Khirnov <[email protected]> writes: > This function is video-only, so there's no point in setting more > linesizes. > > Fixes stack corruption in avplay. > --- > 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 > --
Why does filling the array cause stack corruption in avplay? Sounds like the bug is in avplay. -- Måns Rullgård [email protected] _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
