MeiCam SDK For iOS  3.10.0
NvsEffectRenderCore.h
Go to the documentation of this file.
1 //================================================================================
2 //
3 // (c) Copyright China Digital Video (Beijing) Limited, 2016. 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: Sep 10. 2019
11 // Author: NewAuto video team
12 //================================================================================
13 
14 #pragma once
15 
16 #import <Foundation/Foundation.h>
17 #import "NvsEffectCommonDef.h"
18 #import <CoreVideo/CVPixelBuffer.h>
19 
20 @class NvsEffect;
21 
22 typedef enum {
29 
30 typedef enum {
38 
39 typedef enum {
44 
45 typedef struct
46 {
47  int texWidth;
48  int texHeight;
54 
55 typedef struct
56 {
57  int texId;
61 
70 #define NVS_EFFECT_DISPLAY_ROTATION @"display_rotation"
72 #define NVS_EFFECT_PHYSICAL_ORIENTATION @"physical_orientation"
73 #define NVS_EFFECT_FLIP_HORIZONTALLY @"flip_horizontally"
74 #define NVS_EFFECT_TIMESTAMP @"timestamp"
75 #define NVS_EFFECT_FLAGS @"flags"
76 #define NVS_EFFECT_OUTPUT_FRAME_FORMAT @"output_frame_format"
77 #define NVS_EFFECT_IS_BT601 @"is_bt.601"
78 
81 
93 NVS_EXPORT @interface NvsEffectRenderCore : NSObject
94 
104 - (BOOL)initialize;
105 
118 - (BOOL)initializeWithFlags:(int)falgs;
119 
127 - (void)cleanUp;
128 
150 - (NvsEffectCoreError)renderEffect:(NvsEffect *)effect
151  inputTexId:(int)inputTexId
152  inputVideoResolution:(NvsEffectVideoResolution *)inputVideoResolution
153  outputTexId:(int)outputTexId
154  timestamp:(int64_t)timestamp
155  flags:(NvsRenderFlag)flags;
156 
182 - (NvsEffectCoreError)renderEffect:(NvsEffect *)effect
183  inputTexId:(int)inputTexId
184  inputBuddyBuffer:(const NvsEffectVideoFrameInfo*)inputBuddyBuffer
185  physicalOrientation:(int)physicalOrientation
186  inputVideoResolution:(NvsEffectVideoResolution *)inputVideoResolution
187  outputTexId:(int)outputTexId
188  timestamp:(int64_t)timestamp
189  flags:(NvsRenderFlag)flags;
190 
216 - (NvsEffectCoreError)renderEffects:(NSArray<NvsEffect *>*)effects
217  inputTexId:(int)inputTexId
218  inputBuddyBuffer:(const NvsEffectVideoFrameInfo*)inputBuddyBuffer
219  physicalOrientation:(int)physicalOrientation
220  inputVideoResolution:(NvsEffectVideoResolution *)inputVideoResolution
221  outputTexId:(int)outputTexId
222  timestamp:(int64_t)timestamp
223  flags:(NvsRenderFlag)flags;
224 
251 - (NvsEffectCoreError)renderEffects:(NSArray<NvsEffect *>*)effects
252  inputImage:(CVPixelBufferRef)inputImage
253  displayRotation:(int)displayRotation
254  isFlipHorizontally:(BOOL)isFlip
255  physicalOrientation:(int)physicalOrientation
256  outputTexId:(int)outputTexId
257  timestamp:(int64_t)timestamp
258  flags:(NvsRenderFlag)flags;
259 
289 - (NvsEffectCoreError)renderEffect:(NvsEffect *)effect
290  inputImage:(CVPixelBufferRef)inputImage
291  displayRotation:(int)rotation
292  isFlipHorizontally:(BOOL)isFlip
293  timestamp:(int64_t)timestamp
294  flags:(NvsRenderFlag)flags
295  outputFrameFormat:(NvsEffectVideoFramePixelFormat)format
296  outputFrameIsBT601:(BOOL)is601
297  outputImage:(CVPixelBufferRef*)ouputImage;
298 
328 - (NvsEffectCoreError)renderEffects:(NSArray<NvsEffect *>*)effects
329  inputImage:(CVPixelBufferRef)inputImage
330  displayRotation:(int)rotation
331  isFlipHorizontally:(BOOL)isFlip
332  timestamp:(int64_t)timestamp
333  flags:(NvsRenderFlag)flags
334  outputFrameFormat:(NvsEffectVideoFramePixelFormat)ouputFrameformat
335  outputFrameIsBT601:(BOOL)is601
336  outputImage:(CVPixelBufferRef*)ouputImage;
337 
357 - (NvsEffectCoreError)renderEffects:(NSArray<NvsEffect *>*)effects
358  inputImage:(CVPixelBufferRef)inputImage
359  outputImage:(CVPixelBufferRef*)ouputImage
360  options:(NSDictionary *)options;
361 
379 - (NvsEffectCoreError)renderEffects:(NSArray<NvsEffect *>*)effects
380  inputImage:(CVPixelBufferRef)inputImage
381  options:(NSDictionary *)options;
382 
406 - (NvsEffectCoreError)renderEffect:(NvsEffect *)effect
407  inputTexIds:(NSArray*)inputTextures
408  inputVideoResolution:(NvsEffectVideoResolution *)inputVideoResolution
409  outputTexId:(int)outputTexId
410  timestamp:(int64_t)timestamp
411  flags:(NvsRenderFlag)flags;
412 
436 - (NvsEffectCoreError)calcEffectOutputSize:(NvsEffect *)effect
437  inputTexs:(NvsEffectGPUTexture*)inputTextureArray
438  intputTexCount:(int)texArrayCount
439  expectVideoResolution:(NvsEffectVideoResolution *)videoResolution
440  outputTex:(NvsEffectGPUTextureInfo*)outputTexInfo
441  timestamp:(int64_t)timestamp
442  flags:(NvsRenderFlag)flags;
443 
465 - (NvsEffectCoreError)renderVariantSizeEffect:(NvsEffect *)effect
466  inputTexs:(NvsEffectGPUTexture*)inputTextureArray
467  intputTexSize:(int)texArrayCount
468  outputTex:(NvsEffectGPUTexture*)outputTex
469  timestamp:(int64_t)timestamp
470  flags:(NvsRenderFlag)flags;
471 
481 - (void)clearEffectResources:(NvsEffect *)effect;
482 
490 - (void)clearCacheResources;
491 
507 -(NvsEffectCoreError)uploadPixelBufferToTexture:(CVPixelBufferRef)frameBuffer displayRotation:(int)rotation horizontalFlip:(BOOL)flip outputTexId:(int)outputTexId;
508 
524 -(NvsEffectCoreError)uploadPixelBufferToTexture:(CVPixelBufferRef)frameBuffer horizontalFlip:(BOOL)flip outputTexId:(int)outputTexId;
525 
545 -(NvsEffectCoreError)downloadPixelBufferFromTexture:(int)inputTexId
546  inputVideoResolution:(NvsEffectVideoResolution *)inputVideoResolution
547  outputFrameFormat:(NvsEffectVideoFramePixelFormat)format
548  isBT601:(BOOL)is601
549  outputFrame:(CVPixelBufferRef*)frameBuffer;
550 
551 @end
NvsEffectCoreError
NvsEffectCoreError
Definition: NvsEffectRenderCore.h:22
NvsEffectCoreError_Unknown
@ NvsEffectCoreError_Unknown
Definition: NvsEffectRenderCore.h:24
NvsRenderFlag
NvsRenderFlag
Definition: NvsEffectRenderCore.h:39
-[NvsEffectRenderCore initialize]
BOOL initialize()
Initializes.
NvsEffectCoreError_InvalidPixelFormat
@ NvsEffectCoreError_InvalidPixelFormat
Definition: NvsEffectRenderCore.h:26
NvsInitializeFlags
NvsInitializeFlags
Definition: NvsEffectRenderCore.h:30
NvsRenderFlags_InputTextureIsFlipHorizontally
@ NvsRenderFlags_InputTextureIsFlipHorizontally
Definition: NvsEffectRenderCore.h:42
NvsEffectRational
Rational value.
Definition: NvsEffectCommonDef.h:28
NvsEffectGPUTextureInfo
Definition: NvsEffectRenderCore.h:46
NvsEffectGPUTextureInfo::imagePar
NvsEffectRational imagePar
Definition: NvsEffectRenderCore.h:51
NvsEffectCoreError_InvalidTexture
@ NvsEffectCoreError_InvalidTexture
Definition: NvsEffectRenderCore.h:25
NvsEffectVideoFramePixelFormat
NvsEffectVideoFramePixelFormat
Video frame pixel format.
Definition: NvsEffectCommonDef.h:86
NvsRenderFlag_NoFlag
@ NvsRenderFlag_NoFlag
Definition: NvsEffectRenderCore.h:40
NvsEffectCoreError_NoError
@ NvsEffectCoreError_NoError
Definition: NvsEffectRenderCore.h:23
NvsInitializeFlag_SUPPORT_4K
@ NvsInitializeFlag_SUPPORT_4K
Definition: NvsEffectRenderCore.h:34
NvsEffectVideoFrameInfo
Video frame information.
Definition: NvsEffectCommonDef.h:100
-[NvsEffectRenderCore clearCacheResources]
void clearCacheResources()
Clears cached resources.
-[NvsEffectRenderCore cleanUp]
void cleanUp()
Clears all resources in NvsEffectRenderCore.
NvsEffectGPUTexture::isUpSideDown
bool isUpSideDown
Definition: NvsEffectRenderCore.h:58
NvsInitializeFlag_SUPPORT_8K
@ NvsInitializeFlag_SUPPORT_8K
Definition: NvsEffectRenderCore.h:35
NvsInitializeFlag_NoFlag
@ NvsInitializeFlag_NoFlag
Definition: NvsEffectRenderCore.h:31
NvsEffectGPUTextureInfo::texWidth
int texWidth
Definition: NvsEffectRenderCore.h:47
NvsEffectCoreError_NotInitialized
@ NvsEffectCoreError_NotInitialized
Definition: NvsEffectRenderCore.h:27
NVS_EXPORT
#define NVS_EXPORT
Definition: NvsCommonDef.h:20
NvsEffectGPUTexture
Definition: NvsEffectRenderCore.h:56
NvsEffect
Special effects.
Definition: NvsEffect.h:46
NvsEffectGPUTexture::texId
int texId
Definition: NvsEffectRenderCore.h:57
NvsEffectVideoResolution
Video resolution.
Definition: NvsEffectCommonDef.h:39
NvsEffectGPUTextureInfo::texHeight
int texHeight
Definition: NvsEffectRenderCore.h:48
NvsEffectGPUTextureInfo::proxyScale
NvsEffectRational proxyScale
Definition: NvsEffectRenderCore.h:52
NvsEffectCommonDef.h
NvsEffectGPUTextureInfo::centerPointX
int centerPointX
Definition: NvsEffectRenderCore.h:49
NvsEffectGPUTextureInfo::centerPointY
int centerPointY
Definition: NvsEffectRenderCore.h:50
NvsInitializeFlag_CreateGLContextIfNeed
@ NvsInitializeFlag_CreateGLContextIfNeed
Definition: NvsEffectRenderCore.h:33
NvsEffectRenderCore
Class for special effects rendering.
Definition: NvsEffectRenderCore.h:94
NvsRenderFlag_IsUpsideDownTexture
@ NvsRenderFlag_IsUpsideDownTexture
Definition: NvsEffectRenderCore.h:41
NvsInitializeFlag_InSingleGLThread
@ NvsInitializeFlag_InSingleGLThread
Definition: NvsEffectRenderCore.h:32
NvsInitializeFlag_SUPPORT_16K
@ NvsInitializeFlag_SUPPORT_16K
Definition: NvsEffectRenderCore.h:36