public class ExternalDecoderFilter extends AbstractYYMediaFilter implements android.graphics.SurfaceTexture.OnFrameAvailableListener, BaseHardwareDecoder.OnDecoderSizeChangeListener
mDownStreamList, mImageHeight, mImageWidth, mOutputHeight, mOutputWidth, mSlaveVertexBuffer| Constructor and Description |
|---|
ExternalDecoderFilter(VideoLiveFilterContext context) |
| Modifier and Type | Method and Description |
|---|---|
void |
deInit() |
java.lang.String |
getFrameTypeStr(DecodeVideoSample sample) |
void |
handleExternalVideoEnd() |
void |
handleOutdoorVideoConfig(DecodeVideoConfig config,
BaseHardwareDecoder.OnDecoderSizeChangeListener SizeChangeListener) |
void |
handleOutdoorVideoData(DecodeVideoSample sample)
处理外设视频数据
需要初始化解码器,初始化解码器是需要用到width,height,sps和pps等数据
往解码器喂数据
数据帧格式:27 01 00 00 00 00 00 08 c1 41 f6 02 be 14 8a 18
前5个字节无需关注,紧接着的4个字节是表示后面数据的长度,大端格式
DJI I帧数据格式:17 01 00 00 00 00 00 00 02 09 10 00 00 00 2f 27,参考一下链接:
https://github.com/DJI-Mobile-SDK-Tutorials/Android-VideoStreamDecodingSample/blob/master/android-videostreamdecodingsample/jni/dji_video_jni.c
DecodeVideoSample的dataLenght为data数组的长度
|
boolean |
isExternalHasEnd() |
void |
onDecoderSizeChanged(int width,
int height) |
void |
onFrameAvailable(android.graphics.SurfaceTexture surfaceTexture) |
boolean |
processMediaSample(YYMediaSample sample,
java.lang.Object upstream) |
void |
setExternalDecodeInterface(ExternalInterface.IExternalDecode IExternalDecode) |
void |
setRenderSurface(android.view.Surface surface) |
addDownStream, checkImageSizeUpdated, checkOuptuSizeUpdate, deliverToDownStream, removeAllDownStream, removeDownStream, setImageSize, setOutputSizepublic ExternalDecoderFilter(VideoLiveFilterContext context)
public void setRenderSurface(android.view.Surface surface)
public void deInit()
deInit in class AbstractYYMediaFilterpublic boolean processMediaSample(YYMediaSample sample, java.lang.Object upstream)
processMediaSample in interface IMediaFilterprocessMediaSample in class AbstractYYMediaFilterpublic void onFrameAvailable(android.graphics.SurfaceTexture surfaceTexture)
onFrameAvailable in interface android.graphics.SurfaceTexture.OnFrameAvailableListenerpublic void setExternalDecodeInterface(ExternalInterface.IExternalDecode IExternalDecode)
public java.lang.String getFrameTypeStr(DecodeVideoSample sample)
public void handleOutdoorVideoData(DecodeVideoSample sample)
sample - public void handleExternalVideoEnd()
public boolean isExternalHasEnd()
public void handleOutdoorVideoConfig(DecodeVideoConfig config, BaseHardwareDecoder.OnDecoderSizeChangeListener SizeChangeListener)
public void onDecoderSizeChanged(int width,
int height)
onDecoderSizeChanged in interface BaseHardwareDecoder.OnDecoderSizeChangeListener