-
Notifications
You must be signed in to change notification settings - Fork 6
ImgTexMixer
buliaoyin edited this page Nov 22, 2017
·
4 revisions
直播推流时, 可能会有叠加水印, 叠加文字, 叠加背景图片等需求。
SDK内提供了 ImgTexMixer 类来实现图层间的混合功能。
-
该模块最大支持8个图层的混合;
-
每个输入图层有一个0-7的index值,该值越小则越靠下层;
-
每个输入图层均可单独设定绘制区域、透明度、缩放模式等参数;
-
需指定一个输入图层的index值可作为main index(默认为0), 图层混合的触发频率由该图层的刷新频率决定。
该模块包含8个ImgTexFrame类型的SinkPin, 以及一个ImgTexFrame类型的SrcPin.
/**
* Get sink pin by index
*
* @param index index
* @return SinPin object or null
*/
@Override
public SinkPin<ImgTexFrame> getSinkPin(int index);
/**
* Get source pin
*
* @return SrcPin object or null
*/
@Override
public SrcPin<ImgTexFrame> getSrcPin();
/**
* 设置混合后输出的Texture的分辨率.
*/
public void setTargetSize(int outWidth, int outHeight);
/**
* 设置指定输入源在混合时的位置及透明度信息, 其中位置参数为以输出分辨率为参考的归一化值,
* 一般取值范围为(0, 0, 1, 1).
*/
public void setRenderRect(int idx, RectF rect, float alpha);
/**
* 为指定输入源设置混合时的缩放模式,缩放模式支持 SCALING_MODE_FULL_FILL,
* SCALING_MODE_BEST_FIT, SCALING_MODE_CENTER_CROP等.
*/
public void setScalingMode(int idx, int mode);
/**
* 设置是否在绘制指定输入源时,进行镜像绘制.
*/
public void setMirror(int idx, boolean mirror);
/**
* Set main input pin, generally the camera input
*
* @param index index of the main input pin, default 0
*/
public final void setMainSinkPinIndex(int index);