From a9cbcc9a321b8baaf71b9a19d2b8ffde4390c6f9 Mon Sep 17 00:00:00 2001 From: Simon Farnsworth Date: Wed, 23 Jul 2008 11:13:20 +0100 Subject: Xv deinterlacing was looking at the input image size, not the output image size. This works fine on some chipsets, but on others, it causes image corruption. --- ChangeLog | 3 +++ src/video_out/video_out_xv.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b70acf6b0..868ee38e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,9 @@ xine-lib (1.1.15) 2008-??-?? * V4L: Don't segfault if asked for an input that doesn't exist * Recognise AMR audio (normally found in 3GP files). * Recognise Snow video. + * Xv deinterlacing didn't take the size of the deinterlaced image into + account; on some chipsets, this would cause image corruption, while on + others, there would be no problem. xine-lib (1.1.14) 2008-06-29 * DVB changes: diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c index 8f5da8ea0..6a11ebc34 100644 --- a/src/video_out/video_out_xv.c +++ b/src/video_out/video_out_xv.c @@ -524,7 +524,7 @@ static void xv_deinterlace_frame (xv_driver_t *this) { for( i = 0; i < VO_NUM_RECENT_FRAMES; i++ ) if( this->recent_frames[i] && this->recent_frames[i]->width == frame->width && this->recent_frames[i]->height == frame->height ) - recent_bitmaps[i] = this->recent_frames[i]->image->data + frame->width*frame->height; + recent_bitmaps[i] = this->recent_frames[i]->image->data + this->deinterlace_frame.image->width*frame->height; else recent_bitmaps[i] = NULL; -- cgit v1.2.3