Ensure UIView.layer is accessed on main thread.
BUG=webrtc:7829
Review-Url: https://codereview.webrtc.org/3002583002
Cr-Commit-Position: refs/heads/master@{#19345}
diff --git a/webrtc/sdk/objc/Framework/Classes/UI/RTCCameraPreviewView.m b/webrtc/sdk/objc/Framework/Classes/UI/RTCCameraPreviewView.m
index 5a60ba3..8af3384 100644
--- a/webrtc/sdk/objc/Framework/Classes/UI/RTCCameraPreviewView.m
+++ b/webrtc/sdk/objc/Framework/Classes/UI/RTCCameraPreviewView.m
@@ -27,11 +27,14 @@
if (_captureSession == captureSession) {
return;
}
- _captureSession = captureSession;
- AVCaptureVideoPreviewLayer *previewLayer = [self previewLayer];
- [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
+ [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeMain
block:^{
- previewLayer.session = captureSession;
+ _captureSession = captureSession;
+ AVCaptureVideoPreviewLayer *previewLayer = [self previewLayer];
+ [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
+ block:^{
+ previewLayer.session = captureSession;
+ }];
}];
}