1 /* 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 15 NS_ASSUME_NONNULL_BEGIN 16 17 /** Corresponds to webrtc::Priority. */ 18 typedef NS_ENUM(NSInteger, RTCPriority) { 19 RTCPriorityVeryLow, 20 RTCPriorityLow, 21 RTCPriorityMedium, 22 RTCPriorityHigh 23 }; 24 25 RTC_OBJC_EXPORT 26 @interface RTC_OBJC_TYPE (RTCRtpEncodingParameters) : NSObject 27 28 /** The idenfifier for the encoding layer. This is used in simulcast. */ 29 @property(nonatomic, copy, nullable) NSString *rid; 30 31 /** 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. 41 */ 42 @property(nonatomic, copy, nullable) NSNumber *minBitrateBps; 43 44 /** 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 49 /** 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 54 /** 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 59 /** The SSRC being used by this encoding. */ 60 @property(nonatomic, readonly, nullable) NSNumber *ssrc; 61 62 /** The relative bitrate priority. */ 63 @property(nonatomic, assign) double bitratePriority; 64 65 /** The relative DiffServ Code Point priority. */ 66 @property(nonatomic, assign) RTCPriority networkPriority; 67 68 - (instancetype)init NS_DESIGNATED_INITIALIZER; 69 70 @end 71 72 NS_ASSUME_NONNULL_END 73