diff options
author | ben <ben@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-06-26 17:07:30 +0000 |
---|---|---|
committer | ben <ben@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-06-26 17:07:30 +0000 |
commit | 88f6f92c54a62e1da9db9ef45ca0c9b91fad18e2 (patch) | |
tree | 513cafef833476c3c88628d0abb6e903912ba972 /vidix | |
parent | 85f88efe8497d2212652dd3bcffc2c1f879a799f (diff) | |
download | mpv-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.c | 19 |
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 { |