8 #import <Foundation/Foundation.h>
9 #import <AVFoundation/AVFoundation.h>
57 @protocol AgoraVideoFrameConsumer <NSObject>
65 - (void)consumePixelBuffer:(CVPixelBufferRef _Nonnull)pixelBuffer
66 withTimestamp:(CMTime)timestamp
77 - (void)consumeRawData:(
void * _Nonnull)rawData
78 withTimestamp:(CMTime)timestamp
107 @protocol AgoraVideoSourceProtocol <NSObject>
109 @property (strong) id<AgoraVideoFrameConsumer> _Nullable consumer;
118 - (BOOL)shouldInitialize;
142 - (void)shouldDispose;
181 @protocol AgoraVideoSinkProtocol <NSObject>
190 - (BOOL)shouldInitialize;
211 - (void)shouldDispose;
231 - (void)renderPixelBuffer:(CVPixelBufferRef _Nonnull)pixelBuffer
240 - (void)renderRawData:(
void * _Nonnull)rawData
246 #pragma mark - Agora Default Media IO
248 typedef NS_ENUM(NSInteger, AgoraRtcDefaultCameraPosition) {
250 AgoraRtcDefaultCameraPositionFront = 0,
252 AgoraRtcDefaultCameraPositionBack = 1,
255 __attribute__((visibility(
"default")))
@interface AgoraRtcDefaultCamera: NSObject<AgoraVideoSourceProtocol>
257 @property (nonatomic, assign) AgoraRtcDefaultCameraPosition position;
258 - (instancetype _Nonnull)initWithPosition:(AgoraRtcDefaultCameraPosition)position;
262 #if (!(TARGET_OS_IPHONE) && (TARGET_OS_MAC))
263 __attribute__((visibility(
"default")))
@interface AgoraRtcScreenCapture: NSObject<AgoraVideoSourceProtocol>
264 @property (nonatomic, readonly) NSUInteger windowId;
265 + (instancetype _Nonnull)fullScreenCaptureWithFrequency:(NSInteger)captureFrequency
266 bitRate:(NSInteger)bitRate;
267 + (instancetype _Nonnull)windowCaptureWithId:(CGWindowID)windowId
268 captureFrequency:(NSInteger)captureFrequency
269 bitRate:(NSInteger)bitRate
274 __attribute__((visibility(
"default")))
@interface AgoraRtcDefaultRenderer: NSObject<AgoraVideoSinkProtocol>
275 @property (nonatomic, strong, readonly)
VIEW_CLASS * _Nonnull view;
277 - (instancetype _Nonnull)initWithView:(
VIEW_CLASS * _Nonnull)view