diff options
author | nick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-01-06 16:00:59 +0000 |
---|---|---|
committer | nick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-01-06 16:00:59 +0000 |
commit | 1a4f00608dc8ee854cb70b6fc6dc74c5d1cb9fa9 (patch) | |
tree | f350eddd2f3aacb74ddbc1b507b961961a066c30 /vidix/drivers | |
parent | b093edc135d2181c760a988c21032f64c5aa6813 (diff) | |
download | mpv-1a4f00608dc8ee854cb70b6fc6dc74c5d1cb9fa9.tar.bz2 mpv-1a4f00608dc8ee854cb70b6fc6dc74c5d1cb9fa9.tar.xz |
changes due interface changing
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4010 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'vidix/drivers')
-rw-r--r-- | vidix/drivers/radeon_vid.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/vidix/drivers/radeon_vid.c b/vidix/drivers/radeon_vid.c index 4bdd4a8207..8ffe383cf5 100644 --- a/vidix/drivers/radeon_vid.c +++ b/vidix/drivers/radeon_vid.c @@ -838,6 +838,20 @@ static void radeon_vid_display_video( void ) #endif } +static unsigned radeon_query_pitch(unsigned fourcc) +{ + unsigned pitch; + switch(fourcc) + { + /* 4:2:0 */ + case IMGFMT_IYUV: + case IMGFMT_YV12: + case IMGFMT_I420: pitch = 32; break; + default: pitch = 16; break; + } + return pitch; +} + 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; @@ -966,10 +980,19 @@ static int radeon_vid_init_video( vidix_playback_t *config ) return 0; } +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; +} + int vixConfigPlayback(vidix_playback_t *info) { if(!is_supported_fourcc(info->fourcc)) return ENOSYS; if(info->num_frames>2) info->num_frames=2; + radeon_compute_framesize(info); radeon_overlay_off = radeon_ram_size - info->frame_size*info->num_frames; radeon_overlay_off &= 0xffff0000; if(radeon_overlay_off < 0) return EINVAL; |