[MPlayer-cvslog] r28646 - in trunk: libmpcodecs/vf_vo.c libmpcodecs/vfcap.h libvo/vo_vdpau.c

reimar subversion at mplayerhq.hu
Wed Feb 18 13:30:16 CET 2009


Author: reimar
Date: Wed Feb 18 13:30:15 2009
New Revision: 28646

Log:
Add VOCAP_NOSLICES and use it to allow vo_vdpau to not support slices for
YV12 - since VDPAU only has functions to upload the full frame at once
there is no sense in supporting draw_slice for that.

Modified:
   trunk/libmpcodecs/vf_vo.c
   trunk/libmpcodecs/vfcap.h
   trunk/libvo/vo_vdpau.c

Modified: trunk/libmpcodecs/vf_vo.c
==============================================================================
--- trunk/libmpcodecs/vf_vo.c	Wed Feb 18 11:32:07 2009	(r28645)
+++ trunk/libmpcodecs/vf_vo.c	Wed Feb 18 13:30:15 2009	(r28646)
@@ -32,6 +32,7 @@ struct vf_priv_s {
 #define video_out (vf->priv->vo)
 
 static int query_format(struct vf_instance_s* vf, unsigned int fmt); /* forward declaration */
+static void draw_slice(struct vf_instance_s* vf, unsigned char** src, int* stride, int w,int h, int x, int y);
 
 static int config(struct vf_instance_s* vf,
         int width, int height, int d_width, int d_height,
@@ -61,6 +62,7 @@ static int config(struct vf_instance_s* 
 
     // save vo's stride capability for the wanted colorspace:
     vf->default_caps=query_format(vf,outfmt);
+    vf->draw_slice = (vf->default_caps & VOCAP_NOSLICES) ? NULL : draw_slice;
 
     if(config_video_out(video_out,width,height,d_width,d_height,flags,"MPlayer",outfmt))
 	return 0;

Modified: trunk/libmpcodecs/vfcap.h
==============================================================================
--- trunk/libmpcodecs/vfcap.h	Wed Feb 18 11:32:07 2009	(r28645)
+++ trunk/libmpcodecs/vfcap.h	Wed Feb 18 13:30:15 2009	(r28646)
@@ -33,5 +33,7 @@
 #define VFCAP_EOSD 0x2000
 // filter will draw EOSD at screen resolution (without scaling)
 #define VFCAP_EOSD_UNSCALED 0x4000
+// used by libvo and vf_vo, indicates the VO does not support draw_slice for this format
+#define VOCAP_NOSLICES 0x8000
 
 #endif /* MPLAYER_VFCAP_H */

Modified: trunk/libvo/vo_vdpau.c
==============================================================================
--- trunk/libvo/vo_vdpau.c	Wed Feb 18 11:32:07 2009	(r28645)
+++ trunk/libvo/vo_vdpau.c	Wed Feb 18 13:30:15 2009	(r28646)
@@ -654,14 +654,16 @@ static uint32_t get_image(mp_image_t *mp
 
 static int query_format(uint32_t format)
 {
+    int default_flags = VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN | VFCAP_OSD;
     switch (format) {
         case IMGFMT_YV12:
+            return default_flags | VOCAP_NOSLICES;
         case IMGFMT_VDPAU_MPEG1:
         case IMGFMT_VDPAU_MPEG2:
         case IMGFMT_VDPAU_H264:
         case IMGFMT_VDPAU_WMV3:
         case IMGFMT_VDPAU_VC1:
-            return VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN | VFCAP_OSD;
+            return default_flags;
     }
     return 0;
 }



More information about the MPlayer-cvslog mailing list