public class TuSdkVideoSurfaceEncoder extends java.lang.Object implements TuSdkEncodeSurface
构造器和说明 |
---|
TuSdkVideoSurfaceEncoder() |
限定符和类型 | 方法和说明 |
---|---|
void |
disconnect()
断开外部滤镜桥接器连接
|
void |
duplicateFrameReadyInGLThread(long frameTime)
在GL线程重复渲染图像 必须在GL线程调用
|
protected void |
finalize() |
void |
flush() |
TuSdkFilterBridge |
getFilterBridge()
滤镜桥接对象用于外部处理过程
|
TuSdkEncodecOperation |
getOperation()
视频编码器
|
org.lasque.tusdk.core.struct.TuSdkSize |
getOutputSize()
输出屏幕宽高
|
org.lasque.tusdk.core.seles.egl.SelesVirtualDisplay |
getVirtualDisplay() |
void |
newFrameReadyInGLThread(long nsecs)
在GL线程渲染图像 必须在GL线程调用
|
boolean |
prepare(android.opengl.EGLContext sharedContext,
boolean disableCompatibility)
准备初始化
如果有共享 EGLContext 将创建异步环境
|
void |
release()
释放资源
|
boolean |
requestEncode(long nsecs)
请求编码可以开始接收数据进行编码
|
void |
requestKeyFrame()
Request that the encoder produce a sync frame "soon".
|
void |
requestRender(long frameTimeNs)
request Render
|
void |
setCanvasRect(android.graphics.RectF canvasRect)
画布绘制区域(百分比) eg: 长宽为1时即为全屏绘制,否则按输入方位留边
|
void |
setFilterBridge(TuSdkFilterBridge bridge)
滤镜桥接对象用于外部处理过程
|
void |
setListener(TuSdkVideoSurfaceEncoderListener listener)
视频Surface编码器监听接口
|
void |
setMediaSync(TuSdkVideoEncodecSync mediaSync)
媒体同步器
|
int |
setOutputFormat(android.media.MediaFormat videoFormat)
输出视频格式
将直接创建编码器对象
|
void |
setOutputOrientation(ImageOrientation orientation)
设置输出视频方向, 需要设置编码器前就确定正确输出方向的宽高
|
void |
setPause(boolean isPause)
设置暂停编码
|
void |
setSurfaceRender(TuSdkSurfaceRender surfaceRender)
外部渲染接口
|
void |
setWatermark(org.lasque.tusdk.core.seles.sources.SelesWatermark watermark)
需要绘制的水印对象 这里必须为forDisplay
|
void |
signalEndOfInputStream()
Signals end-of-stream on input.
|
boolean |
swapBuffers(long nsecs)
将更新的数据刷新到 输出Surface
|
public org.lasque.tusdk.core.seles.egl.SelesVirtualDisplay getVirtualDisplay()
public void setOutputOrientation(ImageOrientation orientation)
public void setCanvasRect(android.graphics.RectF canvasRect)
public void setListener(TuSdkVideoSurfaceEncoderListener listener)
public int setOutputFormat(android.media.MediaFormat videoFormat)
videoFormat
- 视频格式public void setMediaSync(TuSdkVideoEncodecSync mediaSync)
public void setSurfaceRender(TuSdkSurfaceRender surfaceRender)
public TuSdkFilterBridge getFilterBridge()
public void setFilterBridge(TuSdkFilterBridge bridge)
public void disconnect()
public TuSdkEncodecOperation getOperation()
public org.lasque.tusdk.core.struct.TuSdkSize getOutputSize()
public void release()
protected void finalize() throws java.lang.Throwable
finalize
在类中 java.lang.Object
java.lang.Throwable
public void requestKeyFrame()
requestKeyFrame
在接口中 TuSdkEncodeSurface
public void signalEndOfInputStream()
MediaCodec.CodecException
- upon codec error.public void requestRender(long frameTimeNs)
frameTimeNs
- 时间戳(纳秒)public boolean requestEncode(long nsecs)
nsecs
- expressed in nanosecondspublic void newFrameReadyInGLThread(long nsecs)
newFrameReadyInGLThread
在接口中 TuSdkEncodeSurface
nsecs
- 时间戳(纳秒)public void duplicateFrameReadyInGLThread(long frameTime)
duplicateFrameReadyInGLThread
在接口中 TuSdkEncodeSurface
frameTime
- 时间戳(纳秒)public boolean swapBuffers(long nsecs)
swapBuffers
在接口中 TuSdkEncodeSurface
nsecs
- expressed in nanosecondspublic void setPause(boolean isPause)
setPause
在接口中 TuSdkEncodeSurface
public void setWatermark(org.lasque.tusdk.core.seles.sources.SelesWatermark watermark)
TuSdkEncodeSurface
setWatermark
在接口中 TuSdkEncodeSurface
public void flush()
flush
在接口中 TuSdkEncodeSurface
public boolean prepare(android.opengl.EGLContext sharedContext, boolean disableCompatibility)
sharedContext
- 共享 EGL contextdisableCompatibility
- 关闭兼容模式 [兼容模式是为了解决小米Note编码器转码启动错误, 录制时可以关闭]