From db012e161e86fb530477fde44a6a1701c64527b5 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 6 Nov 2012 01:27:09 +0100 Subject: [PATCH] img2enc: Fix yuva with yuv split planes. Previously the chroma planes where corrupted in this case. Signed-off-by: Michael Niedermayer --- libavformat/img2enc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c index 0ab7c65760..65e53bb5a7 100644 --- a/libavformat/img2enc.c +++ b/libavformat/img2enc.c @@ -97,10 +97,12 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) } if(img->split_planes){ + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(codec->pix_fmt); int ysize = codec->width * codec->height; + int usize = ((-codec->width)>>desc->log2_chroma_w) * ((-codec->height)>>desc->log2_chroma_h); avio_write(pb[0], pkt->data , ysize); - avio_write(pb[1], pkt->data + ysize, (pkt->size - ysize)/2); - avio_write(pb[2], pkt->data + ysize +(pkt->size - ysize)/2, (pkt->size - ysize)/2); + avio_write(pb[1], pkt->data + ysize , usize); + avio_write(pb[2], pkt->data + ysize + usize, usize); avio_close(pb[1]); avio_close(pb[2]); }else{