| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 /* |  | 
| 2  *  Copyright 2017 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 <WebRTC/RTCMacros.h> |  | 
| 14 |  | 
| 15 @class RTCVideoFrame; |  | 
| 16 |  | 
| 17 NS_ASSUME_NONNULL_BEGIN |  | 
| 18 |  | 
| 19 /** Represents an encoded frame's type. */ |  | 
| 20 typedef NS_ENUM(NSUInteger, RTCFrameType) { |  | 
| 21   EmptyFrame, |  | 
| 22   VideoFrameKey, |  | 
| 23   VideoFrameDelta, |  | 
| 24 }; |  | 
| 25 |  | 
| 26 /** Represents an encoded frame. Corresponds to webrtc::EncodedImage. */ |  | 
| 27 RTC_EXPORT |  | 
| 28 @interface RTCEncodedImage : NSObject |  | 
| 29 |  | 
| 30 @property(nonatomic, retain) NSData *buffer; |  | 
| 31 @property(nonatomic, assign) int encodedWidth; |  | 
| 32 @property(nonatomic, assign) int encodedHeight; |  | 
| 33 @property(nonatomic, assign) uint32_t timeStamp; |  | 
| 34 @property(nonatomic, assign) long captureTimeMs; |  | 
| 35 @property(nonatomic, assign) long ntpTimeMs; |  | 
| 36 @property(nonatomic, assign) BOOL isTimingFrame; |  | 
| 37 @property(nonatomic, assign) long encodeStartMs; |  | 
| 38 @property(nonatomic, assign) long encodeFinishMs; |  | 
| 39 @property(nonatomic, assign) RTCFrameType frameType; |  | 
| 40 @property(nonatomic, assign) int rotation; |  | 
| 41 @property(nonatomic, assign) BOOL completeFrame; |  | 
| 42 @property(nonatomic, retain) NSNumber *qp; |  | 
| 43 |  | 
| 44 @end |  | 
| 45 |  | 
| 46 /** Information for header. Corresponds to webrtc::RTPFragmentationHeader. */ |  | 
| 47 RTC_EXPORT |  | 
| 48 @interface RTCRtpFragmentationHeader : NSObject |  | 
| 49 |  | 
| 50 @property(nonatomic, retain) NSArray<NSNumber *> *fragmentationOffset; |  | 
| 51 @property(nonatomic, retain) NSArray<NSNumber *> *fragmentationLength; |  | 
| 52 @property(nonatomic, retain) NSArray<NSNumber *> *fragmentationTimeDiff; |  | 
| 53 @property(nonatomic, retain) NSArray<NSNumber *> *fragmentationPlType; |  | 
| 54 |  | 
| 55 @end |  | 
| 56 |  | 
| 57 /** Implement this protocol to pass codec specific info from the encoder. |  | 
| 58  *  Corresponds to webrtc::CodecSpecificInfo. |  | 
| 59  */ |  | 
| 60 RTC_EXPORT |  | 
| 61 @protocol RTCCodecSpecificInfo <NSObject> |  | 
| 62 |  | 
| 63 @end |  | 
| 64 |  | 
| 65 /** Callback block for encoder. */ |  | 
| 66 typedef void (^RTCVideoEncoderCallback)(RTCEncodedImage *frame, |  | 
| 67                                         id<RTCCodecSpecificInfo> info, |  | 
| 68                                         RTCRtpFragmentationHeader *header); |  | 
| 69 |  | 
| 70 /** Callback block for decoder. */ |  | 
| 71 typedef void (^RTCVideoDecoderCallback)(RTCVideoFrame *frame); |  | 
| 72 |  | 
| 73 /** Settings for encoder. Corresponds to webrtc::VideoCodec. */ |  | 
| 74 RTC_EXPORT |  | 
| 75 @interface RTCVideoEncoderSettings : NSObject |  | 
| 76 |  | 
| 77 @property(nonatomic, retain) NSString *name; |  | 
| 78 |  | 
| 79 @property(nonatomic, assign) unsigned short width; |  | 
| 80 @property(nonatomic, assign) unsigned short height; |  | 
| 81 |  | 
| 82 @property(nonatomic, assign) unsigned int startBitrate;  // kilobits/sec. |  | 
| 83 @property(nonatomic, assign) unsigned int maxBitrate; |  | 
| 84 @property(nonatomic, assign) unsigned int minBitrate; |  | 
| 85 @property(nonatomic, assign) unsigned int targetBitrate; |  | 
| 86 |  | 
| 87 @property(nonatomic, assign) uint32_t maxFramerate; |  | 
| 88 |  | 
| 89 @property(nonatomic, assign) unsigned int qpMax; |  | 
| 90 |  | 
| 91 @end |  | 
| 92 |  | 
| 93 /** Holds information to identify a codec. Corresponds to cricket::VideoCodec. *
     / |  | 
| 94 RTC_EXPORT |  | 
| 95 @interface RTCVideoCodecInfo : NSObject |  | 
| 96 |  | 
| 97 - (instancetype)initWithPayload:(int)payload |  | 
| 98                            name:(NSString *)name |  | 
| 99                      parameters:(NSDictionary<NSString *, NSString *> *)paramete
     rs; |  | 
| 100 |  | 
| 101 @property(nonatomic, readonly) int payload; |  | 
| 102 @property(nonatomic, readonly) NSString *name; |  | 
| 103 @property(nonatomic, readonly) NSDictionary<NSString *, NSString *> *parameters; |  | 
| 104 |  | 
| 105 @end |  | 
| 106 |  | 
| 107 /** Protocol for encoder implementations. */ |  | 
| 108 RTC_EXPORT |  | 
| 109 @protocol RTCVideoEncoder <NSObject> |  | 
| 110 |  | 
| 111 - (instancetype)initWithCodecInfo:(RTCVideoCodecInfo *)codecInfo; |  | 
| 112 - (void)setCallback:(RTCVideoEncoderCallback)callback; |  | 
| 113 - (int)initEncodeWithSettings:(RTCVideoEncoderSettings *)settings numberOfCores:
     (int)numberOfCores; |  | 
| 114 - (int)releaseEncode; |  | 
| 115 - (int)encode:(RTCVideoFrame *)frame |  | 
| 116     codecSpecificInfo:(id<RTCCodecSpecificInfo>)info |  | 
| 117            frameTypes:(NSArray<NSNumber *> *)frameTypes; |  | 
| 118 - (BOOL)setBitrate:(uint32_t)bitrateKbit framerate:(uint32_t)framerate; |  | 
| 119 |  | 
| 120 @end |  | 
| 121 |  | 
| 122 /** Protocol for decoder implementations. */ |  | 
| 123 RTC_EXPORT |  | 
| 124 @protocol RTCVideoDecoder <NSObject> |  | 
| 125 |  | 
| 126 - (void)setCallback:(RTCVideoDecoderCallback)callback; |  | 
| 127 - (int)initDecodeWithSettings:(RTCVideoEncoderSettings *)settings numberOfCores:
     (int)numberOfCores; |  | 
| 128 - (int)releaseDecode; |  | 
| 129 - (int)decode:(RTCEncodedImage *)encodedImage |  | 
| 130           missingFrames:(BOOL)missingFrames |  | 
| 131     fragmentationHeader:(RTCRtpFragmentationHeader *)fragmentationHeader |  | 
| 132       codecSpecificInfo:(__nullable id<RTCCodecSpecificInfo>)info |  | 
| 133            renderTimeMs:(int64_t)renderTimeMs; |  | 
| 134 |  | 
| 135 @end |  | 
| 136 |  | 
| 137 NS_ASSUME_NONNULL_END |  | 
| OLD | NEW | 
|---|