diff --git a/WebcamTracker.cc b/WebcamTracker.cc index 3bf1b7b..9890e5e 100644 --- a/WebcamTracker.cc +++ b/WebcamTracker.cc @@ -81,6 +81,35 @@ WebcamTracker::WebcamTracker(const char * device) cerr << " (ENOMEM)"; cerr << endl; } + + v4l2_buffer qbuf; + qbuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + qbuf.memory = V4L2_MEMORY_MMAP; + qbuf.index = 0; + ret = ioctl(m_fd, VIDIOC_QBUF, &qbuf); + if (ret != 0) + { + cerr << "VIDIOC_QBUF failed! errno = " << errno; + if (errno == EAGAIN) + cerr << " (EAGAIN)"; + if (errno == EINVAL) + cerr << " (EINVAL)"; + if (errno == ENOMEM) + cerr << " (ENOMEM)"; + if (errno == EIO) + cerr << " (EIO)"; + cerr << endl; + } + + int type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + ret = ioctl(m_fd, VIDIOC_STREAMON, &type); + if (ret != 0) + { + cerr << "VIDIOC_STREAMON ioctl failed! errno = " << errno; + if (errno == EINVAL) + cerr << " (EINVAL)"; + cerr << endl; + } } else {