Add completion callbacks to RTCCameraVideoCapturer start/stop operations

Bug: webrtc:8696
Change-Id: I327ce11632fd0c71e28411d260094e87ede6b6b6
Reviewed-on: https://webrtc-review.googlesource.com/37021
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21546}
This commit is contained in:
Gustavo Garcia
2018-01-09 09:41:00 +01:00
committed by Commit Bot
parent 438663e7fc
commit e23a9e8f41
2 changed files with 24 additions and 2 deletions

View File

@ -116,6 +116,17 @@ const int64_t kNanosecondsPerSecond = 1000000000;
- (void)startCaptureWithDevice:(AVCaptureDevice *)device
format:(AVCaptureDeviceFormat *)format
fps:(NSInteger)fps {
[self startCaptureWithDevice:device format:format fps:fps completionHandler:nil];
}
- (void)stopCapture {
[self stopCaptureWithCompletionHandler:nil];
}
- (void)startCaptureWithDevice:(AVCaptureDevice *)device
format:(AVCaptureDeviceFormat *)format
fps:(NSInteger)fps
completionHandler:(nullable void (^)(NSError *))completionHandler {
_willBeRunning = YES;
[RTCDispatcher
dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
@ -130,6 +141,7 @@ const int64_t kNanosecondsPerSecond = 1000000000;
NSError *error = nil;
if (![_currentDevice lockForConfiguration:&error]) {
completionHandler(error);
RTCLogError(
@"Failed to lock device %@. Error: %@", _currentDevice, error.userInfo);
return;
@ -141,10 +153,11 @@ const int64_t kNanosecondsPerSecond = 1000000000;
[_captureSession startRunning];
[_currentDevice unlockForConfiguration];
_isRunning = YES;
completionHandler(nil);
}];
}
- (void)stopCapture {
- (void)stopCaptureWithCompletionHandler:(nullable void (^)())completionHandler {
_willBeRunning = NO;
[RTCDispatcher
dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
@ -160,6 +173,7 @@ const int64_t kNanosecondsPerSecond = 1000000000;
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
#endif
_isRunning = NO;
completionHandler();
}];
}