[MPlayer-cvslog] r27990 - trunk/libvo/vo_fbdev.c

diego subversion at mplayerhq.hu
Sun Nov 23 14:06:37 CET 2008


Author: diego
Date: Sun Nov 23 14:06:37 2008
New Revision: 27990

Log:
cosmetics: complete reformatting, tabs to spaces, etc.


Modified:
   trunk/libvo/vo_fbdev.c

Modified: trunk/libvo/vo_fbdev.c
==============================================================================
--- trunk/libvo/vo_fbdev.c	(original)
+++ trunk/libvo/vo_fbdev.c	Sun Nov 23 14:06:37 2008
@@ -2,7 +2,7 @@
  * Video driver for Framebuffer device
  * by Szabolcs Berecz <szabi at inf.elte.hu>
  * (C) 2001
- * 
+ *
  * Some idea and code borrowed from Chris Lawrence's ppmtofb-0.27
  * Some fixes and small improvements by Joey Parrish <joey at nicewarrior.org>
  */
@@ -33,10 +33,10 @@
 #include "mp_msg.h"
 
 static const vo_info_t info = {
-	"Framebuffer Device",
-	"fbdev",
-	"Szabolcs Berecz <szabi at inf.elte.hu>",
-	""
+    "Framebuffer Device",
+    "fbdev",
+    "Szabolcs Berecz <szabi at inf.elte.hu>",
+    ""
 };
 
 LIBVO_EXTERN(fbdev)
@@ -48,39 +48,39 @@ static vidix_grkey_t gr_key;
 #endif
 static signed int pre_init_err = -2;
 /******************************
-*	fb.modes support      *
-******************************/
+ *       fb.modes support     *
+ ******************************/
 
 static range_t *monitor_hfreq = NULL;
 static range_t *monitor_vfreq = NULL;
 static range_t *monitor_dotclock = NULL;
 
 typedef struct {
-	char *name;
-	uint32_t xres, yres, vxres, vyres, depth;
-	uint32_t pixclock, left, right, upper, lower, hslen, vslen;
-	uint32_t sync;
-	uint32_t vmode;
+    char *name;
+    uint32_t xres, yres, vxres, vyres, depth;
+    uint32_t pixclock, left, right, upper, lower, hslen, vslen;
+    uint32_t sync;
+    uint32_t vmode;
 } fb_mode_t;
 
-#define MAX_NR_TOKEN	16
+#define MAX_NR_TOKEN    16
 
-#define MAX_LINE_LEN	1000
+#define MAX_LINE_LEN    1000
 
-#define RET_EOF		-1
-#define RET_EOL		-2
+#define RET_EOF        -1
+#define RET_EOL        -2
 
 static int validate_mode(fb_mode_t *m)
 {
-	if (!m->xres) {
-		mp_msg(MSGT_VO, MSGL_V, "needs geometry ");
-		return 0;
-	}
-	if (!m->pixclock) {
-		mp_msg(MSGT_VO, MSGL_V, "needs timings ");
-		return 0;
-	}
-	return 1;
+    if (!m->xres) {
+        mp_msg(MSGT_VO, MSGL_V, "needs geometry ");
+        return 0;
+    }
+    if (!m->pixclock) {
+        mp_msg(MSGT_VO, MSGL_V, "needs timings ");
+        return 0;
+    }
+    return 1;
 }
 
 static FILE *fp;
@@ -90,58 +90,58 @@ static char *token[MAX_NR_TOKEN];
 
 static int get_token(int num)
 {
-	static int read_nextline = 1;
-	static int line_pos;
-	int i;
-	char c;
+    static int read_nextline = 1;
+    static int line_pos;
+    int i;
+    char c;
 
-	if (num >= MAX_NR_TOKEN) {
-		mp_msg(MSGT_VO, MSGL_V, "get_token(): max >= MAX_NR_TOKEN!\n");
-		goto out_eof;
-	}
+    if (num >= MAX_NR_TOKEN) {
+        mp_msg(MSGT_VO, MSGL_V, "get_token(): max >= MAX_NR_TOKEN!\n");
+        goto out_eof;
+    }
 
-	if (read_nextline) {
-		if (!fgets(line, MAX_LINE_LEN, fp))
-			goto out_eof;
-		line_pos = 0;
-		++line_num;
-		read_nextline = 0;
-	}
-	for (i = 0; i < num; i++) {
-		while (isspace(line[line_pos]))
-			++line_pos;
-		if (line[line_pos] == '\0' || line[line_pos] == '#') {
-			read_nextline = 1;
-			goto out_eol;
-		}
-		token[i] = line + line_pos;
-		c = line[line_pos];
-		if (c == '"' || c == '\'') {
-			token[i]++;
-			while (line[++line_pos] != c && line[line_pos])
-				/* NOTHING */;
-			if (!line[line_pos])
-				goto out_eol;
-			line[line_pos] = ' ';
-		} else {
-			for (/* NOTHING */; !isspace(line[line_pos]) &&
-					line[line_pos]; line_pos++)
-				/* NOTHING */;
-		}
-		if (!line[line_pos]) {
-			read_nextline = 1;
-			if (i == num - 1)
-				goto out_ok;
-			goto out_eol;
-		}
-		line[line_pos++] = '\0';
-	}
+    if (read_nextline) {
+        if (!fgets(line, MAX_LINE_LEN, fp))
+            goto out_eof;
+        line_pos = 0;
+        ++line_num;
+        read_nextline = 0;
+    }
+    for (i = 0; i < num; i++) {
+        while (isspace(line[line_pos]))
+            ++line_pos;
+        if (line[line_pos] == '\0' || line[line_pos] == '#') {
+            read_nextline = 1;
+            goto out_eol;
+        }
+        token[i] = line + line_pos;
+        c = line[line_pos];
+        if (c == '"' || c == '\'') {
+            token[i]++;
+            while (line[++line_pos] != c && line[line_pos])
+                /* NOTHING */;
+            if (!line[line_pos])
+                goto out_eol;
+            line[line_pos] = ' ';
+        } else {
+            for (/* NOTHING */; !isspace(line[line_pos]) &&
+                                line[line_pos]; line_pos++)
+                /* NOTHING */;
+        }
+        if (!line[line_pos]) {
+            read_nextline = 1;
+            if (i == num - 1)
+                goto out_ok;
+            goto out_eol;
+        }
+        line[line_pos++] = '\0';
+    }
 out_ok:
-	return i;
+    return i;
 out_eof:
-	return RET_EOF;
+    return RET_EOF;
 out_eol:
-	return RET_EOL;
+    return RET_EOL;
 }
 
 static fb_mode_t *fb_modes = NULL;
@@ -150,385 +150,385 @@ static int nr_modes = 0;
 static int parse_fbmode_cfg(char *cfgfile)
 {
 #define CHECK_IN_MODE_DEF\
-	if (!in_mode_def) {\
-		mp_msg(MSGT_VO, MSGL_V, "'needs 'mode' first");\
-		goto err_out_print_linenum;\
-	}
-	fb_mode_t *mode = NULL;
-	char *endptr;	// strtoul()...
-	int in_mode_def = 0;
-	int tmp, i;
+    if (!in_mode_def) {\
+        mp_msg(MSGT_VO, MSGL_V, "'needs 'mode' first");\
+        goto err_out_print_linenum;\
+    }
+    fb_mode_t *mode = NULL;
+    char *endptr;    // strtoul()...
+    int in_mode_def = 0;
+    int tmp, i;
 
-	/* If called more than once, reuse parsed data */
-	if (nr_modes)
-		return nr_modes;
+    /* If called more than once, reuse parsed data */
+    if (nr_modes)
+        return nr_modes;
 
-	mp_msg(MSGT_VO, MSGL_V, "Reading %s: ", cfgfile);
+    mp_msg(MSGT_VO, MSGL_V, "Reading %s: ", cfgfile);
 
-	if ((fp = fopen(cfgfile, "r")) == NULL) {
-		mp_msg(MSGT_VO, MSGL_V, "can't open '%s': %s\n", cfgfile, strerror(errno));
-		return -1;
-	}
+    if ((fp = fopen(cfgfile, "r")) == NULL) {
+        mp_msg(MSGT_VO, MSGL_V, "can't open '%s': %s\n", cfgfile, strerror(errno));
+        return -1;
+    }
 
-	if ((line = (char *) malloc(MAX_LINE_LEN + 1)) == NULL) {
-		mp_msg(MSGT_VO, MSGL_V, "can't get memory for 'line': %s\n", strerror(errno));
-		return -2;
-	}
+    if ((line = (char *) malloc(MAX_LINE_LEN + 1)) == NULL) {
+        mp_msg(MSGT_VO, MSGL_V, "can't get memory for 'line': %s\n", strerror(errno));
+        return -2;
+    }
 
-	/*
-	 * check if the cfgfile starts with 'mode'
-	 */
-	while ((tmp = get_token(1)) == RET_EOL)
-		/* NOTHING */;
-	if (tmp == RET_EOF)
-		goto out;
-	if (!strcmp(token[0], "mode"))
-		goto loop_enter;
-	goto err_out_parse_error;
+    /*
+     * check if the cfgfile starts with 'mode'
+     */
+    while ((tmp = get_token(1)) == RET_EOL)
+        /* NOTHING */;
+    if (tmp == RET_EOF)
+        goto out;
+    if (!strcmp(token[0], "mode"))
+        goto loop_enter;
+    goto err_out_parse_error;
 
-	while ((tmp = get_token(1)) != RET_EOF) {
-		if (tmp == RET_EOL)
-			continue;
-		if (!strcmp(token[0], "mode")) {
-			if (in_mode_def) {
-				mp_msg(MSGT_VO, MSGL_V, "'endmode' required");
-				goto err_out_print_linenum;
-			}
-			if (!validate_mode(mode))
-				goto err_out_not_valid;
-		loop_enter:
-		        if (!(fb_modes = (fb_mode_t *) realloc(fb_modes,
-				sizeof(fb_mode_t) * (nr_modes + 1)))) {
-			    mp_msg(MSGT_VO, MSGL_V, "can't realloc 'fb_modes' (nr_modes = %d):"
-					    " %s\n", nr_modes, strerror(errno));
-			    goto err_out;
-		        }
-			mode=fb_modes + nr_modes;
-			++nr_modes;
-                        memset(mode,0,sizeof(fb_mode_t));
+    while ((tmp = get_token(1)) != RET_EOF) {
+        if (tmp == RET_EOL)
+            continue;
+        if (!strcmp(token[0], "mode")) {
+            if (in_mode_def) {
+                mp_msg(MSGT_VO, MSGL_V, "'endmode' required");
+                goto err_out_print_linenum;
+            }
+            if (!validate_mode(mode))
+                goto err_out_not_valid;
+        loop_enter:
+            if (!(fb_modes = (fb_mode_t *)
+                  realloc(fb_modes, sizeof(fb_mode_t) * (nr_modes + 1)))) {
+                mp_msg(MSGT_VO, MSGL_V, "can't realloc 'fb_modes' (nr_modes = %d):"
+                       " %s\n", nr_modes, strerror(errno));
+                goto err_out;
+            }
+            mode = fb_modes + nr_modes;
+            ++nr_modes;
+            memset(mode, 0, sizeof(fb_mode_t));
 
-			if (get_token(1) < 0)
-				goto err_out_parse_error;
-			for (i = 0; i < nr_modes - 1; i++) {
-				if (!strcmp(token[0], fb_modes[i].name)) {
-					mp_msg(MSGT_VO, MSGL_V, "mode name '%s' isn't unique", token[0]);
-					goto err_out_print_linenum;
-				}
-			}
-			if (!(mode->name = strdup(token[0]))) {
-				mp_msg(MSGT_VO, MSGL_V, "can't strdup -> 'name': %s\n", strerror(errno));
-				goto err_out;
-			}
-			in_mode_def = 1;
-		} else if (!strcmp(token[0], "geometry")) {
-			CHECK_IN_MODE_DEF;
-			if (get_token(5) < 0)
-				goto err_out_parse_error;
-			mode->xres = strtoul(token[0], &endptr, 0);
-			if (*endptr)
-				goto err_out_parse_error;
-			mode->yres = strtoul(token[1], &endptr, 0);
-			if (*endptr)
-				goto err_out_parse_error;
-			mode->vxres = strtoul(token[2], &endptr, 0);
-			if (*endptr)
-				goto err_out_parse_error;
-			mode->vyres = strtoul(token[3], &endptr, 0);
-			if (*endptr)
-				goto err_out_parse_error;
-			mode->depth = strtoul(token[4], &endptr, 0);
-			if (*endptr)
-				goto err_out_parse_error;
-		} else if (!strcmp(token[0], "timings")) {
-			CHECK_IN_MODE_DEF;
-			if (get_token(7) < 0)
-				goto err_out_parse_error;
-			mode->pixclock = strtoul(token[0], &endptr, 0);
-			if (*endptr)
-				goto err_out_parse_error;
-			mode->left = strtoul(token[1], &endptr, 0);
-			if (*endptr)
-				goto err_out_parse_error;
-			mode->right = strtoul(token[2], &endptr, 0);
-			if (*endptr)
-				goto err_out_parse_error;
-			mode->upper = strtoul(token[3], &endptr, 0);
-			if (*endptr)
-				goto err_out_parse_error;
-			mode->lower = strtoul(token[4], &endptr, 0);
-			if (*endptr)
-				goto err_out_parse_error;
-			mode->hslen = strtoul(token[5], &endptr, 0);
-			if (*endptr)
-				goto err_out_parse_error;
-			mode->vslen = strtoul(token[6], &endptr, 0);
-			if (*endptr)
-				goto err_out_parse_error;
-		} else if (!strcmp(token[0], "endmode")) {
-			CHECK_IN_MODE_DEF;
-			in_mode_def = 0;
-		} else if (!strcmp(token[0], "accel")) {
-			CHECK_IN_MODE_DEF;
-			if (get_token(1) < 0)
-				goto err_out_parse_error;
-			/*
-			 * it's only used for text acceleration
-			 * so we just ignore it.
-			 */
-		} else if (!strcmp(token[0], "hsync")) {
-			CHECK_IN_MODE_DEF;
-			if (get_token(1) < 0)
-				goto err_out_parse_error;
-			if (!strcmp(token[0], "low"))
-				mode->sync &= ~FB_SYNC_HOR_HIGH_ACT;
-			else if(!strcmp(token[0], "high"))
-				mode->sync |= FB_SYNC_HOR_HIGH_ACT;
-			else
-				goto err_out_parse_error;
-		} else if (!strcmp(token[0], "vsync")) {
-			CHECK_IN_MODE_DEF;
-			if (get_token(1) < 0)
-				goto err_out_parse_error;
-			if (!strcmp(token[0], "low"))
-				mode->sync &= ~FB_SYNC_VERT_HIGH_ACT;
-			else if(!strcmp(token[0], "high"))
-				mode->sync |= FB_SYNC_VERT_HIGH_ACT;
-			else
-				goto err_out_parse_error;
-		} else if (!strcmp(token[0], "csync")) {
-			CHECK_IN_MODE_DEF;
-			if (get_token(1) < 0)
-				goto err_out_parse_error;
-			if (!strcmp(token[0], "low"))
-				mode->sync &= ~FB_SYNC_COMP_HIGH_ACT;
-			else if(!strcmp(token[0], "high"))
-				mode->sync |= FB_SYNC_COMP_HIGH_ACT;
-			else
-				goto err_out_parse_error;
-		} else if (!strcmp(token[0], "extsync")) {
-			CHECK_IN_MODE_DEF;
-			if (get_token(1) < 0)
-				goto err_out_parse_error;
-			if (!strcmp(token[0], "false"))
-				mode->sync &= ~FB_SYNC_EXT;
-			else if(!strcmp(token[0], "true"))
-				mode->sync |= FB_SYNC_EXT;
-			else
-				goto err_out_parse_error;
-		} else if (!strcmp(token[0], "laced")) {
-			CHECK_IN_MODE_DEF;
-			if (get_token(1) < 0)
-				goto err_out_parse_error;
-			if (!strcmp(token[0], "false"))
-				mode->vmode = FB_VMODE_NONINTERLACED;
-			else if (!strcmp(token[0], "true"))
-				mode->vmode = FB_VMODE_INTERLACED;
-			else
-				goto err_out_parse_error;
-		} else if (!strcmp(token[0], "double")) {
-			CHECK_IN_MODE_DEF;
-			if (get_token(1) < 0)
-				goto err_out_parse_error;
-			if (!strcmp(token[0], "false"))
-				;
-			else if (!strcmp(token[0], "true"))
-				mode->vmode = FB_VMODE_DOUBLE;
-			else
-				goto err_out_parse_error;
-		} else
-			goto err_out_parse_error;
-	}
-	if (!validate_mode(mode))
-		goto err_out_not_valid;
+            if (get_token(1) < 0)
+                goto err_out_parse_error;
+            for (i = 0; i < nr_modes - 1; i++) {
+                if (!strcmp(token[0], fb_modes[i].name)) {
+                    mp_msg(MSGT_VO, MSGL_V, "mode name '%s' isn't unique", token[0]);
+                    goto err_out_print_linenum;
+                }
+            }
+            if (!(mode->name = strdup(token[0]))) {
+                mp_msg(MSGT_VO, MSGL_V, "can't strdup -> 'name': %s\n", strerror(errno));
+                goto err_out;
+            }
+            in_mode_def = 1;
+        } else if (!strcmp(token[0], "geometry")) {
+            CHECK_IN_MODE_DEF;
+            if (get_token(5) < 0)
+                goto err_out_parse_error;
+            mode->xres = strtoul(token[0], &endptr, 0);
+            if (*endptr)
+                goto err_out_parse_error;
+            mode->yres = strtoul(token[1], &endptr, 0);
+            if (*endptr)
+                goto err_out_parse_error;
+            mode->vxres = strtoul(token[2], &endptr, 0);
+            if (*endptr)
+                goto err_out_parse_error;
+            mode->vyres = strtoul(token[3], &endptr, 0);
+            if (*endptr)
+                goto err_out_parse_error;
+            mode->depth = strtoul(token[4], &endptr, 0);
+            if (*endptr)
+                goto err_out_parse_error;
+        } else if (!strcmp(token[0], "timings")) {
+            CHECK_IN_MODE_DEF;
+            if (get_token(7) < 0)
+                goto err_out_parse_error;
+            mode->pixclock = strtoul(token[0], &endptr, 0);
+            if (*endptr)
+                goto err_out_parse_error;
+            mode->left = strtoul(token[1], &endptr, 0);
+            if (*endptr)
+                goto err_out_parse_error;
+            mode->right = strtoul(token[2], &endptr, 0);
+            if (*endptr)
+                goto err_out_parse_error;
+            mode->upper = strtoul(token[3], &endptr, 0);
+            if (*endptr)
+                goto err_out_parse_error;
+            mode->lower = strtoul(token[4], &endptr, 0);
+            if (*endptr)
+                goto err_out_parse_error;
+            mode->hslen = strtoul(token[5], &endptr, 0);
+            if (*endptr)
+                goto err_out_parse_error;
+            mode->vslen = strtoul(token[6], &endptr, 0);
+            if (*endptr)
+                goto err_out_parse_error;
+        } else if (!strcmp(token[0], "endmode")) {
+            CHECK_IN_MODE_DEF;
+            in_mode_def = 0;
+        } else if (!strcmp(token[0], "accel")) {
+            CHECK_IN_MODE_DEF;
+            if (get_token(1) < 0)
+                goto err_out_parse_error;
+            /*
+             * it's only used for text acceleration
+             * so we just ignore it.
+             */
+        } else if (!strcmp(token[0], "hsync")) {
+            CHECK_IN_MODE_DEF;
+            if (get_token(1) < 0)
+                goto err_out_parse_error;
+            if (!strcmp(token[0], "low"))
+                mode->sync &= ~FB_SYNC_HOR_HIGH_ACT;
+            else if (!strcmp(token[0], "high"))
+                mode->sync |= FB_SYNC_HOR_HIGH_ACT;
+            else
+                goto err_out_parse_error;
+        } else if (!strcmp(token[0], "vsync")) {
+            CHECK_IN_MODE_DEF;
+            if (get_token(1) < 0)
+                goto err_out_parse_error;
+            if (!strcmp(token[0], "low"))
+                mode->sync &= ~FB_SYNC_VERT_HIGH_ACT;
+            else if (!strcmp(token[0], "high"))
+                mode->sync |= FB_SYNC_VERT_HIGH_ACT;
+            else
+                goto err_out_parse_error;
+        } else if (!strcmp(token[0], "csync")) {
+            CHECK_IN_MODE_DEF;
+            if (get_token(1) < 0)
+                goto err_out_parse_error;
+            if (!strcmp(token[0], "low"))
+                mode->sync &= ~FB_SYNC_COMP_HIGH_ACT;
+            else if (!strcmp(token[0], "high"))
+                mode->sync |= FB_SYNC_COMP_HIGH_ACT;
+            else
+                goto err_out_parse_error;
+        } else if (!strcmp(token[0], "extsync")) {
+            CHECK_IN_MODE_DEF;
+            if (get_token(1) < 0)
+                goto err_out_parse_error;
+            if (!strcmp(token[0], "false"))
+                mode->sync &= ~FB_SYNC_EXT;
+            else if (!strcmp(token[0], "true"))
+                mode->sync |= FB_SYNC_EXT;
+            else
+                goto err_out_parse_error;
+        } else if (!strcmp(token[0], "laced")) {
+            CHECK_IN_MODE_DEF;
+            if (get_token(1) < 0)
+                goto err_out_parse_error;
+            if (!strcmp(token[0], "false"))
+                mode->vmode = FB_VMODE_NONINTERLACED;
+            else if (!strcmp(token[0], "true"))
+                mode->vmode = FB_VMODE_INTERLACED;
+            else
+                goto err_out_parse_error;
+        } else if (!strcmp(token[0], "double")) {
+            CHECK_IN_MODE_DEF;
+            if (get_token(1) < 0)
+                goto err_out_parse_error;
+            if (!strcmp(token[0], "false"))
+                ;
+            else if (!strcmp(token[0], "true"))
+                mode->vmode = FB_VMODE_DOUBLE;
+            else
+                goto err_out_parse_error;
+        } else
+            goto err_out_parse_error;
+    }
+    if (!validate_mode(mode))
+        goto err_out_not_valid;
 out:
-	mp_msg(MSGT_VO, MSGL_V, "%d modes\n", nr_modes);
-	free(line);
-	fclose(fp);
-	return nr_modes;
+    mp_msg(MSGT_VO, MSGL_V, "%d modes\n", nr_modes);
+    free(line);
+    fclose(fp);
+    return nr_modes;
 err_out_parse_error:
-	mp_msg(MSGT_VO, MSGL_V, "parse error");
+    mp_msg(MSGT_VO, MSGL_V, "parse error");
 err_out_print_linenum:
-	mp_msg(MSGT_VO, MSGL_V, " at line %d\n", line_num);
+    mp_msg(MSGT_VO, MSGL_V, " at line %d\n", line_num);
 err_out:
-	if (fb_modes) {
-		free(fb_modes);
-		fb_modes = NULL;
-	}
-	nr_modes = 0;
-	free(line);
-	free(fp);
-	return -2;
+    if (fb_modes) {
+        free(fb_modes);
+        fb_modes = NULL;
+    }
+    nr_modes = 0;
+    free(line);
+    free(fp);
+    return -2;
 err_out_not_valid:
-	mp_msg(MSGT_VO, MSGL_V, "previous mode is not correct");
-	goto err_out_print_linenum;
+    mp_msg(MSGT_VO, MSGL_V, "previous mode is not correct");
+    goto err_out_print_linenum;
 }
 
 static fb_mode_t *find_mode_by_name(char *name)
 {
-	int i;
+    int i;
 
-	for (i = 0; i < nr_modes; i++)
-		if (!strcmp(name, fb_modes[i].name))
-			return fb_modes + i;
-	return NULL;
+    for (i = 0; i < nr_modes; i++)
+        if (!strcmp(name, fb_modes[i].name))
+            return fb_modes + i;
+    return NULL;
 }
 
-static float dcf(fb_mode_t *m)	//driving clock frequency
+static float dcf(fb_mode_t *m)    //driving clock frequency
 {
-	return 1e12f / m->pixclock;
+    return 1e12f / m->pixclock;
 }
 
-static float hsf(fb_mode_t *m)	//horizontal scan frequency
+static float hsf(fb_mode_t *m)    //horizontal scan frequency
 {
-	int htotal = m->left + m->xres + m->right + m->hslen;
-	return dcf(m) / htotal;
+    int htotal = m->left + m->xres + m->right + m->hslen;
+    return dcf(m) / htotal;
 }
 
-static float vsf(fb_mode_t *m)	//vertical scan frequency
+static float vsf(fb_mode_t *m)    //vertical scan frequency
 {
-	int vtotal = m->upper + m->yres + m->lower + m->vslen;
-	return hsf(m) / vtotal;
+    int vtotal = m->upper + m->yres + m->lower + m->vslen;
+    return hsf(m) / vtotal;
 }
 
 
 static int mode_works(fb_mode_t *m, range_t *hfreq, range_t *vfreq,
-		range_t *dotclock)
+                      range_t *dotclock)
 {
-	float h = hsf(m);
-	float v = vsf(m);
-	float d = dcf(m);
-	int ret = 1;
+    float h = hsf(m);
+    float v = vsf(m);
+    float d = dcf(m);
+    int ret = 1;
 
-	mp_msg(MSGT_VO, MSGL_DBG2, "mode %dx%d:", m->xres, m->yres);
-	if (!in_range(hfreq, h)) {
-		ret = 0;
-		mp_msg(MSGT_VO, MSGL_DBG2, " hsync out of range.");
-	}
-	if (!in_range(vfreq, v)) {
-		ret = 0;
-		mp_msg(MSGT_VO, MSGL_DBG2, " vsync out of range.");
-	}
-	if (!in_range(dotclock, d)) {
-		ret = 0;
-		mp_msg(MSGT_VO, MSGL_DBG2, " dotclock out of range.");
-	}
-	if (ret)
-		mp_msg(MSGT_VO, MSGL_DBG2, " hsync, vsync, dotclock ok.\n");
-	else
-		mp_msg(MSGT_VO, MSGL_DBG2, "\n");
+    mp_msg(MSGT_VO, MSGL_DBG2, "mode %dx%d:", m->xres, m->yres);
+    if (!in_range(hfreq, h)) {
+        ret = 0;
+        mp_msg(MSGT_VO, MSGL_DBG2, " hsync out of range.");
+    }
+    if (!in_range(vfreq, v)) {
+        ret = 0;
+        mp_msg(MSGT_VO, MSGL_DBG2, " vsync out of range.");
+    }
+    if (!in_range(dotclock, d)) {
+        ret = 0;
+        mp_msg(MSGT_VO, MSGL_DBG2, " dotclock out of range.");
+    }
+    if (ret)
+        mp_msg(MSGT_VO, MSGL_DBG2, " hsync, vsync, dotclock ok.\n");
+    else
+        mp_msg(MSGT_VO, MSGL_DBG2, "\n");
 
-	return ret;
+    return ret;
 }
 
 static fb_mode_t *find_best_mode(int xres, int yres, range_t *hfreq,
-		range_t *vfreq, range_t *dotclock)
+                                 range_t *vfreq, range_t *dotclock)
 {
-	int i;
-	fb_mode_t *best = fb_modes;
-	fb_mode_t *curr;
+    int i;
+    fb_mode_t *best = fb_modes;
+    fb_mode_t *curr;
 
-	mp_msg(MSGT_VO, MSGL_DBG2, "Searching for first working mode\n");
+    mp_msg(MSGT_VO, MSGL_DBG2, "Searching for first working mode\n");
 
-	for (i = 0; i < nr_modes; i++, best++)
-		if (mode_works(best, hfreq, vfreq, dotclock))
-			break;
+    for (i = 0; i < nr_modes; i++, best++)
+        if (mode_works(best, hfreq, vfreq, dotclock))
+            break;
 
-	if (i == nr_modes)
-		return NULL;
-	if (i == nr_modes - 1)
-		return best;
+    if (i == nr_modes)
+        return NULL;
+    if (i == nr_modes - 1)
+        return best;
 
-	mp_msg(MSGT_VO, MSGL_DBG2, "First working mode: %dx%d\n", best->xres, best->yres);
-	mp_msg(MSGT_VO, MSGL_DBG2, "Searching for better modes\n");
+    mp_msg(MSGT_VO, MSGL_DBG2, "First working mode: %dx%d\n", best->xres, best->yres);
+    mp_msg(MSGT_VO, MSGL_DBG2, "Searching for better modes\n");
 
-	for (curr = best + 1; i < nr_modes - 1; i++, curr++) {
-		if (!mode_works(curr, hfreq, vfreq, dotclock))
-			continue;
+    for (curr = best + 1; i < nr_modes - 1; i++, curr++) {
+        if (!mode_works(curr, hfreq, vfreq, dotclock))
+            continue;
 
-		if (best->xres < xres || best->yres < yres) {
-			if (curr->xres > best->xres || curr->yres > best->yres) {
-				mp_msg(MSGT_VO, MSGL_DBG2, "better than %dx%d, which is too small.\n",
-							best->xres, best->yres);
-				best = curr;
-			} else
-				mp_msg(MSGT_VO, MSGL_DBG2, "too small.\n");
-		} else if (curr->xres == best->xres && curr->yres == best->yres &&
-				vsf(curr) > vsf(best)) {
-			mp_msg(MSGT_VO, MSGL_DBG2, "faster screen refresh.\n");
-			best = curr;
-		} else if ((curr->xres <= best->xres && curr->yres <= best->yres) &&
-				(curr->xres >= xres && curr->yres >= yres)) {
-			mp_msg(MSGT_VO, MSGL_DBG2, "better than %dx%d, which is too large.\n",
-						best->xres, best->yres);
-			best = curr;
-		} else {
-			if (curr->xres < xres || curr->yres < yres)
-				mp_msg(MSGT_VO, MSGL_DBG2, "too small.\n");
-			else if (curr->xres > best->xres || curr->yres > best->yres)
-				mp_msg(MSGT_VO, MSGL_DBG2, "too large.\n");
-			else
-				mp_msg(MSGT_VO, MSGL_DBG2, "it's worse, don't know why.\n");
-		}
-	}
+        if (best->xres < xres || best->yres < yres) {
+            if (curr->xres > best->xres || curr->yres > best->yres) {
+                mp_msg(MSGT_VO, MSGL_DBG2, "better than %dx%d, which is too small.\n",
+                       best->xres, best->yres);
+                best = curr;
+            } else
+                mp_msg(MSGT_VO, MSGL_DBG2, "too small.\n");
+        } else if (curr->xres == best->xres && curr->yres == best->yres &&
+                   vsf(curr) > vsf(best)) {
+            mp_msg(MSGT_VO, MSGL_DBG2, "faster screen refresh.\n");
+            best = curr;
+        } else if ((curr->xres <= best->xres && curr->yres <= best->yres) &&
+                (curr->xres >= xres && curr->yres >= yres)) {
+            mp_msg(MSGT_VO, MSGL_DBG2, "better than %dx%d, which is too large.\n",
+                   best->xres, best->yres);
+            best = curr;
+        } else {
+            if (curr->xres < xres || curr->yres < yres)
+                mp_msg(MSGT_VO, MSGL_DBG2, "too small.\n");
+            else if (curr->xres > best->xres || curr->yres > best->yres)
+                mp_msg(MSGT_VO, MSGL_DBG2, "too large.\n");
+            else
+                mp_msg(MSGT_VO, MSGL_DBG2, "it's worse, don't know why.\n");
+        }
+    }
 
-	return best;
+    return best;
 }
 
 static void set_bpp(struct fb_var_screeninfo *p, int bpp)
 {
-	p->bits_per_pixel = (bpp + 1) & ~1;
-	p->red.msb_right = p->green.msb_right = p->blue.msb_right = p->transp.msb_right = 0;
-	p->transp.offset = p->transp.length = 0;
-	p->blue.offset = 0;
-	switch (bpp) {
-		case 32:
-			p->transp.offset = 24;
-			p->transp.length = 8;
-		case 24:
-			p->red.offset = 16;
-			p->red.length = 8;
-			p->green.offset = 8;
-			p->green.length = 8;
-			p->blue.length = 8;
-			break;
-		case 16:
-			p->red.offset = 11;
-			p->green.length = 6;
-			p->red.length = 5;
-			p->green.offset = 5;
-			p->blue.length = 5;
-			break;
-		case 15:
-			p->red.offset = 10;
-			p->green.length = 5;
-			p->red.length = 5;
-			p->green.offset = 5;
-			p->blue.length = 5;
-			break;
-	}
+    p->bits_per_pixel = (bpp + 1) & ~1;
+    p->red.msb_right  = p->green.msb_right = p->blue.msb_right = p->transp.msb_right = 0;
+    p->transp.offset  = p->transp.length = 0;
+    p->blue.offset    = 0;
+    switch (bpp) {
+    case 32:
+        p->transp.offset = 24;
+        p->transp.length = 8;
+    case 24:
+        p->red.offset   = 16;
+        p->red.length   = 8;
+        p->green.offset = 8;
+        p->green.length = 8;
+        p->blue.length  = 8;
+        break;
+    case 16:
+        p->red.offset   = 11;
+        p->green.length = 6;
+        p->red.length   = 5;
+        p->green.offset = 5;
+        p->blue.length  = 5;
+        break;
+    case 15:
+        p->red.offset   = 10;
+        p->green.length = 5;
+        p->red.length   = 5;
+        p->green.offset = 5;
+        p->blue.length  = 5;
+        break;
+    }
 }
 
 static void fb_mode2fb_vinfo(fb_mode_t *m, struct fb_var_screeninfo *v)
 {
-	v->xres = m->xres;
-	v->yres = m->yres;
-	v->xres_virtual = m->vxres;
-	v->yres_virtual = m->vyres;
-	set_bpp(v, m->depth);
-	v->pixclock = m->pixclock;
-	v->left_margin = m->left;
-	v->right_margin = m->right;
-	v->upper_margin = m->upper;
-	v->lower_margin = m->lower;
-	v->hsync_len = m->hslen;
-	v->vsync_len = m->vslen;
-	v->sync = m->sync;
-	v->vmode = m->vmode;
+    v->xres         = m->xres;
+    v->yres         = m->yres;
+    v->xres_virtual = m->vxres;
+    v->yres_virtual = m->vyres;
+    set_bpp(v, m->depth);
+    v->pixclock     = m->pixclock;
+    v->left_margin  = m->left;
+    v->right_margin = m->right;
+    v->upper_margin = m->upper;
+    v->lower_margin = m->lower;
+    v->hsync_len    = m->hslen;
+    v->vsync_len    = m->vslen;
+    v->sync         = m->sync;
+    v->vmode        = m->vmode;
 }
 
 
 /******************************
-*	    vo_fbdev	      *
+*        vo_fbdev          *
 ******************************/
 
 /* command line/config file options */
@@ -554,15 +554,15 @@ static struct fb_var_screeninfo fb_vinfo
 static unsigned short fb_ored[256], fb_ogreen[256], fb_oblue[256];
 static struct fb_cmap fb_oldcmap = { 0, 256, fb_ored, fb_ogreen, fb_oblue };
 static int fb_cmap_changed = 0;
-static int fb_pixel_size;	// 32:  4  24:  3  16:  2  15:  2
-static int fb_bpp;		// 32: 32  24: 24  16: 16  15: 15
-static int fb_bpp_we_want;	// 32: 32  24: 24  16: 16  15: 15
+static int fb_pixel_size;       // 32:  4  24:  3  16:  2  15:  2
+static int fb_bpp;              // 32: 32  24: 24  16: 16  15: 15
+static int fb_bpp_we_want;      // 32: 32  24: 24  16: 16  15: 15
 static int fb_line_len;
 static int fb_xres;
 static int fb_yres;
 static void (*draw_alpha_p)(int w, int h, unsigned char *src,
-		unsigned char *srca, int stride, unsigned char *dst,
-		int dstride);
+                            unsigned char *srca, int stride,
+                            unsigned char *dst, int dstride);
 
 static int in_width;
 static int in_height;
@@ -580,513 +580,509 @@ static int fs;
  */
 static struct fb_cmap *make_directcolor_cmap(struct fb_var_screeninfo *var)
 {
-  /* Hopefully any DIRECTCOLOR device will have a big enough palette
-   * to handle mapping the full color depth.
-   * e.g. 8 bpp -> 256 entry palette
-   *
-   * We could handle some sort of gamma here
-   */
-  int i, cols, rcols, gcols, bcols;
-  uint16_t *red, *green, *blue;
-  struct fb_cmap *cmap;
-        
-  rcols = 1 << var->red.length;
-  gcols = 1 << var->green.length;
-  bcols = 1 << var->blue.length;
-  
-  /* Make our palette the length of the deepest color */
-  cols = (rcols > gcols ? rcols : gcols);
-  cols = (cols > bcols ? cols : bcols);
-  
-  red = malloc(cols * sizeof(red[0]));
-  if(!red) {
-	  mp_msg(MSGT_VO, MSGL_V, "Can't allocate red palette with %d entries.\n", cols);
-	  return NULL;
-  }
-  for(i=0; i< rcols; i++)
-    red[i] = (65535/(rcols-1)) * i;
-  
-  green = malloc(cols * sizeof(green[0]));
-  if(!green) {
-	  mp_msg(MSGT_VO, MSGL_V, "Can't allocate green palette with %d entries.\n", cols);
-	  free(red);
-	  return NULL;
-  }
-  for(i=0; i< gcols; i++)
-    green[i] = (65535/(gcols-1)) * i;
-  
-  blue = malloc(cols * sizeof(blue[0]));
-  if(!blue) {
-	  mp_msg(MSGT_VO, MSGL_V, "Can't allocate blue palette with %d entries.\n", cols);
-	  free(red);
-	  free(green);
-	  return NULL;
-  }
-  for(i=0; i< bcols; i++)
-    blue[i] = (65535/(bcols-1)) * i;
-  
-  cmap = malloc(sizeof(struct fb_cmap));
-  if(!cmap) {
-	  mp_msg(MSGT_VO, MSGL_V, "Can't allocate color map\n");
-	  free(red);
-	  free(green);
-	  free(blue);
-	  return NULL;
-  }
-  cmap->start = 0;
-  cmap->transp = 0;
-  cmap->len = cols;
-  cmap->red = red;
-  cmap->blue = blue;
-  cmap->green = green;
-  cmap->transp = NULL;
-  
-  return cmap;
+    /* Hopefully any DIRECTCOLOR device will have a big enough palette
+     * to handle mapping the full color depth.
+     * e.g. 8 bpp -> 256 entry palette
+     *
+     * We could handle some sort of gamma here
+     */
+    int i, cols, rcols, gcols, bcols;
+    uint16_t *red, *green, *blue;
+    struct fb_cmap *cmap;
+
+    rcols = 1 << var->red.length;
+    gcols = 1 << var->green.length;
+    bcols = 1 << var->blue.length;
+
+    /* Make our palette the length of the deepest color */
+    cols = (rcols > gcols ? rcols : gcols);
+    cols = (cols  > bcols ? cols  : bcols);
+
+    red = malloc(cols * sizeof(red[0]));
+    if (!red) {
+        mp_msg(MSGT_VO, MSGL_V, "Can't allocate red palette with %d entries.\n", cols);
+        return NULL;
+    }
+    for (i = 0; i < rcols; i++)
+        red[i] = (65535 / (rcols - 1)) * i;
+
+    green = malloc(cols * sizeof(green[0]));
+    if (!green) {
+        mp_msg(MSGT_VO, MSGL_V, "Can't allocate green palette with %d entries.\n", cols);
+        free(red);
+        return NULL;
+    }
+    for (i = 0; i < gcols; i++)
+        green[i] = (65535 / (gcols - 1)) * i;
+
+    blue = malloc(cols * sizeof(blue[0]));
+    if (!blue) {
+        mp_msg(MSGT_VO, MSGL_V, "Can't allocate blue palette with %d entries.\n", cols);
+        free(red);
+        free(green);
+        return NULL;
+    }
+    for (i = 0; i < bcols; i++)
+        blue[i] = (65535 / (bcols - 1)) * i;
+
+    cmap = malloc(sizeof(struct fb_cmap));
+    if (!cmap) {
+        mp_msg(MSGT_VO, MSGL_V, "Can't allocate color map\n");
+        free(red);
+        free(green);
+        free(blue);
+        return NULL;
+    }
+    cmap->start  = 0;
+    cmap->transp = 0;
+    cmap->len    = cols;
+    cmap->red    = red;
+    cmap->blue   = blue;
+    cmap->green  = green;
+    cmap->transp = NULL;
+
+    return cmap;
 }
 
 
 static int fb_preinit(int reset)
 {
-	static int fb_preinit_done = 0;
-	static int fb_works = 0;
+    static int fb_preinit_done = 0;
+    static int fb_works = 0;
 
-	if (reset) {
-	    fb_preinit_done = 0;
-	    return 0;
-	}
+    if (reset) {
+        fb_preinit_done = 0;
+        return 0;
+    }
 
-	if (fb_preinit_done)
-		return fb_works;
+    if (fb_preinit_done)
+        return fb_works;
 
-	if (!fb_dev_name && !(fb_dev_name = getenv("FRAMEBUFFER")))
-		fb_dev_name = strdup("/dev/fb0");
-	mp_msg(MSGT_VO, MSGL_V, "using %s\n", fb_dev_name);
+    if (!fb_dev_name && !(fb_dev_name = getenv("FRAMEBUFFER")))
+        fb_dev_name = strdup("/dev/fb0");
+    mp_msg(MSGT_VO, MSGL_V, "using %s\n", fb_dev_name);
 
-	if ((fb_dev_fd = open(fb_dev_name, O_RDWR)) == -1) {
-		mp_msg(MSGT_VO, MSGL_ERR, "Can't open %s: %s\n", fb_dev_name, strerror(errno));
-		goto err_out;
-	}
-	if (ioctl(fb_dev_fd, FBIOGET_VSCREENINFO, &fb_vinfo)) {
-		mp_msg(MSGT_VO, MSGL_ERR, "Can't get VSCREENINFO: %s\n", strerror(errno));
-		goto err_out_fd;
-	}
-	fb_orig_vinfo = fb_vinfo;
+    if ((fb_dev_fd = open(fb_dev_name, O_RDWR)) == -1) {
+        mp_msg(MSGT_VO, MSGL_ERR, "Can't open %s: %s\n", fb_dev_name, strerror(errno));
+        goto err_out;
+    }
+    if (ioctl(fb_dev_fd, FBIOGET_VSCREENINFO, &fb_vinfo)) {
+        mp_msg(MSGT_VO, MSGL_ERR, "Can't get VSCREENINFO: %s\n", strerror(errno));
+        goto err_out_fd;
+    }
+    fb_orig_vinfo = fb_vinfo;
 
-        if ((fb_tty_fd = open("/dev/tty", O_RDWR)) < 0) {
-                mp_msg(MSGT_VO, MSGL_ERR, "notice: Can't open /dev/tty: %s\n", strerror(errno));
-        }
+    if ((fb_tty_fd = open("/dev/tty", O_RDWR)) < 0) {
+        mp_msg(MSGT_VO, MSGL_ERR, "notice: Can't open /dev/tty: %s\n", strerror(errno));
+    }
 
-	fb_bpp = fb_vinfo.red.length + fb_vinfo.green.length +
-		fb_vinfo.blue.length + fb_vinfo.transp.length;
+    fb_bpp = fb_vinfo.red.length  + fb_vinfo.green.length +
+             fb_vinfo.blue.length + fb_vinfo.transp.length;
 
-	if (fb_bpp == 8 && !vo_dbpp) {
-		mp_msg(MSGT_VO, MSGL_ERR, "8 bpp output is not supported.\n");
-		goto err_out_tty_fd;
-	}
+    if (fb_bpp == 8 && !vo_dbpp) {
+        mp_msg(MSGT_VO, MSGL_ERR, "8 bpp output is not supported.\n");
+        goto err_out_tty_fd;
+    }
 
-	if (vo_dbpp) {
-		if (vo_dbpp != 15 && vo_dbpp != 16 && vo_dbpp != 24 &&
-				vo_dbpp != 32) {
-			mp_msg(MSGT_VO, MSGL_ERR, "can't switch to %d bpp\n", vo_dbpp);
-			goto err_out_fd;
-		}
-		fb_bpp = vo_dbpp;		
-	}
-	
-	if (!fb_mode_cfgfile)
-	    fb_mode_cfgfile = strdup("/etc/fb.modes");
+    if (vo_dbpp) {
+        if (vo_dbpp != 15 && vo_dbpp != 16 && vo_dbpp != 24 && vo_dbpp != 32) {
+            mp_msg(MSGT_VO, MSGL_ERR, "can't switch to %d bpp\n", vo_dbpp);
+            goto err_out_fd;
+        }
+        fb_bpp = vo_dbpp;
+    }
 
-	fb_preinit_done = 1;
-	fb_works = 1;
-	return 1;
+    if (!fb_mode_cfgfile)
+        fb_mode_cfgfile = strdup("/etc/fb.modes");
+
+    fb_preinit_done = 1;
+    fb_works = 1;
+    return 1;
 err_out_tty_fd:
-        close(fb_tty_fd);
-        fb_tty_fd = -1;
+    close(fb_tty_fd);
+    fb_tty_fd = -1;
 err_out_fd:
-	close(fb_dev_fd);
-	fb_dev_fd = -1;
+    close(fb_dev_fd);
+    fb_dev_fd = -1;
 err_out:
-	fb_preinit_done = 1;
-	fb_works = 0;
-	return 0;
+    fb_preinit_done = 1;
+    fb_works = 0;
+    return 0;
 }
 
 static void lots_of_printf(void)
 {
-	mp_msg(MSGT_VO, MSGL_V, "var info:\n");
-	mp_msg(MSGT_VO, MSGL_V, "xres: %u\n", fb_vinfo.xres);
-	mp_msg(MSGT_VO, MSGL_V, "yres: %u\n", fb_vinfo.yres);
-	mp_msg(MSGT_VO, MSGL_V, "xres_virtual: %u\n", fb_vinfo.xres_virtual);
-	mp_msg(MSGT_VO, MSGL_V, "yres_virtual: %u\n", fb_vinfo.yres_virtual);
-	mp_msg(MSGT_VO, MSGL_V, "xoffset: %u\n", fb_vinfo.xoffset);
-	mp_msg(MSGT_VO, MSGL_V, "yoffset: %u\n", fb_vinfo.yoffset);
-	mp_msg(MSGT_VO, MSGL_V, "bits_per_pixel: %u\n", fb_vinfo.bits_per_pixel);
-	mp_msg(MSGT_VO, MSGL_V, "grayscale: %u\n", fb_vinfo.grayscale);
-	mp_msg(MSGT_VO, MSGL_V, "red: %lu %lu %lu\n",
-			(unsigned long) fb_vinfo.red.offset,
-			(unsigned long) fb_vinfo.red.length,
-			(unsigned long) fb_vinfo.red.msb_right);
-	mp_msg(MSGT_VO, MSGL_V, "green: %lu %lu %lu\n",
-			(unsigned long) fb_vinfo.green.offset,
-			(unsigned long) fb_vinfo.green.length,
-			(unsigned long) fb_vinfo.green.msb_right);
-	mp_msg(MSGT_VO, MSGL_V, "blue: %lu %lu %lu\n",
-			(unsigned long) fb_vinfo.blue.offset,
-			(unsigned long) fb_vinfo.blue.length,
-			(unsigned long) fb_vinfo.blue.msb_right);
-	mp_msg(MSGT_VO, MSGL_V, "transp: %lu %lu %lu\n",
-			(unsigned long) fb_vinfo.transp.offset,
-			(unsigned long) fb_vinfo.transp.length,
-			(unsigned long) fb_vinfo.transp.msb_right);
-	mp_msg(MSGT_VO, MSGL_V, "nonstd: %u\n", fb_vinfo.nonstd);
-	mp_msg(MSGT_VO, MSGL_DBG2, "activate: %u\n", fb_vinfo.activate);
-	mp_msg(MSGT_VO, MSGL_DBG2, "height: %u\n", fb_vinfo.height);
-	mp_msg(MSGT_VO, MSGL_DBG2, "width: %u\n", fb_vinfo.width);
-	mp_msg(MSGT_VO, MSGL_DBG2, "accel_flags: %u\n", fb_vinfo.accel_flags);
-	mp_msg(MSGT_VO, MSGL_DBG2, "timing:\n");
-	mp_msg(MSGT_VO, MSGL_DBG2, "pixclock: %u\n", fb_vinfo.pixclock);
-	mp_msg(MSGT_VO, MSGL_DBG2, "left_margin: %u\n", fb_vinfo.left_margin);
-	mp_msg(MSGT_VO, MSGL_DBG2, "right_margin: %u\n", fb_vinfo.right_margin);
-	mp_msg(MSGT_VO, MSGL_DBG2, "upper_margin: %u\n", fb_vinfo.upper_margin);
-	mp_msg(MSGT_VO, MSGL_DBG2, "lower_margin: %u\n", fb_vinfo.lower_margin);
-	mp_msg(MSGT_VO, MSGL_DBG2, "hsync_len: %u\n", fb_vinfo.hsync_len);
-	mp_msg(MSGT_VO, MSGL_DBG2, "vsync_len: %u\n", fb_vinfo.vsync_len);
-	mp_msg(MSGT_VO, MSGL_DBG2, "sync: %u\n", fb_vinfo.sync);
-	mp_msg(MSGT_VO, MSGL_DBG2, "vmode: %u\n", fb_vinfo.vmode);
-	mp_msg(MSGT_VO, MSGL_V, "fix info:\n");
-	mp_msg(MSGT_VO, MSGL_V, "framebuffer size: %d bytes\n", fb_finfo.smem_len);
-	mp_msg(MSGT_VO, MSGL_V, "type: %lu\n", (unsigned long) fb_finfo.type);
-	mp_msg(MSGT_VO, MSGL_V, "type_aux: %lu\n", (unsigned long) fb_finfo.type_aux);
-	mp_msg(MSGT_VO, MSGL_V, "visual: %lu\n", (unsigned long) fb_finfo.visual);
-	mp_msg(MSGT_VO, MSGL_V, "line_length: %lu bytes\n", (unsigned long) fb_finfo.line_length);
-	mp_msg(MSGT_VO, MSGL_DBG2, "id: %.16s\n", fb_finfo.id);
-	mp_msg(MSGT_VO, MSGL_DBG2, "smem_start: %p\n", (void *) fb_finfo.smem_start);
-	mp_msg(MSGT_VO, MSGL_DBG2, "xpanstep: %u\n", fb_finfo.xpanstep);
-	mp_msg(MSGT_VO, MSGL_DBG2, "ypanstep: %u\n", fb_finfo.ypanstep);
-	mp_msg(MSGT_VO, MSGL_DBG2, "ywrapstep: %u\n", fb_finfo.ywrapstep);
-	mp_msg(MSGT_VO, MSGL_DBG2, "mmio_start: %p\n", (void *) fb_finfo.mmio_start);
-	mp_msg(MSGT_VO, MSGL_DBG2, "mmio_len: %u bytes\n", fb_finfo.mmio_len);
-	mp_msg(MSGT_VO, MSGL_DBG2, "accel: %u\n", fb_finfo.accel);
-	mp_msg(MSGT_VO, MSGL_V, "fb_bpp: %d\n", fb_bpp);
-	mp_msg(MSGT_VO, MSGL_V, "fb_pixel_size: %d bytes\n", fb_pixel_size);
-	mp_msg(MSGT_VO, MSGL_V, "other:\n");
-	mp_msg(MSGT_VO, MSGL_V, "in_width: %d\n", in_width);
-	mp_msg(MSGT_VO, MSGL_V, "in_height: %d\n", in_height);
-	mp_msg(MSGT_VO, MSGL_V, "out_width: %d\n", out_width);
-	mp_msg(MSGT_VO, MSGL_V, "out_height: %d\n", out_height);
-	mp_msg(MSGT_VO, MSGL_V, "first_row: %d\n", first_row);
-	mp_msg(MSGT_VO, MSGL_V, "last_row: %d\n", last_row);
-	mp_msg(MSGT_VO, MSGL_DBG2, "draw_alpha_p:%dbpp = %p\n", fb_bpp, draw_alpha_p);
+    mp_msg(MSGT_VO, MSGL_V, "var info:\n");
+    mp_msg(MSGT_VO, MSGL_V, "xres: %u\n", fb_vinfo.xres);
+    mp_msg(MSGT_VO, MSGL_V, "yres: %u\n", fb_vinfo.yres);
+    mp_msg(MSGT_VO, MSGL_V, "xres_virtual: %u\n", fb_vinfo.xres_virtual);
+    mp_msg(MSGT_VO, MSGL_V, "yres_virtual: %u\n", fb_vinfo.yres_virtual);
+    mp_msg(MSGT_VO, MSGL_V, "xoffset: %u\n", fb_vinfo.xoffset);
+    mp_msg(MSGT_VO, MSGL_V, "yoffset: %u\n", fb_vinfo.yoffset);
+    mp_msg(MSGT_VO, MSGL_V, "bits_per_pixel: %u\n", fb_vinfo.bits_per_pixel);
+    mp_msg(MSGT_VO, MSGL_V, "grayscale: %u\n", fb_vinfo.grayscale);
+    mp_msg(MSGT_VO, MSGL_V, "red: %lu %lu %lu\n",
+           (unsigned long) fb_vinfo.red.offset,
+           (unsigned long) fb_vinfo.red.length,
+           (unsigned long) fb_vinfo.red.msb_right);
+    mp_msg(MSGT_VO, MSGL_V, "green: %lu %lu %lu\n",
+           (unsigned long) fb_vinfo.green.offset,
+           (unsigned long) fb_vinfo.green.length,
+           (unsigned long) fb_vinfo.green.msb_right);
+    mp_msg(MSGT_VO, MSGL_V, "blue: %lu %lu %lu\n",
+           (unsigned long) fb_vinfo.blue.offset,
+           (unsigned long) fb_vinfo.blue.length,
+           (unsigned long) fb_vinfo.blue.msb_right);
+    mp_msg(MSGT_VO, MSGL_V, "transp: %lu %lu %lu\n",
+           (unsigned long) fb_vinfo.transp.offset,
+           (unsigned long) fb_vinfo.transp.length,
+           (unsigned long) fb_vinfo.transp.msb_right);
+    mp_msg(MSGT_VO, MSGL_V, "nonstd: %u\n", fb_vinfo.nonstd);
+    mp_msg(MSGT_VO, MSGL_DBG2, "activate: %u\n", fb_vinfo.activate);
+    mp_msg(MSGT_VO, MSGL_DBG2, "height: %u\n", fb_vinfo.height);
+    mp_msg(MSGT_VO, MSGL_DBG2, "width: %u\n", fb_vinfo.width);
+    mp_msg(MSGT_VO, MSGL_DBG2, "accel_flags: %u\n", fb_vinfo.accel_flags);
+    mp_msg(MSGT_VO, MSGL_DBG2, "timing:\n");
+    mp_msg(MSGT_VO, MSGL_DBG2, "pixclock: %u\n", fb_vinfo.pixclock);
+    mp_msg(MSGT_VO, MSGL_DBG2, "left_margin: %u\n", fb_vinfo.left_margin);
+    mp_msg(MSGT_VO, MSGL_DBG2, "right_margin: %u\n", fb_vinfo.right_margin);
+    mp_msg(MSGT_VO, MSGL_DBG2, "upper_margin: %u\n", fb_vinfo.upper_margin);
+    mp_msg(MSGT_VO, MSGL_DBG2, "lower_margin: %u\n", fb_vinfo.lower_margin);
+    mp_msg(MSGT_VO, MSGL_DBG2, "hsync_len: %u\n", fb_vinfo.hsync_len);
+    mp_msg(MSGT_VO, MSGL_DBG2, "vsync_len: %u\n", fb_vinfo.vsync_len);
+    mp_msg(MSGT_VO, MSGL_DBG2, "sync: %u\n", fb_vinfo.sync);
+    mp_msg(MSGT_VO, MSGL_DBG2, "vmode: %u\n", fb_vinfo.vmode);
+    mp_msg(MSGT_VO, MSGL_V, "fix info:\n");
+    mp_msg(MSGT_VO, MSGL_V, "framebuffer size: %d bytes\n", fb_finfo.smem_len);
+    mp_msg(MSGT_VO, MSGL_V, "type: %lu\n", (unsigned long) fb_finfo.type);
+    mp_msg(MSGT_VO, MSGL_V, "type_aux: %lu\n", (unsigned long) fb_finfo.type_aux);
+    mp_msg(MSGT_VO, MSGL_V, "visual: %lu\n", (unsigned long) fb_finfo.visual);
+    mp_msg(MSGT_VO, MSGL_V, "line_length: %lu bytes\n", (unsigned long) fb_finfo.line_length);
+    mp_msg(MSGT_VO, MSGL_DBG2, "id: %.16s\n", fb_finfo.id);
+    mp_msg(MSGT_VO, MSGL_DBG2, "smem_start: %p\n", (void *) fb_finfo.smem_start);
+    mp_msg(MSGT_VO, MSGL_DBG2, "xpanstep: %u\n", fb_finfo.xpanstep);
+    mp_msg(MSGT_VO, MSGL_DBG2, "ypanstep: %u\n", fb_finfo.ypanstep);
+    mp_msg(MSGT_VO, MSGL_DBG2, "ywrapstep: %u\n", fb_finfo.ywrapstep);
+    mp_msg(MSGT_VO, MSGL_DBG2, "mmio_start: %p\n", (void *) fb_finfo.mmio_start);
+    mp_msg(MSGT_VO, MSGL_DBG2, "mmio_len: %u bytes\n", fb_finfo.mmio_len);
+    mp_msg(MSGT_VO, MSGL_DBG2, "accel: %u\n", fb_finfo.accel);
+    mp_msg(MSGT_VO, MSGL_V, "fb_bpp: %d\n", fb_bpp);
+    mp_msg(MSGT_VO, MSGL_V, "fb_pixel_size: %d bytes\n", fb_pixel_size);
+    mp_msg(MSGT_VO, MSGL_V, "other:\n");
+    mp_msg(MSGT_VO, MSGL_V, "in_width: %d\n", in_width);
+    mp_msg(MSGT_VO, MSGL_V, "in_height: %d\n", in_height);
+    mp_msg(MSGT_VO, MSGL_V, "out_width: %d\n", out_width);
+    mp_msg(MSGT_VO, MSGL_V, "out_height: %d\n", out_height);
+    mp_msg(MSGT_VO, MSGL_V, "first_row: %d\n", first_row);
+    mp_msg(MSGT_VO, MSGL_V, "last_row: %d\n", last_row);
+    mp_msg(MSGT_VO, MSGL_DBG2, "draw_alpha_p:%dbpp = %p\n", fb_bpp, draw_alpha_p);
 }
 
 static void vt_set_textarea(int u, int l)
 {
-	/* how can I determine the font height?
-	 * just use 16 for now
-	 */
-	int urow = ((u + 15) / 16) + 1;
-	int lrow = l / 16;
+    /* how can I determine the font height?
+     * just use 16 for now
+     */
+    int urow = ((u + 15) / 16) + 1;
+    int lrow = l / 16;
 
-	mp_msg(MSGT_VO, MSGL_DBG2, "vt_set_textarea(%d,%d): %d,%d\n", u, l, urow, lrow);
-	if(vt_fp) {
-	  fprintf(vt_fp, "\33[%d;%dr\33[%d;%dH", urow, lrow, lrow, 0);
-	  fflush(vt_fp);
-	}
+    mp_msg(MSGT_VO, MSGL_DBG2, "vt_set_textarea(%d,%d): %d,%d\n", u, l, urow, lrow);
+    if (vt_fp) {
+        fprintf(vt_fp, "\33[%d;%dr\33[%d;%dH", urow, lrow, lrow, 0);
+        fflush(vt_fp);
+    }
 }
 
 static int config(uint32_t width, uint32_t height, uint32_t d_width,
-		uint32_t d_height, uint32_t flags, char *title,
-		uint32_t format)
+                  uint32_t d_height, uint32_t flags, char *title,
+                  uint32_t format)
 {
-	struct fb_cmap *cmap;
-	int vm = flags & VOFLAG_MODESWITCHING;
-	int zoom = flags & VOFLAG_SWSCALE;
-	int vt_fd;
-
-	fs = flags & VOFLAG_FULLSCREEN;
+    struct fb_cmap *cmap;
+    int vm   = flags & VOFLAG_MODESWITCHING;
+    int zoom = flags & VOFLAG_SWSCALE;
+    int vt_fd;
 
-	if(pre_init_err == -2) {
-	    mp_msg(MSGT_VO, MSGL_ERR, "Internal fatal error: config() was called before preinit()\n");
-	    return -1;
-	}
+    fs = flags & VOFLAG_FULLSCREEN;
 
-	if (pre_init_err)
-		return 1;
+    if (pre_init_err == -2) {
+        mp_msg(MSGT_VO, MSGL_ERR, "Internal fatal error: config() was called before preinit()\n");
+        return -1;
+    }
 
-	if (fb_mode_name && !vm) {
-		mp_msg(MSGT_VO, MSGL_ERR, "-fbmode can only be used with -vm\n");
-		return 1;
-	}
-	if (vm && (parse_fbmode_cfg(fb_mode_cfgfile) < 0))
-			return 1;
-	if (d_width && (fs || vm)) {
-		out_width = d_width;
-		out_height = d_height;
-	} else {
-		out_width = width;
-		out_height = height;
-	}
-	in_width = width;
-	in_height = height;
-	pixel_format = format;
+    if (pre_init_err)
+        return 1;
 
-	if (fb_mode_name) {
-		if (!(fb_mode = find_mode_by_name(fb_mode_name))) {
-			mp_msg(MSGT_VO, MSGL_ERR, "can't find requested video mode\n");
-			return 1;
-		}
-		fb_mode2fb_vinfo(fb_mode, &fb_vinfo);
-	} else if (vm) {
-		monitor_hfreq = str2range(monitor_hfreq_str);
-		monitor_vfreq = str2range(monitor_vfreq_str);
-		monitor_dotclock = str2range(monitor_dotclock_str);
-		if (!monitor_hfreq || !monitor_vfreq || !monitor_dotclock) {
-			mp_msg(MSGT_VO, MSGL_ERR, "you have to specify the capabilities of"
-					" the monitor.\n");
-			return 1;
-		}
-		if (!(fb_mode = find_best_mode(out_width, out_height,
-					monitor_hfreq, monitor_vfreq,
-					monitor_dotclock))) {
-			mp_msg(MSGT_VO, MSGL_ERR, "can't find best video mode\n");
-			return 1;
-		}
-		mp_msg(MSGT_VO, MSGL_V, "using mode %dx%d @ %.1fHz\n", fb_mode->xres,
-				fb_mode->yres, vsf(fb_mode));
-		fb_mode2fb_vinfo(fb_mode, &fb_vinfo);
-	}
-	fb_bpp_we_want = fb_bpp;
-	set_bpp(&fb_vinfo, fb_bpp);
-	fb_vinfo.xres_virtual = fb_vinfo.xres;
-	fb_vinfo.yres_virtual = fb_vinfo.yres;
+    if (fb_mode_name && !vm) {
+        mp_msg(MSGT_VO, MSGL_ERR, "-fbmode can only be used with -vm\n");
+        return 1;
+    }
+    if (vm && (parse_fbmode_cfg(fb_mode_cfgfile) < 0))
+        return 1;
+    if (d_width && (fs || vm)) {
+        out_width  = d_width;
+        out_height = d_height;
+    } else {
+        out_width  = width;
+        out_height = height;
+    }
+    in_width     = width;
+    in_height    = height;
+    pixel_format = format;
 
-        if (fb_tty_fd >= 0 && ioctl(fb_tty_fd, KDSETMODE, KD_GRAPHICS) < 0) {
-                mp_msg(MSGT_VO, MSGL_V, "Can't set graphics mode: %s\n", strerror(errno));
-                close(fb_tty_fd);
-                fb_tty_fd = -1;
+    if (fb_mode_name) {
+        if (!(fb_mode = find_mode_by_name(fb_mode_name))) {
+            mp_msg(MSGT_VO, MSGL_ERR, "can't find requested video mode\n");
+            return 1;
         }
+        fb_mode2fb_vinfo(fb_mode, &fb_vinfo);
+    } else if (vm) {
+        monitor_hfreq = str2range(monitor_hfreq_str);
+        monitor_vfreq = str2range(monitor_vfreq_str);
+        monitor_dotclock = str2range(monitor_dotclock_str);
+        if (!monitor_hfreq || !monitor_vfreq || !monitor_dotclock) {
+            mp_msg(MSGT_VO, MSGL_ERR, "you have to specify the capabilities of"
+                   " the monitor.\n");
+            return 1;
+        }
+        if (!(fb_mode = find_best_mode(out_width, out_height, monitor_hfreq,
+                                       monitor_vfreq, monitor_dotclock))) {
+            mp_msg(MSGT_VO, MSGL_ERR, "can't find best video mode\n");
+            return 1;
+        }
+        mp_msg(MSGT_VO, MSGL_V, "using mode %dx%d @ %.1fHz\n", fb_mode->xres,
+               fb_mode->yres, vsf(fb_mode));
+        fb_mode2fb_vinfo(fb_mode, &fb_vinfo);
+    }
+    fb_bpp_we_want = fb_bpp;
+    set_bpp(&fb_vinfo, fb_bpp);
+    fb_vinfo.xres_virtual = fb_vinfo.xres;
+    fb_vinfo.yres_virtual = fb_vinfo.yres;
 
-	if (ioctl(fb_dev_fd, FBIOPUT_VSCREENINFO, &fb_vinfo)) {
-		mp_msg(MSGT_VO, MSGL_ERR, "Can't put VSCREENINFO: %s\n", strerror(errno));
-                if (fb_tty_fd >= 0 && ioctl(fb_tty_fd, KDSETMODE, KD_TEXT) < 0) {
-                        mp_msg(MSGT_VO, MSGL_ERR, "Can't restore text mode: %s\n", strerror(errno));
-                }
-		return 1;
-	}
+    if (fb_tty_fd >= 0 && ioctl(fb_tty_fd, KDSETMODE, KD_GRAPHICS) < 0) {
+        mp_msg(MSGT_VO, MSGL_V, "Can't set graphics mode: %s\n", strerror(errno));
+        close(fb_tty_fd);
+        fb_tty_fd = -1;
+    }
 
-	fb_pixel_size = fb_vinfo.bits_per_pixel / 8;
-	fb_bpp = fb_vinfo.red.length + fb_vinfo.green.length +
-		fb_vinfo.blue.length + fb_vinfo.transp.length;
-	if (fb_bpp_we_want != fb_bpp)
-		mp_msg(MSGT_VO, MSGL_WARN, "requested %d bpp, got %d bpp!!!\n",
-				fb_bpp_we_want, fb_bpp);
+    if (ioctl(fb_dev_fd, FBIOPUT_VSCREENINFO, &fb_vinfo)) {
+        mp_msg(MSGT_VO, MSGL_ERR, "Can't put VSCREENINFO: %s\n", strerror(errno));
+        if (fb_tty_fd >= 0 && ioctl(fb_tty_fd, KDSETMODE, KD_TEXT) < 0) {
+            mp_msg(MSGT_VO, MSGL_ERR, "Can't restore text mode: %s\n", strerror(errno));
+        }
+        return 1;
+    }
 
-	switch (fb_bpp) {
-	case 32:
-		draw_alpha_p = vo_draw_alpha_rgb32;
-		break;
-	case 24:
-		draw_alpha_p = vo_draw_alpha_rgb24;
-		break;
-	case 16:
-		draw_alpha_p = vo_draw_alpha_rgb16;
-		break;
-	case 15:
-		draw_alpha_p = vo_draw_alpha_rgb15;
-		break;
-	default:
-		return 1;
-	}
+    fb_pixel_size = fb_vinfo.bits_per_pixel / 8;
+    fb_bpp = fb_vinfo.red.length + fb_vinfo.green.length +
+        fb_vinfo.blue.length + fb_vinfo.transp.length;
+    if (fb_bpp_we_want != fb_bpp)
+        mp_msg(MSGT_VO, MSGL_WARN, "requested %d bpp, got %d bpp!!!\n",
+               fb_bpp_we_want, fb_bpp);
 
-	fb_xres = fb_vinfo.xres;
-	fb_yres = fb_vinfo.yres;
+    switch (fb_bpp) {
+    case 32:
+        draw_alpha_p = vo_draw_alpha_rgb32;
+        break;
+    case 24:
+        draw_alpha_p = vo_draw_alpha_rgb24;
+        break;
+    case 16:
+        draw_alpha_p = vo_draw_alpha_rgb16;
+        break;
+    case 15:
+        draw_alpha_p = vo_draw_alpha_rgb15;
+        break;
+    default:
+        return 1;
+    }
 
-	if (vm || fs) {
-		out_width = fb_xres;
-		out_height = fb_yres;
-	}
-	if (out_width < in_width || out_height < in_height) {
-		mp_msg(MSGT_VO, MSGL_ERR, "screensize is smaller than video size\n");
-		return 1;
-	}
+    fb_xres = fb_vinfo.xres;
+    fb_yres = fb_vinfo.yres;
 
-	first_row = (out_height - in_height) / 2;
-	last_row = (out_height + in_height) / 2;
+    if (vm || fs) {
+        out_width  = fb_xres;
+        out_height = fb_yres;
+    }
+    if (out_width < in_width || out_height < in_height) {
+        mp_msg(MSGT_VO, MSGL_ERR, "screensize is smaller than video size\n");
+        return 1;
+    }
 
-	if (ioctl(fb_dev_fd, FBIOGET_FSCREENINFO, &fb_finfo)) {
-		mp_msg(MSGT_VO, MSGL_ERR, "Can't get FSCREENINFO: %s\n", strerror(errno));
-		return 1;
-	}
+    first_row = (out_height - in_height) / 2;
+    last_row  = (out_height + in_height) / 2;
 
-	lots_of_printf();
+    if (ioctl(fb_dev_fd, FBIOGET_FSCREENINFO, &fb_finfo)) {
+        mp_msg(MSGT_VO, MSGL_ERR, "Can't get FSCREENINFO: %s\n", strerror(errno));
+        return 1;
+    }
 
-	if (fb_finfo.type != FB_TYPE_PACKED_PIXELS) {
-		mp_msg(MSGT_VO, MSGL_ERR, "type %d not supported\n", fb_finfo.type);
-		return 1;
-	}
+    lots_of_printf();
 
-	switch (fb_finfo.visual) {
-		case FB_VISUAL_TRUECOLOR:
-			break;
-		case FB_VISUAL_DIRECTCOLOR:
-			mp_msg(MSGT_VO, MSGL_V, "creating cmap for directcolor\n");
-			if (ioctl(fb_dev_fd, FBIOGETCMAP, &fb_oldcmap)) {
-				mp_msg(MSGT_VO, MSGL_ERR, "can't get cmap: %s\n",
-						strerror(errno));
-				return 1;
-			}
-			if (!(cmap = make_directcolor_cmap(&fb_vinfo)))
-				return 1;
-			if (ioctl(fb_dev_fd, FBIOPUTCMAP, cmap)) {
-				mp_msg(MSGT_VO, MSGL_ERR, "can't put cmap: %s\n",
-						strerror(errno));
-				return 1;
-			}
-			fb_cmap_changed = 1;
-			free(cmap->red);
-			free(cmap->green);
-			free(cmap->blue);
-			free(cmap);
-			break;
-		default:
-			mp_msg(MSGT_VO, MSGL_ERR, "visual: %d not yet supported\n",
-					fb_finfo.visual);
-			return 1;
-	}
+    if (fb_finfo.type != FB_TYPE_PACKED_PIXELS) {
+        mp_msg(MSGT_VO, MSGL_ERR, "type %d not supported\n", fb_finfo.type);
+        return 1;
+    }
 
-	fb_line_len = fb_finfo.line_length;
-	fb_size = fb_finfo.smem_len;
-	frame_buffer = NULL;
+    switch (fb_finfo.visual) {
+    case FB_VISUAL_TRUECOLOR:
+        break;
+    case FB_VISUAL_DIRECTCOLOR:
+        mp_msg(MSGT_VO, MSGL_V, "creating cmap for directcolor\n");
+        if (ioctl(fb_dev_fd, FBIOGETCMAP, &fb_oldcmap)) {
+            mp_msg(MSGT_VO, MSGL_ERR, "can't get cmap: %s\n",
+                    strerror(errno));
+            return 1;
+        }
+        if (!(cmap = make_directcolor_cmap(&fb_vinfo)))
+            return 1;
+        if (ioctl(fb_dev_fd, FBIOPUTCMAP, cmap)) {
+            mp_msg(MSGT_VO, MSGL_ERR, "can't put cmap: %s\n",
+                   strerror(errno));
+            return 1;
+        }
+        fb_cmap_changed = 1;
+        free(cmap->red);
+        free(cmap->green);
+        free(cmap->blue);
+        free(cmap);
+        break;
+    default:
+        mp_msg(MSGT_VO, MSGL_ERR, "visual: %d not yet supported\n",
+               fb_finfo.visual);
+        return 1;
+    }
+
+    fb_line_len = fb_finfo.line_length;
+    fb_size     = fb_finfo.smem_len;
+    frame_buffer = NULL;
 #ifdef CONFIG_VIDIX
-	if(vidix_name) {
-	    unsigned image_width,image_height,x_offset,y_offset;
-	    if(zoom || fs){
-		aspect_save_orig(width,height);
-		aspect_save_prescale(d_width,d_height);
-		aspect_save_screenres(fb_xres,fb_yres);
-		aspect(&image_width,&image_height,fs ? A_ZOOM : A_NOZOOM);
-	    } else {
-		image_width=width;
-		image_height=height;
-	    }
+    if (vidix_name) {
+        unsigned image_width, image_height, x_offset, y_offset;
+        if (zoom || fs) {
+            aspect_save_orig(width, height);
+            aspect_save_prescale(d_width, d_height);
+            aspect_save_screenres(fb_xres, fb_yres);
+            aspect(&image_width, &image_height, fs ? A_ZOOM : A_NOZOOM);
+        } else {
+            image_width  = width;
+            image_height = height;
+        }
 
-		if(fb_xres > image_width)
-		    x_offset = (fb_xres - image_width) / 2;
-		else
-		    x_offset = 0;
-		if(fb_yres > image_height)
-		    y_offset = (fb_yres - image_height) / 2;
-		else
-		    y_offset = 0;
+        if (fb_xres > image_width)
+            x_offset = (fb_xres - image_width) / 2;
+        else
+            x_offset = 0;
+        if (fb_yres > image_height)
+            y_offset = (fb_yres - image_height) / 2;
+        else
+            y_offset = 0;
 
-		if(vidix_init(width,height,x_offset,y_offset,image_width,
-			    image_height,format,fb_bpp,
-			    fb_xres,fb_yres) != 0) {
-		    mp_msg(MSGT_VO, MSGL_ERR, "Can't initialize VIDIX driver\n");
-		    vidix_name = NULL;
-		    vidix_term();
-		    return -1;
-		} else
-		    mp_msg(MSGT_VO, MSGL_V, "Using VIDIX\n");
-		vidix_start();
-		if (vidix_grkey_support()) {
-		    vidix_grkey_get(&gr_key);
-		    gr_key.key_op = KEYS_PUT;
-		    if (!(vo_colorkey & 0xff000000)) {
-			gr_key.ckey.op = CKEY_TRUE;
-			gr_key.ckey.red = (vo_colorkey & 0x00ff0000) >> 16;
-			gr_key.ckey.green = (vo_colorkey & 0x0000ff00) >> 8;
-			gr_key.ckey.blue = vo_colorkey & 0x000000ff;
-		    } else
-			gr_key.ckey.op = CKEY_FALSE;
-		    vidix_grkey_set(&gr_key);
-		}
-	} else
+        if (vidix_init(width, height, x_offset, y_offset, image_width,
+                       image_height, format, fb_bpp, fb_xres, fb_yres) != 0) {
+            mp_msg(MSGT_VO, MSGL_ERR, "Can't initialize VIDIX driver\n");
+            vidix_name = NULL;
+            vidix_term();
+            return -1;
+        } else
+            mp_msg(MSGT_VO, MSGL_V, "Using VIDIX\n");
+        vidix_start();
+        if (vidix_grkey_support()) {
+            vidix_grkey_get(&gr_key);
+            gr_key.key_op = KEYS_PUT;
+            if (!(vo_colorkey & 0xff000000)) {
+                gr_key.ckey.op    = CKEY_TRUE;
+                gr_key.ckey.red   = (vo_colorkey & 0x00ff0000) >> 16;
+                gr_key.ckey.green = (vo_colorkey & 0x0000ff00) >> 8;
+                gr_key.ckey.blue  =  vo_colorkey & 0x000000ff;
+            } else
+                gr_key.ckey.op = CKEY_FALSE;
+            vidix_grkey_set(&gr_key);
+        }
+    } else
 #endif
-	{
-	    int x_offset=0,y_offset=0;
-	    geometry(&x_offset, &y_offset, &out_width, &out_height, fb_xres, fb_yres);
-	    if ((frame_buffer = (uint8_t *) mmap(0, fb_size, PROT_READ | PROT_WRITE,
-				    MAP_SHARED, fb_dev_fd, 0)) == (uint8_t *) -1) {
-		mp_msg(MSGT_VO, MSGL_ERR, "Can't mmap %s: %s\n", fb_dev_name, strerror(errno));
-		return 1;
-	    }
+    {
+        int x_offset = 0, y_offset = 0;
+        geometry(&x_offset, &y_offset, &out_width, &out_height, fb_xres, fb_yres);
+        if ((frame_buffer = (uint8_t *) mmap(0, fb_size, PROT_READ | PROT_WRITE,
+                                             MAP_SHARED, fb_dev_fd, 0)) == (uint8_t *) -1) {
+        mp_msg(MSGT_VO, MSGL_ERR, "Can't mmap %s: %s\n", fb_dev_name, strerror(errno));
+        return 1;
+        }
 
-	    center = frame_buffer +
-		    ( (out_width - in_width) / 2 ) * fb_pixel_size +
-		    ( (out_height - in_height) / 2 ) * fb_line_len +
-		    x_offset * fb_pixel_size + y_offset * fb_line_len;
+        center = frame_buffer +
+                 ( (out_width  - in_width)  / 2 ) * fb_pixel_size +
+                 ( (out_height - in_height) / 2 ) * fb_line_len +
+                 x_offset * fb_pixel_size + y_offset * fb_line_len;
 
-	    mp_msg(MSGT_VO, MSGL_DBG2, "frame_buffer @ %p\n", frame_buffer);
-	    mp_msg(MSGT_VO, MSGL_DBG2, "center @ %p\n", center);
-	    mp_msg(MSGT_VO, MSGL_V, "pixel per line: %d\n", fb_line_len / fb_pixel_size);
+        mp_msg(MSGT_VO, MSGL_DBG2, "frame_buffer @ %p\n", frame_buffer);
+        mp_msg(MSGT_VO, MSGL_DBG2, "center @ %p\n", center);
+        mp_msg(MSGT_VO, MSGL_V, "pixel per line: %d\n", fb_line_len / fb_pixel_size);
 
-	    if (fs || vm)
-		memset(frame_buffer, '\0', fb_line_len * fb_yres);
-	}
-	if (vt_doit && (vt_fd = open("/dev/tty", O_WRONLY)) == -1) {
-		mp_msg(MSGT_VO, MSGL_ERR, "can't open /dev/tty: %s\n", strerror(errno));
-		vt_doit = 0;
-	}
-	if (vt_doit && !(vt_fp = fdopen(vt_fd, "w"))) {
-		mp_msg(MSGT_VO, MSGL_ERR, "can't fdopen /dev/tty: %s\n", strerror(errno));
-		vt_doit = 0;
-	}
+        if (fs || vm)
+            memset(frame_buffer, '\0', fb_line_len * fb_yres);
+    }
+    if (vt_doit && (vt_fd = open("/dev/tty", O_WRONLY)) == -1) {
+        mp_msg(MSGT_VO, MSGL_ERR, "can't open /dev/tty: %s\n", strerror(errno));
+        vt_doit = 0;
+    }
+    if (vt_doit && !(vt_fp = fdopen(vt_fd, "w"))) {
+        mp_msg(MSGT_VO, MSGL_ERR, "can't fdopen /dev/tty: %s\n", strerror(errno));
+        vt_doit = 0;
+    }
 
-	if (vt_doit)
-		vt_set_textarea(last_row, fb_yres);
+    if (vt_doit)
+        vt_set_textarea(last_row, fb_yres);
 
-	return 0;
+    return 0;
 }
 
 static int query_format(uint32_t format)
 {
-	if (!fb_preinit(0))
-		return 0;
+    if (!fb_preinit(0))
+        return 0;
 #ifdef CONFIG_VIDIX
-	if(vidix_name)
-		return vidix_query_fourcc(format);
+    if (vidix_name)
+        return vidix_query_fourcc(format);
 #endif
-	if ((format & IMGFMT_BGR_MASK) == IMGFMT_BGR) {
-		int bpp = format & 0xff;
+    if ((format & IMGFMT_BGR_MASK) == IMGFMT_BGR) {
+        int bpp = format & 0xff;
 
-		if (bpp == fb_bpp)
-			return VFCAP_ACCEPT_STRIDE | VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW;
-	}
-	return 0;
+        if (bpp == fb_bpp)
+            return VFCAP_ACCEPT_STRIDE | VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW;
+    }
+    return 0;
 }
 
 static void draw_alpha(int x0, int y0, int w, int h, unsigned char *src,
-		unsigned char *srca, int stride)
+                       unsigned char *srca, int stride)
 {
-	unsigned char *dst;
+    unsigned char *dst;
 
-	dst = center + fb_line_len * y0 + fb_pixel_size * x0;
+    dst = center + fb_line_len * y0 + fb_pixel_size * x0;
 
-	(*draw_alpha_p)(w, h, src, srca, stride, dst, fb_line_len);
+    (*draw_alpha_p)(w, h, src, srca, stride, dst, fb_line_len);
 }
 
 static int draw_frame(uint8_t *src[])
 {
-	return 1;
+    return 1;
 }
 
-static int draw_slice(uint8_t *src[], int stride[], int w, int h, int x,
-		int y)
+static int draw_slice(uint8_t *src[], int stride[], int w, int h, int x, int y)
 {
-	uint8_t *d, *s;
+    uint8_t *d, *s;
 
-	d = center + fb_line_len * y + fb_pixel_size * x;
+    d = center + fb_line_len * y + fb_pixel_size * x;
 
-	s = src[0];
-	while (h) {
-		fast_memcpy(d, s, w * fb_pixel_size);
-		d += fb_line_len;
-		s += stride[0];
-		h--;
-	}
+    s = src[0];
+    while (h) {
+        fast_memcpy(d, s, w * fb_pixel_size);
+        d += fb_line_len;
+        s += stride[0];
+        h--;
+    }
 
-	return 0;
+    return 0;
 }
 
 static void check_events(void)
@@ -1099,118 +1095,118 @@ static void flip_page(void)
 
 static void draw_osd(void)
 {
-	vo_draw_text(in_width, in_height, draw_alpha);
+    vo_draw_text(in_width, in_height, draw_alpha);
 }
 
 static void uninit(void)
 {
-	if (fb_cmap_changed) {
-		if (ioctl(fb_dev_fd, FBIOPUTCMAP, &fb_oldcmap))
-			mp_msg(MSGT_VO, MSGL_WARN, "Can't restore original cmap\n");
-		fb_cmap_changed = 0;
-	}
-	if (ioctl(fb_dev_fd, FBIOGET_VSCREENINFO, &fb_vinfo))
-		mp_msg(MSGT_VO, MSGL_WARN, "ioctl FBIOGET_VSCREENINFO: %s\n", strerror(errno));
-	fb_orig_vinfo.xoffset = fb_vinfo.xoffset;
-	fb_orig_vinfo.yoffset = fb_vinfo.yoffset;
-	if (ioctl(fb_dev_fd, FBIOPUT_VSCREENINFO, &fb_orig_vinfo))
-		mp_msg(MSGT_VO, MSGL_WARN, "Can't reset original fb_var_screeninfo: %s\n", strerror(errno));
-        if (fb_tty_fd >= 0) {
-                if (ioctl(fb_tty_fd, KDSETMODE, KD_TEXT) < 0)
-                        mp_msg(MSGT_VO, MSGL_WARN, "Can't restore text mode: %s\n", strerror(errno));
-        }
-	if (vt_doit)
-		vt_set_textarea(0, fb_orig_vinfo.yres);
-        close(fb_tty_fd);
-	close(fb_dev_fd);
-	if(frame_buffer)
-		munmap(frame_buffer, fb_size);
-	frame_buffer = NULL;
+    if (fb_cmap_changed) {
+        if (ioctl(fb_dev_fd, FBIOPUTCMAP, &fb_oldcmap))
+            mp_msg(MSGT_VO, MSGL_WARN, "Can't restore original cmap\n");
+        fb_cmap_changed = 0;
+    }
+    if (ioctl(fb_dev_fd, FBIOGET_VSCREENINFO, &fb_vinfo))
+        mp_msg(MSGT_VO, MSGL_WARN, "ioctl FBIOGET_VSCREENINFO: %s\n", strerror(errno));
+    fb_orig_vinfo.xoffset = fb_vinfo.xoffset;
+    fb_orig_vinfo.yoffset = fb_vinfo.yoffset;
+    if (ioctl(fb_dev_fd, FBIOPUT_VSCREENINFO, &fb_orig_vinfo))
+        mp_msg(MSGT_VO, MSGL_WARN, "Can't reset original fb_var_screeninfo: %s\n", strerror(errno));
+    if (fb_tty_fd >= 0) {
+        if (ioctl(fb_tty_fd, KDSETMODE, KD_TEXT) < 0)
+            mp_msg(MSGT_VO, MSGL_WARN, "Can't restore text mode: %s\n", strerror(errno));
+    }
+    if (vt_doit)
+        vt_set_textarea(0, fb_orig_vinfo.yres);
+    close(fb_tty_fd);
+    close(fb_dev_fd);
+    if (frame_buffer)
+        munmap(frame_buffer, fb_size);
+    frame_buffer = NULL;
 #ifdef CONFIG_VIDIX
-	if(vidix_name)
-		vidix_term();
+    if (vidix_name)
+        vidix_term();
 #endif
-	fb_preinit(1);
+    fb_preinit(1);
 }
 
 static int preinit(const char *vo_subdevice)
 {
     pre_init_err = 0;
 
-    if(vo_subdevice) {
+    if (vo_subdevice) {
 #ifdef CONFIG_VIDIX
-	if (memcmp(vo_subdevice, "vidix", 5) == 0)
-	    vidix_name = &vo_subdevice[5];
-	if(vidix_name)
-	    pre_init_err = vidix_preinit(vidix_name,&video_out_fbdev);
-	else
+        if (memcmp(vo_subdevice, "vidix", 5) == 0)
+            vidix_name = &vo_subdevice[5];
+        if (vidix_name)
+            pre_init_err = vidix_preinit(vidix_name, &video_out_fbdev);
+        else
 #endif
-	{
-	    if (fb_dev_name)
-		free(fb_dev_name);
-	    fb_dev_name = strdup(vo_subdevice);
-	}
+        {
+            if (fb_dev_name)
+                free(fb_dev_name);
+            fb_dev_name = strdup(vo_subdevice);
+        }
     }
-    if(!pre_init_err)
-	return pre_init_err = (fb_preinit(0) ? 0 : -1);
+    if (!pre_init_err)
+        return pre_init_err = (fb_preinit(0) ? 0 : -1);
     return -1;
 }
 
 static uint32_t get_image(mp_image_t *mpi)
 {
     if (!IMGFMT_IS_BGR(mpi->imgfmt) ||
-	(IMGFMT_BGR_DEPTH(mpi->imgfmt) != fb_bpp) ||
-	((mpi->type != MP_IMGTYPE_STATIC) && (mpi->type != MP_IMGTYPE_TEMP)) ||
-	(mpi->flags & MP_IMGFLAG_PLANAR) ||
-	(mpi->flags & MP_IMGFLAG_YUV) ||
-	(mpi->width != in_width) ||
-	(mpi->height != in_height)
+        (IMGFMT_BGR_DEPTH(mpi->imgfmt) != fb_bpp) ||
+        ((mpi->type != MP_IMGTYPE_STATIC) && (mpi->type != MP_IMGTYPE_TEMP)) ||
+        (mpi->flags & MP_IMGFLAG_PLANAR) ||
+        (mpi->flags & MP_IMGFLAG_YUV) ||
+        (mpi->width != in_width) ||
+        (mpi->height != in_height)
        )
-    return VO_FALSE;
+        return VO_FALSE;
 
     mpi->planes[0] = center;
     mpi->stride[0] = fb_line_len;
-    mpi->flags |= MP_IMGFLAG_DIRECT;
+    mpi->flags    |= MP_IMGFLAG_DIRECT;
     return VO_TRUE;
 }
 
 static int control(uint32_t request, void *data, ...)
 {
-  switch (request) {
-  case VOCTRL_GET_IMAGE:
-    return get_image(data);
-  case VOCTRL_QUERY_FORMAT:
-    return query_format(*((uint32_t*)data));
-  }
+    switch (request) {
+    case VOCTRL_GET_IMAGE:
+        return get_image(data);
+    case VOCTRL_QUERY_FORMAT:
+        return query_format(*((uint32_t*)data));
+    }
 
 #ifdef CONFIG_VIDIX
-  if (vidix_name) {
-      switch (request) {
-      case VOCTRL_SET_EQUALIZER:
-	  {
-	      va_list ap;
-	      int value;
-	      
-	      va_start(ap, data);
-	      value = va_arg(ap, int);
-	      va_end(ap);
-	      
-	      return vidix_control(request, data, value);
-         }
-      case VOCTRL_GET_EQUALIZER:
-	  {
-	      va_list ap;
-	      int *value;
-	      
-	      va_start(ap, data);
-	      value = va_arg(ap, int*);
-	      va_end(ap);
-	      
-	      return vidix_control(request, data, value);
-	  }
-      }
-  }
+    if (vidix_name) {
+        switch (request) {
+        case VOCTRL_SET_EQUALIZER:
+        {
+            va_list ap;
+            int value;
+
+            va_start(ap, data);
+            value = va_arg(ap, int);
+            va_end(ap);
+
+            return vidix_control(request, data, value);
+        }
+        case VOCTRL_GET_EQUALIZER:
+        {
+            va_list ap;
+            int *value;
+
+            va_start(ap, data);
+            value = va_arg(ap, int*);
+            va_end(ap);
+
+            return vidix_control(request, data, value);
+        }
+        }
+    }
 #endif
 
-  return VO_NOTIMPL;
+    return VO_NOTIMPL;
 }



More information about the MPlayer-cvslog mailing list