Merge branch 'devel-s210a-merge' into develop
This commit is contained in:
@@ -46,9 +46,10 @@ namespace uvc {
|
||||
} while (0)
|
||||
|
||||
#define NO_DATA_MAX_COUNT 200
|
||||
#define LIVING_MAX_COUNT 9000
|
||||
|
||||
int no_data_count = 0;
|
||||
|
||||
int living_count = 0;
|
||||
/*
|
||||
class device_error : public std::exception {
|
||||
public:
|
||||
@@ -394,6 +395,12 @@ struct device {
|
||||
if (xioctl(fd, VIDIOC_QBUF, &buf) < 0)
|
||||
throw_error("VIDIOC_QBUF");
|
||||
});
|
||||
if (living_count < LIVING_MAX_COUNT) {
|
||||
living_count++;
|
||||
} else {
|
||||
living_count = 0;
|
||||
// LOG(INFO) << "UVC pulse detection,Please ignore.";
|
||||
}
|
||||
}
|
||||
|
||||
no_data_count = 0;
|
||||
@@ -402,7 +409,12 @@ struct device {
|
||||
}
|
||||
|
||||
if (no_data_count > NO_DATA_MAX_COUNT) {
|
||||
throw_error("v4l2 get stream time out!");
|
||||
no_data_count = 0;
|
||||
living_count = 0;
|
||||
LOG(WARNING) << __func__
|
||||
<< " failed: v4l2 get stream time out, Try to reboot!";
|
||||
stop_capture();
|
||||
start_capture();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,8 @@ namespace uvc {
|
||||
|
||||
const std::map<uint32_t, uint32_t> fourcc_map = {
|
||||
{ 0x56595559, 0x32595559 }, // 'VYUY' => '2YUY'
|
||||
{ 0x59555956, 0x59555932 } // 'YUYV' => 'YUY2'
|
||||
{ 0x59555956, 0x59555932 }, // 'YUYV' => 'YUY2'
|
||||
{ 0x33524742, 0x14 }
|
||||
};
|
||||
|
||||
struct throw_error {
|
||||
@@ -756,6 +757,7 @@ void set_device_mode(device &device, int width, int height, int fourcc, int fps,
|
||||
check("IMFMediaType::GetGUID", media_type->GetGUID(MF_MT_SUBTYPE, &subtype));
|
||||
if (subtype.Data1 != fourcc) continue;
|
||||
|
||||
check("MFSetAttributeRatio", MFSetAttributeRatio(media_type, MF_MT_FRAME_RATE, fps, 1));
|
||||
check("MFGetAttributeRatio", MFGetAttributeRatio(media_type, MF_MT_FRAME_RATE, &uvc_fps_num, &uvc_fps_denom));
|
||||
if (uvc_fps_denom == 0) continue;
|
||||
//int uvc_fps = uvc_fps_num / uvc_fps_denom;
|
||||
|
||||
Reference in New Issue
Block a user