summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
authornick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-30 09:39:58 +0000
committernick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-30 09:39:58 +0000
commit45aae397839063aa773c1370b91427506dfb215e (patch)
tree3af0b4029783669177f016d8ca4173e57dcb4f9e /vidix
parent6256b7ff77923f3d19b271b614de2b20ea1b7a6f (diff)
downloadmpv-45aae397839063aa773c1370b91427506dfb215e.tar.bz2
mpv-45aae397839063aa773c1370b91427506dfb215e.tar.xz
Use one pitch source
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4416 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'vidix')
-rw-r--r--vidix/drivers/radeon_vid.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/vidix/drivers/radeon_vid.c b/vidix/drivers/radeon_vid.c
index 4d916bd01c..fae8fc0f66 100644
--- a/vidix/drivers/radeon_vid.c
+++ b/vidix/drivers/radeon_vid.c
@@ -881,7 +881,7 @@ static unsigned radeon_query_pitch(unsigned fourcc)
static int radeon_vid_init_video( vidix_playback_t *config )
{
uint32_t tmp,src_w,src_h,dest_w,dest_h,pitch,h_inc,step_by,left,leftUV,top;
- int is_420;
+ int is_420,best_pitch,mpitch;
radeon_vid_stop_video();
left = config->src.x << 16;
top = config->src.y << 16;
@@ -891,24 +891,26 @@ static int radeon_vid_init_video( vidix_playback_t *config )
if(config->fourcc == IMGFMT_YV12 ||
config->fourcc == IMGFMT_I420 ||
config->fourcc == IMGFMT_IYUV) is_420 = 1;
+ best_pitch = radeon_query_pitch(config->fourcc);
+ mpitch = best_pitch-1;
switch(config->fourcc)
{
/* 4:2:0 */
case IMGFMT_IYUV:
case IMGFMT_YV12:
- case IMGFMT_I420: pitch = (src_w + 31) & ~31;
+ case IMGFMT_I420: pitch = (src_w + mpitch) & ~mpitch;
config->dest.pitch.y =
config->dest.pitch.u =
- config->dest.pitch.v = 32;
+ config->dest.pitch.v = best_pitch;
break;
/* 4:2:2 */
default:
case IMGFMT_UYVY:
case IMGFMT_YUY2:
- pitch = ((src_w*2) + 15) & ~15;
+ pitch = ((src_w*2) + mpitch) & ~mpitch;
config->dest.pitch.y =
config->dest.pitch.u =
- config->dest.pitch.v = 16;
+ config->dest.pitch.v = best_pitch;
break;
}
dest_w = config->dest.w;
@@ -965,7 +967,7 @@ static int radeon_vid_init_video( vidix_playback_t *config )
besr.vid_buf0_base_adrs += config->offset.y;
besr.vid_buf1_base_adrs = besr.vid_buf0_base_adrs+config->frame_size;
besr.vid_buf2_base_adrs = besr.vid_buf0_base_adrs;
- besr.vid_buf3_base_adrs = besr.vif_buf0_base_adrs+config->frame_size;
+ besr.vid_buf3_base_adrs = besr.vid_buf0_base_adrs+config->frame_size;
besr.vid_buf4_base_adrs = besr.vid_buf0_base_adrs;
besr.vid_buf5_base_adrs = besr.vid_buf0_base_adrs+config->frame_size;
}