Mercurial > mplayer.hg
changeset 10319:2e9b7465d242
more flexible device name guessing
author | alex |
---|---|
date | Sat, 21 Jun 2003 23:22:38 +0000 |
parents | 2b3ef078e819 |
children | d83e4e54985c |
files | libvo/vo_zr.c |
diffstat | 1 files changed, 25 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/libvo/vo_zr.c Sat Jun 21 20:01:35 2003 +0000 +++ b/libvo/vo_zr.c Sat Jun 21 23:22:38 2003 +0000 @@ -109,39 +109,37 @@ int zoran_getcap(zr_info_t *zr) { - char* dev; + char* dev = NULL; if (zr->device) dev = zr->device; - else { /* code borrowed from mjpegtools lavplay.c // 20020416 too */ + else { struct stat vstat; + const char *devs[] = { + "/dev/video", + "/dev/video0", + "/dev/v4l/video0", + "/dev/v4l0", + "/dev/v4l", + NULL + }; + int i = 0; + + do + { + if ((stat(devs[i], &vstat) == 0) && S_ISCHR(vstat.st_mode)) + { + dev = devs[i]; + mp_msg(MSGT_VO, MSGL_V, "zr: found video device %s\n", dev); + break; + } + } while (devs[++i] != NULL); -#undef VIDEV -#define VIDEV "/dev/video" - if (stat(VIDEV, &vstat) == 0 && S_ISCHR(vstat.st_mode)) - dev = VIDEV; -#undef VIDEV -#define VIDEV "/dev/video0" - else if (stat(VIDEV, &vstat) == 0 && S_ISCHR(vstat.st_mode)) - dev = VIDEV; -#undef VIDEV -#define VIDEV "/dev/v4l/video0" - else if (stat(VIDEV, &vstat) == 0 && S_ISCHR(vstat.st_mode)) - dev = VIDEV; -#undef VIDEV -#define VIDEV "/dev/v4l0" - else if (stat(VIDEV, &vstat) == 0 && S_ISCHR(vstat.st_mode)) - dev = VIDEV; -#undef VIDEV -#define VIDEV "/dev/v4l" - else if (stat(VIDEV, &vstat) == 0 && S_ISCHR(vstat.st_mode)) - dev = VIDEV; -#undef VIDEV - else { - mp_msg(MSGT_VO, MSGL_ERR, "zr: unable to find video device\n"); - return 1; + if (!dev) + { + mp_msg(MSGT_VO, MSGL_ERR, "zr: unable to find video device\n"); + return 1; } - mp_msg(MSGT_VO, MSGL_V, "zr: found video device %s\n", dev); } zr->vdes = open(dev, O_RDWR);