diff --git a/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.h b/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.h index ba50bde649..981b0143f3 100644 --- a/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.h +++ b/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.h @@ -40,6 +40,11 @@ RTC_OBJC_EXPORT */ @property(nonatomic, copy, nullable) NSNumber *numTemporalLayers; +/** Scale the width and height down by this factor for video. If nil, + * implementation default scaling factor will be used. + */ +@property(nonatomic, copy, nullable) NSNumber *scaleResolutionDownBy; + /** The SSRC being used by this encoding. */ @property(nonatomic, readonly, nullable) NSNumber *ssrc; diff --git a/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.mm b/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.mm index 270f1b2e3b..dd07e94e19 100644 --- a/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.mm +++ b/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.mm @@ -17,6 +17,7 @@ @synthesize minBitrateBps = _minBitrateBps; @synthesize maxFramerate = _maxFramerate; @synthesize numTemporalLayers = _numTemporalLayers; +@synthesize scaleResolutionDownBy = _scaleResolutionDownBy; @synthesize ssrc = _ssrc; - (instancetype)init { @@ -41,6 +42,10 @@ if (nativeParameters.num_temporal_layers) { _numTemporalLayers = [NSNumber numberWithInt:*nativeParameters.num_temporal_layers]; } + if (nativeParameters.scale_resolution_down_by) { + _scaleResolutionDownBy = + [NSNumber numberWithDouble:*nativeParameters.scale_resolution_down_by]; + } if (nativeParameters.ssrc) { _ssrc = [NSNumber numberWithUnsignedLong:*nativeParameters.ssrc]; } @@ -63,6 +68,10 @@ if (_numTemporalLayers != nil) { parameters.num_temporal_layers = absl::optional(_numTemporalLayers.intValue); } + if (_scaleResolutionDownBy != nil) { + parameters.scale_resolution_down_by = + absl::optional(_scaleResolutionDownBy.doubleValue); + } if (_ssrc != nil) { parameters.ssrc = absl::optional(_ssrc.unsignedLongValue); }