blob: bd4fe8e1ee6fe5a082d4c1f199eae454684371c9 [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
15NS_ASSUME_NONNULL_BEGIN
16
Taylor Brandstetter3f1aee32020-02-27 11:59:23 -080017/** Corresponds to webrtc::Priority. */
18typedef NS_ENUM(NSInteger, RTCPriority) {
19 RTCPriorityVeryLow,
20 RTCPriorityLow,
21 RTCPriorityMedium,
22 RTCPriorityHigh
23};
24
Mirko Bonadeie8d57242018-09-17 10:22:56 +020025RTC_OBJC_EXPORT
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020026@interface RTCRtpEncodingParameters : NSObject
27
Amit Hilbuchce50b002019-03-26 10:42:28 -070028/** The idenfifier for the encoding layer. This is used in simulcast. */
29@property(nonatomic, copy, nullable) NSString *rid;
30
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020031/** Controls whether the encoding is currently transmitted. */
32@property(nonatomic, assign) BOOL isActive;
33
34/** The maximum bitrate to use for the encoding, or nil if there is no
35 * limit.
36 */
37@property(nonatomic, copy, nullable) NSNumber *maxBitrateBps;
38
39/** The minimum bitrate to use for the encoding, or nil if there is no
40 * limit.
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020041 */
42@property(nonatomic, copy, nullable) NSNumber *minBitrateBps;
43
Rasmus Brandt3c769412018-09-27 09:53:11 +020044/** The maximum framerate to use for the encoding, or nil if there is no
45 * limit.
46 */
47@property(nonatomic, copy, nullable) NSNumber *maxFramerate;
48
Rasmus Brandt86f78cb2018-10-03 09:34:47 +020049/** The requested number of temporal layers to use for the encoding, or nil
50 * if the default should be used.
51 */
52@property(nonatomic, copy, nullable) NSNumber *numTemporalLayers;
53
Mirta Dvornicic817aec82019-02-04 14:27:49 +010054/** Scale the width and height down by this factor for video. If nil,
55 * implementation default scaling factor will be used.
56 */
57@property(nonatomic, copy, nullable) NSNumber *scaleResolutionDownBy;
58
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020059/** The SSRC being used by this encoding. */
60@property(nonatomic, readonly, nullable) NSNumber *ssrc;
61
Anders Carlssoncd163802019-05-03 14:32:16 +020062/** The relative DiffServ Code Point priority. */
Taylor Brandstetter3f1aee32020-02-27 11:59:23 -080063@property(nonatomic, assign) RTCPriority networkPriority;
Anders Carlssoncd163802019-05-03 14:32:16 +020064
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020065- (instancetype)init NS_DESIGNATED_INITIALIZER;
66
67@end
68
69NS_ASSUME_NONNULL_END