Index: webrtc/sdk/objc/Framework/Classes/RTCMediaConstraints.mm |
diff --git a/webrtc/sdk/objc/Framework/Classes/RTCMediaConstraints.mm b/webrtc/sdk/objc/Framework/Classes/RTCMediaConstraints.mm |
index 0a61f99e9efd43444a672f0e4857befbf14436b6..3b9d84584113bd458d139810309eb925eda037f6 100644 |
--- a/webrtc/sdk/objc/Framework/Classes/RTCMediaConstraints.mm |
+++ b/webrtc/sdk/objc/Framework/Classes/RTCMediaConstraints.mm |
@@ -32,6 +32,8 @@ NSString * const kRTCMediaConstraintsMaxFrameRate = |
@(webrtc::MediaConstraintsInterface::kMaxFrameRate); |
NSString * const kRTCMediaConstraintsLevelControl = |
@(webrtc::MediaConstraintsInterface::kLevelControl); |
+NSString * const kRTCMediaConstraintsAudioNetworkAdaptorConfig = |
+ @(webrtc::MediaConstraintsInterface::kAudioNetworkAdaptorConfig); |
NSString * const kRTCMediaConstraintsValueTrue = |
@(webrtc::MediaConstraintsInterface::kValueTrue); |
@@ -109,8 +111,17 @@ MediaConstraints::GetOptional() const { |
NSString *value = [constraints objectForKey:key]; |
NSAssert([value isKindOfClass:[NSString class]], |
@"%@ is not an NSString.", value); |
- nativeConstraints.push_back(webrtc::MediaConstraintsInterface::Constraint( |
- key.stdString, value.stdString)); |
+ if ([kRTCMediaConstraintsAudioNetworkAdaptorConfig isEqualToString:key]) { |
+ // This value is base64 encoded. |
+ NSData *charData = [[NSData alloc] initWithBase64EncodedString:value options:0]; |
+ std::string configValue = |
+ std::string(reinterpret_cast<const char *>(charData.bytes), charData.length); |
+ nativeConstraints.push_back(webrtc::MediaConstraintsInterface::Constraint( |
+ key.stdString, configValue)); |
+ } else { |
+ nativeConstraints.push_back(webrtc::MediaConstraintsInterface::Constraint( |
+ key.stdString, value.stdString)); |
+ } |
} |
return nativeConstraints; |
} |