1package com.alivc.live.pusher;
3import com.alivc.live.annotations.AlivcLiveMode;
64 private int mSelfDefineWidth;
65 private int mSelfDefineHeight;
75 if (this.equals(RESOLUTION_SELF_DEFINE)) {
76 mSelfDefineWidth = width;
77 if (mSelfDefineWidth % 16 != 0) {
78 mSelfDefineWidth = (mSelfDefineWidth / 16 + 1) * 16;
80 mSelfDefineHeight = height;
81 if (mSelfDefineHeight % 16 != 0) {
82 mSelfDefineHeight = (mSelfDefineHeight / 16 + 1) * 16;
95 RectSize rectSize = getResolutionRectSize(resolution, liveMode);
96 return rectSize !=
null ? rectSize.getWidth() : -1;
107 RectSize rectSize = getResolutionRectSize(resolution, liveMode);
108 return rectSize !=
null ? rectSize.getHeight() : -1;
112 if (resolution ==
null) {
115 switch (resolution) {
116 case RESOLUTION_180P:
117 return new RectSize(192, 320);
118 case RESOLUTION_240P:
119 return new RectSize(240, 320);
120 case RESOLUTION_360P:
121 if (liveMode == AlivcLiveMode.AlivcLiveInteractiveMode) {
122 return new RectSize(360, 640);
124 return new RectSize(368, 640);
126 case RESOLUTION_480P:
127 return new RectSize(480, 640);
128 case RESOLUTION_540P:
129 if (liveMode == AlivcLiveMode.AlivcLiveInteractiveMode) {
130 return new RectSize(540, 960);
132 return new RectSize(544, 960);
134 case RESOLUTION_720P:
135 return new RectSize(720, 1280);
136 case RESOLUTION_1080P: {
137 if (liveMode == AlivcLiveMode.AlivcLiveInteractiveMode) {
138 return new RectSize(1080, 1920);
140 return new RectSize(1088, 1920);
144 return new RectSize(resolution.mSelfDefineWidth, resolution.mSelfDefineHeight);
156 switch (resolution) {
157 case RESOLUTION_180P:
159 case RESOLUTION_240P:
161 case RESOLUTION_360P:
163 case RESOLUTION_480P:
165 case RESOLUTION_540P:
167 case RESOLUTION_720P:
169 case RESOLUTION_1080P:
176 switch (resolution) {
177 case RESOLUTION_180P:
179 case RESOLUTION_240P:
181 case RESOLUTION_360P:
183 case RESOLUTION_480P:
185 case RESOLUTION_540P:
187 case RESOLUTION_720P:
189 case RESOLUTION_1080P:
196 throw new RuntimeException(
"error live mode");
209 switch (resolution) {
210 case RESOLUTION_180P:
212 case RESOLUTION_240P:
214 case RESOLUTION_360P:
216 case RESOLUTION_480P:
218 case RESOLUTION_540P:
220 case RESOLUTION_720P:
222 case RESOLUTION_1080P:
229 switch (resolution) {
230 case RESOLUTION_180P:
232 case RESOLUTION_240P:
234 case RESOLUTION_360P:
236 case RESOLUTION_480P:
238 case RESOLUTION_540P:
240 case RESOLUTION_720P:
242 case RESOLUTION_1080P:
249 throw new RuntimeException(
"error live mode!");
262 switch (resolution) {
263 case RESOLUTION_180P:
265 case RESOLUTION_240P:
267 case RESOLUTION_360P:
269 case RESOLUTION_480P:
271 case RESOLUTION_540P:
273 case RESOLUTION_720P:
275 case RESOLUTION_1080P:
282 switch (resolution) {
283 case RESOLUTION_180P:
285 case RESOLUTION_240P:
287 case RESOLUTION_360P:
289 case RESOLUTION_480P:
291 case RESOLUTION_540P:
293 case RESOLUTION_720P:
295 case RESOLUTION_1080P:
302 throw new RuntimeException(
"error live mode!");
306 private static class RectSize {
307 private final int width;
308 private final int height;
310 public RectSize(
int width,
int height) {
312 this.height = height;
315 public int getWidth() {
319 public int getHeight() {
static int getMinBitrate(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
static int getTargetBitrate(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
static int getResolutionWidth(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
static int getInitBitrate(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
void setSelfDefineResolution(int width, int height)
static int getResolutionHeight(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)