blob: 1c307ebe84a42171d514dd6b5bd66307f39ecbeb [file] [log] [blame]
kthelgasonfb143122017-07-25 07:55:58 -07001/*
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#import <WebRTC/RTCVideoCodecFactory.h>
15
Anders Carlsson7e042812017-10-05 16:55:38 +020016/** Class for H264 specific config. */
17typedef NS_ENUM(NSUInteger, RTCH264PacketizationMode) {
18 RTCH264PacketizationModeNonInterleaved = 0, // Mode 1 - STAP-A, FU-A is allowed
19 RTCH264PacketizationModeSingleNalUnit // Mode 0 - only single NALU allowed
20};
21
22RTC_EXPORT
23@interface RTCCodecSpecificInfoH264 : NSObject <RTCCodecSpecificInfo>
24
25@property(nonatomic, assign) RTCH264PacketizationMode packetizationMode;
26
27@end
28
kthelgasonfb143122017-07-25 07:55:58 -070029/** Encoder. */
30RTC_EXPORT
31@interface RTCVideoEncoderH264 : NSObject<RTCVideoEncoder>
magjed73c0eb52017-08-07 06:55:28 -070032
33- (instancetype)initWithCodecInfo:(RTCVideoCodecInfo *)codecInfo;
34
kthelgasonfb143122017-07-25 07:55:58 -070035@end
36
37/** Decoder. */
38RTC_EXPORT
39@interface RTCVideoDecoderH264 : NSObject<RTCVideoDecoder>
40@end
41
42/** Encoder factory. */
43RTC_EXPORT
44@interface RTCVideoEncoderFactoryH264 : NSObject<RTCVideoEncoderFactory>
45@end
46
47/** Decoder factory. */
48RTC_EXPORT
49@interface RTCVideoDecoderFactoryH264 : NSObject<RTCVideoDecoderFactory>
50@end