public abstract class TuSdkVideoEncodecSyncBase extends java.lang.Object implements TuSdkVideoEncodecSync
限定符和类型 | 字段和说明 |
---|---|
protected long |
mFrameCounts
编码总帧数
|
protected long |
mFrameIntervalUs
两帧间隔时间
|
protected int |
mFrameRates
编码帧率
|
protected long |
mLastTimeUs
最后编码的视频时间戳 [微秒]
|
protected long |
mPreviousTimeUs
前一帧处理时间
|
protected boolean |
mReleased
是否已释放
|
protected java.lang.Object |
mSyncLock
同步锁
|
构造器和说明 |
---|
TuSdkVideoEncodecSyncBase() |
限定符和类型 | 方法和说明 |
---|---|
protected long |
calculateEncodeTimestampUs(int frameRates,
long count)
计算编码时间戳
|
void |
clearLocker()
清除同步锁
|
protected long |
getInputIntervalUs()
获取输入数据间隔时间 [微秒]
|
long |
getLastTimeUs()
最后编码的视频时间戳 [微秒]
|
boolean |
hadLockVideoTimestampUs(long timeUS)
是否锁定该时间戳
|
boolean |
hasLocked()
当前是否有锁
|
boolean |
isInterrupted()
是否中断等待
|
protected abstract boolean |
isLastDecodeFrame(long decodeUs)
是否为解码的最后一帧
|
boolean |
isVideoEncodeCompleted()
视频编码是否已完成
|
void |
lockVideoTimestampUs(long timeUS)
锁定视频时间戳
|
protected boolean |
needSkip(long decodeUs)
是否需要跳帧
|
void |
release()
释放同步器
|
protected void |
renderToEncodec(long encodeUs,
long decodeUs,
TuSdkRecordSurface receiver,
TuSdkEncodeSurface encoder)
渲染到编码器
|
void |
syncEncodecVideoInfo(TuSdkVideoInfo info)
同步视频编码器信息
|
void |
syncVideoEncodecCompleted()
同步视频编码已完成
|
void |
syncVideoEncodecDrawFrame(long timeNs,
boolean needCompate,
TuSdkRecordSurface receiver,
TuSdkEncodeSurface encoder)
同步视频输入帧
|
void |
syncVideoEncodecOutputBuffer(TuSdkMediaMuxer muxer,
int trackIndex,
java.nio.ByteBuffer byteBuf,
android.media.MediaCodec.BufferInfo bufferInfo)
同步视频编码后数据
|
void |
syncVideoEncodecUpdated(android.media.MediaCodec.BufferInfo bufferInfo)
同步视频编码完成一帧数据
|
void |
unlockVideoTimestampUs(long timeUS)
解锁视频时间戳
|
protected boolean mReleased
protected long mLastTimeUs
protected int mFrameRates
protected long mFrameCounts
protected long mPreviousTimeUs
protected long mFrameIntervalUs
protected final java.lang.Object mSyncLock
public boolean hasLocked()
public void clearLocker()
public void lockVideoTimestampUs(long timeUS)
public void unlockVideoTimestampUs(long timeUS)
public boolean hadLockVideoTimestampUs(long timeUS)
public long getLastTimeUs()
public boolean isInterrupted()
public boolean isVideoEncodeCompleted()
isVideoEncodeCompleted
在接口中 TuSdkVideoEncodecSync
public void release()
TuSdkMediaSync
release
在接口中 TuSdkMediaSync
public void syncEncodecVideoInfo(TuSdkVideoInfo info)
syncEncodecVideoInfo
在接口中 TuSdkVideoEncodecSync
public void syncVideoEncodecOutputBuffer(TuSdkMediaMuxer muxer, int trackIndex, java.nio.ByteBuffer byteBuf, android.media.MediaCodec.BufferInfo bufferInfo)
syncVideoEncodecOutputBuffer
在接口中 TuSdkVideoEncodecSync
muxer
- 媒体合成器接口byteBuf
- The encoded sample.trackIndex
- The track index for this sample.bufferInfo
- The buffer information related to this sample.public void syncVideoEncodecUpdated(android.media.MediaCodec.BufferInfo bufferInfo)
syncVideoEncodecUpdated
在接口中 TuSdkVideoEncodecSync
bufferInfo
- 数据信息public void syncVideoEncodecCompleted()
protected long calculateEncodeTimestampUs(int frameRates, long count)
frameRates
- 编码帧率 [12,15,20,24,30, ...]count
- 编码总帧数protected abstract boolean isLastDecodeFrame(long decodeUs)
protected long getInputIntervalUs()
protected boolean needSkip(long decodeUs)
public void syncVideoEncodecDrawFrame(long timeNs, boolean needCompate, TuSdkRecordSurface receiver, TuSdkEncodeSurface encoder)
timeNs
- 当前帧时间戳 [纳秒]needCompate
- 是否为兼容模式receiver
- 视频解码接口encoder
- 视频Surface编码器protected void renderToEncodec(long encodeUs, long decodeUs, TuSdkRecordSurface receiver, TuSdkEncodeSurface encoder)