# HG changeset patch # User bcoudurier # Date 1218164204 0 # Node ID b8ad314749ff2c0c2c786f7fc72cc78f20d2c3c7 # Parent 4b6f7cdce8c50dbfd9c546a682f7eafc95b20be1 fix 4:2:2 psnr diff -r 4b6f7cdce8c5 -r b8ad314749ff mpegvideo_enc.c --- a/mpegvideo_enc.c Thu Aug 07 09:32:10 2008 +0000 +++ b/mpegvideo_enc.c Fri Aug 08 02:56:44 2008 +0000 @@ -2012,6 +2012,7 @@ static int encode_thread(AVCodecContext *c, void *arg){ MpegEncContext *s= arg; int mb_x, mb_y, pdif = 0; + int chr_h= 16>>s->chroma_y_shift; int i, j; MpegEncContext best_s, backup_s; uint8_t bit_buf[2][MAX_MB_BYTES]; @@ -2606,11 +2607,11 @@ s, s->new_picture.data[0] + s->mb_x*16 + s->mb_y*s->linesize*16, s->dest[0], w, h, s->linesize); s->current_picture.error[1] += sse( - s, s->new_picture.data[1] + s->mb_x*8 + s->mb_y*s->uvlinesize*8, - s->dest[1], w>>1, h>>1, s->uvlinesize); + s, s->new_picture.data[1] + s->mb_x*8 + s->mb_y*s->uvlinesize*chr_h, + s->dest[1], w>>1, h>>s->chroma_y_shift, s->uvlinesize); s->current_picture.error[2] += sse( - s, s->new_picture .data[2] + s->mb_x*8 + s->mb_y*s->uvlinesize*8, - s->dest[2], w>>1, h>>1, s->uvlinesize); + s, s->new_picture.data[2] + s->mb_x*8 + s->mb_y*s->uvlinesize*chr_h, + s->dest[2], w>>1, h>>s->chroma_y_shift, s->uvlinesize); } if(s->loop_filter){ if(ENABLE_ANY_H263_ENCODER && s->out_format == FMT_H263)