Fix crash and warning in AppRTCDemo

Don't dismiss the presented view controller if it's already being dismissed to clear a warning about dismissing from a view controller while a dismiss is in progress.

Remove the sample buffer delegate when capture is being stopped to avoid a crash when a delegate method is sent to a deallocated object.

BUG=webrtc:4734
R=jiayl@webrtc.org, tkchin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/54669004.

Patch from Jon Hjelle <hjon@andyet.net>.

Cr-Commit-Position: refs/heads/master@{#9430}
This commit is contained in:
Jon Hjelle
2015-06-12 11:33:45 -07:00
committed by Zeke Chin
parent 372f2fcc59
commit 2f65ac1437
2 changed files with 5 additions and 2 deletions

View File

@ -142,6 +142,7 @@ static dispatch_queue_t kBackgroundQueue = nil;
if (!_isRunning) {
return;
}
[_videoOutput setSampleBufferDelegate:nil queue:nullptr];
AVCaptureSession* session = _captureSession;
dispatch_async(kBackgroundQueue, ^{
[session stopRunning];

View File

@ -151,8 +151,10 @@
self.remoteVideoTrack = nil;
self.localVideoTrack = nil;
[_client disconnect];
[self.presentingViewController dismissViewControllerAnimated:YES
completion:nil];
if (![self isBeingDismissed]) {
[self.presentingViewController dismissViewControllerAnimated:YES
completion:nil];
}
}
- (void)switchCamera {