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)
Live push video resolution.
static int getTargetBitrate(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
static int getMinBitrate(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)