PR #4003
authorDikay900 <dark900@xyz.de>
Sat, 19 Sep 2015 12:05:38 +0000 (14:05 +0200)
committerDikay900 <dark900@xyz.de>
Mon, 21 Sep 2015 11:44:35 +0000 (13:44 +0200)
modules/videoio/include/opencv2/videoio/cap_ios.h
modules/videoio/src/cap_ios_video_camera.mm

index cf7f2e4..1a9875b 100644 (file)
@@ -71,6 +71,7 @@
 @property (nonatomic, readonly) BOOL captureSessionLoaded;
 
 @property (nonatomic, assign) int defaultFPS;
+@property (nonatomic, readonly) AVCaptureVideoPreviewLayer *captureVideoPreviewLayer;
 @property (nonatomic, assign) AVCaptureDevicePosition defaultAVCaptureDevicePosition;
 @property (nonatomic, assign) AVCaptureVideoOrientation defaultAVCaptureVideoOrientation;
 @property (nonatomic, assign) BOOL useAVCaptureVideoPreviewLayer;
 - (void)layoutPreviewLayer;
 - (void)saveVideo;
 - (NSURL *)videoFileURL;
+- (NSString *)videoFileString;
 
 
 @end
index 0acec66..1ae70e2 100644 (file)
@@ -41,7 +41,9 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
 
 
 
-@interface CvVideoCamera ()
+@interface CvVideoCamera () {
+    int recordingCountDown;
+}
 
 - (void)createVideoDataOutput;
 - (void)createVideoFileOutput;
@@ -98,6 +100,7 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
 
 - (void)start;
 {
+    recordingCountDown = 10;
     [super start];
 
     if (self.recordVideo == YES) {
@@ -551,7 +554,8 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
         });
 
 
-        if (self.recordVideo == YES) {
+        recordingCountDown--;
+        if (self.recordVideo == YES && recordingCountDown < 0) {
             lastSampleTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
 //                     CMTimeShow(lastSampleTime);
             if (self.recordAssetWriter.status != AVAssetWriterStatusWriting) {
@@ -571,6 +575,8 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
                                                   withPresentationTime:lastSampleTime] ) {
                     NSLog(@"Video Writing Error");
                 }
+                if (pixelBuffer != nullptr)
+                    CVPixelBufferRelease(pixelBuffer);
             }
 
         }