Mercurial > mplayer.hg
changeset 30207:6d8765b75f37
Fix fbdev2 to work with Intel framebuffer.
author | reimar |
---|---|
date | Sat, 09 Jan 2010 11:32:18 +0000 |
parents | c3b1e5e728a4 |
children | 4570bb6d0284 |
files | libvo/vo_fbdev2.c |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/libvo/vo_fbdev2.c Sat Jan 09 11:26:39 2010 +0000 +++ b/libvo/vo_fbdev2.c Sat Jan 09 11:32:18 2010 +0000 @@ -319,13 +319,17 @@ set_bpp(&fb_vinfo, fb_target_bpp); fb_vinfo.xres_virtual = fb_vinfo.xres; fb_vinfo.yres_virtual = fb_vinfo.yres; + if (ioctl(fb_dev_fd, FBIOPUT_VSCREENINFO, &fb_vinfo)) + // Needed for Intel framebuffer with 32 bpp + fb_vinfo.transp.length = fb_vinfo.transp.offset = 0; if (ioctl(fb_dev_fd, FBIOPUT_VSCREENINFO, &fb_vinfo)) { mp_msg(MSGT_VO, MSGL_ERR, "[fbdev2] Can't put VSCREENINFO: %s\n", strerror(errno)); return 0; } 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; + fb_bpp = fb_vinfo.bits_per_pixel; + if (fb_bpp == 16) + fb_bpp = fb_vinfo.red.length + fb_vinfo.green.length + fb_vinfo.blue.length; if (fb_bpp == fb_target_bpp) return VFCAP_CSP_SUPPORTED|VFCAP_CSP_SUPPORTED_BY_HW|VFCAP_ACCEPT_STRIDE; }