blob: facd7e5129139db2b727faa85238623956c5cf82 [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
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020026@interface RTC_OBJC_TYPE (RTCRtpEncodingParameters) : NSObject
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020027
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
Taylor Brandstetterf05af9e2020-03-19 17:14:27 -070062/** The relative bitrate priority. */
63@property(nonatomic, assign) double bitratePriority;
64
Anders Carlssoncd163802019-05-03 14:32:16 +020065/** The relative DiffServ Code Point priority. */
Taylor Brandstetter3f1aee32020-02-27 11:59:23 -080066@property(nonatomic, assign) RTCPriority networkPriority;
Anders Carlssoncd163802019-05-03 14:32:16 +020067
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020068- (instancetype)init NS_DESIGNATED_INITIALIZER;
69
70@end
71
72NS_ASSUME_NONNULL_END