|
|
|
@ -179,6 +179,7 @@ private: |
|
|
|
|
int changedPos; |
|
|
|
|
|
|
|
|
|
int started; |
|
|
|
|
QTTime endOfMovie; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -673,6 +674,8 @@ CvCaptureFile::CvCaptureFile(const char* filename) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[mCaptureSession gotoEnd]; |
|
|
|
|
endOfMovie = [mCaptureSession currentTime]; |
|
|
|
|
|
|
|
|
|
[mCaptureSession gotoBeginning]; |
|
|
|
|
|
|
|
|
@ -709,6 +712,11 @@ int CvCaptureFile::didStart() { |
|
|
|
|
bool CvCaptureFile::grabFrame() { |
|
|
|
|
NSAutoreleasePool* localpool = [[NSAutoreleasePool alloc] init]; |
|
|
|
|
double t1 = getProperty(CV_CAP_PROP_POS_MSEC); |
|
|
|
|
|
|
|
|
|
QTTime curTime; |
|
|
|
|
curTime = [mCaptureSession currentTime]; |
|
|
|
|
bool isEnd=(QTTimeCompare(curTime,endOfMovie) == NSOrderedSame); |
|
|
|
|
|
|
|
|
|
[mCaptureSession stepForward]; |
|
|
|
|
double t2 = getProperty(CV_CAP_PROP_POS_MSEC); |
|
|
|
|
if (t2>t1 && !changedPos) { |
|
|
|
@ -718,7 +726,7 @@ bool CvCaptureFile::grabFrame() { |
|
|
|
|
} |
|
|
|
|
changedPos = 0; |
|
|
|
|
[localpool drain]; |
|
|
|
|
return 1; |
|
|
|
|
return !isEnd; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|