X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fvideo_chroma%2Fi420_rgb8.c;h=ccb3456e63a937ea2b1a9aa525d41376b7c4cf64;hb=4e1e523626df158ff048378581d7ecb92d3aea4e;hp=3d843f7720170dc38e2e347f168ac63f9c690ed0;hpb=41a8349dba161e8704ac76dc5cea23bf13afff80;p=vlc diff --git a/modules/video_chroma/i420_rgb8.c b/modules/video_chroma/i420_rgb8.c index 3d843f7720..ccb3456e63 100644 --- a/modules/video_chroma/i420_rgb8.c +++ b/modules/video_chroma/i420_rgb8.c @@ -2,7 +2,7 @@ * i420_rgb8.c : YUV to bitmap RGB conversion module for vlc ***************************************************************************** * Copyright (C) 2000 VideoLAN - * $Id: i420_rgb8.c,v 1.3 2003/08/29 18:58:05 fenrir Exp $ + * $Id$ * * Authors: Samuel Hocevar * @@ -61,6 +61,11 @@ void E_(I420_RGB8)( vout_thread_t *p_vout, picture_t *p_src, picture_t *p_dest ) int * p_offset_start = p_vout->chroma.p_sys->p_offset; int * p_offset; + const int i_source_margin = p_src->p[0].i_pitch + - p_src->p[0].i_visible_pitch; + const int i_source_margin_c = p_src->p[1].i_pitch + - p_src->p[1].i_visible_pitch; + /* The dithering matrices */ static int dither10[4] = { 0x0, 0x8, 0x2, 0xa }; static int dither11[4] = { 0xc, 0x4, 0xe, 0x6 }; @@ -89,6 +94,13 @@ void E_(I420_RGB8)( vout_thread_t *p_vout, picture_t *p_src, picture_t *p_dest ) SCALE_WIDTH_DITHER( 420 ); SCALE_HEIGHT_DITHER( 420 ); } + + p_y += i_source_margin; + if( i_y % 2 ) + { + p_u += i_source_margin_c; + p_v += i_source_margin_c; + } } /* Following functions are local */