summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhenry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-08-13 16:01:53 +0000
committerhenry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-08-13 16:01:53 +0000
commit7dadaf5e397fd9bbf7e813ee8226636b79eca78a (patch)
treed29a19dd8c16e41dc02ffb13c32eb07b57f0b645
parent9be023633c65017efb6c3ac4bb1f490fc856b459 (diff)
downloadmpv-7dadaf5e397fd9bbf7e813ee8226636b79eca78a.tar.bz2
mpv-7dadaf5e397fd9bbf7e813ee8226636b79eca78a.tar.xz
v4l2 check
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10594 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--libmpdemux/tvi_v4l.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/libmpdemux/tvi_v4l.c b/libmpdemux/tvi_v4l.c
index f4b03d1097..4fd2608ac8 100644
--- a/libmpdemux/tvi_v4l.c
+++ b/libmpdemux/tvi_v4l.c
@@ -404,6 +404,18 @@ static void init_v4l_audio(priv_t *priv)
}
}
+struct v4l2_capability
+{
+ __u8 driver[16]; /* i.e. "bttv" */
+ __u8 card[32]; /* i.e. "Hauppauge WinTV" */
+ __u8 bus_info[32]; /* "PCI:" + pci_dev->slot_name */
+ __u32 version; /* should use KERNEL_VERSION() */
+ __u32 capabilities; /* Device capabilities */
+ __u32 reserved[4];
+};
+
+#define VIDIOC_QUERYCAP _IOR ('V', 0, struct v4l2_capability)
+
static int init(priv_t *priv)
{
int i;
@@ -427,6 +439,16 @@ static int init(priv_t *priv)
goto err;
}
+ /* check for v4l2 */
+ if (ioctl(priv->video_fd, VIDIOC_QUERYCAP, &priv->capability) == 0) {
+ mp_msg(MSGT_TV, MSGL_ERR, "=================================================================\n");
+ mp_msg(MSGT_TV, MSGL_ERR, " WARNING: YOU ARE USING V4L DEMUXER WITH V4L2 DRIVERS!!!\n");
+ mp_msg(MSGT_TV, MSGL_ERR, " As the V4L1 compatibility layer is broken, this may not work.\n");
+ mp_msg(MSGT_TV, MSGL_ERR, " If you encounter any problems, use driver=v4l2 instead.\n");
+ mp_msg(MSGT_TV, MSGL_ERR, " Bugreports on driver=v4l with v4l2 drivers will be ignored.\n");
+ mp_msg(MSGT_TV, MSGL_ERR, "=================================================================\n");
+ }
+
/* get capabilities (priv->capability is needed!) */
if (ioctl(priv->video_fd, VIDIOCGCAP, &priv->capability) == -1)
{