OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2014 The WebRTC Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
495 - (void)startSignalingIfReady { | 495 - (void)startSignalingIfReady { |
496 if (!_isTurnComplete || !self.hasJoinedRoomServerRoom) { | 496 if (!_isTurnComplete || !self.hasJoinedRoomServerRoom) { |
497 return; | 497 return; |
498 } | 498 } |
499 self.state = kARDAppClientStateConnected; | 499 self.state = kARDAppClientStateConnected; |
500 | 500 |
501 // Create peer connection. | 501 // Create peer connection. |
502 RTCMediaConstraints *constraints = [self defaultPeerConnectionConstraints]; | 502 RTCMediaConstraints *constraints = [self defaultPeerConnectionConstraints]; |
503 RTCConfiguration *config = [[RTCConfiguration alloc] init]; | 503 RTCConfiguration *config = [[RTCConfiguration alloc] init]; |
504 config.iceServers = _iceServers; | 504 config.iceServers = _iceServers; |
505 _peerConnection = [[RTCPeerConnection alloc] initWithFactory:_factory | 505 _peerConnection = [_factory peerConnectionWithConfiguration:config |
506 configuration:config | 506 constraints:constraints |
507 constraints:constraints | 507 delegate:self]; |
508 delegate:self]; | |
509 // Create AV media stream and add it to the peer connection. | 508 // Create AV media stream and add it to the peer connection. |
510 RTCMediaStream *localStream = [self createLocalMediaStream]; | 509 RTCMediaStream *localStream = [self createLocalMediaStream]; |
511 [_peerConnection addStream:localStream]; | 510 [_peerConnection addStream:localStream]; |
512 if (_isInitiator) { | 511 if (_isInitiator) { |
513 // Send offer. | 512 // Send offer. |
514 __weak ARDAppClient *weakSelf = self; | 513 __weak ARDAppClient *weakSelf = self; |
515 [_peerConnection offerForConstraints:[self defaultOfferConstraints] | 514 [_peerConnection offerForConstraints:[self defaultOfferConstraints] |
516 completionHandler:^(RTCSessionDescription *sdp, | 515 completionHandler:^(RTCSessionDescription *sdp, |
517 NSError *error) { | 516 NSError *error) { |
518 ARDAppClient *strongSelf = weakSelf; | 517 ARDAppClient *strongSelf = weakSelf; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
601 [strongSelf.delegate appClient:strongSelf didError:messageError]; | 600 [strongSelf.delegate appClient:strongSelf didError:messageError]; |
602 return; | 601 return; |
603 } | 602 } |
604 }]; | 603 }]; |
605 } else { | 604 } else { |
606 [_channel sendMessage:message]; | 605 [_channel sendMessage:message]; |
607 } | 606 } |
608 } | 607 } |
609 | 608 |
610 - (RTCMediaStream *)createLocalMediaStream { | 609 - (RTCMediaStream *)createLocalMediaStream { |
611 RTCMediaStream *localStream = | 610 RTCMediaStream *localStream = [_factory mediaStreamWithStreamId:@"ARDAMS"]; |
612 [[RTCMediaStream alloc] initWithFactory:_factory streamId:@"ARDAMS"]; | |
613 RTCVideoTrack *localVideoTrack = [self createLocalVideoTrack]; | 611 RTCVideoTrack *localVideoTrack = [self createLocalVideoTrack]; |
614 if (localVideoTrack) { | 612 if (localVideoTrack) { |
615 [localStream addVideoTrack:localVideoTrack]; | 613 [localStream addVideoTrack:localVideoTrack]; |
616 [_delegate appClient:self didReceiveLocalVideoTrack:localVideoTrack]; | 614 [_delegate appClient:self didReceiveLocalVideoTrack:localVideoTrack]; |
617 } | 615 } |
618 RTCAudioTrack *localAudioTrack = | 616 RTCAudioTrack *localAudioTrack = |
619 [[RTCAudioTrack alloc] initWithFactory:_factory | 617 [_factory audioTrackWithTrackId:@"ARDAMSa0"]; |
620 trackId:@"ARDAMSa0"]; | |
621 [localStream addAudioTrack:localAudioTrack]; | 618 [localStream addAudioTrack:localAudioTrack]; |
622 return localStream; | 619 return localStream; |
623 } | 620 } |
624 | 621 |
625 - (RTCVideoTrack *)createLocalVideoTrack { | 622 - (RTCVideoTrack *)createLocalVideoTrack { |
626 RTCVideoTrack* localVideoTrack = nil; | 623 RTCVideoTrack* localVideoTrack = nil; |
627 // The iOS simulator doesn't provide any sort of camera capture | 624 // The iOS simulator doesn't provide any sort of camera capture |
628 // support or emulation (http://goo.gl/rHAnC1) so don't bother | 625 // support or emulation (http://goo.gl/rHAnC1) so don't bother |
629 // trying to open a local stream. | 626 // trying to open a local stream. |
630 // TODO(tkchin): local video capture for OSX. See | 627 // TODO(tkchin): local video capture for OSX. See |
631 // https://code.google.com/p/webrtc/issues/detail?id=3417. | 628 // https://code.google.com/p/webrtc/issues/detail?id=3417. |
632 #if !TARGET_IPHONE_SIMULATOR && TARGET_OS_IPHONE | 629 #if !TARGET_IPHONE_SIMULATOR && TARGET_OS_IPHONE |
633 if (!_isAudioOnly) { | 630 if (!_isAudioOnly) { |
634 RTCMediaConstraints *mediaConstraints = | 631 RTCMediaConstraints *mediaConstraints = |
635 [self defaultMediaStreamConstraints]; | 632 [self defaultMediaStreamConstraints]; |
636 RTCAVFoundationVideoSource *source = | 633 RTCAVFoundationVideoSource *source = |
637 [[RTCAVFoundationVideoSource alloc] initWithFactory:_factory | 634 [_factory avFoundationVideoSourceWithConstraints:mediaConstraints]; |
638 constraints:mediaConstraints]; | |
639 localVideoTrack = | 635 localVideoTrack = |
640 [[RTCVideoTrack alloc] initWithFactory:_factory | 636 [_factory videoTrackWithSource:source |
641 source:source | 637 trackId:@"ARDAMSv0"]; |
642 trackId:@"ARDAMSv0"]; | |
643 } | 638 } |
644 #endif | 639 #endif |
645 return localVideoTrack; | 640 return localVideoTrack; |
646 } | 641 } |
647 | 642 |
648 #pragma mark - Collider methods | 643 #pragma mark - Collider methods |
649 | 644 |
650 - (void)registerWithColliderIfReady { | 645 - (void)registerWithColliderIfReady { |
651 if (!self.hasJoinedRoomServerRoom) { | 646 if (!self.hasJoinedRoomServerRoom) { |
652 return; | 647 return; |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
765 code:kARDAppClientErrorInvalidRoom | 760 code:kARDAppClientErrorInvalidRoom |
766 userInfo:@{ | 761 userInfo:@{ |
767 NSLocalizedDescriptionKey: @"Invalid room.", | 762 NSLocalizedDescriptionKey: @"Invalid room.", |
768 }]; | 763 }]; |
769 break; | 764 break; |
770 } | 765 } |
771 return error; | 766 return error; |
772 } | 767 } |
773 | 768 |
774 @end | 769 @end |
OLD | NEW |