blob: 8521862758fbe4547a2eceeb5de7aabd45f3705a [file] [log] [blame]
skvlad79b4b872016-04-08 17:28:55 -07001/*
2 * Copyright 2016 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#import "RTCRtpEncodingParameters+Private.h"
12
13@implementation RTCRtpEncodingParameters
14
15@synthesize isActive = _isActive;
16@synthesize maxBitrateBps = _maxBitrateBps;
Rasmus Brandta3e69e62018-06-05 10:55:56 +020017@synthesize minBitrateBps = _minBitrateBps;
deadbeef8014c752017-01-06 16:53:00 -080018@synthesize ssrc = _ssrc;
skvlad79b4b872016-04-08 17:28:55 -070019
skvlad79b4b872016-04-08 17:28:55 -070020- (instancetype)init {
21 return [super init];
22}
23
24- (instancetype)initWithNativeParameters:
25 (const webrtc::RtpEncodingParameters &)nativeParameters {
26 if (self = [self init]) {
27 _isActive = nativeParameters.active;
deadbeefe702b302017-02-04 12:09:01 -080028 if (nativeParameters.max_bitrate_bps) {
skvlad79b4b872016-04-08 17:28:55 -070029 _maxBitrateBps =
deadbeefe702b302017-02-04 12:09:01 -080030 [NSNumber numberWithInt:*nativeParameters.max_bitrate_bps];
skvlad79b4b872016-04-08 17:28:55 -070031 }
Rasmus Brandta3e69e62018-06-05 10:55:56 +020032 if (nativeParameters.min_bitrate_bps) {
33 _minBitrateBps =
34 [NSNumber numberWithInt:*nativeParameters.min_bitrate_bps];
35 }
deadbeef8014c752017-01-06 16:53:00 -080036 if (nativeParameters.ssrc) {
37 _ssrc = [NSNumber numberWithUnsignedLong:*nativeParameters.ssrc];
38 }
skvlad79b4b872016-04-08 17:28:55 -070039 }
40 return self;
41}
42
43- (webrtc::RtpEncodingParameters)nativeParameters {
44 webrtc::RtpEncodingParameters parameters;
45 parameters.active = _isActive;
46 if (_maxBitrateBps != nil) {
deadbeefe702b302017-02-04 12:09:01 -080047 parameters.max_bitrate_bps = rtc::Optional<int>(_maxBitrateBps.intValue);
skvlad79b4b872016-04-08 17:28:55 -070048 }
Rasmus Brandta3e69e62018-06-05 10:55:56 +020049 if (_minBitrateBps != nil) {
50 parameters.min_bitrate_bps = rtc::Optional<int>(_minBitrateBps.intValue);
51 }
deadbeef8014c752017-01-06 16:53:00 -080052 if (_ssrc != nil) {
53 parameters.ssrc = rtc::Optional<uint32_t>(_ssrc.unsignedLongValue);
54 }
skvlad79b4b872016-04-08 17:28:55 -070055 return parameters;
56}
57
58@end