blob: be01b915f5a5364f6aebec08374ba2c8f38ba67d [file] [log] [blame]
Anders Carlsson7bca8ca2018-08-30 09:30:29 +02001/*
2 * Copyright 2018 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 <AVFoundation/AVFoundation.h>
12
13#import "RTCMacros.h"
14#import "RTCVideoFrameBuffer.h"
15
16NS_ASSUME_NONNULL_BEGIN
17
18/** Protocol for RTCVideoFrameBuffers containing YUV planar data. */
Mirko Bonadeie8d57242018-09-17 10:22:56 +020019RTC_OBJC_EXPORT
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020020@protocol RTC_OBJC_TYPE
21(RTCYUVPlanarBuffer)<RTC_OBJC_TYPE(RTCVideoFrameBuffer)>
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020022
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020023 @property(nonatomic, readonly) int chromaWidth;
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020024@property(nonatomic, readonly) int chromaHeight;
25@property(nonatomic, readonly) const uint8_t *dataY;
26@property(nonatomic, readonly) const uint8_t *dataU;
27@property(nonatomic, readonly) const uint8_t *dataV;
28@property(nonatomic, readonly) int strideY;
29@property(nonatomic, readonly) int strideU;
30@property(nonatomic, readonly) int strideV;
31
32- (instancetype)initWithWidth:(int)width
33 height:(int)height
34 dataY:(const uint8_t *)dataY
35 dataU:(const uint8_t *)dataU
36 dataV:(const uint8_t *)dataV;
37- (instancetype)initWithWidth:(int)width height:(int)height;
38- (instancetype)initWithWidth:(int)width
39 height:(int)height
40 strideY:(int)strideY
41 strideU:(int)strideU
42 strideV:(int)strideV;
43
44@end
45
46NS_ASSUME_NONNULL_END