1 package com.alivc.live.pusher;
62 private int mSelfDefineWidth;
63 private int mSelfDefineHeight;
65 public void setSelfDefineResolution(
int width,
int height) {
66 if (this.equals(RESOLUTION_SELF_DEFINE)) {
67 mSelfDefineWidth = width;
68 if (mSelfDefineWidth % 16 != 0) {
69 mSelfDefineWidth = (mSelfDefineWidth / 16 + 1) * 16;
71 mSelfDefineHeight = height;
72 if (mSelfDefineHeight % 16 != 0) {
73 mSelfDefineHeight = (mSelfDefineHeight / 16 + 1) * 16;
86 RectSize rectSize = getResolutionRectSize(resolution, liveMode);
87 return rectSize != null ? rectSize.getWidth() : -1;
98 RectSize rectSize = getResolutionRectSize(resolution, liveMode);
99 return rectSize != null ? rectSize.getHeight() : -1;
103 if (resolution == null) {
106 switch (resolution) {
107 case RESOLUTION_180P:
108 return new RectSize(192, 320);
109 case RESOLUTION_240P:
110 return new RectSize(240, 320);
111 case RESOLUTION_360P:
112 return new RectSize(368, 640);
113 case RESOLUTION_480P:
114 return new RectSize(480, 640);
115 case RESOLUTION_540P:
117 return new RectSize(540, 960);
119 return new RectSize(544, 960);
121 case RESOLUTION_720P:
122 return new RectSize(720, 1280);
123 case RESOLUTION_1080P: {
125 return new RectSize(1080, 1920);
127 return new RectSize(1088, 1920);
131 return new RectSize(resolution.mSelfDefineWidth, resolution.mSelfDefineHeight);
143 switch (resolution) {
144 case RESOLUTION_180P:
146 case RESOLUTION_240P:
148 case RESOLUTION_360P:
150 case RESOLUTION_480P:
152 case RESOLUTION_540P:
154 case RESOLUTION_720P:
156 case RESOLUTION_1080P:
159 throw new RuntimeException(
"error resolution!");
162 switch (resolution) {
163 case RESOLUTION_180P:
165 case RESOLUTION_240P:
167 case RESOLUTION_360P:
169 case RESOLUTION_480P:
171 case RESOLUTION_540P:
173 case RESOLUTION_720P:
175 case RESOLUTION_1080P:
178 throw new RuntimeException(
"error resolution!");
181 throw new RuntimeException(
"error live mode");
194 switch (resolution) {
195 case RESOLUTION_180P:
197 case RESOLUTION_240P:
199 case RESOLUTION_360P:
201 case RESOLUTION_480P:
203 case RESOLUTION_540P:
205 case RESOLUTION_720P:
207 case RESOLUTION_1080P:
210 throw new RuntimeException(
"error resolution!");
213 switch (resolution) {
214 case RESOLUTION_180P:
216 case RESOLUTION_240P:
218 case RESOLUTION_360P:
220 case RESOLUTION_480P:
222 case RESOLUTION_540P:
224 case RESOLUTION_720P:
226 case RESOLUTION_1080P:
229 throw new RuntimeException(
"error resolution!");
232 throw new RuntimeException(
"error live mode!");
245 switch (resolution) {
246 case RESOLUTION_180P:
248 case RESOLUTION_240P:
250 case RESOLUTION_360P:
252 case RESOLUTION_480P:
254 case RESOLUTION_540P:
256 case RESOLUTION_720P:
258 case RESOLUTION_1080P:
261 throw new RuntimeException(
"error resolution!");
264 switch (resolution) {
265 case RESOLUTION_180P:
267 case RESOLUTION_240P:
269 case RESOLUTION_360P:
271 case RESOLUTION_480P:
273 case RESOLUTION_540P:
275 case RESOLUTION_720P:
277 case RESOLUTION_1080P:
280 throw new RuntimeException(
"error resolution!");
283 throw new RuntimeException(
"error live mode!");
287 private static class RectSize {
288 private final int width;
289 private final int height;
291 public RectSize(
int width,
int height) {
293 this.height = height;
296 public int getWidth() {
300 public int getHeight() {
static int getResolutionHeight(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
static int getResolutionWidth(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
static int getInitBitrate(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
static int getTargetBitrate(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
static int getMinBitrate(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)