Added changes suggested by bug #3186 : fixing the unplugging of webcam
This commit is contained in:
parent
114bec52fe
commit
e7921c3fe7
@ -1236,10 +1236,10 @@ static int read_frame_v4l2(CvCaptureCAM_V4L* capture) {
|
||||
//set timestamp in capture struct to be timestamp of most recent frame
|
||||
capture->timestamp = buf.timestamp;
|
||||
|
||||
return 1;
|
||||
return 2;
|
||||
}
|
||||
|
||||
static void mainloop_v4l2(CvCaptureCAM_V4L* capture) {
|
||||
static int mainloop_v4l2(CvCaptureCAM_V4L* capture) {
|
||||
unsigned int count;
|
||||
|
||||
count = 1;
|
||||
@ -1273,8 +1273,13 @@ static void mainloop_v4l2(CvCaptureCAM_V4L* capture) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (read_frame_v4l2 (capture))
|
||||
break;
|
||||
int readresult = read_frame_v412(capture);
|
||||
if (readresult == 2){
|
||||
return 0;
|
||||
}
|
||||
if (readresult){
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1354,7 +1359,10 @@ static int icvGrabFrameCAM_V4L(CvCaptureCAM_V4L* capture) {
|
||||
{
|
||||
// skip first frame. it is often bad -- this is unnotied in traditional apps,
|
||||
// but could be fatal if bad jpeg is enabled
|
||||
mainloop_v4l2(capture);
|
||||
if(!mainloop_v4l2(capture)){
|
||||
fprintf( stderr, "HIGHGUI ERROR: V4L: Could not capture image.\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1366,9 +1374,10 @@ static int icvGrabFrameCAM_V4L(CvCaptureCAM_V4L* capture) {
|
||||
|
||||
if (V4L2_SUPPORT == 1)
|
||||
{
|
||||
|
||||
mainloop_v4l2(capture);
|
||||
|
||||
if(!mainloop_v4l2(capture)){
|
||||
fprintf( stderr, "HIGHGUI ERROR: V4L: Could not capture image.\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_CAMV4L2 */
|
||||
#if defined(HAVE_CAMV4L) && defined(HAVE_CAMV4L2)
|
||||
|
Loading…
Reference in New Issue
Block a user