| Index: webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h
 | 
| diff --git a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h
 | 
| index a5214ea6c88de7614badc48fefbbdea7f3cfb0bc..7f678b97594f5385c3dd65f99ec5e72ee70eb60c 100644
 | 
| --- a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h
 | 
| +++ b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h
 | 
| @@ -18,9 +18,16 @@ NS_ASSUME_NONNULL_BEGIN
 | 
|  
 | 
|  /** Represents an encoded frame's type. */
 | 
|  typedef NS_ENUM(NSUInteger, RTCFrameType) {
 | 
| -  RTCFrameTypeEmptyFrame,
 | 
| -  RTCFrameTypeVideoFrameKey,
 | 
| -  RTCFrameTypeVideoFrameDelta,
 | 
| +  RTCFrameTypeEmptyFrame = 0,
 | 
| +  RTCFrameTypeAudioFrameSpeech = 1,
 | 
| +  RTCFrameTypeAudioFrameCN = 2,
 | 
| +  RTCFrameTypeVideoFrameKey = 3,
 | 
| +  RTCFrameTypeVideoFrameDelta = 4,
 | 
| +};
 | 
| +
 | 
| +typedef NS_ENUM(NSUInteger, RTCVideoContentType) {
 | 
| +  RTCVideoContentTypeUnspecified,
 | 
| +  RTCVideoContentTypeScreenshare,
 | 
|  };
 | 
|  
 | 
|  /** Represents an encoded frame. Corresponds to webrtc::EncodedImage. */
 | 
| @@ -40,6 +47,7 @@ RTC_EXPORT
 | 
|  @property(nonatomic, assign) int rotation;
 | 
|  @property(nonatomic, assign) BOOL completeFrame;
 | 
|  @property(nonatomic, strong) NSNumber *qp;
 | 
| +@property(nonatomic, assign) RTCVideoContentType contentType;
 | 
|  
 | 
|  @end
 | 
|  
 | 
| @@ -62,14 +70,32 @@ RTC_EXPORT
 | 
|  
 | 
|  @end
 | 
|  
 | 
| +/** Class for H264 specific config. */
 | 
| +typedef NS_ENUM(NSUInteger, RTCH264PacketizationMode) {
 | 
| +  RTCH264PacketizationModeNonInterleaved = 0,  // Mode 1 - STAP-A, FU-A is allowed
 | 
| +  RTCH264PacketizationModeSingleNalUnit        // Mode 0 - only single NALU allowed
 | 
| +};
 | 
| +
 | 
| +RTC_EXPORT
 | 
| +@interface RTCCodecSpecificInfoH264 : NSObject<RTCCodecSpecificInfo>
 | 
| +
 | 
| +@property(nonatomic, assign) RTCH264PacketizationMode packetizationMode;
 | 
| +
 | 
| +@end
 | 
| +
 | 
|  /** Callback block for encoder. */
 | 
| -typedef void (^RTCVideoEncoderCallback)(RTCEncodedImage *frame,
 | 
| +typedef BOOL (^RTCVideoEncoderCallback)(RTCEncodedImage *frame,
 | 
|                                          id<RTCCodecSpecificInfo> info,
 | 
|                                          RTCRtpFragmentationHeader *header);
 | 
|  
 | 
|  /** Callback block for decoder. */
 | 
|  typedef void (^RTCVideoDecoderCallback)(RTCVideoFrame *frame);
 | 
|  
 | 
| +typedef NS_ENUM(NSUInteger, RTCVideoCodecMode) {
 | 
| +  RTCVideoCodecModeRealtimeVideo,
 | 
| +  RTCVideoCodecModeScreensharing,
 | 
| +};
 | 
| +
 | 
|  /** Holds information to identify a codec. Corresponds to cricket::VideoCodec. */
 | 
|  RTC_EXPORT
 | 
|  @interface RTCVideoCodecInfo : NSObject
 | 
| @@ -101,6 +127,7 @@ RTC_EXPORT
 | 
|  @property(nonatomic, assign) uint32_t maxFramerate;
 | 
|  
 | 
|  @property(nonatomic, assign) unsigned int qpMax;
 | 
| +@property(nonatomic, assign) RTCVideoCodecMode mode;
 | 
|  
 | 
|  @end
 | 
|  
 | 
| @@ -123,11 +150,10 @@ RTC_EXPORT
 | 
|  - (NSInteger)startEncodeWithSettings:(RTCVideoEncoderSettings *)settings
 | 
|                         numberOfCores:(int)numberOfCores;
 | 
|  - (NSInteger)releaseEncoder;
 | 
| -- (void)destroy;
 | 
|  - (NSInteger)encode:(RTCVideoFrame *)frame
 | 
|      codecSpecificInfo:(id<RTCCodecSpecificInfo>)info
 | 
|             frameTypes:(NSArray<NSNumber *> *)frameTypes;
 | 
| -- (BOOL)setBitrate:(uint32_t)bitrateKbit framerate:(uint32_t)framerate;
 | 
| +- (int)setBitrate:(uint32_t)bitrateKbit framerate:(uint32_t)framerate;
 | 
|  - (NSString *)implementationName;
 | 
|  
 | 
|  /** Returns QP scaling settings for encoder. The quality scaler adjusts the resolution in order to
 | 
| @@ -145,7 +171,6 @@ RTC_EXPORT
 | 
|  - (NSInteger)startDecodeWithSettings:(RTCVideoEncoderSettings *)settings
 | 
|                         numberOfCores:(int)numberOfCores;
 | 
|  - (NSInteger)releaseDecoder;
 | 
| -- (void)destroy;
 | 
|  - (NSInteger)decode:(RTCEncodedImage *)encodedImage
 | 
|            missingFrames:(BOOL)missingFrames
 | 
|      fragmentationHeader:(RTCRtpFragmentationHeader *)fragmentationHeader
 | 
| 
 |