summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
authornick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-06 16:00:59 +0000
committernick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-06 16:00:59 +0000
commit1a4f00608dc8ee854cb70b6fc6dc74c5d1cb9fa9 (patch)
treef350eddd2f3aacb74ddbc1b507b961961a066c30 /vidix
parentb093edc135d2181c760a988c21032f64c5aa6813 (diff)
downloadmpv-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')
-rw-r--r--vidix/drivers/radeon_vid.c23
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;