@@ -271,7 +271,7 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult) result
271
271
NSOperationQueue *queue = [[NSOperationQueue alloc ] init ];
272
272
[queue addOperationWithBlock: ^{
273
273
double durationMs = duration / 1000.0 ;
274
- double interToneGapMs = interToneGap / 1000.0 ;
274
+ double interToneGapMs = interToneGap / 1000.0 ;
275
275
[audioSender.dtmfSender insertDtmf :(NSString *)tone
276
276
duration: (NSTimeInterval ) durationMs interToneGap: (NSTimeInterval )interToneGapMs];
277
277
NSLog (@" DTMF Tone played " );
@@ -624,7 +624,7 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult) result
624
624
details: nil ]);
625
625
return ;
626
626
}
627
- RTCRtpSender *sender = [self getRtpSnderById : peerConnection Id: senderId];
627
+ RTCRtpSender *sender = [self getRtpSenderById : peerConnection Id: senderId];
628
628
if (sender == nil ) {
629
629
result ([FlutterError errorWithCode: [NSString stringWithFormat: @" %@ Failed" ,call.method]
630
630
message: [NSString stringWithFormat: @" Error: sender not found!" ]
@@ -673,7 +673,7 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult) result
673
673
details: nil ]);
674
674
return ;
675
675
}
676
- RTCRtpSender *sender = [self getRtpSnderById : peerConnection Id: senderId];
676
+ RTCRtpSender *sender = [self getRtpSenderById : peerConnection Id: senderId];
677
677
if (sender == nil ) {
678
678
result ([FlutterError errorWithCode: [NSString stringWithFormat: @" %@ Failed" ,call.method]
679
679
message: [NSString stringWithFormat: @" Error: sender not found!" ]
@@ -798,7 +798,7 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult) result
798
798
} else if ([@" rtpSenderSetParameters" isEqualToString: call.method]){
799
799
NSDictionary * argsMap = call.arguments ;
800
800
NSString * peerConnectionId = argsMap[@" peerConnectionId" ];
801
- NSString * senderId = argsMap[@" senderId " ];
801
+ NSString * senderId = argsMap[@" rtpSenderId " ];
802
802
NSDictionary * parameters = argsMap[@" parameters" ];
803
803
RTCPeerConnection *peerConnection = self.peerConnections [peerConnectionId];
804
804
if (peerConnection == nil ) {
@@ -807,16 +807,16 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult) result
807
807
details: nil ]);
808
808
return ;
809
809
}
810
- RTCRtpSender *sender = [self getRtpSnderById : peerConnection Id: senderId];
810
+ RTCRtpSender *sender = [self getRtpSenderById : peerConnection Id: senderId];
811
811
if (sender == nil ) {
812
812
result ([FlutterError errorWithCode: [NSString stringWithFormat: @" %@ Failed" ,call.method]
813
813
message: [NSString stringWithFormat: @" Error: sender not found!" ]
814
814
details: nil ]);
815
815
return ;
816
816
}
817
- [sender setParameters: [self mapToRtpParameters: parameters]];
817
+ [sender setParameters: [self updateRtpParameters: parameters : sender. parameters]];
818
818
819
- result (nil );
819
+ result (@{ @" result " : @( YES )} );
820
820
} else if ([@" rtpSenderReplaceTrack" isEqualToString: call.method]){
821
821
NSDictionary * argsMap = call.arguments ;
822
822
NSString * peerConnectionId = argsMap[@" peerConnectionId" ];
@@ -829,7 +829,7 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult) result
829
829
details: nil ]);
830
830
return ;
831
831
}
832
- RTCRtpSender *sender = [self getRtpSnderById : peerConnection Id: senderId];
832
+ RTCRtpSender *sender = [self getRtpSenderById : peerConnection Id: senderId];
833
833
if (sender == nil ) {
834
834
result ([FlutterError errorWithCode: [NSString stringWithFormat: @" %@ Failed" ,call.method]
835
835
message: [NSString stringWithFormat: @" Error: sender not found!" ]
@@ -857,7 +857,7 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult) result
857
857
details: nil ]);
858
858
return ;
859
859
}
860
- RTCRtpSender *sender = [self getRtpSnderById : peerConnection Id: senderId];
860
+ RTCRtpSender *sender = [self getRtpSenderById : peerConnection Id: senderId];
861
861
if (sender == nil ) {
862
862
result ([FlutterError errorWithCode: [NSString stringWithFormat: @" %@ Failed" ,call.method]
863
863
message: [NSString stringWithFormat: @" Error: sender not found!" ]
@@ -884,7 +884,7 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult) result
884
884
details: nil ]);
885
885
return ;
886
886
}
887
- RTCRtpSender *sender = [self getRtpSnderById : peerConnection Id: senderId];
887
+ RTCRtpSender *sender = [self getRtpSenderById : peerConnection Id: senderId];
888
888
if (sender == nil ) {
889
889
result ([FlutterError errorWithCode: [NSString stringWithFormat: @" %@ Failed" ,call.method]
890
890
message: [NSString stringWithFormat: @" Error: sender not found!" ]
@@ -983,7 +983,7 @@ - (RTCMediaStreamTrack*)trackForId:(NSString*)trackId {
983
983
}
984
984
}
985
985
}
986
- return track;
986
+ return track;
987
987
}
988
988
989
989
@@ -1278,7 +1278,7 @@ -(RTCRtpTransceiver*) getRtpTransceiverById:(RTCPeerConnection *)peerConnection
1278
1278
return nil ;
1279
1279
}
1280
1280
1281
- -(RTCRtpSender*) getRtpSnderById : (RTCPeerConnection *)peerConnection Id : (NSString *)Id {
1281
+ -(RTCRtpSender*) getRtpSenderById : (RTCPeerConnection *)peerConnection Id : (NSString *)Id {
1282
1282
for ( RTCRtpSender* sender in peerConnection.senders ) {
1283
1283
if ([sender.senderId isEqualToString: Id]){
1284
1284
return sender;
@@ -1376,10 +1376,34 @@ -(RTCRtpTransceiverDirection)stringToTransceiverDirection:(NSString*)type {
1376
1376
return RTCRtpTransceiverDirectionInactive;
1377
1377
}
1378
1378
1379
- -(RTCRtpParameters *)mapToRtpParameters : (NSDictionary *)map {
1380
- // TODO:
1381
- return nil ;
1382
- }
1379
+ -(RTCRtpParameters *)updateRtpParameters : (NSDictionary *)newParameters : (RTCRtpParameters *)parameters {
1380
+ NSArray * encodings = [newParameters objectForKey: @" encodings" ];
1381
+ NSArray <RTCRtpEncodingParameters *> *nativeEncodings = parameters.encodings ;
1382
+ for (int i = 0 ; i < [nativeEncodings count ]; i++){
1383
+ RTCRtpEncodingParameters *nativeEncoding = [nativeEncodings objectAtIndex: i];
1384
+ NSDictionary *encoding = [encodings objectAtIndex: i];
1385
+ if ([encoding objectForKey: @" active" ]){
1386
+ nativeEncoding.isActive = [encoding objectForKey: @" active" ];
1387
+ }
1388
+ if ([encoding objectForKey: @" maxBitrateBps" ]){
1389
+ nativeEncoding.maxBitrateBps = [encoding objectForKey: @" maxBitrateBps" ];
1390
+ }
1391
+ if ([encoding objectForKey: @" minBitrateBps" ]){
1392
+ nativeEncoding.minBitrateBps = [encoding objectForKey: @" minBitrateBps" ];
1393
+ }
1394
+ if ([encoding objectForKey: @" maxFramerate" ]){
1395
+ nativeEncoding.maxFramerate = [encoding objectForKey: @" maxFramerate" ];
1396
+ }
1397
+ if ([encoding objectForKey: @" numTemporalLayers" ]){
1398
+ nativeEncoding.isActive = [encoding objectForKey: @" numTemporalLayers" ];
1399
+ }
1400
+ if ([encoding objectForKey: @" scaleResolutionDownBy" ]){
1401
+ nativeEncoding.scaleResolutionDownBy = [encoding objectForKey: @" scaleResolutionDownBy" ];
1402
+ }
1403
+ }
1404
+
1405
+ return parameters;
1406
+ }
1383
1407
1384
1408
-(NSString *)transceiverDirectionString : (RTCRtpTransceiverDirection)direction {
1385
1409
switch (direction) {
0 commit comments