changeset 9461:17cf28e5846a

Update sub-picture layer to work with recent DirectFB cvs and add support for selecting field parity. Patch by Ville Syrjl <syrjala@sci.fi>
author alex
date Wed, 19 Feb 2003 16:01:46 +0000
parents 93c91fea7a18
children 8b02e80e9c65
files libvo/vo_dfbmga.c
diffstat 1 files changed, 27 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libvo/vo_dfbmga.c	Wed Feb 19 09:40:03 2003 +0000
+++ b/libvo/vo_dfbmga.c	Wed Feb 19 16:01:46 2003 +0000
@@ -91,6 +91,7 @@
 static int use_crtc2;
 static int use_spic;
 static int use_input;
+static int field_parity;
 
 static int osd_changed;
 static int osd_dirty;
@@ -223,6 +224,7 @@
      use_crtc2 = 1;
      use_spic = 1;
      use_input = 1;
+     field_parity = -1;
 
      if (vo_subdevice) {
           int opt_no = 0;
@@ -243,6 +245,14 @@
                     use_spic = !opt_no;
                     vo_subdevice += 5;
                     opt_no = 0;
+               } else if (!strncmp(vo_subdevice, "fieldparity=", 12)) {
+                    vo_subdevice += 12;
+                    if (*vo_subdevice == '0' ||
+                        *vo_subdevice == '1') {
+                         field_parity = *vo_subdevice - '0';
+                         vo_subdevice++;
+                    }
+                    opt_no = 0;
                } else if (!strncmp(vo_subdevice, "no", 2)) {
                     vo_subdevice += 2;
                     opt_no = 1;
@@ -410,6 +420,13 @@
           dlc.flags      = DLCONF_PIXELFORMAT | DLCONF_BUFFERMODE;
           dlc.buffermode = DLBM_BACKVIDEO;
 
+#if DIRECTFBVERSION > 916
+          if (field_parity != -1) {
+               dlc.flags   |= DLCONF_OPTIONS;
+               dlc.options  = DLOP_FIELD_PARITY;
+          }
+#endif
+
           switch (dlc.pixelformat) {
           case DSPF_I420:
           case DSPF_YV12:
@@ -433,6 +450,12 @@
                return -1;
           }
           crtc2->SetConfiguration( crtc2, &dlc );
+
+#if DIRECTFBVERSION > 916
+          if (field_parity != -1)
+               crtc2->SetFieldParity( crtc2, field_parity );
+#endif
+
           crtc2->GetSurface( crtc2, &c2frame );
 
           c2frame->GetSize( c2frame, &screen_width, &screen_height );
@@ -502,6 +525,10 @@
           dlc.flags       = DLCONF_PIXELFORMAT | DLCONF_BUFFERMODE;
           dlc.pixelformat = DSPF_LUT8;
           dlc.buffermode  = DLBM_BACKVIDEO;
+#if DIRECTFBVERSION > 916
+          dlc.flags      |= DLCONF_OPTIONS;
+          dlc.options     = DLOP_ALPHACHANNEL;
+#endif
           if (spic->TestConfiguration( spic, &dlc, &failed ) != DFB_OK) {
                mp_msg( MSGT_VO, MSGL_ERR,
                        "vo_dfbmga: Invalid sub-picture configuration!\n" );