From 37741cf811763f13a752a742431c6af2976863fa Mon Sep 17 00:00:00 2001 From: Sam Hocevar <sam@videolan.org> Date: Fri, 11 Oct 2002 21:17:29 +0000 Subject: [PATCH] * ./plugins/filter/deinterlace.c: fixed the green bottom line in the linear deinterlace mode, thanks to Marian Durkovic <md@bts.sk>. --- .../video_filter/deinterlace/deinterlace.c | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/modules/video_filter/deinterlace/deinterlace.c b/modules/video_filter/deinterlace/deinterlace.c index 8c7d5ead4e44..9f82ba945c0e 100644 --- a/modules/video_filter/deinterlace/deinterlace.c +++ b/modules/video_filter/deinterlace/deinterlace.c @@ -2,7 +2,7 @@ * deinterlace.c : deinterlacer plugin for vlc ***************************************************************************** * Copyright (C) 2000, 2001 VideoLAN - * $Id: deinterlace.c,v 1.2 2002/08/26 09:12:46 sam Exp $ + * $Id: deinterlace.c,v 1.3 2002/10/11 21:17:29 sam Exp $ * * Authors: Samuel Hocevar <sam@zoy.org> * @@ -450,22 +450,21 @@ static void RenderLinear( vout_thread_t *p_vout, { u8 *p_in, *p_out_end, *p_out; - p_in = p_pic->p[i_plane].p_pixels - + i_field * p_pic->p[i_plane].i_pitch; - + p_in = p_pic->p[i_plane].p_pixels; p_out = p_outpic->p[i_plane].p_pixels; p_out_end = p_out + p_outpic->p[i_plane].i_pitch * p_outpic->p[i_plane].i_lines; - if( i_field == 0 ) + /* For BOTTOM field we need to add the first line */ + if( i_field == 1 ) { p_vout->p_vlc->pf_memcpy( p_out, p_in, p_pic->p[i_plane].i_pitch ); - p_in += 2 * p_pic->p[i_plane].i_pitch; + p_in += p_pic->p[i_plane].i_pitch; p_out += p_pic->p[i_plane].i_pitch; } - p_out_end -= p_outpic->p[i_plane].i_pitch; + p_out_end -= 2 * p_outpic->p[i_plane].i_pitch; for( ; p_out < p_out_end ; ) { @@ -481,14 +480,17 @@ static void RenderLinear( vout_thread_t *p_vout, p_out += p_pic->p[i_plane].i_pitch; } -#if 0 + p_vout->p_vlc->pf_memcpy( p_out, p_in, + p_pic->p[i_plane].i_pitch ); + + /* For TOP field we need to add the last line */ if( i_field == 0 ) { - p_in -= 2 * p_pic->p[i_plane].i_pitch; + p_in += p_pic->p[i_plane].i_pitch; + p_out += p_pic->p[i_plane].i_pitch; p_vout->p_vlc->pf_memcpy( p_out, p_in, p_pic->p[i_plane].i_pitch ); } -#endif } } -- GitLab