Removed unused io methods
This commit is contained in:
63
main.c
63
main.c
@@ -26,9 +26,7 @@ struct buffer {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct buffer *buffers;
|
struct buffer *buffers;
|
||||||
static int *outbuffer;
|
|
||||||
static unsigned int n_buffers;
|
static unsigned int n_buffers;
|
||||||
static enum io_method io = IO_METHOD_MMAP;
|
|
||||||
|
|
||||||
// Rear camera
|
// Rear camera
|
||||||
static char *rear_dev_name;
|
static char *rear_dev_name;
|
||||||
@@ -252,23 +250,11 @@ init_device(int fd)
|
|||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (io) {
|
|
||||||
case IO_METHOD_READ:
|
|
||||||
if (!(cap.capabilities & V4L2_CAP_READWRITE)) {
|
|
||||||
fprintf(stderr, "%s does not support read i/o\n",
|
|
||||||
*dev_name);
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case IO_METHOD_MMAP:
|
|
||||||
case IO_METHOD_USERPTR:
|
|
||||||
if (!(cap.capabilities & V4L2_CAP_STREAMING)) {
|
if (!(cap.capabilities & V4L2_CAP_STREAMING)) {
|
||||||
fprintf(stderr, "%s does not support streaming i/o\n",
|
fprintf(stderr, "%s does not support streaming i/o\n",
|
||||||
*dev_name);
|
*dev_name);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Select video input, video standard and tune here. */
|
/* Select video input, video standard and tune here. */
|
||||||
struct v4l2_cropcap cropcap = {
|
struct v4l2_cropcap cropcap = {
|
||||||
@@ -446,23 +432,6 @@ read_frame(int fd)
|
|||||||
{
|
{
|
||||||
struct v4l2_buffer buf = {0};
|
struct v4l2_buffer buf = {0};
|
||||||
|
|
||||||
switch (io) {
|
|
||||||
case IO_METHOD_READ:
|
|
||||||
if (read(fd, buffers[0].start, buffers[0].length) == -1) {
|
|
||||||
switch (errno) {
|
|
||||||
case EAGAIN:
|
|
||||||
return 0;
|
|
||||||
case EIO:
|
|
||||||
/* Could ignore EIO, see spec. */
|
|
||||||
/* fallthrough */
|
|
||||||
default:
|
|
||||||
errno_exit("read");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
process_image(buffers[0].start, buffers[0].length);
|
|
||||||
break;
|
|
||||||
case IO_METHOD_MMAP:
|
|
||||||
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||||
buf.memory = V4L2_MEMORY_MMAP;
|
buf.memory = V4L2_MEMORY_MMAP;
|
||||||
if (xioctl(fd, VIDIOC_DQBUF, &buf) == -1) {
|
if (xioctl(fd, VIDIOC_DQBUF, &buf) == -1) {
|
||||||
@@ -485,38 +454,6 @@ read_frame(int fd)
|
|||||||
if (xioctl(fd, VIDIOC_QBUF, &buf) == -1) {
|
if (xioctl(fd, VIDIOC_QBUF, &buf) == -1) {
|
||||||
errno_exit("VIDIOC_QBUF");
|
errno_exit("VIDIOC_QBUF");
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case IO_METHOD_USERPTR:
|
|
||||||
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
|
||||||
buf.memory = V4L2_MEMORY_USERPTR;
|
|
||||||
if (xioctl(fd, VIDIOC_DQBUF, &buf) == -1) {
|
|
||||||
switch (errno) {
|
|
||||||
case EAGAIN:
|
|
||||||
return 0;
|
|
||||||
case EIO:
|
|
||||||
/* Could ignore EIO, see spec. */
|
|
||||||
/* fallthrough */
|
|
||||||
default:
|
|
||||||
errno_exit("VIDIOC_DQBUF");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
unsigned int i;
|
|
||||||
for (i = 0; i < n_buffers; ++i) {
|
|
||||||
if (buf.m.userptr == (unsigned long) buffers[i].start
|
|
||||||
&& buf.length == buffers[i].length) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//assert(i < n_buffers);
|
|
||||||
|
|
||||||
process_image((void *) buf.m.userptr, buf.bytesused);
|
|
||||||
if (xioctl(fd, VIDIOC_QBUF, &buf) == -1) {
|
|
||||||
errno_exit("VIDIOC_QBUF");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user