// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
- for (AVCaptureInput *input in self.captureSession.inputs) {
- [self.captureSession removeInput:input];
- }
+ if (self.captureSession) {
+ for (AVCaptureInput *input in self.captureSession.inputs) {
+ [self.captureSession removeInput:input];
+ }
- for (AVCaptureOutput *output in self.captureSession.outputs) {
- [self.captureSession removeOutput:output];
+ for (AVCaptureOutput *output in self.captureSession.outputs) {
+ [self.captureSession removeOutput:output];
+ }
+
+ [self.captureSession stopRunning];
+ self.captureSession = nil;
}
- [self.captureSession stopRunning];
- self.captureSession = nil;
self.captureVideoPreviewLayer = nil;
self.videoCaptureConnection = nil;
captureSessionLoaded = NO;
- (void)stop;
{
- if (self.running == NO) {
- return;
- }
-
[super stop];
self.videoDataOutput = nil;
}
if (self.recordVideo == YES) {
-
- if (self.recordAssetWriter.status == AVAssetWriterStatusWriting) {
- [self.recordAssetWriter finishWriting];
- NSLog(@"[Camera] recording stopped");
- } else {
- NSLog(@"[Camera] Recording Error: asset writer status is not writing");
+ if (self.recordAssetWriter) {
+ if (self.recordAssetWriter.status == AVAssetWriterStatusWriting) {
+ [self.recordAssetWriter finishWriting];
+ NSLog(@"[Camera] recording stopped");
+ } else {
+ NSLog(@"[Camera] Recording Error: asset writer status is not writing");
+ }
+ self.recordAssetWriter = nil;
}
- self.recordAssetWriter = nil;
self.recordAssetWriterInput = nil;
self.recordPixelBufferAdaptor = nil;
}
- [self.customPreviewLayer removeFromSuperlayer];
- self.customPreviewLayer = nil;
+ if (self.customPreviewLayer) {
+ [self.customPreviewLayer removeFromSuperlayer];
+ self.customPreviewLayer = nil;
+ }
}
// TODO fix