summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
authorben <ben@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-06-26 17:07:30 +0000
committerben <ben@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-06-26 17:07:30 +0000
commit88f6f92c54a62e1da9db9ef45ca0c9b91fad18e2 (patch)
tree513cafef833476c3c88628d0abb6e903912ba972 /vidix
parent85f88efe8497d2212652dd3bcffc2c1f879a799f (diff)
downloadmpv-88f6f92c54a62e1da9db9ef45ca0c9b91fad18e2.tar.bz2
mpv-88f6f92c54a62e1da9db9ef45ca0c9b91fad18e2.tar.xz
fix Radeon/Rage128 vidix with I420 colorspace (U/V were inverted)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23672 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'vidix')
-rw-r--r--vidix/radeon_vid.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/vidix/radeon_vid.c b/vidix/radeon_vid.c
index ef7d472786..f8a8695d53 100644
--- a/vidix/radeon_vid.c
+++ b/vidix/radeon_vid.c
@@ -3055,8 +3055,16 @@ static int radeon_vid_init_video( vidix_playback_t *config )
}
else
{
- besr.vid_buf_base_adrs_v[i]=((radeon_overlay_off+config->offsets[i]+config->offset.v)&VIF_BUF1_BASE_ADRS_MASK)|VIF_BUF1_PITCH_SEL;
- besr.vid_buf_base_adrs_u[i]=((radeon_overlay_off+config->offsets[i]+config->offset.u)&VIF_BUF2_BASE_ADRS_MASK)|VIF_BUF2_PITCH_SEL;
+ if (besr.fourcc == IMGFMT_I420 || besr.fourcc == IMGFMT_IYUV)
+ {
+ besr.vid_buf_base_adrs_u[i]=((radeon_overlay_off+config->offsets[i]+config->offset.v)&VIF_BUF1_BASE_ADRS_MASK)|VIF_BUF1_PITCH_SEL;
+ besr.vid_buf_base_adrs_v[i]=((radeon_overlay_off+config->offsets[i]+config->offset.u)&VIF_BUF2_BASE_ADRS_MASK)|VIF_BUF2_PITCH_SEL;
+ }
+ else
+ {
+ besr.vid_buf_base_adrs_v[i]=((radeon_overlay_off+config->offsets[i]+config->offset.v)&VIF_BUF1_BASE_ADRS_MASK)|VIF_BUF1_PITCH_SEL;
+ besr.vid_buf_base_adrs_u[i]=((radeon_overlay_off+config->offsets[i]+config->offset.u)&VIF_BUF2_BASE_ADRS_MASK)|VIF_BUF2_PITCH_SEL;
+ }
}
}
config->offset.y = ((besr.vid_buf_base_adrs_y[0])&VIF_BUF0_BASE_ADRS_MASK) - radeon_overlay_off;
@@ -3070,13 +3078,6 @@ static int radeon_vid_init_video( vidix_playback_t *config )
config->offset.v = ((besr.vid_buf_base_adrs_v[0])&VIF_BUF1_BASE_ADRS_MASK) - radeon_overlay_off;
config->offset.u = ((besr.vid_buf_base_adrs_u[0])&VIF_BUF2_BASE_ADRS_MASK) - radeon_overlay_off;
}
- if(besr.fourcc == IMGFMT_I420 || besr.fourcc == IMGFMT_IYUV)
- {
- uint32_t tmp;
- tmp = config->offset.u;
- config->offset.u = config->offset.v;
- config->offset.v = tmp;
- }
}
else
{