# HG changeset patch # User szabii # Date 987025016 0 # Node ID f02474901080c92d603d383bba275cab2c15ae1b # Parent 463699f15eb4e0df59a70830f8269a55ffb1d86f -fbdepth added diff -r 463699f15eb4 -r f02474901080 cfg-mplayer.h --- a/cfg-mplayer.h Wed Apr 11 20:58:15 2001 +0000 +++ b/cfg-mplayer.h Wed Apr 11 21:36:56 2001 +0000 @@ -13,6 +13,7 @@ {"fb", &fb_dev_name, CONF_TYPE_STRING, 0, 0, 0}, {"fbmode", &fb_mode_name, CONF_TYPE_STRING, 0, 0, 0}, {"fbmodeconfig", &fb_mode_cfgfile, CONF_TYPE_STRING, 0, 0, 0}, + {"fbdepth", &fb_mode_depth, CONF_TYPE_INT, CONF_RANGE, 15, 32}, #endif {"encode", &encode_name, CONF_TYPE_STRING, 0, 0, 0}, {"sub", &sub_name, CONF_TYPE_STRING, 0, 0, 0}, diff -r 463699f15eb4 -r f02474901080 libvo/vo_fbdev.c --- a/libvo/vo_fbdev.c Wed Apr 11 20:58:15 2001 +0000 +++ b/libvo/vo_fbdev.c Wed Apr 11 21:36:56 2001 +0000 @@ -356,6 +356,7 @@ char *fb_mode_cfgfile = "/etc/fb.modes"; char *fb_mode_name = NULL; +int fb_mode_depth = 0; static fb_mode_t *fb_mode = NULL; static int fb_switch_mode = 0; @@ -450,6 +451,14 @@ return 1; } fb_switch_mode = 1; + } else if (fb_mode_depth) { + printf("fb_init: Do _not_ use the 'fbdepth' parameter! " + "this parameter will be removed\n"); + if (fb_mode_depth != 15 || fb_mode_depth != 16 || + fb_mode_depth != 24 || fb_mode_depth != 32) { + printf("fb_init: can't switch to %d bpp\n", fb_mode_depth); + return 1; + } } if (!fb_dev_name && !(fb_dev_name = getenv("FRAMEBUFFER"))) @@ -515,6 +524,41 @@ fb_vinfo.vsync_len = fb_mode->vslen; fb_vinfo.sync = fb_mode->sync; fb_vinfo.vmode = fb_mode->vmode; + } else if (fb_mode_depth) { + fb_vinfo.bits_per_pixel = fb_mode_depth; + switch (fb_mode_depth) { + case 32: + case 24: + fb_vinfo.red.offset = 16; + fb_vinfo.red.length = 8; + fb_vinfo.red.msb_right = 0; + fb_vinfo.green.offset = 8; + fb_vinfo.green.length = 8; + fb_vinfo.green.msb_right = 0; + fb_vinfo.blue.offset = 0; + fb_vinfo.blue.length = 8; + fb_vinfo.blue.msb_right = 0; + case 16: + fb_vinfo.red.offset = 11; + fb_vinfo.red.length = 5; + fb_vinfo.red.msb_right = 0; + fb_vinfo.green.offset = 5; + fb_vinfo.green.length = 6; + fb_vinfo.green.msb_right = 0; + fb_vinfo.blue.offset = 0; + fb_vinfo.blue.length = 5; + fb_vinfo.blue.msb_right = 0; + case 15: + fb_vinfo.red.offset = 10; + fb_vinfo.red.length = 5; + fb_vinfo.red.msb_right = 0; + fb_vinfo.green.offset = 5; + fb_vinfo.green.length = 5; + fb_vinfo.green.msb_right = 0; + fb_vinfo.blue.offset = 0; + fb_vinfo.blue.length = 5; + fb_vinfo.blue.msb_right = 0; + } } fb_vinfo.xres_virtual = fb_vinfo.xres; fb_vinfo.yres_virtual = fb_vinfo.yres; diff -r 463699f15eb4 -r f02474901080 mplayer.c --- a/mplayer.c Wed Apr 11 20:58:15 2001 +0000 +++ b/mplayer.c Wed Apr 11 21:36:56 2001 +0000 @@ -72,6 +72,7 @@ extern char *fb_dev_name; extern char *fb_mode_cfgfile; extern char *fb_mode_name; +extern int fb_mode_depth; #endif extern int vo_screenwidth;