Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(356)

Side by Side Diff: webrtc/examples/objc/AppRTCMobile/ARDAppClient.m

Issue 2954903002: Media track ID visibility at BWE level
Patch Set: Media track ID visibility at BWE level Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 self.state = kARDAppClientStateConnected; 525 self.state = kARDAppClientStateConnected;
526 526
527 // Create peer connection. 527 // Create peer connection.
528 RTCMediaConstraints *constraints = [self defaultPeerConnectionConstraints]; 528 RTCMediaConstraints *constraints = [self defaultPeerConnectionConstraints];
529 RTCConfiguration *config = [[RTCConfiguration alloc] init]; 529 RTCConfiguration *config = [[RTCConfiguration alloc] init];
530 config.iceServers = _iceServers; 530 config.iceServers = _iceServers;
531 _peerConnection = [_factory peerConnectionWithConfiguration:config 531 _peerConnection = [_factory peerConnectionWithConfiguration:config
532 constraints:constraints 532 constraints:constraints
533 delegate:self]; 533 delegate:self];
534 // Create AV senders. 534 // Create AV senders.
535 [self createAudioSender]; 535 [self createMediaSenders];
536 [self createVideoSender];
537 if (_isInitiator) { 536 if (_isInitiator) {
538 // Send offer. 537 // Send offer.
539 __weak ARDAppClient *weakSelf = self; 538 __weak ARDAppClient *weakSelf = self;
540 [_peerConnection offerForConstraints:[self defaultOfferConstraints] 539 [_peerConnection offerForConstraints:[self defaultOfferConstraints]
541 completionHandler:^(RTCSessionDescription *sdp, 540 completionHandler:^(RTCSessionDescription *sdp,
542 NSError *error) { 541 NSError *error) {
543 ARDAppClient *strongSelf = weakSelf; 542 ARDAppClient *strongSelf = weakSelf;
544 [strongSelf peerConnection:strongSelf.peerConnection 543 [strongSelf peerConnection:strongSelf.peerConnection
545 didCreateSessionDescription:sdp 544 didCreateSessionDescription:sdp
546 error:error]; 545 error:error];
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 if (messageError) { 649 if (messageError) {
651 [strongSelf.delegate appClient:strongSelf didError:messageError]; 650 [strongSelf.delegate appClient:strongSelf didError:messageError];
652 return; 651 return;
653 } 652 }
654 }]; 653 }];
655 } else { 654 } else {
656 [_channel sendMessage:message]; 655 [_channel sendMessage:message];
657 } 656 }
658 } 657 }
659 658
660 - (RTCRtpSender *)createVideoSender {
661 RTCRtpSender *sender =
662 [_peerConnection senderWithKind:kRTCMediaStreamTrackKindVideo
663 streamId:kARDMediaStreamId];
664 _localVideoTrack = [self createLocalVideoTrack];
665 if (_localVideoTrack) {
666 sender.track = _localVideoTrack;
667 [_delegate appClient:self didReceiveLocalVideoTrack:_localVideoTrack];
668 }
669
670 return sender;
671 }
672
673 - (void)setMaxBitrateForPeerConnectionVideoSender { 659 - (void)setMaxBitrateForPeerConnectionVideoSender {
674 for (RTCRtpSender *sender in _peerConnection.senders) { 660 for (RTCRtpSender *sender in _peerConnection.senders) {
675 if (sender.track != nil) { 661 if (sender.track != nil) {
676 if ([sender.track.kind isEqualToString:kARDVideoTrackKind]) { 662 if ([sender.track.kind isEqualToString:kARDVideoTrackKind]) {
677 [self setMaxBitrate:[_settings currentMaxBitrateSettingFromStore] forVid eoSender:sender]; 663 [self setMaxBitrate:[_settings currentMaxBitrateSettingFromStore] forVid eoSender:sender];
678 } 664 }
679 } 665 }
680 } 666 }
681 } 667 }
682 668
683 - (void)setMaxBitrate:(NSNumber *)maxBitrate forVideoSender:(RTCRtpSender *)send er { 669 - (void)setMaxBitrate:(NSNumber *)maxBitrate forVideoSender:(RTCRtpSender *)send er {
684 if (maxBitrate.intValue <= 0) { 670 if (maxBitrate.intValue <= 0) {
685 return; 671 return;
686 } 672 }
687 673
688 RTCRtpParameters *parametersToModify = sender.parameters; 674 RTCRtpParameters *parametersToModify = sender.parameters;
689 for (RTCRtpEncodingParameters *encoding in parametersToModify.encodings) { 675 for (RTCRtpEncodingParameters *encoding in parametersToModify.encodings) {
690 encoding.maxBitrateBps = @(maxBitrate.intValue * kKbpsMultiplier); 676 encoding.maxBitrateBps = @(maxBitrate.intValue * kKbpsMultiplier);
691 } 677 }
692 [sender setParameters:parametersToModify]; 678 [sender setParameters:parametersToModify];
693 } 679 }
694 680
695 - (RTCRtpSender *)createAudioSender { 681 - (void)createMediaSenders {
696 RTCMediaConstraints *constraints = [self defaultMediaAudioConstraints]; 682 RTCMediaConstraints *constraints = [self defaultMediaAudioConstraints];
697 RTCAudioSource *source = [_factory audioSourceWithConstraints:constraints]; 683 RTCAudioSource *source = [_factory audioSourceWithConstraints:constraints];
698 RTCAudioTrack *track = [_factory audioTrackWithSource:source 684 RTCAudioTrack *track = [_factory audioTrackWithSource:source
699 trackId:kARDAudioTrackId]; 685 trackId:kARDAudioTrackId];
700 RTCRtpSender *sender = 686 RTCMediaStream *stream = [_factory mediaStreamWithStreamId:kARDMediaStreamId];
701 [_peerConnection senderWithKind:kRTCMediaStreamTrackKindAudio 687 [stream addAudioTrack:track];
702 streamId:kARDMediaStreamId]; 688 _localVideoTrack = [self createLocalVideoTrack];
703 sender.track = track; 689 if(_localVideoTrack) {
704 return sender; 690 [stream addVideoTrack:_localVideoTrack];
691 }
692 [_peerConnection addStream:stream];
705 } 693 }
706 694
707 - (RTCVideoTrack *)createLocalVideoTrack { 695 - (RTCVideoTrack *)createLocalVideoTrack {
708 RTCVideoTrack* localVideoTrack = nil; 696 RTCVideoTrack* localVideoTrack = nil;
709 // The iOS simulator doesn't provide any sort of camera capture 697 // The iOS simulator doesn't provide any sort of camera capture
710 // support or emulation (http://goo.gl/rHAnC1) so don't bother 698 // support or emulation (http://goo.gl/rHAnC1) so don't bother
711 // trying to open a local stream. 699 // trying to open a local stream.
712 #if !TARGET_IPHONE_SIMULATOR 700 #if !TARGET_IPHONE_SIMULATOR
713 if (![_settings currentAudioOnlySettingFromStore]) { 701 if (![_settings currentAudioOnlySettingFromStore]) {
714 RTCVideoSource *source = [_factory videoSource]; 702 RTCVideoSource *source = [_factory videoSource];
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
839 code:kARDAppClientErrorInvalidRoom 827 code:kARDAppClientErrorInvalidRoom
840 userInfo:@{ 828 userInfo:@{
841 NSLocalizedDescriptionKey: @"Invalid room.", 829 NSLocalizedDescriptionKey: @"Invalid room.",
842 }]; 830 }];
843 break; 831 break;
844 } 832 }
845 return error; 833 return error;
846 } 834 }
847 835
848 @end 836 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698