美摄SDK For iOS  3.7.2
构造函数 | 所有成员列表
NvsEffectRenderCore类 参考

特效渲染类 更多...

#import <NvsEffectRenderCore.h>

类 NvsEffectRenderCore 继承关系图:

构造函数

(BOOL) - initialize
 初始化 更多...
 
(BOOL) - initializeWithFlags:
 初始化 如果标志为NvsInitializeFlag_CreateGLContextIfNeed,如果当前的线程没有GLContext,SDK内部会创建GLContext,这个renderCore中的所有API,需要在这个线程中调用 更多...
 
(void) - cleanUp
 清除NvsEffectRenderCore中的所有资源 更多...
 
(NvsEffectCoreError- renderEffect:inputTexId:inputVideoResolution:outputTexId:timestamp:flags:
 渲染特效 更多...
 
(NvsEffectCoreError- renderEffect:inputTexId:inputBuddyBuffer:physicalOrientation:inputVideoResolution:outputTexId:timestamp:flags:
 渲染特效 更多...
 
(NvsEffectCoreError- renderEffects:inputTexId:inputBuddyBuffer:physicalOrientation:inputVideoResolution:outputTexId:timestamp:flags:
 渲染特效 更多...
 
(NvsEffectCoreError- renderEffects:inputImage:displayRotation:isFlipHorizontally:physicalOrientation:outputTexId:timestamp:flags:
 渲染特效 【特别注意】必须和initialize在同一个线程中使用。如果使用的线程没有OpenGL环境,在调用initializeWithFlags必须带有NvsInitializeFlag_CreateGLContextIfNeed 更多...
 
(NvsEffectCoreError- renderEffect:inputImage:displayRotation:isFlipHorizontally:timestamp:flags:outputFrameFormat:outputFrameIsBT601:outputImage:
 渲染特效 【特别注意】必须和initialize在同一个线程中使用。如果使用的线程没有OpenGL环境,在调用initializeWithFlags必须带有NvsInitializeFlag_CreateGLContextIfNeed 更多...
 
(NvsEffectCoreError- renderEffects:inputImage:displayRotation:isFlipHorizontally:timestamp:flags:outputFrameFormat:outputFrameIsBT601:outputImage:
 渲染特效 【特别注意】必须和initialize在同一个线程中使用。如果使用的线程没有OpenGL环境,在调用initializeWithFlags必须带有NvsInitializeFlag_CreateGLContextIfNeed 更多...
 
(NvsEffectCoreError- renderEffects:inputImage:outputImage:options:
 渲染特效 【特别注意】必须和initialize在同一个线程中使用。如果使用的线程没有OpenGL环境,在调用initializeWithFlags必须带有NvsInitializeFlag_CreateGLContextIfNeed 更多...
 
(NvsEffectCoreError- renderEffect:inputTexIds:inputVideoResolution:outputTexId:timestamp:flags:
 渲染特效 渲染需要多个输入的Texture的特效,多个输入texture的大小都必须一致 更多...
 
(void) - clearEffectResources:
 清除特效中携带的OPenGL资源 更多...
 
(void) - clearCacheResources
 清除缓存资源 更多...
 
(NvsEffectCoreError- uploadPixelBufferToTexture:displayRotation:horizontalFlip:outputTexId:
 上传buffer到GPU纹理 更多...
 
(NvsEffectCoreError- uploadPixelBufferToTexture:horizontalFlip:outputTexId:
 上传buffer到GPU纹理 更多...
 
(NvsEffectCoreError- downloadPixelBufferFromTexture:inputVideoResolution:outputFrameFormat:isBT601:outputFrame:
 从GPU纹理下传到buffer 更多...
 

详细描述

特效渲染类

特效渲染类整个SDK的特效渲染入口。

警告
NvsEffectRenderCore类中,所有public API都必须在OpenGL线程使用!!!

函数文档

◆ cleanUp

- (void) cleanUp

清除NvsEffectRenderCore中的所有资源

自从
2.14.0

◆ clearCacheResources

- (void) clearCacheResources

清除缓存资源

自从
2.3.0

◆ clearEffectResources:

- (void) clearEffectResources: (NvsEffect *)  effect

清除特效中携带的OPenGL资源

参数
effect要清除的特效对象
自从
2.3.0

◆ downloadPixelBufferFromTexture:inputVideoResolution:outputFrameFormat:isBT601:outputFrame:

- (NvsEffectCoreError) downloadPixelBufferFromTexture: (int)  inputTexId
inputVideoResolution: (NvsEffectVideoResolution *)  inputVideoResolution
outputFrameFormat: (NvsEffectVideoFramePixelFormat format
isBT601: (BOOL)  is601
outputFrame: (CVPixelBufferRef *)  frameBuffer 

从GPU纹理下传到buffer

参数
inputTexId输入纹理
inputVideoResolution输入纹理的视频解析度
outputFrameFormat返回下传的buffer格式(BGRA or YUV420 format)
isBT601是否按照BT.601的标准转化,如果返回下传的buffer格式为YUV,这个参数有意义
frameBuffer返回下传的buffer(BGRA or YUV420 format)
返回
返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
自从
2.12.0

◆ initialize

- (BOOL) initialize

初始化

返回
成功返回YES,失败返回NO
自从
2.3.0

◆ initializeWithFlags:

- (BOOL) initializeWithFlags: (int)  falgs

初始化 如果标志为NvsInitializeFlag_CreateGLContextIfNeed,如果当前的线程没有GLContext,SDK内部会创建GLContext,这个renderCore中的所有API,需要在这个线程中调用

参数
falgs参考NvsInitializeFlags
返回
成功返回YES,失败返回NO
自从
2.3.0

◆ renderEffect:inputImage:displayRotation:isFlipHorizontally:timestamp:flags:outputFrameFormat:outputFrameIsBT601:outputImage:

- (NvsEffectCoreError) renderEffect: (NvsEffect *)  effect
inputImage: (CVPixelBufferRef)  inputImage
displayRotation: (int)  rotation
isFlipHorizontally: (BOOL)  isFlip
timestamp: (int64_t)  timestamp
flags: (NvsRenderFlag flags
outputFrameFormat: (NvsEffectVideoFramePixelFormat format
outputFrameIsBT601: (BOOL)  is601
outputImage: (CVPixelBufferRef *)  ouputImage 

渲染特效 【特别注意】必须和initialize在同一个线程中使用。如果使用的线程没有OpenGL环境,在调用initializeWithFlags必须带有NvsInitializeFlag_CreateGLContextIfNeed

参数
effect要渲染的特效对象
inputImage输入图像
rotation输入图像旋转角度,只能是0, 90, 180, 270
isFlip是否需要横向翻转
timestamp当前渲染的时间戳
flags暂时为0
format输出图像格式请参数 NvsEffectVideoFramePixelFormat
is601如果输出图像是Nv12或者YUV420P格式才有意义
ouputImage输出图像数据
返回
返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
自从
2.14.0

◆ renderEffect:inputTexId:inputBuddyBuffer:physicalOrientation:inputVideoResolution:outputTexId:timestamp:flags:

- (NvsEffectCoreError) renderEffect: (NvsEffect *)  effect
inputTexId: (int)  inputTexId
inputBuddyBuffer: (const NvsEffectVideoFrameInfo *)  inputBuddyBuffer
physicalOrientation: (int)  physicalOrientation
inputVideoResolution: (NvsEffectVideoResolution *)  inputVideoResolution
outputTexId: (int)  outputTexId
timestamp: (int64_t)  timestamp
flags: (NvsRenderFlag flags 

渲染特效

参数
effect要渲染的特效对象
inputTexId输入纹理
inputBuddyBuffer输入纹理的伴随buffer(支持NV12或BGRA或YUV420格式)
physicalOrientation设备方向
inputVideoResolution输入纹理的视频解析度
outputTexId输出纹理
timestamp当前渲染的时间戳
flags暂时为0
返回
返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
自从
2.5.0

◆ renderEffect:inputTexId:inputVideoResolution:outputTexId:timestamp:flags:

- (NvsEffectCoreError) renderEffect: (NvsEffect *)  effect
inputTexId: (int)  inputTexId
inputVideoResolution: (NvsEffectVideoResolution *)  inputVideoResolution
outputTexId: (int)  outputTexId
timestamp: (int64_t)  timestamp
flags: (NvsRenderFlag flags 

渲染特效

参数
effect要渲染的特效对象
inputTexId输入纹理
inputVideoResolution输入纹理的视频解析度
outputTexId输出纹理
timestamp当前渲染的时间戳
flags暂时为0
返回
返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
自从
2.3.0

◆ renderEffect:inputTexIds:inputVideoResolution:outputTexId:timestamp:flags:

- (NvsEffectCoreError) renderEffect: (NvsEffect *)  effect
inputTexIds: (NSArray *)  inputTextures
inputVideoResolution: (NvsEffectVideoResolution *)  inputVideoResolution
outputTexId: (int)  outputTexId
timestamp: (int64_t)  timestamp
flags: (NvsRenderFlag flags 

渲染特效 渲染需要多个输入的Texture的特效,多个输入texture的大小都必须一致

参数
effect要渲染的特效对象
inputTextures输入图像组
inputVideoResolution输入纹理的视频解析度
outputTexId输出纹理
timestamp当前渲染的时间戳
flags暂时为0
返回
返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
自从
2.14.0

◆ renderEffects:inputImage:displayRotation:isFlipHorizontally:physicalOrientation:outputTexId:timestamp:flags:

- (NvsEffectCoreError) renderEffects: (NSArray< NvsEffect * > *)  effects
inputImage: (CVPixelBufferRef)  inputImage
displayRotation: (int)  displayRotation
isFlipHorizontally: (BOOL)  isFlip
physicalOrientation: (int)  physicalOrientation
outputTexId: (int)  outputTexId
timestamp: (int64_t)  timestamp
flags: (NvsRenderFlag flags 

渲染特效 【特别注意】必须和initialize在同一个线程中使用。如果使用的线程没有OpenGL环境,在调用initializeWithFlags必须带有NvsInitializeFlag_CreateGLContextIfNeed

参数
effects要渲染的特效对象
inputImage输入图像
displayRotation输入图像旋转角度,只能是0, 90, 180, 270
isFlip是否需要横向翻转
physicalOrientation设备方向
outputTexId输出纹理
timestamp当前渲染的时间戳
flags暂时为0
返回
返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
自从
3.7.1

◆ renderEffects:inputImage:displayRotation:isFlipHorizontally:timestamp:flags:outputFrameFormat:outputFrameIsBT601:outputImage:

- (NvsEffectCoreError) renderEffects: (NSArray< NvsEffect * > *)  effects
inputImage: (CVPixelBufferRef)  inputImage
displayRotation: (int)  rotation
isFlipHorizontally: (BOOL)  isFlip
timestamp: (int64_t)  timestamp
flags: (NvsRenderFlag flags
outputFrameFormat: (NvsEffectVideoFramePixelFormat ouputFrameformat
outputFrameIsBT601: (BOOL)  is601
outputImage: (CVPixelBufferRef *)  ouputImage 

渲染特效 【特别注意】必须和initialize在同一个线程中使用。如果使用的线程没有OpenGL环境,在调用initializeWithFlags必须带有NvsInitializeFlag_CreateGLContextIfNeed

参数
effects要渲染的特效对象
inputImage输入图像
rotation输入图像旋转角度,只能是0, 90, 180, 270
isFlip是否需要横向翻转
timestamp当前渲染的时间戳
flags暂时为0
format输出图像格式请参数 NvsEffectVideoFramePixelFormat
is601如果输出图像是Nv12或者YUV420P格式才有意义
ouputImage输出图像数据
返回
返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
自从
2.14.0

◆ renderEffects:inputImage:outputImage:options:

- (NvsEffectCoreError) renderEffects: (NSArray< NvsEffect * > *)  effects
inputImage: (CVPixelBufferRef)  inputImage
outputImage: (CVPixelBufferRef *)  ouputImage
options: (NSMutableDictionary *)  options 

渲染特效 【特别注意】必须和initialize在同一个线程中使用。如果使用的线程没有OpenGL环境,在调用initializeWithFlags必须带有NvsInitializeFlag_CreateGLContextIfNeed

参数
effects要渲染的特效对象
inputImage输入图像
ouputImage输出图像数据
options渲染参数,详见:渲染参数
返回
返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
自从
2.14.0

◆ renderEffects:inputTexId:inputBuddyBuffer:physicalOrientation:inputVideoResolution:outputTexId:timestamp:flags:

- (NvsEffectCoreError) renderEffects: (NSArray< NvsEffect * > *)  effects
inputTexId: (int)  inputTexId
inputBuddyBuffer: (const NvsEffectVideoFrameInfo *)  inputBuddyBuffer
physicalOrientation: (int)  physicalOrientation
inputVideoResolution: (NvsEffectVideoResolution *)  inputVideoResolution
outputTexId: (int)  outputTexId
timestamp: (int64_t)  timestamp
flags: (NvsRenderFlag flags 

渲染特效

参数
effects要渲染的特效对象
inputTexId输入纹理
inputBuddyBuffer输入纹理的伴随buffer(支持NV12或BGRA或YUV420格式)
physicalOrientation设备方向
inputVideoResolution输入纹理的视频解析度
outputTexId输出纹理
timestamp当前渲染的时间戳
flags暂时为0
返回
返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
自从
3.7.0

◆ uploadPixelBufferToTexture:displayRotation:horizontalFlip:outputTexId:

- (NvsEffectCoreError) uploadPixelBufferToTexture: (CVPixelBufferRef)  frameBuffer
displayRotation: (int)  rotation
horizontalFlip: (BOOL)  flip
outputTexId: (int)  outputTexId 

上传buffer到GPU纹理

参数
frameBuffer需要上传buffer(支持NV12)
horizontalFlip是否横向反转
outputTexId输出纹理
返回
返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
自从
2.12.0

◆ uploadPixelBufferToTexture:horizontalFlip:outputTexId:

- (NvsEffectCoreError) uploadPixelBufferToTexture: (CVPixelBufferRef)  frameBuffer
horizontalFlip: (BOOL)  flip
outputTexId: (int)  outputTexId 

上传buffer到GPU纹理

参数
frameBuffer需要上传buffer(支持NV12)
horizontalFlip是否横向反转
outputTexId输出纹理
返回
返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
自从
2.12.0

该类的文档由以下文件生成: