changeset 2953:b0cf2b649d3c

Fixed incorretc terminating of lvo stuff and improving of query_format
author nick
date Sat, 17 Nov 2001 16:11:48 +0000
parents 91723d82b64f
children 785dfaaedc5a
files libvo/vo_vesa.c
diffstat 1 files changed, 19 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/libvo/vo_vesa.c	Sat Nov 17 16:10:41 2001 +0000
+++ b/libvo/vo_vesa.c	Sat Nov 17 16:11:48 2001 +0000
@@ -397,12 +397,29 @@
     return 0;
 }
 
+#define SUBDEV_NODGA     0x00000001UL
+#define SUBDEV_FORCEDGA  0x00000002UL
+static uint32_t parseSubDevice(const char *sd)
+{
+   uint32_t flags;
+   flags = 0;
+   if(strcmp(sd,"nodga") == 0) { flags |= SUBDEV_NODGA; flags &= ~(SUBDEV_FORCEDGA); }
+   else
+   if(strcmp(sd,"dga") == 0)   { flags &= ~(SUBDEV_NODGA); flags |= SUBDEV_FORCEDGA; }
+   else
+   if(memcmp(sd,"lvo:",4) == 0) lvo_name = &sd[4]; /* lvo_name will be valid within init() */
+   else if(verbose) printf("vo_vesa: Unknown subcommand: %s\n", sd);
+   return flags;
+}
+
+
 static uint32_t query_format(uint32_t format)
 {
   uint32_t retval;
     if(verbose > 2)
         printf("vo_vesa: query_format was called: %x (%s)\n",format,vo_format_name(format));
-    if(lvo_name) return vlvo_query_info(format);
+    if(vo_subdevice) parseSubDevice(vo_subdevice);
+    if(lvo_name) return 1;
 	switch(format)
 	{
 		case IMGFMT_YV12:
@@ -504,20 +521,6 @@
   return i;
 }
 
-#define SUBDEV_NODGA     0x00000001UL
-#define SUBDEV_FORCEDGA  0x00000002UL
-uint32_t parseSubDevice(const char *sd)
-{
-   uint32_t flags;
-   flags = 0;
-   if(strcmp(sd,"nodga") == 0) { flags |= SUBDEV_NODGA; flags &= ~(SUBDEV_FORCEDGA); }
-   else
-   if(strcmp(sd,"dga") == 0)   { flags &= ~(SUBDEV_NODGA); flags |= SUBDEV_FORCEDGA; }
-   else
-   if(memcmp(sd,"lvo:",4) == 0) lvo_name = &sd[4]; /* lvo_name will be valid within init() */
-   else if(verbose) printf("vo_vesa: Unknown subcommand: %s\n", sd);
-   return flags;
-}
 
 /* fullscreen:
  * bit 0 (0x01) means fullscreen (-fs)
@@ -849,6 +852,7 @@
 		  if(vlvo_init(lvo_name,width,height,x_offset,y_offset,image_width,image_height,format,video_mode_info.BitsPerPixel) != 0)
 		  {
 		    printf("vo_vesa: Can't initialize Linux Video Overlay\n");
+		    lvo_name = NULL;
 		    vesa_term();
 		    return -1;
 		  }