美摄SDK For iOS  3.10.1
构造函数 | 所有成员列表
<NvsCustomVideoFxRenderer>协议 参考

自定义视频特效渲染器接口 更多...

#import <NvsCustomVideoFx.h>

类 <NvsCustomVideoFxRenderer> 继承关系图:

构造函数

(void) - didInit
 美摄SDK对自定义视频特效调用此方法以便让用户初始化一些资源 更多...
 
(void) - didCleanup
 美摄SDK对自定义视频特效调用此方法以便让用户清理资源 更多...
 
(void) - didPreloadResources
 美摄SDK对自定义视频特效调用此方法以便让进行一些资源预处理 更多...
 
(void) - didRender:renderHelper:
 美摄SDK对自定义视频特效调用此方法以便对输入视频帧进行特效处理 更多...
 
(void) - didClearCacheResources
 美摄SDK对自定义视频特效调用此方法以便让进行资源清理。 更多...
 

详细描述

自定义视频特效渲染器接口

警告
NvsCustomVideoFxRenderer类中,所有public API都在UI线程使用!!!

函数文档

◆ didCleanup

- (void) didCleanup

美摄SDK对自定义视频特效调用此方法以便让用户清理资源

这个方法在自定义视频特效的生命周期里最多只会被调用一次,而且一定会在didInit之后调用,如果didInit没有被调用则也不会调用该方法。 这个方法是在美摄SDK引擎的特效渲染线程里调用,并且当前线程已经绑定了一个EAGLContext。

◆ didClearCacheResources

- (void) didClearCacheResources
optional

美摄SDK对自定义视频特效调用此方法以便让进行资源清理。

当用户调用streamingContext中的clearCacheResources方法时,该回调函数被调用。 这个方法是在美摄SDK引擎的特效渲染线程里调用,并且当前线程已经绑定了一个EAGLContext。

◆ didInit

- (void) didInit

美摄SDK对自定义视频特效调用此方法以便让用户初始化一些资源

这个方法在自定义视频特效的生命周期里最多只会被调用一次。如果该特效从未被真正使用过,则这个方法将不会被调用。 这个方法是在美摄SDK引擎的特效渲染线程里调用,并且当前线程已经绑定了一个EAGLContext。

◆ didPreloadResources

- (void) didPreloadResources

美摄SDK对自定义视频特效调用此方法以便让进行一些资源预处理

这个方法在自定义视频特效的生命周期里会被多次调用,而且一定会在didInit之后调用,一般来讲是在每次播放时间线之前调用。 一般来讲用户需要在此函数里面进行诸如构建shader program的工作。 这个方法是在美摄SDK引擎的特效渲染线程里调用,并且当前线程已经绑定了一个EAGLContext。

◆ didRender:renderHelper:

- (void) didRender: (struct NvsCustomVideoFxRenderContext *)  renderContext
renderHelper: (NvsCustomVideoFxRenderHelper *)  renderHelper 

美摄SDK对自定义视频特效调用此方法以便对输入视频帧进行特效处理

用户实现这个方法对输入视频帧进行处理并将结果写入到输出视频帧中去以便完成特效渲染。 这个方法是在美摄SDK引擎的特效渲染线程里调用,并且当前线程已经绑定了一个EGL Context。 当前线程已经绑定了一个FBO,用户只需在相应的attachment point上面绑定color buffer, depth buffer...即可 注意:请务必在渲染完成后,将OpenGL ES context的状态复位到默认状态,比如用户渲染过程中调用了glEnable(GL_BLEND), 则渲染完成后一定要调用glDisable(GL_BLEND),因为默认状态下blend是关闭的。关于OpenGL ES context的默认状态 请参考https://www.khronos.org/opengles/ 警告:如果渲染完成后,没有将OpenGL ES context的状态复位到默认状态,则可能导致后续特效渲染发生错误!

参数
renderContext特效渲染上下文对象
renderHelper特效渲染辅助方法接口,注意用户不要保存这个接口,只能在didRender里面使用它!

该协议的文档由以下文件生成: