Merge pull request #1376 from StevenPuttemans:bugfix_3186

pull/1413/merge
Roman Donchenko 12 years ago committed by OpenCV Buildbot
commit 41b8479d03
  1. 25
      modules/highgui/src/cap_v4l.cpp

@ -1236,10 +1236,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 2;
} }
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 +1273,13 @@ static void mainloop_v4l2(CvCaptureCAM_V4L* capture) {
break; break;
} }
if (read_frame_v4l2 (capture)) int readresult = read_frame_v412(capture);
break; 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, // 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
@ -1366,9 +1374,10 @@ static int icvGrabFrameCAM_V4L(CvCaptureCAM_V4L* capture) {
if (V4L2_SUPPORT == 1) if (V4L2_SUPPORT == 1)
{ {
if(!mainloop_v4l2(capture)){
mainloop_v4l2(capture); fprintf( stderr, "HIGHGUI ERROR: V4L: Could not capture image.\n");
return 0;
}
} }
#endif /* HAVE_CAMV4L2 */ #endif /* HAVE_CAMV4L2 */
#if defined(HAVE_CAMV4L) && defined(HAVE_CAMV4L2) #if defined(HAVE_CAMV4L) && defined(HAVE_CAMV4L2)

Loading…
Cancel
Save