public class BaseHardwareDecoder extends BaseDecoder
| Modifier and Type | Class and Description |
|---|---|
static interface |
BaseHardwareDecoder.OnDecoderSizeChangeListener |
static interface |
BaseHardwareDecoder.OnDecoderYUVListener |
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
isInited |
protected android.media.MediaCodec.BufferInfo |
mBufferInfo |
protected android.media.MediaCodec |
mDecoder |
protected android.media.MediaFormat |
mDecoderFormat |
protected java.nio.ByteBuffer[] |
mInputBuffers |
protected java.nio.ByteBuffer[] |
mOutputBuffers |
IllegalStateExceptionTAG, mCodecName, mCodecType, mDecodeHeight, mDecodeWidth| Constructor and Description |
|---|
BaseHardwareDecoder(int width,
int height,
java.lang.String codeName,
java.lang.String codecType) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
decoderHeaderChange(byte[] header,
int headerLen) |
long |
drainDecoder(byte[] data,
int dataLen,
boolean header,
long pts)
往已创建好的解码器推送数据
|
long |
drainDecoder(DecodeVideoSample sample)
往已创建好的解码器推送数据,要送00 00 00 01格式的数据
|
int |
initDecoder(DecodeVideoConfig config)
初始化编码器
|
boolean |
isInited() |
void |
release()
释放解码器相关资源
|
void |
resetDecoder(DecodeVideoConfig config) |
void |
setOnDecoderSizeChangeListener(BaseHardwareDecoder.OnDecoderSizeChangeListener listener) |
void |
setOnDecoderYUVListener(BaseHardwareDecoder.OnDecoderYUVListener listener) |
isCodecAvailableprotected android.media.MediaCodec mDecoder
protected android.media.MediaFormat mDecoderFormat
protected java.nio.ByteBuffer[] mInputBuffers
protected java.nio.ByteBuffer[] mOutputBuffers
protected android.media.MediaCodec.BufferInfo mBufferInfo
protected boolean isInited
public BaseHardwareDecoder(int width,
int height,
java.lang.String codeName,
java.lang.String codecType)
public int initDecoder(DecodeVideoConfig config)
initDecoder in class BaseDecoderconfig - 解码器配置信息,用于初始化public void release()
release in class BaseDecoderpublic void resetDecoder(DecodeVideoConfig config)
public long drainDecoder(DecodeVideoSample sample)
drainDecoder in class BaseDecodersample - 待解码帧数据public boolean isInited()
public void setOnDecoderSizeChangeListener(BaseHardwareDecoder.OnDecoderSizeChangeListener listener)
public long drainDecoder(byte[] data,
int dataLen,
boolean header,
long pts)
BaseDecoderdrainDecoder in class BaseDecoderdata - 数据 可以是SPS PPS I P BdataLen - 数据长度header - 是否是sps ppspts - 当前帧的ptspublic boolean decoderHeaderChange(byte[] header,
int headerLen)
public void setOnDecoderYUVListener(BaseHardwareDecoder.OnDecoderYUVListener listener)