more flexible device name guessing

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10320 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
alex 2003-06-21 23:22:38 +00:00
parent f6979cf420
commit b6a67e5378
1 changed files with 25 additions and 27 deletions

View File

@ -109,39 +109,37 @@ static zr_info_t zr_info[ZR_MAX_DEVICES] = {
int zoran_getcap(zr_info_t *zr) { int zoran_getcap(zr_info_t *zr) {
char* dev; char* dev = NULL;
if (zr->device) if (zr->device)
dev = zr->device; dev = zr->device;
else { /* code borrowed from mjpegtools lavplay.c // 20020416 too */ else {
struct stat vstat; 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 if (!dev)
#define VIDEV "/dev/video" {
if (stat(VIDEV, &vstat) == 0 && S_ISCHR(vstat.st_mode)) mp_msg(MSGT_VO, MSGL_ERR, "zr: unable to find video device\n");
dev = VIDEV; return 1;
#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;
} }
mp_msg(MSGT_VO, MSGL_V, "zr: found video device %s\n", dev);
} }
zr->vdes = open(dev, O_RDWR); zr->vdes = open(dev, O_RDWR);