public class YMFExternalTextureSessionYCloud extends java.lang.Object implements IEncoderListener, ILiveSession, IMediaCodecUpload
| Modifier and Type | Field and Description |
|---|---|
ClipFilter |
mCliperFilter
PeripheralsDecoderFilter -->
CameraCaptureFilter-->VideoLiveQualityFilter
-->GPUPreprocessFilter-->
ClipFilter-->
-->PreviewFilter
-->VideoEncoderGroupFilter-->TransmitUploadFilter
|
VideoEncoderGroupFilter |
mEncoderGroupFilter |
VideoEndPointFilter |
mEndPointFilter |
VideoLiveFilterContext |
mFilterContext |
| Constructor and Description |
|---|
YMFExternalTextureSessionYCloud(android.content.Context context,
int type,
java.lang.Object sharedContext)
默认的开播的VideoLiveSession2
|
| Modifier and Type | Method and Description |
|---|---|
void |
adjustEncoderBitrate(int bitRate) |
void |
assignEncoderConfig(VideoEncoderConfig config)
仅仅对齐开播参数,在没开始编码的时候调用,这样可以确保预览和开启编码时候的预览,裁剪的大小一致,不会跳变
|
void |
enableColorChartLive(boolean enable)
色卡开播,参数设为true时,观看端看到的是色卡,主播段不变。
|
void |
enableMirror(boolean enable)
镜像开关设置
|
boolean |
getExternalType() |
void |
initOriginDataFilter() |
boolean |
isHardwareEncoderAvailable()
获取是否允许硬编开播
|
void |
onEncodeEncParam(java.lang.String param)
sdk内部编码参数通知.
|
void |
onEncodeFirstFrame()
编码头一帧回调接口.
|
void |
onEncodeFrameData(byte[] data,
int len,
long pts,
long dts,
int frameType,
VideoEncoderType encodeType,
int svcTid,
int svcSid)
编码后一帧视频数据的输出回调函数.
|
void |
onEncodeResolution(int width,
int height)
实际编码的分辨率回调接口, 每3秒钟回调一次.
|
void |
onEncoderSwitch()
切换视频编码器
|
void |
onEncodeStat(int bitRate,
int frameRate)
编码码率,帧率统计数据回调接口, 每3秒钟回调一次.
|
void |
onExternalVideoEnd()
结束户外视频流
|
void |
onHardEncoderError()
硬编出错,通知上层禁用硬编
|
void |
onPeripheralsVideoConfigReceived(DecodeVideoConfig config)
视频头信息,包括高宽,sps和pps
|
void |
onPeripheralsVideoDataReceived(DecodeVideoSample sample)
收到外设的视频数据
|
void |
onPeripheralsVideoEnd()
结束视频流
|
void |
onWaterMarkSizeChange(int w,
int h)
切换弱网之后,编码分辨率变更,需要变换水印的坐标和宽高
|
void |
pushEncodeExternalData(ExternalYYMediaSample externalYYMediaSample)
外部数据推送编码数据的接口
|
void |
pushExternalVideoDecodeInfo(ExternalDecodeInfo info)
收到户外的视频数据
|
void |
requestIFrame()
强制编码I帧接口.
|
void |
setAbroadNetWorkStrategy(boolean flag) |
void |
setBackground(Background background) |
void |
setDeltaYYPtsMillions(long deltaPtsDts)
设置PTS同步矫正, 矫正值根据传输设置,客户端回调到sdk
|
void |
setDynamicTexture(IDynamicTexture dynamicTexture)
设置动态贴图接口.
|
void |
setEnableUnderflowStrategy(boolean flag) |
void |
setEncoderConfig(VideoEncoderConfig config)
设置编码参数,此接口startEncoder在调用之前, 之后都可以使用.
|
void |
setEncoderListener(IEncoderListener listener)
设置编码的回调接口,回调事件包含编码后的视频数据, 视频质量统计数据等.
|
void |
setExternalDecodeInterface(ExternalInterface.IExternalDecode IExternalDecode)
给外部数据设置解码接口
|
void |
setExternalVideoInterface(ExternalInterface.IExternalCameraData IExternalCameraData)
给外部数据设置接口
|
void |
setGLManagerRunnable(java.lang.Runnable runnable)
将操作post回gl线程
|
void |
setHardwareEncoderAvailable(boolean available)
设置本机型是否可以开启硬编
|
void |
setLowDelayMode(boolean enable) |
void |
setNetworkBitrateSuggest(int bitrate)
设置网络传输层建议码率接口.
|
void |
setOriginFrameToEncode(byte[] data,
int format,
int width,
int height,
int rotation,
long timestamp) |
void |
setOriginTextureToEncode(int inputTexture,
int textureTarget,
float[] transformer,
int width,
int height,
long timestamp,
int rotation) |
void |
setResolutionModifyConfigs(java.util.List<ResolutionModifyConfig> configs,
int intervalSecs)
设置动态编码分辨率的参数集合即可.
|
void |
setVideoRenderPosition(VideoRenderPosition position)
设置视频位置信息
|
void |
setWaterMark(android.graphics.Bitmap bitmap,
int offsetX,
int offsetY)
设置水印接口.
|
void |
setWaterMark(WaterMark waterMark) |
void |
startEncoder()
开启编码接口, 如果预先没有设置编码参数, 则按照默认的编码参数进行编码, 否则按照之前设置的编码参数进行编码.
|
void |
stopAndRelease() |
void |
stopEncoder()
停止编码接口.
|
void |
takeScreenShot(ScreenShotCallback callback) |
public ClipFilter mCliperFilter
public VideoEncoderGroupFilter mEncoderGroupFilter
public VideoLiveFilterContext mFilterContext
public VideoEndPointFilter mEndPointFilter
public YMFExternalTextureSessionYCloud(android.content.Context context,
int type,
java.lang.Object sharedContext)
public void stopAndRelease()
stopAndRelease in interface ILiveSessionpublic void setDeltaYYPtsMillions(long deltaPtsDts)
deltaPtsDts - 单位mspublic boolean getExternalType()
public void setWaterMark(WaterMark waterMark)
setWaterMark in interface IMediaCodecUploadpublic void startEncoder()
startEncoder in interface ILiveSessionstartEncoder in interface IMediaCodecUploadpublic void stopEncoder()
stopEncoder in interface ILiveSessionstopEncoder in interface IMediaCodecUploadpublic void setWaterMark(android.graphics.Bitmap bitmap,
int offsetX,
int offsetY)
setWaterMark in interface ILiveSessionbitmap - 水印参数, 详细见 WaterMarkpublic void setBackground(Background background)
setBackground in interface IMediaCodecUploadpublic void setDynamicTexture(IDynamicTexture dynamicTexture)
setDynamicTexture in interface ILiveSessionsetDynamicTexture in interface IMediaCodecUploaddynamicTexture - 动态贴图参数, 详细见 IDynamicTexturepublic void setNetworkBitrateSuggest(int bitrate)
setNetworkBitrateSuggest in interface ILiveSessionsetNetworkBitrateSuggest in interface IMediaCodecUploadbitrate - 建议码率,单位为bps.public void setResolutionModifyConfigs(java.util.List<ResolutionModifyConfig> configs, int intervalSecs)
setResolutionModifyConfigs in interface ILiveSessionconfigs - 动态分辨率控制参数, 具体见 ResolutionModifyConfigintervalSecs - 动态调整的检测时长,也即每检测时长,做一次动态调整的判断.public void setEncoderListener(IEncoderListener listener)
setEncoderListener in interface ILiveSessionsetEncoderListener in interface IMediaCodecUploadlistener - 回调接口, 详细见 IEncoderListenerpublic void assignEncoderConfig(VideoEncoderConfig config)
config - 编码参数, 详细见 VideoEncoderConfigpublic void setEncoderConfig(VideoEncoderConfig config)
setEncoderConfig in interface ILiveSessionsetEncoderConfig in interface IMediaCodecUploadconfig - 编码参数, 详细见 VideoEncoderConfigpublic void setLowDelayMode(boolean enable)
setLowDelayMode in interface ILiveSessionpublic void adjustEncoderBitrate(int bitRate)
adjustEncoderBitrate in interface ILiveSessionpublic void onEncodeStat(int bitRate,
int frameRate)
IEncoderListeneronEncodeStat in interface IEncoderListenerbitRate - 实际编码输出的码率.frameRate - 实际编码输出的帧率.public void onEncodeResolution(int width,
int height)
IEncoderListeneronEncodeResolution in interface IEncoderListenerwidth - 实际编码分辨率宽度height - 实际编码分辨率高度.public void onEncodeFirstFrame()
IEncoderListeneronEncodeFirstFrame in interface IEncoderListenerpublic void onEncodeFrameData(byte[] data,
int len,
long pts,
long dts,
int frameType,
VideoEncoderType encodeType,
int svcTid,
int svcSid)
IEncoderListeneronEncodeFrameData in interface IEncoderListenerdata - 编码后的视频数据len - 视频数据的长度pts - 视频数据的pts, 单位是msdts - 视频数据的dts, 单位是msframeType - 视频数据的帧类型,YY系统中的帧类型取值一样.encodeType - 视频数据的编码类型,这里是开播SDK中定义的encodeType,特别提醒这里和yysdk中传输定义的encodeType有不同.public void onEncodeEncParam(java.lang.String param)
IEncoderListeneronEncodeEncParam in interface IEncoderListenerparam - 编码参数,一般用于调试打印在屏幕,或者统计等等.public void onHardEncoderError()
IEncoderListeneronHardEncoderError in interface IEncoderListenerpublic void onEncoderSwitch()
IEncoderListeneronEncoderSwitch in interface IEncoderListenerpublic void onWaterMarkSizeChange(int w,
int h)
IEncoderListeneronWaterMarkSizeChange in interface IEncoderListenerpublic void requestIFrame()
requestIFrame in interface ILiveSessionpublic void enableColorChartLive(boolean enable)
enable - public void enableMirror(boolean enable)
enable - public void setHardwareEncoderAvailable(boolean available)
setHardwareEncoderAvailable in interface ILiveSessionavailable - true 表示可以硬编,false表示不能硬编public boolean isHardwareEncoderAvailable()
ILiveSessionisHardwareEncoderAvailable in interface ILiveSessionpublic void setGLManagerRunnable(java.lang.Runnable runnable)
setGLManagerRunnable in interface IMediaCodecUploadrunnable - public void initOriginDataFilter()
public void setOriginFrameToEncode(byte[] data,
int format,
int width,
int height,
int rotation,
long timestamp)
public void setOriginTextureToEncode(int inputTexture,
int textureTarget,
float[] transformer,
int width,
int height,
long timestamp,
int rotation)
public void setAbroadNetWorkStrategy(boolean flag)
public void onPeripheralsVideoDataReceived(DecodeVideoSample sample)
IMediaCodecUploadonPeripheralsVideoDataReceived in interface IMediaCodecUploadsample - 视频数据结构public void onPeripheralsVideoConfigReceived(DecodeVideoConfig config)
IMediaCodecUploadonPeripheralsVideoConfigReceived in interface IMediaCodecUploadpublic void onPeripheralsVideoEnd()
IMediaCodecUploadonPeripheralsVideoEnd in interface IMediaCodecUploadpublic void setVideoRenderPosition(VideoRenderPosition position)
IMediaCodecUploadsetVideoRenderPosition in interface IMediaCodecUploadpublic void onExternalVideoEnd()
IMediaCodecUploadonExternalVideoEnd in interface IMediaCodecUploadpublic void pushExternalVideoDecodeInfo(ExternalDecodeInfo info)
IMediaCodecUploadpushExternalVideoDecodeInfo in interface IMediaCodecUploadinfo - 视频数据结构public void setExternalVideoInterface(ExternalInterface.IExternalCameraData IExternalCameraData)
IMediaCodecUploadsetExternalVideoInterface in interface IMediaCodecUploadpublic void setExternalDecodeInterface(ExternalInterface.IExternalDecode IExternalDecode)
IMediaCodecUploadsetExternalDecodeInterface in interface IMediaCodecUploadpublic void takeScreenShot(ScreenShotCallback callback)
takeScreenShot in interface ILiveSessiontakeScreenShot in interface IMediaCodecUploadpublic void pushEncodeExternalData(ExternalYYMediaSample externalYYMediaSample)
IMediaCodecUploadpushEncodeExternalData in interface IMediaCodecUploadpublic void setEnableUnderflowStrategy(boolean flag)