package cn.tee3.avd;

/**
 * Created by bob.liu on 2015/11/6.
 */
public class PublishVideoOptions extends VideoOptions {
    public PublishVideoOptions(MVideo.CameraCapability cap, VideoCodec codec) {
        super(0);
        setStreamOptions(StreamType.stream_main, cap, codec);
    }
    protected PublishVideoOptions(int quaset) {
        super(quaset);
    }

    /** 判断视频发布中是否支持指定视频质量
     * @param[in] value 指定视频质量。
     * @return 返回是否支持。
     */
    public boolean hasQuality(VideoQuality value) {
        return nativepubhasQuality(optionset, value.ordinal());
    }
    /** 判断视频发布中是否有主流 */
    public boolean  hasMainStream() {
        return nativepubhasMainStream(optionset);
    }
    /** 判断视频发布中是否有辅流1 */
    public boolean  hasAssist1() {
        return nativepubhasAssist1(optionset);
    }
    /** 判断视频发布中是否有辅流2 */
    public boolean  hasAssist2() {
        return nativepubhasAssist2(optionset);
    }

    /** 设置指定流的视频发布参数
     *
     * @param[in] type 流类型。
     * @param[in] cap 视频分辨率帧率。
     * @param[in] codec 编码类型。
     * @return 返回错误代码。
     */
    public int setStreamOptions(StreamType type, MVideo.CameraCapability cap, VideoCodec codec) {
        return nativepubsetStreamOptions(optionset, type.ordinal(), cap, codec.ordinal());
    }
    /** 获取指定流的分辨率帧率 */
    public MVideo.CameraCapability getStreamCapability(StreamType type) {
        return nativepubgetStreamCapability(optionset, type.ordinal());
    }
    /** 获取指定流的视频质量 */
    public VideoQuality getStreamQuality(StreamType type) {
        return nativepubgetStreamQuality(optionset, type.ordinal());
    }
    /** 获取指定流的编码参数 */
    public VideoCodec getStreamCodec(StreamType type) {
        return nativepubgetStreamCodec(optionset, type.ordinal());
    }

}
