blob: 3d71c55ab970d498b5b2d79e107317067e45c703 [file] [log] [blame]
Anders Carlsson7bca8ca2018-08-30 09:30:29 +02001/*
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 <Foundation/Foundation.h>
12
13#import "RTCMacros.h"
14#import "RTCRtcpParameters.h"
15#import "RTCRtpCodecParameters.h"
16#import "RTCRtpEncodingParameters.h"
17#import "RTCRtpHeaderExtension.h"
18
19NS_ASSUME_NONNULL_BEGIN
20
Mirta Dvornicic4cdd7fb2020-01-03 16:07:28 +010021/** Corresponds to webrtc::DegradationPreference. */
22typedef NS_ENUM(NSInteger, RTCDegradationPreference) {
23 RTCDegradationPreferenceDisabled,
24 RTCDegradationPreferenceMaintainFramerate,
25 RTCDegradationPreferenceMaintainResolution,
26 RTCDegradationPreferenceBalanced
27};
28
Mirko Bonadeie8d57242018-09-17 10:22:56 +020029RTC_OBJC_EXPORT
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020030@interface RTC_OBJC_TYPE (RTCRtpParameters) : NSObject
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020031
32/** A unique identifier for the last set of parameters applied. */
33@property(nonatomic, copy) NSString *transactionId;
34
35/** Parameters used for RTCP. */
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020036@property(nonatomic, readonly, copy) RTC_OBJC_TYPE(RTCRtcpParameters) * rtcp;
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020037
38/** An array containing parameters for RTP header extensions. */
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020039@property(nonatomic, readonly, copy)
40 NSArray<RTC_OBJC_TYPE(RTCRtpHeaderExtension) *> *headerExtensions;
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020041
42/** The currently active encodings in the order of preference. */
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020043@property(nonatomic, copy) NSArray<RTC_OBJC_TYPE(RTCRtpEncodingParameters) *> *encodings;
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020044
45/** The negotiated set of send codecs in order of preference. */
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020046@property(nonatomic, copy) NSArray<RTC_OBJC_TYPE(RTCRtpCodecParameters) *> *codecs;
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020047
Mirta Dvornicic4cdd7fb2020-01-03 16:07:28 +010048/**
49 * Degradation preference in case of CPU adaptation or constrained bandwidth.
50 * If nil, implementation default degradation preference will be used.
51 */
Mirta Dvornicic75b58972020-01-07 14:38:45 +010052@property(nonatomic, copy, nullable) NSNumber *degradationPreference;
Mirta Dvornicic4cdd7fb2020-01-03 16:07:28 +010053
Yura Yaroshevich9aec8c22021-04-14 12:41:21 +030054- (instancetype)init;
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020055
56@end
57
58NS_ASSUME_NONNULL_END