{
CVImageBufferRef currentImageBuffer;
mtime_t currentPts;
+ mtime_t previousPts;
}
- (id)init;
- (void)outputVideoFrame:(CVImageBufferRef)videoFrame withSampleBuffer:(QTSampleBuffer *)sampleBuffer fromConnection:(QTCaptureConnection *)connection;
{
currentImageBuffer = nil;
currentPts = 0;
+ previousPts = 0;
}
return self;
}
CVImageBufferRef imageBuffer;
mtime_t pts;
- if(!currentImageBuffer)
+ if(!currentImageBuffer || currentPts == previousPts )
return 0;
@synchronized (self)
{
imageBuffer = CVBufferRetain(currentImageBuffer);
- pts = currentPts;
+ pts = previousPts = currentPts;
CVPixelBufferLockBaseAddress(imageBuffer, 0);
void * pixels = CVPixelBufferGetBaseAddress(imageBuffer);
/* Nothing to display yet, just forget */
block_Release( p_block );
[pool release];
+ msleep( 10000 );
return 1;
}