iOS: Add numTemporalLayers to RtpEncodingParameters.

Bug: webrtc:9785
Change-Id: I0e57529e8b9aa39d53f27b9b7d6f1d62155d9c34
Reviewed-on: https://webrtc-review.googlesource.com/c/102261
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24949}
diff --git a/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.h b/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.h
index 0ac8ad9..ba50bde 100644
--- a/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.h
+++ b/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.h
@@ -35,6 +35,11 @@
  */
 @property(nonatomic, copy, nullable) NSNumber *maxFramerate;
 
+/** The requested number of temporal layers to use for the encoding, or nil
+ * if the default should be used.
+ */
+@property(nonatomic, copy, nullable) NSNumber *numTemporalLayers;
+
 /** 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 3246371..270f1b2 100644
--- a/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.mm
+++ b/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.mm
@@ -16,6 +16,7 @@
 @synthesize maxBitrateBps = _maxBitrateBps;
 @synthesize minBitrateBps = _minBitrateBps;
 @synthesize maxFramerate = _maxFramerate;
+@synthesize numTemporalLayers = _numTemporalLayers;
 @synthesize ssrc = _ssrc;
 
 - (instancetype)init {
@@ -37,6 +38,9 @@
     if (nativeParameters.max_framerate) {
       _maxFramerate = [NSNumber numberWithInt:*nativeParameters.max_framerate];
     }
+    if (nativeParameters.num_temporal_layers) {
+      _numTemporalLayers = [NSNumber numberWithInt:*nativeParameters.num_temporal_layers];
+    }
     if (nativeParameters.ssrc) {
       _ssrc = [NSNumber numberWithUnsignedLong:*nativeParameters.ssrc];
     }
@@ -56,6 +60,9 @@
   if (_maxFramerate != nil) {
     parameters.max_framerate = absl::optional<int>(_maxFramerate.intValue);
   }
+  if (_numTemporalLayers != nil) {
+    parameters.num_temporal_layers = absl::optional<int>(_numTemporalLayers.intValue);
+  }
   if (_ssrc != nil) {
     parameters.ssrc = absl::optional<uint32_t>(_ssrc.unsignedLongValue);
   }