From 8739c41b0bf923e61baf6b4dbdbd0901f3316d9b Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Fri, 6 Dec 2002 01:25:04 +0000 Subject: do not overrun data returned by X server (YUY2 case) that might fix the segfault with wmv8 CVS patchset: 3432 CVS date: 2002/12/06 01:25:04 --- src/video_out/video_out_xv.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c index c0cff2042..687d654dc 100644 --- a/src/video_out/video_out_xv.c +++ b/src/video_out/video_out_xv.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_xv.c,v 1.151 2002/11/22 18:06:26 mroi Exp $ + * $Id: video_out_xv.c,v 1.152 2002/12/06 01:25:04 miguelfreitas Exp $ * * video_out_xv.c, X11 video extension interface for xine * @@ -409,12 +409,18 @@ static void xv_update_frame_format (vo_driver_t *this_gen, frame->image = create_ximage (this, &frame->shminfo, width, height, format); - frame->vo_frame.pitches[0] = frame->image->pitches[0]; - frame->vo_frame.pitches[1] = frame->image->pitches[2]; - frame->vo_frame.pitches[2] = frame->image->pitches[1]; - frame->vo_frame.base[0] = frame->image->data + frame->image->offsets[0]; - frame->vo_frame.base[1] = frame->image->data + frame->image->offsets[2]; - frame->vo_frame.base[2] = frame->image->data + frame->image->offsets[1]; + + if( format == XINE_IMGFMT_YUY2 ) { + frame->vo_frame.pitches[0] = frame->image->pitches[0]; + frame->vo_frame.base[0] = frame->image->data + frame->image->offsets[0]; + } else { + frame->vo_frame.pitches[0] = frame->image->pitches[0]; + frame->vo_frame.pitches[1] = frame->image->pitches[2]; + frame->vo_frame.pitches[2] = frame->image->pitches[1]; + frame->vo_frame.base[0] = frame->image->data + frame->image->offsets[0]; + frame->vo_frame.base[1] = frame->image->data + frame->image->offsets[2]; + frame->vo_frame.base[2] = frame->image->data + frame->image->offsets[1]; + } frame->width = width; frame->height = height; -- cgit v1.2.3