1/*
2 *  Copyright 2015 The WebRTC Project Authors. All rights reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  that can be found in the LICENSE file in the root of the source
6 *  tree. An additional intellectual property rights grant can be found
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 */
10
11#if !defined(__has_feature) || !__has_feature(objc_arc)
12#error "This file requires ARC support."
13#endif
14
15#import "webrtc/base/objc/RTCCameraPreviewView.h"
16
17#import <AVFoundation/AVFoundation.h>
18
19#import "webrtc/base/objc/RTCDispatcher.h"
20
21@implementation RTCCameraPreviewView
22
23@synthesize captureSession = _captureSession;
24
25+ (Class)layerClass {
26  return [AVCaptureVideoPreviewLayer class];
27}
28
29- (void)setCaptureSession:(AVCaptureSession *)captureSession {
30  if (_captureSession == captureSession) {
31    return;
32  }
33  _captureSession = captureSession;
34  AVCaptureVideoPreviewLayer *previewLayer = [self previewLayer];
35  [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
36                               block:^{
37    previewLayer.session = captureSession;
38  }];
39}
40
41#pragma mark - Private
42
43- (AVCaptureVideoPreviewLayer *)previewLayer {
44  return (AVCaptureVideoPreviewLayer *)self.layer;
45}
46
47@end
48