| Index: webrtc/examples/objc/AppRTCMobile/ios/ARDVideoCallViewController.m
|
| diff --git a/webrtc/examples/objc/AppRTCMobile/ios/ARDVideoCallViewController.m b/webrtc/examples/objc/AppRTCMobile/ios/ARDVideoCallViewController.m
|
| index cd42514a9f930690df6a97deb5e807427250b9ea..732e4b6511ef281db7ab763f55aa1ae7995486f5 100644
|
| --- a/webrtc/examples/objc/AppRTCMobile/ios/ARDVideoCallViewController.m
|
| +++ b/webrtc/examples/objc/AppRTCMobile/ios/ARDVideoCallViewController.m
|
| @@ -13,6 +13,7 @@
|
| #import "webrtc/modules/audio_device/ios/objc/RTCAudioSession.h"
|
|
|
| #import "ARDAppClient.h"
|
| +#import "ARDCaptureController.h"
|
| #import "ARDSettingsModel.h"
|
| #import "ARDVideoCallView.h"
|
| #import "WebRTC/RTCAVFoundationVideoSource.h"
|
| @@ -22,7 +23,6 @@
|
|
|
| @interface ARDVideoCallViewController () <ARDAppClientDelegate,
|
| ARDVideoCallViewDelegate>
|
| -@property(nonatomic, strong) RTCVideoTrack *localVideoTrack;
|
| @property(nonatomic, strong) RTCVideoTrack *remoteVideoTrack;
|
| @property(nonatomic, readonly) ARDVideoCallView *videoCallView;
|
| @end
|
| @@ -30,12 +30,11 @@
|
| @implementation ARDVideoCallViewController {
|
| ARDAppClient *_client;
|
| RTCVideoTrack *_remoteVideoTrack;
|
| - RTCVideoTrack *_localVideoTrack;
|
| + ARDCaptureController *_captureController;
|
| AVAudioSessionPortOverride _portOverride;
|
| }
|
|
|
| @synthesize videoCallView = _videoCallView;
|
| -@synthesize localVideoTrack = _localVideoTrack;
|
| @synthesize remoteVideoTrack = _remoteVideoTrack;
|
| @synthesize delegate = _delegate;
|
|
|
| @@ -48,6 +47,7 @@
|
| if (self = [super init]) {
|
| ARDSettingsModel *settingsModel = [[ARDSettingsModel alloc] init];
|
| _delegate = delegate;
|
| +
|
| _client = [[ARDAppClient alloc] initWithDelegate:self];
|
| [_client connectToRoomWithId:room
|
| settings:settingsModel
|
| @@ -97,8 +97,16 @@
|
| }
|
|
|
| - (void)appClient:(ARDAppClient *)client
|
| + didCreateLocalCapturer:(RTCCameraVideoCapturer *)localCapturer {
|
| + _videoCallView.localVideoView.captureSession = localCapturer.captureSession;
|
| + ARDSettingsModel *settingsModel = [[ARDSettingsModel alloc] init];
|
| + _captureController =
|
| + [[ARDCaptureController alloc] initWithCapturer:localCapturer settings:settingsModel];
|
| + [_captureController startCapture];
|
| +}
|
| +
|
| +- (void)appClient:(ARDAppClient *)client
|
| didReceiveLocalVideoTrack:(RTCVideoTrack *)localVideoTrack {
|
| - self.localVideoTrack = localVideoTrack;
|
| }
|
|
|
| - (void)appClient:(ARDAppClient *)client
|
| @@ -130,7 +138,7 @@
|
| - (void)videoCallViewDidSwitchCamera:(ARDVideoCallView *)view {
|
| // TODO(tkchin): Rate limit this so you can't tap continously on it.
|
| // Probably through an animation.
|
| - [self switchCamera];
|
| + [_captureController switchCamera];
|
| }
|
|
|
| - (void)videoCallViewDidChangeRoute:(ARDVideoCallView *)view {
|
| @@ -160,20 +168,6 @@
|
|
|
| #pragma mark - Private
|
|
|
| -- (void)setLocalVideoTrack:(RTCVideoTrack *)localVideoTrack {
|
| - if (_localVideoTrack == localVideoTrack) {
|
| - return;
|
| - }
|
| - _localVideoTrack = nil;
|
| - _localVideoTrack = localVideoTrack;
|
| - RTCAVFoundationVideoSource *source = nil;
|
| - if ([localVideoTrack.source
|
| - isKindOfClass:[RTCAVFoundationVideoSource class]]) {
|
| - source = (RTCAVFoundationVideoSource*)localVideoTrack.source;
|
| - }
|
| - _videoCallView.localVideoView.captureSession = source.captureSession;
|
| -}
|
| -
|
| - (void)setRemoteVideoTrack:(RTCVideoTrack *)remoteVideoTrack {
|
| if (_remoteVideoTrack == remoteVideoTrack) {
|
| return;
|
| @@ -187,19 +181,13 @@
|
|
|
| - (void)hangup {
|
| self.remoteVideoTrack = nil;
|
| - self.localVideoTrack = nil;
|
| + _videoCallView.localVideoView.captureSession = nil;
|
| + [_captureController stopCapture];
|
| + _captureController = nil;
|
| [_client disconnect];
|
| [_delegate viewControllerDidFinish:self];
|
| }
|
|
|
| -- (void)switchCamera {
|
| - RTCVideoSource* source = self.localVideoTrack.source;
|
| - if ([source isKindOfClass:[RTCAVFoundationVideoSource class]]) {
|
| - RTCAVFoundationVideoSource* avSource = (RTCAVFoundationVideoSource*)source;
|
| - avSource.useBackCamera = !avSource.useBackCamera;
|
| - }
|
| -}
|
| -
|
| - (NSString *)statusTextForState:(RTCIceConnectionState)state {
|
| switch (state) {
|
| case RTCIceConnectionStateNew:
|
|
|