Add HeaderExtensions to RtpParameters
Bug: webrtc:7580 Change-Id: I4fcf3e8bc4975a6b2baa6f24a17c254d2bf521d9 Reviewed-on: https://webrtc-review.googlesource.com/78288 Commit-Queue: Florent Castelli <orphis@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Reviewed-by: Anders Carlsson <andersc@webrtc.org> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23584}
This commit is contained in:
committed by
Commit Bot
parent
867e510ef5
commit
abe301fe6c
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright 2018 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#import "WebRTC/RTCRtpHeaderExtension.h"
|
||||
|
||||
#include "api/rtpparameters.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RTCRtpHeaderExtension ()
|
||||
|
||||
/** Returns the equivalent native RtpExtension structure. */
|
||||
@property(nonatomic, readonly) webrtc::RtpExtension nativeParameters;
|
||||
|
||||
/** Initialize the object with a native RtpExtension structure. */
|
||||
- (instancetype)initWithNativeParameters:(const webrtc::RtpExtension &)nativeParameters;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright 2018 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#import "RTCRtpHeaderExtension+Private.h"
|
||||
|
||||
#import "NSString+StdString.h"
|
||||
|
||||
@implementation RTCRtpHeaderExtension
|
||||
|
||||
@synthesize uri = _uri;
|
||||
@synthesize id = _id;
|
||||
@synthesize encrypted = _encrypted;
|
||||
|
||||
- (instancetype)init {
|
||||
return [super init];
|
||||
}
|
||||
|
||||
- (instancetype)initWithNativeParameters:(const webrtc::RtpExtension &)nativeParameters {
|
||||
if (self = [self init]) {
|
||||
_uri = [NSString stringForStdString:nativeParameters.uri];
|
||||
_id = nativeParameters.id;
|
||||
_encrypted = nativeParameters.encrypt;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (webrtc::RtpExtension)nativeParameters {
|
||||
webrtc::RtpExtension extension;
|
||||
extension.uri = [NSString stdStringForString:_uri];
|
||||
extension.id = _id;
|
||||
extension.encrypt = _encrypted;
|
||||
return extension;
|
||||
}
|
||||
|
||||
@end
|
||||
@ -14,11 +14,13 @@
|
||||
#import "RTCRtcpParameters+Private.h"
|
||||
#import "RTCRtpCodecParameters+Private.h"
|
||||
#import "RTCRtpEncodingParameters+Private.h"
|
||||
#import "RTCRtpHeaderExtension+Private.h"
|
||||
|
||||
@implementation RTCRtpParameters
|
||||
|
||||
@synthesize transactionId = _transactionId;
|
||||
@synthesize rtcp = _rtcp;
|
||||
@synthesize headerExtensions = _headerExtensions;
|
||||
@synthesize encodings = _encodings;
|
||||
@synthesize codecs = _codecs;
|
||||
|
||||
@ -31,6 +33,14 @@
|
||||
if (self = [self init]) {
|
||||
_transactionId = [NSString stringForStdString:nativeParameters.transaction_id];
|
||||
_rtcp = [[RTCRtcpParameters alloc] initWithNativeParameters:nativeParameters.rtcp];
|
||||
|
||||
NSMutableArray *headerExtensions = [[NSMutableArray alloc] init];
|
||||
for (const auto &headerExtension : nativeParameters.header_extensions) {
|
||||
[headerExtensions
|
||||
addObject:[[RTCRtpHeaderExtension alloc] initWithNativeParameters:headerExtension]];
|
||||
}
|
||||
_headerExtensions = headerExtensions;
|
||||
|
||||
NSMutableArray *encodings = [[NSMutableArray alloc] init];
|
||||
for (const auto &encoding : nativeParameters.encodings) {
|
||||
[encodings addObject:[[RTCRtpEncodingParameters alloc]
|
||||
@ -52,6 +62,9 @@
|
||||
webrtc::RtpParameters parameters;
|
||||
parameters.transaction_id = [NSString stdStringForString:_transactionId];
|
||||
parameters.rtcp = [_rtcp nativeParameters];
|
||||
for (RTCRtpHeaderExtension *headerExtension in _headerExtensions) {
|
||||
parameters.header_extensions.push_back(headerExtension.nativeParameters);
|
||||
}
|
||||
for (RTCRtpEncodingParameters *encoding in _encodings) {
|
||||
parameters.encodings.push_back(encoding.nativeParameters);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user