Attempt at fixing bug 3186
This commit is contained in:
parent
9cf301e257
commit
1b1fb131b3
@ -248,6 +248,10 @@ make & enjoy!
|
|||||||
#define CHANNEL_NUMBER 1
|
#define CHANNEL_NUMBER 1
|
||||||
#define MAX_CAMERAS 8
|
#define MAX_CAMERAS 8
|
||||||
|
|
||||||
|
// Extra global values declared for error capture
|
||||||
|
#define CAPV4L2_CAMERA_UNPLUGGED 2
|
||||||
|
#define CAPV4L2_OK 1
|
||||||
|
#define CAPV4L2_FAIL 0
|
||||||
|
|
||||||
// default and maximum number of V4L buffers, not including last, 'special' buffer
|
// default and maximum number of V4L buffers, not including last, 'special' buffer
|
||||||
#define MAX_V4L_BUFFERS 10
|
#define MAX_V4L_BUFFERS 10
|
||||||
@ -1236,10 +1240,10 @@ static int read_frame_v4l2(CvCaptureCAM_V4L* capture) {
|
|||||||
//set timestamp in capture struct to be timestamp of most recent frame
|
//set timestamp in capture struct to be timestamp of most recent frame
|
||||||
capture->timestamp = buf.timestamp;
|
capture->timestamp = buf.timestamp;
|
||||||
|
|
||||||
return 1;
|
return CAPV4L2_CAMERA_UNPLUGGED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mainloop_v4l2(CvCaptureCAM_V4L* capture) {
|
static int mainloop_v4l2(CvCaptureCAM_V4L* capture) {
|
||||||
unsigned int count;
|
unsigned int count;
|
||||||
|
|
||||||
count = 1;
|
count = 1;
|
||||||
@ -1273,8 +1277,11 @@ static void mainloop_v4l2(CvCaptureCAM_V4L* capture) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (read_frame_v4l2 (capture))
|
switch(int readresult = read_frame_v4l2(capture) )
|
||||||
break;
|
case CAM_UNPLUGGED:
|
||||||
|
return CAPV4L2_FAIL;
|
||||||
|
default:
|
||||||
|
return CAPV4L2_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1354,7 +1361,10 @@ static int icvGrabFrameCAM_V4L(CvCaptureCAM_V4L* capture) {
|
|||||||
{
|
{
|
||||||
// skip first frame. it is often bad -- this is unnotied in traditional apps,
|
// skip first frame. it is often bad -- this is unnotied in traditional apps,
|
||||||
// but could be fatal if bad jpeg is enabled
|
// 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
|
#endif
|
||||||
|
|
||||||
@ -1367,7 +1377,10 @@ static int icvGrabFrameCAM_V4L(CvCaptureCAM_V4L* capture) {
|
|||||||
if (V4L2_SUPPORT == 1)
|
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 */
|
#endif /* HAVE_CAMV4L2 */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user