Implement RtpCodecParameters::parameters

This will return all the fmtp parameters for the codecs, except for
DTMF codes that don't fit the key=value pattern.

Bug: webrtc:7112
Change-Id: I06a203ff64df2c3bc9bc2082cd0f374718b23510
Reviewed-on: https://webrtc-review.googlesource.com/71801
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23250}
This commit is contained in:
Florent Castelli
2018-05-15 18:14:14 +02:00
committed by Commit Bot
parent d2882187b1
commit b7d9d8346f
9 changed files with 56 additions and 13 deletions

View File

@ -41,6 +41,7 @@ const NSString * const kRTCH264CodecName = @(cricket::kH264CodecName);
@synthesize kind = _kind;
@synthesize clockRate = _clockRate;
@synthesize numChannels = _numChannels;
@synthesize parameters = _parameters;
- (instancetype)init {
return [super init];
@ -68,6 +69,12 @@ const NSString * const kRTCH264CodecName = @(cricket::kH264CodecName);
if (nativeParameters.num_channels) {
_numChannels = [NSNumber numberWithInt:*nativeParameters.num_channels];
}
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
for (const auto &parameter : nativeParameters.parameters) {
[parameters setObject:[NSString stringForStdString:parameter.second]
forKey:[NSString stringForStdString:parameter.first]];
}
_parameters = parameters;
}
return self;
}
@ -91,6 +98,11 @@ const NSString * const kRTCH264CodecName = @(cricket::kH264CodecName);
if (_numChannels != nil) {
parameters.num_channels = rtc::Optional<int>(_numChannels.intValue);
}
for (NSString *paramKey in _parameters.allKeys) {
std::string key = [NSString stdStringForString:paramKey];
std::string value = [NSString stdStringForString:_parameters[paramKey]];
parameters.parameters[key] = value;
}
return parameters;
}