changeset 29752:a1da895d9947

Implement VFCAP_FLIP for vo_vdpau.
author cehoyos
date Fri, 23 Oct 2009 18:26:42 +0000
parents 593354e0500d
children 75f54a9e4160
files libvo/vo_vdpau.c
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/libvo/vo_vdpau.c	Thu Oct 22 18:44:39 2009 +0000
+++ b/libvo/vo_vdpau.c	Fri Oct 23 18:26:42 2009 +0000
@@ -163,6 +163,7 @@
 static int                                colorspace;
 static int                                chroma_deint;
 static int                                top_field_first;
+static int                                flip;
 
 static VdpDecoder                         decoder;
 static int                                decoder_max_refs;
@@ -279,8 +280,8 @@
     out_rect_vid.y1 = dst_rect.bottom;
     src_rect_vid.x0 = src_rect.left;
     src_rect_vid.x1 = src_rect.right;
-    src_rect_vid.y0 = src_rect.top;
-    src_rect_vid.y1 = src_rect.bottom;
+    src_rect_vid.y0 = flip ? src_rect.bottom : src_rect.top;
+    src_rect_vid.y1 = flip ? src_rect.top    : src_rect.bottom;
     border_x        = borders.left;
     border_y        = borders.top;
 #ifdef CONFIG_FREETYPE
@@ -636,6 +637,7 @@
 #ifdef CONFIG_XF86VM
     int vm = flags & VOFLAG_MODESWITCHING;
 #endif
+    flip = flags & VOFLAG_FLIPPING;
 
     image_format = format;
     vid_width    = width;
@@ -1059,7 +1061,7 @@
 
 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 | VFCAP_EOSD | VFCAP_EOSD_UNSCALED;
+    int default_flags = VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN | VFCAP_OSD | VFCAP_EOSD | VFCAP_EOSD_UNSCALED | VFCAP_FLIP;
     switch (format) {
     case IMGFMT_YV12:
     case IMGFMT_I420: