package com.mogo.cloud.live.manager;


import com.mogo.cloud.live.listener.ILivePushStatusListener;

public interface ILiveStreamManager {
    /**
     * 开始直播
     */
    void startLiveStream();

    /**
     * 停止直播
     */
    void stopLiveStream();

    /**
     * 获取直播状态
     */
    int getLiveStatus();

    /**
     * 更新摄像头状态
     *
     * @param frontStatus front camera status 0：未知 1：可用 2:不可以
     * @param backStatus  back camera status 0：未知 1：可用 2:不可以
     */
    void uploadCamStatus(int frontStatus, int backStatus);

    /**
     * 通知更新YUV数据
     *
     * @param data   origin yuv data
     * @param width  data width
     * @param height data height
     * @param type   1:YV12 2:NV21 3:I420 4 nv12
     */
    void notifyYUVData(byte[] data, int width, int height, int type);

    /**
     * 直播推流状态改变时回调
     * @param changeCallback live status change callback
     */
    void setLivePushStatusChangeCallback(ILivePushStatusListener changeCallback);

    /**
     * 释放资源
     */
    void release();
}
