Throw error in v4l2 when time out
This commit is contained in:
parent
d4343b574a
commit
d80d506360
|
@ -41,6 +41,9 @@ namespace uvc {
|
||||||
LOG(severity) << str << " error " << errno << ", " << strerror(errno); \
|
LOG(severity) << str << " error " << errno << ", " << strerror(errno); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#define NO_DATA_MAX_COUNT 200
|
||||||
|
|
||||||
|
int no_data_count = 0;
|
||||||
/*
|
/*
|
||||||
class device_error : public std::exception {
|
class device_error : public std::exception {
|
||||||
public:
|
public:
|
||||||
|
@ -194,6 +197,7 @@ struct device {
|
||||||
~device() {
|
~device() {
|
||||||
VLOG(2) << __func__;
|
VLOG(2) << __func__;
|
||||||
stop_streaming();
|
stop_streaming();
|
||||||
|
no_data_count = 0;
|
||||||
if (fd != -1 && close(fd) < 0) {
|
if (fd != -1 && close(fd) < 0) {
|
||||||
LOG_ERROR(WARNING, "close");
|
LOG_ERROR(WARNING, "close");
|
||||||
}
|
}
|
||||||
|
@ -386,6 +390,14 @@ struct device {
|
||||||
throw_error("VIDIOC_QBUF");
|
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!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user