summaryrefslogtreecommitdiffstats
path: root/libvo/vo_fbdev.c
diff options
context:
space:
mode:
authornick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-27 16:45:48 +0000
committernick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-27 16:45:48 +0000
commitb337aa20296d05fddd7cb573057ec419ada3cc24 (patch)
treedaaabc8d58119c50d7e3f5dd229a81b6a7d1e7ce /libvo/vo_fbdev.c
parent0ca74f804b9c7de24dbfa0e947e7ad35a0765f00 (diff)
downloadmpv-b337aa20296d05fddd7cb573057ec419ada3cc24.tar.bz2
mpv-b337aa20296d05fddd7cb573057ec419ada3cc24.tar.xz
Use real preinit
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4381 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/vo_fbdev.c')
-rw-r--r--libvo/vo_fbdev.c36
1 files changed, 16 insertions, 20 deletions
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)