blob: 1d1eac0fab08b6b3506522f1f22d46cc80ba437f [file] [log] [blame]
Jon Hjelle7ac8bab2016-01-21 11:44:55 -08001/*
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#import "RTCVideoSource.h"
12
13@class AVCaptureSession;
14@class RTCMediaConstraints;
15@class RTCPeerConnectionFactory;
16
17NS_ASSUME_NONNULL_BEGIN
18
19/**
20 * RTCAVFoundationVideoSource is a video source that uses
21 * webrtc::AVFoundationVideoCapturer. We do not currently provide a wrapper for
22 * that capturer because cricket::VideoCapturer is not ref counted and we cannot
23 * guarantee its lifetime. Instead, we expose its properties through the ref
24 * counted video source interface.
25 */
26@interface RTCAVFoundationVideoSource : RTCVideoSource
27
28- (instancetype)initWithFactory:(RTCPeerConnectionFactory *)factory
hjona2f77982016-03-04 07:09:09 -080029 constraints:(nullable RTCMediaConstraints *)constraints;
Jon Hjelle7ac8bab2016-01-21 11:44:55 -080030
hjona1cf3662016-03-14 20:55:22 -070031/** Returns whether rear-facing camera is available for use. */
32@property(nonatomic, readonly) BOOL canUseBackCamera;
33
Jon Hjelle7ac8bab2016-01-21 11:44:55 -080034/** Switches the camera being used (either front or back). */
35@property(nonatomic, assign) BOOL useBackCamera;
36
37/** Returns the active capture session. */
38@property(nonatomic, readonly) AVCaptureSession *captureSession;
39
40@end
41
42
43NS_ASSUME_NONNULL_END