# HG changeset patch # User nick # Date 1006013508 0 # Node ID b0cf2b649d3c54cfd8a70ee7e4a9acb32c53454e # Parent 91723d82b64f5eb814a3eb295176acde7a85368e Fixed incorretc terminating of lvo stuff and improving of query_format diff -r 91723d82b64f -r b0cf2b649d3c libvo/vo_vesa.c --- 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; }