特效渲染类
更多...
#import <NvsEffectRenderCore.h>
特效渲染类
特效渲染类整个SDK的特效渲染入口。
- 警告
- NvsEffectRenderCore类中,所有public API都必须在OpenGL线程使用!!!
◆ calcEffectOutputSize:inputTexs:intputTexCount:expectVideoResolution:outputTex:timestamp:flags:
计算变画幅特效输出大小
- 参数
-
| effect | 要渲染的特效对象 |
| inputTextureArray | 输入图像组 |
| texArrayCount | 输入纹理的数组数量 |
| videoResolution | 期望输出的视频解析度 |
| outputTex | 输出纹理 |
| timestamp | 当前渲染的时间戳 |
| flags | 暂时为0 |
- 返回
- 返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
- 自从
- 3.9.1
◆ cleanUp
清除NvsEffectRenderCore中的所有资源
- 自从
- 2.14.0
◆ clearCacheResources
| - (void) clearCacheResources |
|
|
|
◆ clearEffectResources:
| - (void) clearEffectResources: |
|
(NvsEffect *) |
effect |
|
清除特效中携带的OPenGL资源
- 参数
-
- 自从
- 2.3.0
◆ downloadPixelBufferFromTexture:inputVideoResolution:outputFrameFormat:isBT601:outputFrame:
从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
初始化
- 返回
- 成功返回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:
渲染特效
- 参数
-
| effect | 要渲染的特效对象 |
| inputTexId | 输入纹理 |
| inputBuddyBuffer | 输入纹理的伴随buffer(支持NV12或BGRA或YUV420格式) |
| physicalOrientation | 设备方向 |
| inputVideoResolution | 输入纹理的视频解析度 |
| outputTexId | 输出纹理 |
| timestamp | 当前渲染的时间戳 |
| flags | 暂时为0 |
- 返回
- 返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
- 自从
- 2.5.0
◆ renderEffect:inputTexId:inputVideoResolution:outputTexId:timestamp:flags:
渲染特效
- 参数
-
| effect | 要渲染的特效对象 |
| inputTexId | 输入纹理 |
| inputVideoResolution | 输入纹理的视频解析度 |
| outputTexId | 输出纹理 |
| timestamp | 当前渲染的时间戳 |
| flags | 暂时为0 |
- 返回
- 返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
- 自从
- 2.3.0
◆ renderEffect:inputTexIds:inputVideoResolution:outputTexId:timestamp: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:options:
| - (NvsEffectCoreError) renderEffects: |
|
(NSArray< NvsEffect * > *) |
effects |
| inputImage: |
|
(CVPixelBufferRef) |
inputImage |
| options: |
|
(NSDictionary *) |
options |
|
|
| |
渲染特效 【特别注意】渲染结果覆盖到输入图像
- 参数
-
| effects | 要渲染的特效对象 |
| inputImage | 输入图像 |
| options | 渲染参数,详见:渲染参数 |
- 返回
- 返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
- 自从
- 3.8.1
◆ renderEffects:inputImage:outputImage:options:
| - (NvsEffectCoreError) renderEffects: |
|
(NSArray< NvsEffect * > *) |
effects |
| inputImage: |
|
(CVPixelBufferRef) |
inputImage |
| outputImage: |
|
(CVPixelBufferRef *) |
ouputImage |
| options: |
|
(NSDictionary *) |
options |
|
|
| |
渲染特效 【特别注意】必须和initialize在同一个线程中使用。如果使用的线程没有OpenGL环境,在调用initializeWithFlags必须带有NvsInitializeFlag_CreateGLContextIfNeed
- 参数
-
| effects | 要渲染的特效对象 |
| inputImage | 输入图像 |
| ouputImage | 输出图像数据 |
| options | 渲染参数,详见:渲染参数 |
- 返回
- 返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
- 自从
- 2.14.0
◆ renderEffects:inputTex:inputBuddyBuffer:physicalOrientation:outputTex:timestamp:flags:
渲染特效
- 参数
-
| effects | 要渲染的特效对象 |
| inputTexId | 输入纹理 |
| inputBuddyBuffer | 输入纹理的伴随buffer(支持NV12或BGRA或YUV420格式) |
| physicalOrientation | 设备方向 |
| inputVideoResolution | 输入纹理的视频解析度 |
| outputTexId | 输出纹理 |
| timestamp | 当前渲染的时间戳 |
| flags | 暂时为0 |
- 返回
- 返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
- 自从
- 3.13.0
◆ renderEffects:inputTexId:inputBuddyBuffer:physicalOrientation:inputVideoResolution:outputTexId:timestamp:flags:
渲染特效
- 参数
-
| effects | 要渲染的特效对象 |
| inputTexId | 输入纹理 |
| inputBuddyBuffer | 输入纹理的伴随buffer(支持NV12或BGRA或YUV420格式) |
| physicalOrientation | 设备方向 |
| inputVideoResolution | 输入纹理的视频解析度 |
| outputTexId | 输出纹理 |
| timestamp | 当前渲染的时间戳 |
| flags | 暂时为0 |
- 返回
- 返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
- 自从
- 3.7.0
◆ renderVariantSizeEffect:inputTexs:intputTexSize:outputTex:timestamp:flags:
渲染变画幅特效
- 参数
-
| effect | 要渲染的特效对象 |
| inputTextureArray | 输入图像组 |
| texArrayCount | 输入纹理的数组数量 |
| outputTex | 输出纹理 |
| timestamp | 当前渲染的时间戳 |
| flags | 暂时为0 |
- 返回
- 返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
- 自从
- 3.9.1
◆ uploadPixelBufferToTexture:displayRotation:horizontalFlip:outputTex:
| - (NvsEffectCoreError) uploadPixelBufferToTexture: |
|
(CVPixelBufferRef) |
frameBuffer |
| displayRotation: |
|
(int) |
rotation |
| horizontalFlip: |
|
(BOOL) |
flip |
| outputTex: |
|
(NvsEffectGPUTexture *) |
outputTex |
|
|
| |
上传buffer到GPU纹理
- 参数
-
| frameBuffer | 需要上传buffer(支持NV12, P010) |
| horizontalFlip | 是否横向反转 |
| outputTexId | 输出纹理 |
- 返回
- 返回NvsEffectCoreError_NoError为成功,其他值都是错误,参考错误码定义
- 自从
- 3.13.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
该类的文档由以下文件生成: