fix the problem:repeatedly stop cause app crash

pull/7571/head
panxiaochun 8 years ago
parent f888f47102
commit bec3479f9e
  1. 42
      modules/videoio/src/cap_ios_video_camera.mm

@ -129,31 +129,33 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
- (void)stop; - (void)stop;
{ {
[super stop]; if (self.running == YES) {
[super stop];
[videoDataOutput release]; [videoDataOutput release];
if (videoDataOutputQueue) { if (videoDataOutputQueue) {
dispatch_release(videoDataOutputQueue); dispatch_release(videoDataOutputQueue);
} }
if (self.recordVideo == YES) { if (self.recordVideo == YES) {
if (self.recordAssetWriter) { if (self.recordAssetWriter) {
if (self.recordAssetWriter.status == AVAssetWriterStatusWriting) { if (self.recordAssetWriter.status == AVAssetWriterStatusWriting) {
[self.recordAssetWriter finishWriting]; [self.recordAssetWriter finishWriting];
NSLog(@"[Camera] recording stopped"); NSLog(@"[Camera] recording stopped");
} else { } else {
NSLog(@"[Camera] Recording Error: asset writer status is not writing"); NSLog(@"[Camera] Recording Error: asset writer status is not writing");
}
[recordAssetWriter release];
} }
[recordAssetWriter release];
}
[recordAssetWriterInput release]; [recordAssetWriterInput release];
[recordPixelBufferAdaptor release]; [recordPixelBufferAdaptor release];
} }
if (self.customPreviewLayer) { if (self.customPreviewLayer) {
[self.customPreviewLayer removeFromSuperlayer]; [self.customPreviewLayer removeFromSuperlayer];
self.customPreviewLayer = nil; self.customPreviewLayer = nil;
}
} }
} }

Loading…
Cancel
Save