Mercurial > mplayer.hg
view TVout/con2fb/con2fb.c @ 10252:d275152390ee
I've found some time to implement the encoding support for the new
DivX API. Now it's possible to play and encode movies with the
latest DivX release.
One thing that doesn't work is the new Video Buffer Verifier (VBV)
multipass encoding. The encoder segfaults. Maybe it just isn't
supported with the standard profile of the released binary encoder.
Andreas Hess <jaska@gmx.net>
author | arpi |
---|---|
date | Fri, 06 Jun 2003 19:57:37 +0000 |
parents | 3b5f5d1c5041 |
children |
line wrap: on
line source
/* this is userspace utility which allows you to redirect console to another fb device * You can specify devices & consoles by both numbers and devices. Framebuffers numbers * are zero based (/dev/fb0 ... ), consoles begins with 1 (/dev/tty1 ... ) */ #include <linux/fb.h> #include <sys/ioctl.h> #include <sys/stat.h> #include <sys/types.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> int main(int argc, char* argv[]) { struct fb_con2fbmap c2m; char* fbPath; u_int32_t con, fb; char* e; char* progname = strrchr(argv[0], '/'); int f; if (progname) progname++; else progname = argv[0]; if (argc < 3) { fprintf(stderr, "usage: %s fbdev console\n", progname); return 1; } fb = strtoul(argv[1], &e, 10); if (*e) { struct stat sbf; if (stat(argv[1], &sbf)) { fprintf(stderr, "%s: are you sure that %s can be used to describe fbdev?\n", progname, argv[1]); return 1; } if (!S_ISCHR(sbf.st_mode)) { fprintf(stderr, "%s: %s must be character device\n", progname, argv[1]); return 1; } fb = sbf.st_rdev & 0xFF; if (fb >= 32) fb >>= 5; fbPath = argv[1]; } else fbPath = "/dev/fb0"; con = strtoul(argv[2], &e, 10); if (*e) { struct stat sbf; if (stat(argv[2], &sbf)) { fprintf(stderr, "%s: are you sure that %s can be used to describe vt?\n", progname, argv[2]); return 1; } if (!S_ISCHR(sbf.st_mode)) { fprintf(stderr, "%s: %s must be character device\n", progname, argv[2]); return 1; } con = sbf.st_rdev & 0xFF; } c2m.console = con; c2m.framebuffer = fb; f = open(fbPath, O_RDWR); if (f < 0) { fprintf(stderr, "%s: Cannot open %s\n", progname, fbPath); return 1; } if (ioctl(f, FBIOPUT_CON2FBMAP, &c2m)) { fprintf(stderr, "%s: Cannot set console mapping\n", progname); close(f); return 1; } close(f); return 0; }