Throw error in v4l2 when time out

This commit is contained in:
kalman 2018-09-01 20:47:35 +08:00
parent d4343b574a
commit d80d506360

View File

@ -41,6 +41,9 @@ namespace uvc {
LOG(severity) << str << " error " << errno << ", " << strerror(errno); \
} while (0)
#define NO_DATA_MAX_COUNT 200
int no_data_count = 0;
/*
class device_error : public std::exception {
public:
@ -194,6 +197,7 @@ struct device {
~device() {
VLOG(2) << __func__;
stop_streaming();
no_data_count = 0;
if (fd != -1 && close(fd) < 0) {
LOG_ERROR(WARNING, "close");
}
@ -386,6 +390,14 @@ struct device {
throw_error("VIDIOC_QBUF");
});
}
no_data_count = 0;
} else {
no_data_count++;
}
if (no_data_count > NO_DATA_MAX_COUNT) {
throw_error("v4l2 get stream time out!");
}
}