From b337aa20296d05fddd7cb573057ec419ada3cc24 Mon Sep 17 00:00:00 2001 From: nick Date: Sun, 27 Jan 2002 16:45:48 +0000 Subject: Use real preinit git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4381 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/vo_fbdev.c | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) (limited to 'libvo/vo_fbdev.c') diff --git a/libvo/vo_fbdev.c b/libvo/vo_fbdev.c index ad798fc146..814cf93e52 100644 --- a/libvo/vo_fbdev.c +++ b/libvo/vo_fbdev.c @@ -47,7 +47,7 @@ extern int verbose; #ifdef CONFIG_VIDIX /* Name of VIDIX driver */ static const char *vidix_name = NULL; -static int pre_init_err = 0; +static int pre_init_err = 0xFFFFFFFEUL; #endif /****************************** * fb.modes support * @@ -907,8 +907,13 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width, fs = fullscreen & 0x01; flip = fullscreen & 0x08; - if (!fb_preinit()) - return 1; + if(pre_init_err == 0xFFFFFFFEUL) + { + printf(FBDEV "Internal fatal error: init() was called before preinit()\n"); + return -1; + } + + if (pre_init_err) return 1; if (zoom #ifdef CONFIG_VIDIX @@ -1153,26 +1158,10 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width, static uint32_t query_format(uint32_t format) { -#ifdef CONFIG_VIDIX - static int first = 1; -#endif int ret = 0x4; /* osd/sub is supported on every bpp */ if (!fb_preinit()) return 0; -#ifdef CONFIG_VIDIX - if(first) - { - first = 1; - if(vo_subdevice) parseSubDevice(vo_subdevice); - if(vidix_name) pre_init_err = vidix_preinit(vidix_name,&video_out_fbdev); - if(verbose > 2) - printf("vo_subdevice: initialization returns: %i\n",pre_init_err); - } - if(!pre_init_err) - if(vidix_name) - return vidix_query_fourcc(format); -#endif if ((format & IMGFMT_BGR_MASK) == IMGFMT_BGR) { int bpp = format & 0xff; @@ -1340,7 +1329,14 @@ static void uninit(void) static uint32_t preinit(const char *arg) { - return 0; + pre_init_err = 0; +#ifdef CONFIG_VIDIX + if(vo_subdevice) parseSubDevice(vo_subdevice); + if(vidix_name) pre_init_err = vidix_preinit(vidix_name,&video_out_fbdev); + if(verbose > 2) + printf("vo_subdevice: initialization returns: %i\n",pre_init_err); +#endif + if(!pre_init_err) return (pre_init_err=(fb_preinit()?0:-1)); } static void query_vaa(vo_vaa_t *vaa) -- cgit v1.2.3