diff options
author | Hans Verkuil <hverkuil-cisco@xs4all.nl> | 2020-12-01 10:48:02 +0100 |
---|---|---|
committer | Hans Verkuil <hverkuil-cisco@xs4all.nl> | 2020-12-01 10:48:02 +0100 |
commit | 0aee9991e0c005f8af7b08e20bfee47855451b5c (patch) | |
tree | dba56b20d4130be3ca00880222d4d4acc96b968e | |
parent | 11da65eee7a271bba3f21d8117cdac428fe3a91e (diff) |
v4l2-ctl: break on VIDIOC_DQEVENT error
If VIDIOC_DQEVENT fails, then stop polling. This will happen if
e.g. the video device was unregistered and VIDIOC_DQEVENT returns
ENODEV.
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
-rw-r--r-- | utils/v4l2-ctl/v4l2-ctl.cpp | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/utils/v4l2-ctl/v4l2-ctl.cpp b/utils/v4l2-ctl/v4l2-ctl.cpp index 951b70d8..ae3a3010 100644 --- a/utils/v4l2-ctl/v4l2-ctl.cpp +++ b/utils/v4l2-ctl/v4l2-ctl.cpp @@ -1545,13 +1545,13 @@ int main(int argc, char **argv) res = select(fd + 1, nullptr, nullptr, &fds, nullptr); if (res <= 0) break; - if (!doioctl(fd, VIDIOC_DQEVENT, &ev)) { - print_event(&ev); - if (ev.sequence > seq) - printf("\tMissed %d events\n", - ev.sequence - seq); - seq = ev.sequence + 1; - } + if (doioctl(fd, VIDIOC_DQEVENT, &ev)) + break; + print_event(&ev); + if (ev.sequence > seq) + printf("\tMissed %d events\n", + ev.sequence - seq); + seq = ev.sequence + 1; } } } @@ -1584,13 +1584,13 @@ int main(int argc, char **argv) res = epoll_wait(epollfd, &epoll_ev, 1, -1); if (res <= 0) break; - if (!doioctl(fd, VIDIOC_DQEVENT, &ev)) { - print_event(&ev); - if (ev.sequence > seq) - printf("\tMissed %d events\n", - ev.sequence - seq); - seq = ev.sequence + 1; - } + if (doioctl(fd, VIDIOC_DQEVENT, &ev)) + break; + print_event(&ev); + if (ev.sequence > seq) + printf("\tMissed %d events\n", + ev.sequence - seq); + seq = ev.sequence + 1; } } close(epollfd); |