blob: d18eba6a3d5be9505f4aa902dbcdd4988c2d0b1c [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 "RTCRtpParameters+Private.h"
Taylor Brandstetter0cd086b2016-04-20 16:23:10 -070012
Florent Castellicebf50f2018-05-03 15:31:53 +020013#import "NSString+StdString.h"
Taylor Brandstetter0cd086b2016-04-20 16:23:10 -070014#import "RTCRtpCodecParameters+Private.h"
skvlad79b4b872016-04-08 17:28:55 -070015#import "RTCRtpEncodingParameters+Private.h"
16
17@implementation RTCRtpParameters
18
Florent Castellicebf50f2018-05-03 15:31:53 +020019@synthesize transactionId = _transactionId;
skvlad79b4b872016-04-08 17:28:55 -070020@synthesize encodings = _encodings;
Taylor Brandstetter0cd086b2016-04-20 16:23:10 -070021@synthesize codecs = _codecs;
skvlad79b4b872016-04-08 17:28:55 -070022
23- (instancetype)init {
24 return [super init];
25}
26
27- (instancetype)initWithNativeParameters:
28 (const webrtc::RtpParameters &)nativeParameters {
29 if (self = [self init]) {
Florent Castellicebf50f2018-05-03 15:31:53 +020030 _transactionId = [NSString stringForStdString:nativeParameters.transaction_id];
skvlad79b4b872016-04-08 17:28:55 -070031 NSMutableArray *encodings = [[NSMutableArray alloc] init];
32 for (const auto &encoding : nativeParameters.encodings) {
33 [encodings addObject:[[RTCRtpEncodingParameters alloc]
34 initWithNativeParameters:encoding]];
35 }
36 _encodings = encodings;
Taylor Brandstetter0cd086b2016-04-20 16:23:10 -070037
38 NSMutableArray *codecs = [[NSMutableArray alloc] init];
39 for (const auto &codec : nativeParameters.codecs) {
40 [codecs addObject:[[RTCRtpCodecParameters alloc]
41 initWithNativeParameters:codec]];
42 }
43 _codecs = codecs;
skvlad79b4b872016-04-08 17:28:55 -070044 }
45 return self;
46}
47
48- (webrtc::RtpParameters)nativeParameters {
Florent Castellicebf50f2018-05-03 15:31:53 +020049 webrtc::RtpParameters parameters;
50 parameters.transaction_id = [NSString stdStringForString:_transactionId];
skvlad79b4b872016-04-08 17:28:55 -070051 for (RTCRtpEncodingParameters *encoding in _encodings) {
52 parameters.encodings.push_back(encoding.nativeParameters);
53 }
Taylor Brandstetter0cd086b2016-04-20 16:23:10 -070054 for (RTCRtpCodecParameters *codec in _codecs) {
55 parameters.codecs.push_back(codec.nativeParameters);
56 }
skvlad79b4b872016-04-08 17:28:55 -070057 return parameters;
58}
59
60@end