MeiCam SDK For iOS  3.14.0
NvsVideoFrameReceiver.h
Go to the documentation of this file.
1 //================================================================================
2 //
3 // (c) Copyright Meishe Co. Ltd, 2017. All rights reserved.
4 //
5 // This code and information is provided "as is" without warranty of any kind,
6 // either expressed or implied, including but not limited to the implied
7 // warranties of merchantability and/or fitness for a particular purpose.
8 //
9 //--------------------------------------------------------------------------------
10 // Birth Date: Jun 13. 2017
11 // Author: Meishe video team
12 //================================================================================
13 #pragma once
14 
15 #import <Foundation/Foundation.h>
16 #import <CoreGraphics/CGGeometry.h>
17 #import <CoreVideo/CVPixelBuffer.h>
18 #import "NvsCommonDef.h"
19 
26 typedef enum
27 {
31 
32 
34 
35 @protocol NvsVideoFrameReceiverDelegate <NSObject>
36 @optional
37 
66 - (BOOL)didVideoFrameReceived:(NvsVideoFrameReceiver *)receiver
67  videoFrameTextureId:(unsigned int)videoFrameTextureId
68  videoSize:(CGSize)videoSize
69  timelinePos:(int64_t)timelinePos;
70 
89 - (void)didVideoFrameReceived:(NvsVideoFrameReceiver *)receiver
90  pixelBuffer:(CVPixelBufferRef)pixelBuffer
91  videoSize:(CGSize)videoSize
92  timelinePos:(int64_t)timelinePos;
93 
94 @end
95 
96 
109 NVS_EXPORT @interface NvsVideoFrameReceiver : NSObject
110 
111 @property (nonatomic, readonly) NvsVideoFrameReceiverMode mode;
112 @property (nonatomic, weak) id<NvsVideoFrameReceiverDelegate> delegate;
113 
114 @property (nonatomic, strong, readonly) NSLock *lock;
115 
116 
117 - (instancetype)init;
118 
119 - (instancetype)initWithMode:(NvsVideoFrameReceiverMode)type;
120 
129 - (void)reclaimVideoFrame:(unsigned int)videoFrameTextureId;
130 
131 @end
132 
NvsVideoFrameReceiverMode
NvsVideoFrameReceiverMode
The mode of the video frame receiver.
Definition: NvsVideoFrameReceiver.h:27
NvsVideoFrameReceiverMode_Texture
@ NvsVideoFrameReceiverMode_Texture
The mode of the texture ID.
Definition: NvsVideoFrameReceiver.h:28
-[NvsVideoFrameReceiver init]
instancetype init()
NvsVideoFrameReceiver::lock
NSLock * lock
Definition: NvsVideoFrameReceiver.h:114
NvsVideoFrameReceiverDelegate-p
Definition: NvsVideoFrameReceiver.h:35
NvsVideoFrameReceiver::mode
NvsVideoFrameReceiverMode mode
Definition: NvsVideoFrameReceiver.h:111
NvsVideoFrameReceiverMode_CVPixelBuffer
@ NvsVideoFrameReceiverMode_CVPixelBuffer
The mode of the CVPixelBuffer object.
Definition: NvsVideoFrameReceiver.h:29
NvsVideoFrameReceiver
The receiver of the video frame.
Definition: NvsVideoFrameReceiver.h:110
NVS_EXPORT
#define NVS_EXPORT
Definition: NvsCommonDef.h:20
NvsCommonDef.h
NvsVideoFrameReceiver::delegate
id< NvsVideoFrameReceiverDelegate > delegate
Definition: NvsVideoFrameReceiver.h:112