mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 22:00:47 +01:00

Running clang-format with chromium's style guide. The goal is n-fold: * providing consistency and readability (that's what code guidelines are for) * preventing noise with presubmit checks and git cl format * building on the previous point: making it easier to automatically fix format issues * you name it Please consider using git-hyper-blame to ignore this commit. Bug: webrtc:9340 Change-Id: I694567c4cdf8cee2860958cfe82bfaf25848bb87 Reviewed-on: https://webrtc-review.googlesource.com/81185 Reviewed-by: Patrik Höglund <phoglund@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23660}
91 lines
2.4 KiB
Objective-C
91 lines
2.4 KiB
Objective-C
/*
|
|
* Copyright 2017 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#import <WebRTC/RTCMacros.h>
|
|
#import <WebRTC/RTCVideoCodecFactory.h>
|
|
|
|
/** 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
|
|
|
|
/** H264 Profiles and levels. */
|
|
typedef NS_ENUM(NSUInteger, RTCH264Profile) {
|
|
RTCH264ProfileConstrainedBaseline,
|
|
RTCH264ProfileBaseline,
|
|
RTCH264ProfileMain,
|
|
RTCH264ProfileConstrainedHigh,
|
|
RTCH264ProfileHigh,
|
|
};
|
|
|
|
typedef NS_ENUM(NSUInteger, RTCH264Level) {
|
|
RTCH264Level1_b = 0,
|
|
RTCH264Level1 = 10,
|
|
RTCH264Level1_1 = 11,
|
|
RTCH264Level1_2 = 12,
|
|
RTCH264Level1_3 = 13,
|
|
RTCH264Level2 = 20,
|
|
RTCH264Level2_1 = 21,
|
|
RTCH264Level2_2 = 22,
|
|
RTCH264Level3 = 30,
|
|
RTCH264Level3_1 = 31,
|
|
RTCH264Level3_2 = 32,
|
|
RTCH264Level4 = 40,
|
|
RTCH264Level4_1 = 41,
|
|
RTCH264Level4_2 = 42,
|
|
RTCH264Level5 = 50,
|
|
RTCH264Level5_1 = 51,
|
|
RTCH264Level5_2 = 52
|
|
};
|
|
|
|
RTC_EXPORT
|
|
@interface RTCH264ProfileLevelId : NSObject
|
|
|
|
@property(nonatomic, readonly) RTCH264Profile profile;
|
|
@property(nonatomic, readonly) RTCH264Level level;
|
|
@property(nonatomic, readonly) NSString *hexString;
|
|
|
|
- (instancetype)initWithHexString:(NSString *)hexString;
|
|
- (instancetype)initWithProfile:(RTCH264Profile)profile level:(RTCH264Level)level;
|
|
|
|
@end
|
|
|
|
/** Encoder. */
|
|
RTC_EXPORT
|
|
@interface RTCVideoEncoderH264 : NSObject <RTCVideoEncoder>
|
|
|
|
- (instancetype)initWithCodecInfo:(RTCVideoCodecInfo *)codecInfo;
|
|
|
|
@end
|
|
|
|
/** Decoder. */
|
|
RTC_EXPORT
|
|
@interface RTCVideoDecoderH264 : NSObject <RTCVideoDecoder>
|
|
@end
|
|
|
|
/** Encoder factory. */
|
|
RTC_EXPORT
|
|
@interface RTCVideoEncoderFactoryH264 : NSObject <RTCVideoEncoderFactory>
|
|
@end
|
|
|
|
/** Decoder factory. */
|
|
RTC_EXPORT
|
|
@interface RTCVideoDecoderFactoryH264 : NSObject <RTCVideoDecoderFactory>
|
|
@end
|