Expose enableImplicitRollback in iOS SDK.

The implicit rollback of local description is part of
perfect negotiation:
https://groups.google.com/a/chromium.org/g/blink-dev/c/OqPfCpC5RYU

Bug: None
Change-Id: I144d9ef86adad0def81ab6c58ff997cd19b562da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212080
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33487}
This commit is contained in:
Yura Yaroshevich 2021-03-16 18:04:36 +03:00 committed by Commit Bot
parent 1827483784
commit 417361423e
2 changed files with 13 additions and 2 deletions

View File

@ -220,6 +220,13 @@ RTC_OBJC_EXPORT
*/
@property(nonatomic, assign) int rtcpVideoReportIntervalMs;
/**
* Allow implicit rollback of local description when remote description
* conflicts with local description.
* See: https://w3c.github.io/webrtc-pc/#dom-peerconnection-setremotedescription
*/
@property(nonatomic, assign) BOOL enableImplicitRollback;
- (instancetype)init;
@end

View File

@ -56,6 +56,7 @@
@synthesize turnLoggingId = _turnLoggingId;
@synthesize rtcpAudioReportIntervalMs = _rtcpAudioReportIntervalMs;
@synthesize rtcpVideoReportIntervalMs = _rtcpVideoReportIntervalMs;
@synthesize enableImplicitRollback = _enableImplicitRollback;
- (instancetype)init {
// Copy defaults.
@ -134,6 +135,7 @@
_rtcpAudioReportIntervalMs = config.audio_rtcp_report_interval_ms();
_rtcpVideoReportIntervalMs = config.video_rtcp_report_interval_ms();
_allowCodecSwitching = config.allow_codec_switching.value_or(false);
_enableImplicitRollback = config.enable_implicit_rollback;
}
return self;
}
@ -141,7 +143,7 @@
- (NSString *)description {
static NSString *formatString = @"RTC_OBJC_TYPE(RTCConfiguration): "
@"{\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%d\n%d\n%d\n%d\n%d\n%d\n"
@"%d\n%@\n%d\n%d\n%d\n%d\n%d\n%@\n}\n";
@"%d\n%@\n%d\n%d\n%d\n%d\n%d\n%@\n%@\n}\n";
return [NSString
stringWithFormat:formatString,
@ -167,7 +169,8 @@
_disableIPV6OnWiFi,
_maxIPv6Networks,
_activeResetSrtpParams,
_enableDscp];
_enableDscp,
_enableImplicitRollback];
}
#pragma mark - Private
@ -264,6 +267,7 @@
nativeConfig->set_audio_rtcp_report_interval_ms(_rtcpAudioReportIntervalMs);
nativeConfig->set_video_rtcp_report_interval_ms(_rtcpVideoReportIntervalMs);
nativeConfig->allow_codec_switching = _allowCodecSwitching;
nativeConfig->enable_implicit_rollback = _enableImplicitRollback;
return nativeConfig.release();
}