美摄SDK For iOS  3.14.1
NvsEffectRenderCore.h
浏览该文件的文档.
1 //================================================================================
2 //
3 // (c) Copyright Meishe Co. Ltd, 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: Meishe 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 
56 {
58  info.texWidth = w;
59  info.texHeight = h;
60  info.centerPointX = 0;
61  info.centerPointY = 0;
62  info.imagePar.num = 1;
63  info.imagePar.den = 1;
64  info.proxyScale.num = 1;
65  info.proxyScale.den = 1;
66  return info;
67 }
68 
69 typedef struct
70 {
71  int texId;
78 
80 {
82  tex.texId = texId;
83  tex.texFormat = format;
84  tex.texInfo = info;
85  tex.isUpSideDown = false;
88  return tex;
89 }
90 
99 #define NVS_EFFECT_DISPLAY_ROTATION @"display_rotation"
101 #define NVS_EFFECT_PHYSICAL_ORIENTATION @"physical_orientation"
102 #define NVS_EFFECT_FLIP_HORIZONTALLY @"flip_horizontally"
103 #define NVS_EFFECT_TIMESTAMP @"timestamp"
104 #define NVS_EFFECT_FLAGS @"flags"
105 #define NVS_EFFECT_OUTPUT_FRAME_FORMAT @"output_frame_format"
106 #define NVS_EFFECT_IS_BT601 @"is_bt.601"
107 
110 
122 NVS_EXPORT @interface NvsEffectRenderCore : NSObject
123 
133 - (BOOL)initialize;
134 
147 - (BOOL)initializeWithFlags:(int)falgs;
148 
156 - (void)cleanUp;
157 
179 - (NvsEffectCoreError)renderEffect:(NvsEffect *)effect
180  inputTexId:(int)inputTexId
181  inputVideoResolution:(NvsEffectVideoResolution *)inputVideoResolution
182  outputTexId:(int)outputTexId
183  timestamp:(int64_t)timestamp
184  flags:(NvsRenderFlag)flags;
185 
211 - (NvsEffectCoreError)renderEffect:(NvsEffect *)effect
212  inputTexId:(int)inputTexId
213  inputBuddyBuffer:(const NvsEffectVideoFrameInfo*)inputBuddyBuffer
214  physicalOrientation:(int)physicalOrientation
215  inputVideoResolution:(NvsEffectVideoResolution *)inputVideoResolution
216  outputTexId:(int)outputTexId
217  timestamp:(int64_t)timestamp
218  flags:(NvsRenderFlag)flags;
219 
245 - (NvsEffectCoreError)renderEffects:(NSArray<NvsEffect *>*)effects
246  inputTexId:(int)inputTexId
247  inputBuddyBuffer:(const NvsEffectVideoFrameInfo*)inputBuddyBuffer
248  physicalOrientation:(int)physicalOrientation
249  inputVideoResolution:(NvsEffectVideoResolution *)inputVideoResolution
250  outputTexId:(int)outputTexId
251  timestamp:(int64_t)timestamp
252  flags:(NvsRenderFlag)flags;
253 
280 - (NvsEffectCoreError)renderEffects:(NSArray<NvsEffect *>*)effects
281  inputImage:(CVPixelBufferRef)inputImage
282  displayRotation:(int)displayRotation
283  isFlipHorizontally:(BOOL)isFlip
284  physicalOrientation:(int)physicalOrientation
285  outputTexId:(int)outputTexId
286  timestamp:(int64_t)timestamp
287  flags:(NvsRenderFlag)flags;
288 
318 - (NvsEffectCoreError)renderEffect:(NvsEffect *)effect
319  inputImage:(CVPixelBufferRef)inputImage
320  displayRotation:(int)rotation
321  isFlipHorizontally:(BOOL)isFlip
322  timestamp:(int64_t)timestamp
323  flags:(NvsRenderFlag)flags
324  outputFrameFormat:(NvsEffectVideoFramePixelFormat)format
325  outputFrameIsBT601:(BOOL)is601
326  outputImage:(CVPixelBufferRef*)ouputImage;
327 
357 - (NvsEffectCoreError)renderEffects:(NSArray<NvsEffect *>*)effects
358  inputImage:(CVPixelBufferRef)inputImage
359  displayRotation:(int)rotation
360  isFlipHorizontally:(BOOL)isFlip
361  timestamp:(int64_t)timestamp
362  flags:(NvsRenderFlag)flags
363  outputFrameFormat:(NvsEffectVideoFramePixelFormat)ouputFrameformat
364  outputFrameIsBT601:(BOOL)is601
365  outputImage:(CVPixelBufferRef*)ouputImage;
366 
386 - (NvsEffectCoreError)renderEffects:(NSArray<NvsEffect *>*)effects
387  inputImage:(CVPixelBufferRef)inputImage
388  outputImage:(CVPixelBufferRef*)ouputImage
389  options:(NSDictionary *)options;
390 
408 - (NvsEffectCoreError)renderEffects:(NSArray<NvsEffect *>*)effects
409  inputImage:(CVPixelBufferRef)inputImage
410  options:(NSDictionary *)options;
411 
435 - (NvsEffectCoreError)renderEffect:(NvsEffect *)effect
436  inputTexIds:(NSArray*)inputTextures
437  inputVideoResolution:(NvsEffectVideoResolution *)inputVideoResolution
438  outputTexId:(int)outputTexId
439  timestamp:(int64_t)timestamp
440  flags:(NvsRenderFlag)flags;
441 
465 - (NvsEffectCoreError)calcEffectOutputSize:(NvsEffect *)effect
466  inputTexs:(NvsEffectGPUTexture*)inputTextureArray
467  intputTexCount:(int)texArrayCount
468  expectVideoResolution:(NvsEffectVideoResolution *)videoResolution
469  outputTex:(NvsEffectGPUTextureInfo*)outputTexInfo
470  timestamp:(int64_t)timestamp
471  flags:(NvsRenderFlag)flags;
472 
494 - (NvsEffectCoreError)renderVariantSizeEffect:(NvsEffect *)effect
495  inputTexs:(NvsEffectGPUTexture*)inputTextureArray
496  intputTexSize:(int)texArrayCount
497  outputTex:(NvsEffectGPUTexture*)outputTex
498  timestamp:(int64_t)timestamp
499  flags:(NvsRenderFlag)flags;
500 
526 - (NvsEffectCoreError)renderEffects:(NSArray<NvsEffect *>*)effects
527  inputTex:(NvsEffectGPUTexture *)inputTex
528  inputBuddyBuffer:(const NvsEffectVideoFrameInfoExt*)inputBuddyBuffer
529  physicalOrientation:(int)physicalOrientation
530  outputTex:(NvsEffectGPUTexture *)outputTex
531  timestamp:(int64_t)timestamp
532  flags:(NvsRenderFlag)flags;
533 
543 - (void)clearEffectResources:(NvsEffect *)effect;
544 
552 - (void)clearCacheResources;
553 
569 -(NvsEffectCoreError)uploadPixelBufferToTexture:(CVPixelBufferRef)frameBuffer displayRotation:(int)rotation horizontalFlip:(BOOL)flip outputTexId:(int)outputTexId;
570 
586 -(NvsEffectCoreError)uploadPixelBufferToTexture:(CVPixelBufferRef)frameBuffer horizontalFlip:(BOOL)flip outputTexId:(int)outputTexId;
587 
603 -(NvsEffectCoreError)uploadPixelBufferToTexture:(CVPixelBufferRef)frameBuffer displayRotation:(int)rotation horizontalFlip:(BOOL)flip outputTex:(NvsEffectGPUTexture *)outputTex;
604 
624 -(NvsEffectCoreError)downloadPixelBufferFromTexture:(int)inputTexId
625  inputVideoResolution:(NvsEffectVideoResolution *)inputVideoResolution
626  outputFrameFormat:(NvsEffectVideoFramePixelFormat)format
627  isBT601:(BOOL)is601
628  outputFrame:(CVPixelBufferRef*)frameBuffer;
629 
630 @end
NvsEffectCoreError
NvsEffectCoreError
Definition: NvsEffectRenderCore.h:22
NvsEffectGpuVideoFrameFormat
NvsEffectGpuVideoFrameFormat
视频帧像素格式
Definition: NvsEffectCommonDef.h:100
NvsEffectVideoFrameColorPrimaries_Bt709
@ NvsEffectVideoFrameColorPrimaries_Bt709
RGB color space BT.709 standardized as Rec. ITU-R BT.709-5.
Definition: NvsEffectCommonDef.h:154
NvsEffectCoreError_Unknown
@ NvsEffectCoreError_Unknown
Definition: NvsEffectRenderCore.h:24
NvsRenderFlag
NvsRenderFlag
Definition: NvsEffectRenderCore.h:39
-[NvsEffectRenderCore initialize]
BOOL initialize()
初始化
NvsEffectCoreError_InvalidPixelFormat
@ NvsEffectCoreError_InvalidPixelFormat
Definition: NvsEffectRenderCore.h:26
NvsEffectGPUTexture::colorTransfer
NvsEffectVideoFrameColorTransfer colorTransfer
Definition: NvsEffectRenderCore.h:76
NvsInitializeFlags
NvsInitializeFlags
Definition: NvsEffectRenderCore.h:30
NvsRenderFlags_InputTextureIsFlipHorizontally
@ NvsRenderFlags_InputTextureIsFlipHorizontally
Definition: NvsEffectRenderCore.h:42
NvEffectGPUTextureInfoMake
static NvsEffectGPUTextureInfo NvEffectGPUTextureInfoMake(int w, int h)
Definition: NvsEffectRenderCore.h:55
NvsEffectRational
比例值
Definition: NvsEffectCommonDef.h:28
NvsEffectGPUTextureInfo
Definition: NvsEffectRenderCore.h:46
NvsEffectGPUTextureInfo::imagePar
NvsEffectRational imagePar
Definition: NvsEffectRenderCore.h:51
NvsEffectGPUTexture::colorPrimaries
NvsEffectVideoFrameColorPrimaries colorPrimaries
Definition: NvsEffectRenderCore.h:75
NvsEffectCoreError_InvalidTexture
@ NvsEffectCoreError_InvalidTexture
Definition: NvsEffectRenderCore.h:25
NvsEffectVideoFramePixelFormat
NvsEffectVideoFramePixelFormat
视频帧像素格式
Definition: NvsEffectCommonDef.h:86
NvsRenderFlag_NoFlag
@ NvsRenderFlag_NoFlag
Definition: NvsEffectRenderCore.h:40
NvsEffectVideoFrameColorTransfer
NvsEffectVideoFrameColorTransfer
Definition: NvsEffectCommonDef.h:134
NvsEffectCoreError_NoError
@ NvsEffectCoreError_NoError
Definition: NvsEffectRenderCore.h:23
NvsInitializeFlag_SUPPORT_4K
@ NvsInitializeFlag_SUPPORT_4K
Definition: NvsEffectRenderCore.h:34
NvsEffectRational::den
int den
分母
Definition: NvsEffectCommonDef.h:30
NvsEffectVideoFrameInfo
视频帧信息
Definition: NvsEffectCommonDef.h:169
NvEffectGPUTextureMake
static NvsEffectGPUTexture NvEffectGPUTextureMake(NvsEffectGPUTextureInfo info, int texId, NvsEffectGpuVideoFrameFormat format)
Definition: NvsEffectRenderCore.h:79
-[NvsEffectRenderCore clearCacheResources]
void clearCacheResources()
清除缓存资源
NvsEffectGPUTexture::texFormat
NvsEffectGpuVideoFrameFormat texFormat
Definition: NvsEffectRenderCore.h:74
-[NvsEffectRenderCore cleanUp]
void cleanUp()
清除NvsEffectRenderCore中的所有资源
NvsEffectGPUTexture::isUpSideDown
bool isUpSideDown
Definition: NvsEffectRenderCore.h:72
NvsEffectVideoFrameColorTransfer_sRGB
@ NvsEffectVideoFrameColorTransfer_sRGB
Definition: NvsEffectCommonDef.h:135
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
NvsEffectVideoFrameColorPrimaries
NvsEffectVideoFrameColorPrimaries
Definition: NvsEffectCommonDef.h:153
NvsEffectCoreError_NotInitialized
@ NvsEffectCoreError_NotInitialized
Definition: NvsEffectRenderCore.h:27
NVS_EXPORT
#define NVS_EXPORT
Definition: NvsCommonDef.h:20
NvsEffectGPUTexture
Definition: NvsEffectRenderCore.h:70
NvsEffect
特效
Definition: NvsEffect.h:46
NvsEffectGPUTexture::texId
int texId
Definition: NvsEffectRenderCore.h:71
NvsEffectVideoResolution
视频解析度
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
NvsEffectVideoFrameInfoExt
视频帧扩展信息
Definition: NvsEffectCommonDef.h:189
NvsEffectGPUTextureInfo::centerPointY
int centerPointY
Definition: NvsEffectRenderCore.h:50
NvsInitializeFlag_CreateGLContextIfNeed
@ NvsInitializeFlag_CreateGLContextIfNeed
Definition: NvsEffectRenderCore.h:33
NvsEffectRenderCore
特效渲染类
Definition: NvsEffectRenderCore.h:123
NvsRenderFlag_IsUpsideDownTexture
@ NvsRenderFlag_IsUpsideDownTexture
Definition: NvsEffectRenderCore.h:41
NvsInitializeFlag_InSingleGLThread
@ NvsInitializeFlag_InSingleGLThread
Definition: NvsEffectRenderCore.h:32
NvsEffectGPUTexture::texInfo
NvsEffectGPUTextureInfo texInfo
Definition: NvsEffectRenderCore.h:73
NvsInitializeFlag_SUPPORT_16K
@ NvsInitializeFlag_SUPPORT_16K
Definition: NvsEffectRenderCore.h:36
NvsEffectRational::num
int num
分子
Definition: NvsEffectCommonDef.h:29