From 6552808014ae318c8feaa8effac6ee40ea6019ce Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 16 Mar 2013 18:09:17 +0100 Subject: [PATCH] lavc,lavfi: fix calculating the plane size in the AVBufferRef wrappers It is supposed to be height * linesize, not width * linesize. Thanks to Hendrik Leppkes for pointing out the bug. --- libavcodec/utils.c | 4 ++-- libavfilter/buffersrc.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 818dc5773e..4d57865629 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -667,8 +667,8 @@ do { \ planes = (desc->flags & PIX_FMT_PLANAR) ? desc->nb_components : 1; for (i = 0; i < planes; i++) { - int h_shift = (i == 1 || i == 2) ? desc->log2_chroma_h : 0; - int plane_size = (frame->width >> h_shift) * frame->linesize[i]; + int v_shift = (i == 1 || i == 2) ? desc->log2_chroma_h : 0; + int plane_size = (frame->height >> v_shift) * frame->linesize[i]; WRAP_PLANE(frame->buf[i], frame->data[i], plane_size); } diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c index d35b302a9e..65cacf7d85 100644 --- a/libavfilter/buffersrc.c +++ b/libavfilter/buffersrc.c @@ -193,8 +193,8 @@ do { \ planes = (desc->flags & PIX_FMT_PLANAR) ? desc->nb_components : 1; for (i = 0; i < planes; i++) { - int h_shift = (i == 1 || i == 2) ? desc->log2_chroma_h : 0; - int plane_size = (frame->width >> h_shift) * frame->linesize[i]; + int v_shift = (i == 1 || i == 2) ? desc->log2_chroma_w : 0; + int plane_size = (frame->height >> v_shift) * frame->linesize[i]; WRAP_PLANE(frame->buf[i], frame->data[i], plane_size); }