From d9517dea6af40848296dd7664dbb3475f6cc8521 Mon Sep 17 00:00:00 2001 From: nick Date: Mon, 7 Jan 2002 10:54:32 +0000 Subject: double buffering fixing git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4034 b3059339-0415-0410-9bf9-f77b7e298cf2 --- vidix/drivers/radeon_vid.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'vidix/drivers') diff --git a/vidix/drivers/radeon_vid.c b/vidix/drivers/radeon_vid.c index 3ddc69c1ab..8ff6eadbf7 100644 --- a/vidix/drivers/radeon_vid.c +++ b/vidix/drivers/radeon_vid.c @@ -992,8 +992,17 @@ static void radeon_compute_framesize(vidix_playback_t *info) { unsigned pitch,awidth; pitch = radeon_query_pitch(info->fourcc); - awidth = info->src.w + ((pitch-1) & ~(pitch-1)); - info->frame_size = awidth*info->src.h+(awidth*info->src.h)/2; + awidth = (info->src.w + (pitch-1)) & ~(pitch-1); + switch(info->fourcc) + { + case IMGFMT_I420: + case IMGFMT_YV12: + case IMGFMT_IYUV: + info->frame_size = awidth*info->src.h+(awidth*info->src.h)/2; + break; + default: info->frame_size = awidth*info->src.h*2; + break; + } } int vixConfigPlayback(vidix_playback_t *info) @@ -1021,7 +1030,7 @@ int vixPlaybackOff( void ) return 0; } -int vixPlaybackFrameSel(unsigned frame) +int vixPlaybackFrameSelect(unsigned frame) { uint32_t off0,off1,off2; /* if(!besr.double_buff) return; */ -- cgit v1.2.3