package com.laifeng.sopcastsdk.configuration;
/**
* @Title: VideoConfiguration
* @Package com.laifeng.sopcastsdk.configuration
* @Description:
* @Author Jim
* @Date 16/9/14
* @Time 下午3:20
* @Version
*/
public final class VideoConfiguration {
public static final int DEFAULT_HEIGHT = 640;
public static final int DEFAULT_WIDTH = 360;
public static final int DEFAULT_FPS = 15;
public static final int DEFAULT_MAX_BPS = 1300;
public static final int DEFAULT_MIN_BPS = 400;
public static final int DEFAULT_IFI = 2;
public static final String DEFAULT_MIME = "video/avc";
public final int height;
public final int width;
public final int minBps;
public final int maxBps;
public final int fps;
public final int ifi;
public final String mime;
private VideoConfiguration(final Builder builder) {
height = builder.height;
width = builder.width;
minBps = builder.minBps;
maxBps = builder.maxBps;
fps = builder.fps;
ifi = builder.ifi;
mime = builder.mime;
}
public static VideoConfiguration createDefault() {
return new Builder().build();
}
public static class Builder {
private int height = DEFAULT_HEIGHT;
private int width = DEFAULT_WIDTH;
private int minBps = DEFAULT_MIN_BPS;
private int maxBps = DEFAULT_MAX_BPS;
private int fps = DEFAULT_FPS;
private int ifi = DEFAULT_IFI;
private String mime = DEFAULT_MIME;
public Builder setSize(int width, int height) {
this.width = width;
this.height = height;
return this;
}
public Builder setBps(int minBps, int maxBps) {
this.minBps = minBps;
this.maxBps = maxBps;
return this;
}
public Builder setFps(int fps) {
this.fps = fps;
return this;
}
public Builder setIfi(int ifi) {
this.ifi = ifi;
return this;
}
public Builder setMime(String mime) {
this.mime = mime;
return this;
}
public VideoConfiguration build() {
return new VideoConfiguration(this);
}
}
}