Add decompiled APK source code (JADX)

- 28,932 files
- Full Java source code
- Smali files
- Resources

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-02-18 14:52:23 -08:00
parent cc210a65ea
commit f9d20bb3fc
26991 changed files with 2541449 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.os.Looper;
import android.text.TextUtils;
import androidx.annotation.Nullable;
/* loaded from: classes4.dex */
public final class Assertions {
private Assertions() {
}
public static void checkArgument(boolean z) {
if (!z) {
throw new IllegalArgumentException();
}
}
public static void checkArgument(boolean z, Object obj) {
if (!z) {
throw new IllegalArgumentException(String.valueOf(obj));
}
}
public static int checkIndex(int i, int i2, int i3) {
if (i < i2 || i >= i3) {
throw new IndexOutOfBoundsException();
}
return i;
}
public static void checkState(boolean z) {
if (!z) {
throw new IllegalStateException();
}
}
public static void checkState(boolean z, Object obj) {
if (!z) {
throw new IllegalStateException(String.valueOf(obj));
}
}
public static <T> T checkNotNull(@Nullable T t) {
t.getClass();
return t;
}
public static <T> T checkNotNull(@Nullable T t, Object obj) {
if (t != null) {
return t;
}
throw new NullPointerException(String.valueOf(obj));
}
public static String checkNotEmpty(@Nullable String str) {
if (TextUtils.isEmpty(str)) {
throw new IllegalArgumentException();
}
return str;
}
public static String checkNotEmpty(@Nullable String str, Object obj) {
if (TextUtils.isEmpty(str)) {
throw new IllegalArgumentException(String.valueOf(obj));
}
return str;
}
public static void checkMainThread() {
if (Looper.myLooper() != Looper.getMainLooper()) {
throw new IllegalStateException("Not in applications main thread");
}
}
}

View File

@@ -0,0 +1,113 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.util.Log;
import androidx.annotation.NonNull;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/* loaded from: classes4.dex */
public final class AtomicFile {
private static final String TAG = "AtomicFile";
private final File backupName;
private final File baseName;
public AtomicFile(File file) {
this.baseName = file;
this.backupName = new File(file.getPath() + ".bak");
}
public final void delete() {
this.baseName.delete();
this.backupName.delete();
}
public final OutputStream startWrite() throws IOException {
if (this.baseName.exists()) {
if (!this.backupName.exists()) {
if (!this.baseName.renameTo(this.backupName)) {
Log.w(TAG, "Couldn't rename file " + this.baseName + " to backup file " + this.backupName);
}
} else {
this.baseName.delete();
}
}
try {
return new AtomicFileOutputStream(this.baseName);
} catch (FileNotFoundException e) {
if (!this.baseName.getParentFile().mkdirs()) {
throw new IOException("Couldn't create directory " + this.baseName, e);
}
try {
return new AtomicFileOutputStream(this.baseName);
} catch (FileNotFoundException e2) {
throw new IOException("Couldn't create " + this.baseName, e2);
}
}
}
public final void endWrite(OutputStream outputStream) throws IOException {
outputStream.close();
this.backupName.delete();
}
public final InputStream openRead() throws FileNotFoundException {
restoreBackup();
return new FileInputStream(this.baseName);
}
private void restoreBackup() {
if (this.backupName.exists()) {
this.baseName.delete();
this.backupName.renameTo(this.baseName);
}
}
public static final class AtomicFileOutputStream extends OutputStream {
private boolean closed = false;
private final FileOutputStream fileOutputStream;
public AtomicFileOutputStream(File file) throws FileNotFoundException {
this.fileOutputStream = new FileOutputStream(file);
}
@Override // java.io.OutputStream, java.io.Closeable, java.lang.AutoCloseable
public final void close() throws IOException {
if (this.closed) {
return;
}
this.closed = true;
flush();
try {
this.fileOutputStream.getFD().sync();
} catch (IOException e) {
Log.w(AtomicFile.TAG, "Failed to sync file descriptor:", e);
}
this.fileOutputStream.close();
}
@Override // java.io.OutputStream, java.io.Flushable
public final void flush() throws IOException {
this.fileOutputStream.flush();
}
@Override // java.io.OutputStream
public final void write(int i) throws IOException {
this.fileOutputStream.write(i);
}
@Override // java.io.OutputStream
public final void write(@NonNull byte[] bArr) throws IOException {
this.fileOutputStream.write(bArr);
}
@Override // java.io.OutputStream
public final void write(@NonNull byte[] bArr, int i, int i2) throws IOException {
this.fileOutputStream.write(bArr, i, i2);
}
}
}

View File

@@ -0,0 +1,18 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.os.Handler;
import android.os.Looper;
import androidx.annotation.Nullable;
/* loaded from: classes4.dex */
public interface Clock {
public static final Clock DEFAULT = new SystemClock();
HandlerWrapper createHandler(Looper looper, @Nullable Handler.Callback callback);
long elapsedRealtime();
void sleep(long j);
long uptimeMillis();
}

View File

@@ -0,0 +1,200 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.util.Pair;
import com.mbridge.msdk.playercommon.exoplayer2.ParserException;
import java.util.ArrayList;
/* loaded from: classes4.dex */
public final class CodecSpecificDataUtil {
private static final int AUDIO_OBJECT_TYPE_AAC_LC = 2;
private static final int AUDIO_OBJECT_TYPE_ER_BSAC = 22;
private static final int AUDIO_OBJECT_TYPE_ESCAPE = 31;
private static final int AUDIO_OBJECT_TYPE_PS = 29;
private static final int AUDIO_OBJECT_TYPE_SBR = 5;
private static final int AUDIO_SPECIFIC_CONFIG_CHANNEL_CONFIGURATION_INVALID = -1;
private static final int AUDIO_SPECIFIC_CONFIG_FREQUENCY_INDEX_ARBITRARY = 15;
private static final byte[] NAL_START_CODE = {0, 0, 0, 1};
private static final int[] AUDIO_SPECIFIC_CONFIG_SAMPLING_RATE_TABLE = {96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350};
private static final int[] AUDIO_SPECIFIC_CONFIG_CHANNEL_COUNT_TABLE = {0, 1, 2, 3, 4, 5, 6, 8, -1, -1, -1, 7, 8, -1, 8, -1};
private CodecSpecificDataUtil() {
}
public static byte[] buildAacAudioSpecificConfig(int i, int i2, int i3) {
return new byte[]{(byte) (((i << 3) & 248) | ((i2 >> 1) & 7)), (byte) (((i2 << 7) & 128) | ((i3 << 3) & 120))};
}
public static Pair<Integer, Integer> parseAacAudioSpecificConfig(byte[] bArr) throws ParserException {
return parseAacAudioSpecificConfig(new ParsableBitArray(bArr), false);
}
public static Pair<Integer, Integer> parseAacAudioSpecificConfig(ParsableBitArray parsableBitArray, boolean z) throws ParserException {
int aacAudioObjectType = getAacAudioObjectType(parsableBitArray);
int aacSamplingFrequency = getAacSamplingFrequency(parsableBitArray);
int readBits = parsableBitArray.readBits(4);
if (aacAudioObjectType == 5 || aacAudioObjectType == 29) {
aacSamplingFrequency = getAacSamplingFrequency(parsableBitArray);
aacAudioObjectType = getAacAudioObjectType(parsableBitArray);
if (aacAudioObjectType == 22) {
readBits = parsableBitArray.readBits(4);
}
}
if (z) {
if (aacAudioObjectType != 1 && aacAudioObjectType != 2 && aacAudioObjectType != 3 && aacAudioObjectType != 4 && aacAudioObjectType != 6 && aacAudioObjectType != 7 && aacAudioObjectType != 17) {
switch (aacAudioObjectType) {
case 19:
case 20:
case 21:
case 22:
case 23:
break;
default:
throw new ParserException("Unsupported audio object type: " + aacAudioObjectType);
}
}
parseGaSpecificConfig(parsableBitArray, aacAudioObjectType, readBits);
switch (aacAudioObjectType) {
case 17:
case 19:
case 20:
case 21:
case 22:
case 23:
int readBits2 = parsableBitArray.readBits(2);
if (readBits2 == 2 || readBits2 == 3) {
throw new ParserException("Unsupported epConfig: " + readBits2);
}
}
}
int i = AUDIO_SPECIFIC_CONFIG_CHANNEL_COUNT_TABLE[readBits];
Assertions.checkArgument(i != -1);
return Pair.create(Integer.valueOf(aacSamplingFrequency), Integer.valueOf(i));
}
public static byte[] buildAacLcAudioSpecificConfig(int i, int i2) {
int i3 = 0;
int i4 = -1;
int i5 = 0;
while (true) {
int[] iArr = AUDIO_SPECIFIC_CONFIG_SAMPLING_RATE_TABLE;
if (i5 >= iArr.length) {
break;
}
if (i == iArr[i5]) {
i4 = i5;
}
i5++;
}
int i6 = -1;
while (true) {
int[] iArr2 = AUDIO_SPECIFIC_CONFIG_CHANNEL_COUNT_TABLE;
if (i3 >= iArr2.length) {
break;
}
if (i2 == iArr2[i3]) {
i6 = i3;
}
i3++;
}
if (i == -1 || i6 == -1) {
throw new IllegalArgumentException("Invalid sample rate or number of channels: " + i + ", " + i2);
}
return buildAacAudioSpecificConfig(2, i4, i6);
}
public static byte[] buildNalUnit(byte[] bArr, int i, int i2) {
byte[] bArr2 = NAL_START_CODE;
byte[] bArr3 = new byte[bArr2.length + i2];
System.arraycopy(bArr2, 0, bArr3, 0, bArr2.length);
System.arraycopy(bArr, i, bArr3, bArr2.length, i2);
return bArr3;
}
public static byte[][] splitNalUnits(byte[] bArr) {
if (!isNalStartCode(bArr, 0)) {
return null;
}
ArrayList arrayList = new ArrayList();
int i = 0;
do {
arrayList.add(Integer.valueOf(i));
i = findNalStartCode(bArr, i + NAL_START_CODE.length);
} while (i != -1);
byte[][] bArr2 = new byte[arrayList.size()][];
int i2 = 0;
while (i2 < arrayList.size()) {
int intValue = ((Integer) arrayList.get(i2)).intValue();
int intValue2 = (i2 < arrayList.size() + (-1) ? ((Integer) arrayList.get(i2 + 1)).intValue() : bArr.length) - intValue;
byte[] bArr3 = new byte[intValue2];
System.arraycopy(bArr, intValue, bArr3, 0, intValue2);
bArr2[i2] = bArr3;
i2++;
}
return bArr2;
}
private static int findNalStartCode(byte[] bArr, int i) {
int length = bArr.length - NAL_START_CODE.length;
while (i <= length) {
if (isNalStartCode(bArr, i)) {
return i;
}
i++;
}
return -1;
}
private static boolean isNalStartCode(byte[] bArr, int i) {
if (bArr.length - i <= NAL_START_CODE.length) {
return false;
}
int i2 = 0;
while (true) {
byte[] bArr2 = NAL_START_CODE;
if (i2 >= bArr2.length) {
return true;
}
if (bArr[i + i2] != bArr2[i2]) {
return false;
}
i2++;
}
}
private static int getAacAudioObjectType(ParsableBitArray parsableBitArray) {
int readBits = parsableBitArray.readBits(5);
return readBits == 31 ? parsableBitArray.readBits(6) + 32 : readBits;
}
private static int getAacSamplingFrequency(ParsableBitArray parsableBitArray) {
int readBits = parsableBitArray.readBits(4);
if (readBits == 15) {
return parsableBitArray.readBits(24);
}
Assertions.checkArgument(readBits < 13);
return AUDIO_SPECIFIC_CONFIG_SAMPLING_RATE_TABLE[readBits];
}
private static void parseGaSpecificConfig(ParsableBitArray parsableBitArray, int i, int i2) {
parsableBitArray.skipBits(1);
if (parsableBitArray.readBit()) {
parsableBitArray.skipBits(14);
}
boolean readBit = parsableBitArray.readBit();
if (i2 == 0) {
throw new UnsupportedOperationException();
}
if (i == 6 || i == 20) {
parsableBitArray.skipBits(3);
}
if (readBit) {
if (i == 22) {
parsableBitArray.skipBits(16);
}
if (i == 17 || i == 19 || i == 20 || i == 23) {
parsableBitArray.skipBits(3);
}
parsableBitArray.skipBits(1);
}
}
}

View File

@@ -0,0 +1,230 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.text.TextUtils;
import androidx.core.internal.view.SupportMenu;
import androidx.core.view.ViewCompat;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/* loaded from: classes4.dex */
public final class ColorParser {
private static final Map<String, Integer> COLOR_MAP;
private static final String RGB = "rgb";
private static final String RGBA = "rgba";
private static final Pattern RGB_PATTERN = Pattern.compile("^rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$");
private static final Pattern RGBA_PATTERN_INT_ALPHA = Pattern.compile("^rgba\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$");
private static final Pattern RGBA_PATTERN_FLOAT_ALPHA = Pattern.compile("^rgba\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),(\\d*\\.?\\d*?)\\)$");
private static int argb(int i, int i2, int i3, int i4) {
return (i << 24) | (i2 << 16) | (i3 << 8) | i4;
}
static {
HashMap hashMap = new HashMap();
COLOR_MAP = hashMap;
hashMap.put("aliceblue", -984833);
hashMap.put("antiquewhite", -332841);
hashMap.put("aqua", -16711681);
hashMap.put("aquamarine", -8388652);
hashMap.put("azure", -983041);
hashMap.put("beige", -657956);
hashMap.put("bisque", -6972);
hashMap.put("black", Integer.valueOf(ViewCompat.MEASURED_STATE_MASK));
hashMap.put("blanchedalmond", -5171);
hashMap.put("blue", -16776961);
hashMap.put("blueviolet", -7722014);
hashMap.put("brown", -5952982);
hashMap.put("burlywood", -2180985);
hashMap.put("cadetblue", -10510688);
hashMap.put("chartreuse", -8388864);
hashMap.put("chocolate", -2987746);
hashMap.put("coral", -32944);
hashMap.put("cornflowerblue", -10185235);
hashMap.put("cornsilk", -1828);
hashMap.put("crimson", -2354116);
hashMap.put("cyan", -16711681);
hashMap.put("darkblue", -16777077);
hashMap.put("darkcyan", -16741493);
hashMap.put("darkgoldenrod", -4684277);
hashMap.put("darkgray", -5658199);
hashMap.put("darkgreen", -16751616);
hashMap.put("darkgrey", -5658199);
hashMap.put("darkkhaki", -4343957);
hashMap.put("darkmagenta", -7667573);
hashMap.put("darkolivegreen", -11179217);
hashMap.put("darkorange", -29696);
hashMap.put("darkorchid", -6737204);
hashMap.put("darkred", -7667712);
hashMap.put("darksalmon", -1468806);
hashMap.put("darkseagreen", -7357297);
hashMap.put("darkslateblue", -12042869);
hashMap.put("darkslategray", -13676721);
hashMap.put("darkslategrey", -13676721);
hashMap.put("darkturquoise", -16724271);
hashMap.put("darkviolet", -7077677);
hashMap.put("deeppink", -60269);
hashMap.put("deepskyblue", -16728065);
hashMap.put("dimgray", -9868951);
hashMap.put("dimgrey", -9868951);
hashMap.put("dodgerblue", -14774017);
hashMap.put("firebrick", -5103070);
hashMap.put("floralwhite", -1296);
hashMap.put("forestgreen", -14513374);
hashMap.put("fuchsia", -65281);
hashMap.put("gainsboro", -2302756);
hashMap.put("ghostwhite", -460545);
hashMap.put("gold", -10496);
hashMap.put("goldenrod", -2448096);
hashMap.put("gray", -8355712);
hashMap.put("green", -16744448);
hashMap.put("greenyellow", -5374161);
hashMap.put("grey", -8355712);
hashMap.put("honeydew", -983056);
hashMap.put("hotpink", -38476);
hashMap.put("indianred", -3318692);
hashMap.put("indigo", -11861886);
hashMap.put("ivory", -16);
hashMap.put("khaki", -989556);
hashMap.put("lavender", -1644806);
hashMap.put("lavenderblush", -3851);
hashMap.put("lawngreen", -8586240);
hashMap.put("lemonchiffon", -1331);
hashMap.put("lightblue", -5383962);
hashMap.put("lightcoral", -1015680);
hashMap.put("lightcyan", -2031617);
hashMap.put("lightgoldenrodyellow", -329006);
hashMap.put("lightgray", -2894893);
hashMap.put("lightgreen", -7278960);
hashMap.put("lightgrey", -2894893);
hashMap.put("lightpink", -18751);
hashMap.put("lightsalmon", -24454);
hashMap.put("lightseagreen", -14634326);
hashMap.put("lightskyblue", -7876870);
hashMap.put("lightslategray", -8943463);
hashMap.put("lightslategrey", -8943463);
hashMap.put("lightsteelblue", -5192482);
hashMap.put("lightyellow", -32);
hashMap.put("lime", -16711936);
hashMap.put("limegreen", -13447886);
hashMap.put("linen", -331546);
hashMap.put("magenta", -65281);
hashMap.put("maroon", -8388608);
hashMap.put("mediumaquamarine", -10039894);
hashMap.put("mediumblue", -16777011);
hashMap.put("mediumorchid", -4565549);
hashMap.put("mediumpurple", -7114533);
hashMap.put("mediumseagreen", -12799119);
hashMap.put("mediumslateblue", -8689426);
hashMap.put("mediumspringgreen", -16713062);
hashMap.put("mediumturquoise", -12004916);
hashMap.put("mediumvioletred", -3730043);
hashMap.put("midnightblue", -15132304);
hashMap.put("mintcream", -655366);
hashMap.put("mistyrose", -6943);
hashMap.put("moccasin", -6987);
hashMap.put("navajowhite", -8531);
hashMap.put("navy", -16777088);
hashMap.put("oldlace", -133658);
hashMap.put("olive", -8355840);
hashMap.put("olivedrab", -9728477);
hashMap.put("orange", -23296);
hashMap.put("orangered", -47872);
hashMap.put("orchid", -2461482);
hashMap.put("palegoldenrod", -1120086);
hashMap.put("palegreen", -6751336);
hashMap.put("paleturquoise", -5247250);
hashMap.put("palevioletred", -2396013);
hashMap.put("papayawhip", -4139);
hashMap.put("peachpuff", -9543);
hashMap.put("peru", -3308225);
hashMap.put("pink", -16181);
hashMap.put("plum", -2252579);
hashMap.put("powderblue", -5185306);
hashMap.put("purple", -8388480);
hashMap.put("rebeccapurple", -10079335);
hashMap.put("red", Integer.valueOf(SupportMenu.CATEGORY_MASK));
hashMap.put("rosybrown", -4419697);
hashMap.put("royalblue", -12490271);
hashMap.put("saddlebrown", -7650029);
hashMap.put("salmon", -360334);
hashMap.put("sandybrown", -744352);
hashMap.put("seagreen", -13726889);
hashMap.put("seashell", -2578);
hashMap.put("sienna", -6270419);
hashMap.put("silver", -4144960);
hashMap.put("skyblue", -7876885);
hashMap.put("slateblue", -9807155);
hashMap.put("slategray", -9404272);
hashMap.put("slategrey", -9404272);
hashMap.put("snow", -1286);
hashMap.put("springgreen", -16711809);
hashMap.put("steelblue", -12156236);
hashMap.put("tan", -2968436);
hashMap.put("teal", -16744320);
hashMap.put("thistle", -2572328);
hashMap.put("tomato", -40121);
hashMap.put("transparent", 0);
hashMap.put("turquoise", -12525360);
hashMap.put("violet", -1146130);
hashMap.put("wheat", -663885);
hashMap.put("white", -1);
hashMap.put("whitesmoke", -657931);
hashMap.put("yellow", -256);
hashMap.put("yellowgreen", -6632142);
}
public static int parseTtmlColor(String str) {
return parseColorInternal(str, false);
}
public static int parseCssColor(String str) {
return parseColorInternal(str, true);
}
private static int parseColorInternal(String str, boolean z) {
int parseInt;
Assertions.checkArgument(!TextUtils.isEmpty(str));
String replace = str.replace(" ", "");
if (replace.charAt(0) == '#') {
int parseLong = (int) Long.parseLong(replace.substring(1), 16);
if (replace.length() == 7) {
return (-16777216) | parseLong;
}
if (replace.length() == 9) {
return ((parseLong & 255) << 24) | (parseLong >>> 8);
}
throw new IllegalArgumentException();
}
if (replace.startsWith(RGBA)) {
Matcher matcher = (z ? RGBA_PATTERN_FLOAT_ALPHA : RGBA_PATTERN_INT_ALPHA).matcher(replace);
if (matcher.matches()) {
if (z) {
parseInt = (int) (Float.parseFloat(matcher.group(4)) * 255.0f);
} else {
parseInt = Integer.parseInt(matcher.group(4), 10);
}
return argb(parseInt, Integer.parseInt(matcher.group(1), 10), Integer.parseInt(matcher.group(2), 10), Integer.parseInt(matcher.group(3), 10));
}
} else if (replace.startsWith(RGB)) {
Matcher matcher2 = RGB_PATTERN.matcher(replace);
if (matcher2.matches()) {
return rgb(Integer.parseInt(matcher2.group(1), 10), Integer.parseInt(matcher2.group(2), 10), Integer.parseInt(matcher2.group(3), 10));
}
} else {
Integer num = COLOR_MAP.get(Util.toLowerInvariant(replace));
if (num != null) {
return num.intValue();
}
}
throw new IllegalArgumentException();
}
private static int rgb(int i, int i2, int i3) {
return argb(255, i, i2, i3);
}
private ColorParser() {
}
}

View File

@@ -0,0 +1,43 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
/* loaded from: classes4.dex */
public final class ConditionVariable {
private boolean isOpen;
public final synchronized boolean open() {
if (this.isOpen) {
return false;
}
this.isOpen = true;
notifyAll();
return true;
}
public final synchronized boolean close() {
boolean z;
z = this.isOpen;
this.isOpen = false;
return z;
}
public final synchronized void block() throws InterruptedException {
while (!this.isOpen) {
wait();
}
}
public final synchronized boolean block(long j) throws InterruptedException {
boolean z;
long elapsedRealtime = android.os.SystemClock.elapsedRealtime();
long j2 = j + elapsedRealtime;
while (true) {
z = this.isOpen;
if (z || elapsedRealtime >= j2) {
break;
}
wait(j2 - elapsedRealtime);
elapsedRealtime = android.os.SystemClock.elapsedRealtime();
}
return z;
}
}

View File

@@ -0,0 +1,172 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.annotation.TargetApi;
import android.graphics.SurfaceTexture;
import android.opengl.EGL14;
import android.opengl.EGLConfig;
import android.opengl.EGLContext;
import android.opengl.EGLDisplay;
import android.opengl.EGLSurface;
import android.opengl.GLES20;
import android.os.Handler;
import androidx.annotation.Nullable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@TargetApi(17)
/* loaded from: classes4.dex */
public final class EGLSurfaceTexture implements SurfaceTexture.OnFrameAvailableListener, Runnable {
private static final int[] EGL_CONFIG_ATTRIBUTES = {12352, 4, 12324, 8, 12323, 8, 12322, 8, 12321, 8, 12325, 0, 12327, 12344, 12339, 4, 12344};
private static final int EGL_PROTECTED_CONTENT_EXT = 12992;
public static final int SECURE_MODE_NONE = 0;
public static final int SECURE_MODE_PROTECTED_PBUFFER = 2;
public static final int SECURE_MODE_SURFACELESS_CONTEXT = 1;
@Nullable
private EGLContext context;
@Nullable
private EGLDisplay display;
private final Handler handler;
@Nullable
private EGLSurface surface;
@Nullable
private SurfaceTexture texture;
private final int[] textureIdHolder = new int[1];
@Retention(RetentionPolicy.SOURCE)
public @interface SecureMode {
}
public static final class GlException extends RuntimeException {
private GlException(String str) {
super(str);
}
}
public EGLSurfaceTexture(Handler handler) {
this.handler = handler;
}
public final void init(int i) {
EGLDisplay defaultDisplay = getDefaultDisplay();
this.display = defaultDisplay;
EGLConfig chooseEGLConfig = chooseEGLConfig(defaultDisplay);
EGLContext createEGLContext = createEGLContext(this.display, chooseEGLConfig, i);
this.context = createEGLContext;
this.surface = createEGLSurface(this.display, chooseEGLConfig, createEGLContext, i);
generateTextureIds(this.textureIdHolder);
SurfaceTexture surfaceTexture = new SurfaceTexture(this.textureIdHolder[0]);
this.texture = surfaceTexture;
surfaceTexture.setOnFrameAvailableListener(this);
}
/* JADX WARN: Multi-variable type inference failed */
public final void release() {
this.handler.removeCallbacks(this);
try {
SurfaceTexture surfaceTexture = this.texture;
if (surfaceTexture != null) {
surfaceTexture.release();
GLES20.glDeleteTextures(1, this.textureIdHolder, 0);
}
} finally {
EGLDisplay eGLDisplay = this.display;
if (eGLDisplay != null && !eGLDisplay.equals(EGL14.EGL_NO_DISPLAY)) {
EGLDisplay eGLDisplay2 = this.display;
EGLSurface eGLSurface = EGL14.EGL_NO_SURFACE;
EGL14.eglMakeCurrent(eGLDisplay2, eGLSurface, eGLSurface, EGL14.EGL_NO_CONTEXT);
}
EGLSurface eGLSurface2 = this.surface;
if (eGLSurface2 != null && !eGLSurface2.equals(EGL14.EGL_NO_SURFACE)) {
EGL14.eglDestroySurface(this.display, this.surface);
}
EGLContext eGLContext = this.context;
if (eGLContext != null) {
EGL14.eglDestroyContext(this.display, eGLContext);
}
if (Util.SDK_INT >= 19) {
EGL14.eglReleaseThread();
}
this.display = null;
this.context = null;
this.surface = null;
this.texture = null;
}
}
public final SurfaceTexture getSurfaceTexture() {
return (SurfaceTexture) Assertions.checkNotNull(this.texture);
}
@Override // android.graphics.SurfaceTexture.OnFrameAvailableListener
public final void onFrameAvailable(SurfaceTexture surfaceTexture) {
this.handler.post(this);
}
@Override // java.lang.Runnable
public final void run() {
SurfaceTexture surfaceTexture = this.texture;
if (surfaceTexture != null) {
surfaceTexture.updateTexImage();
}
}
private static EGLDisplay getDefaultDisplay() {
EGLDisplay eglGetDisplay = EGL14.eglGetDisplay(0);
if (eglGetDisplay == null) {
throw new GlException("eglGetDisplay failed");
}
int[] iArr = new int[2];
if (EGL14.eglInitialize(eglGetDisplay, iArr, 0, iArr, 1)) {
return eglGetDisplay;
}
throw new GlException("eglInitialize failed");
}
private static EGLConfig chooseEGLConfig(EGLDisplay eGLDisplay) {
EGLConfig eGLConfig;
EGLConfig[] eGLConfigArr = new EGLConfig[1];
int[] iArr = new int[1];
boolean eglChooseConfig = EGL14.eglChooseConfig(eGLDisplay, EGL_CONFIG_ATTRIBUTES, 0, eGLConfigArr, 0, 1, iArr, 0);
if (!eglChooseConfig || iArr[0] <= 0 || (eGLConfig = eGLConfigArr[0]) == null) {
throw new GlException(Util.formatInvariant("eglChooseConfig failed: success=%b, numConfigs[0]=%d, configs[0]=%s", Boolean.valueOf(eglChooseConfig), Integer.valueOf(iArr[0]), eGLConfigArr[0]));
}
return eGLConfig;
}
private static EGLContext createEGLContext(EGLDisplay eGLDisplay, EGLConfig eGLConfig, int i) {
EGLContext eglCreateContext = EGL14.eglCreateContext(eGLDisplay, eGLConfig, EGL14.EGL_NO_CONTEXT, i == 0 ? new int[]{12440, 2, 12344} : new int[]{12440, 2, EGL_PROTECTED_CONTENT_EXT, 1, 12344}, 0);
if (eglCreateContext != null) {
return eglCreateContext;
}
throw new GlException("eglCreateContext failed");
}
private static EGLSurface createEGLSurface(EGLDisplay eGLDisplay, EGLConfig eGLConfig, EGLContext eGLContext, int i) {
EGLSurface eglCreatePbufferSurface;
if (i == 1) {
eglCreatePbufferSurface = EGL14.EGL_NO_SURFACE;
} else {
eglCreatePbufferSurface = EGL14.eglCreatePbufferSurface(eGLDisplay, eGLConfig, i == 2 ? new int[]{12375, 1, 12374, 1, EGL_PROTECTED_CONTENT_EXT, 1, 12344} : new int[]{12375, 1, 12374, 1, 12344}, 0);
if (eglCreatePbufferSurface == null) {
throw new GlException("eglCreatePbufferSurface failed");
}
}
if (EGL14.eglMakeCurrent(eGLDisplay, eglCreatePbufferSurface, eglCreatePbufferSurface, eGLContext)) {
return eglCreatePbufferSurface;
}
throw new GlException("eglMakeCurrent failed");
}
private static void generateTextureIds(int[] iArr) {
GLES20.glGenTextures(1, iArr, 0);
int glGetError = GLES20.glGetError();
if (glGetError == 0) {
return;
}
throw new GlException("glGenTextures failed. Error: " + Integer.toHexString(glGetError));
}
}

View File

@@ -0,0 +1,9 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.util.Pair;
import java.lang.Throwable;
/* loaded from: classes4.dex */
public interface ErrorMessageProvider<T extends Throwable> {
Pair<Integer, String> getErrorMessage(T t);
}

View File

@@ -0,0 +1,451 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.net.NetworkInfo;
import android.util.Log;
import android.view.Surface;
import androidx.annotation.Nullable;
import com.ironsource.v8;
import com.mbridge.msdk.newreward.player.view.hybrid.util.MRAIDCommunicatorUtil;
import com.mbridge.msdk.playercommon.exoplayer2.C;
import com.mbridge.msdk.playercommon.exoplayer2.ExoPlaybackException;
import com.mbridge.msdk.playercommon.exoplayer2.Format;
import com.mbridge.msdk.playercommon.exoplayer2.PlaybackParameters;
import com.mbridge.msdk.playercommon.exoplayer2.Timeline;
import com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener;
import com.mbridge.msdk.playercommon.exoplayer2.decoder.DecoderCounters;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.Metadata;
import com.mbridge.msdk.playercommon.exoplayer2.source.MediaSourceEventListener;
import com.mbridge.msdk.playercommon.exoplayer2.source.TrackGroup;
import com.mbridge.msdk.playercommon.exoplayer2.source.TrackGroupArray;
import com.mbridge.msdk.playercommon.exoplayer2.trackselection.MappingTrackSelector;
import com.mbridge.msdk.playercommon.exoplayer2.trackselection.TrackSelection;
import com.mbridge.msdk.playercommon.exoplayer2.trackselection.TrackSelectionArray;
import java.io.IOException;
import java.text.NumberFormat;
import java.util.Locale;
/* loaded from: classes4.dex */
public class EventLogger implements AnalyticsListener {
private static final int MAX_TIMELINE_ITEM_LINES = 3;
private static final String TAG = "EventLogger";
private static final NumberFormat TIME_FORMAT;
@Nullable
private final MappingTrackSelector trackSelector;
private final Timeline.Window window = new Timeline.Window();
private final Timeline.Period period = new Timeline.Period();
private final long startTimeMs = android.os.SystemClock.elapsedRealtime();
private static String getAdaptiveSupportString(int i, int i2) {
return i < 2 ? "N/A" : i2 != 0 ? i2 != 8 ? i2 != 16 ? "?" : "YES" : "YES_NOT_SEAMLESS" : "NO";
}
private static String getDiscontinuityReasonString(int i) {
return i != 0 ? i != 1 ? i != 2 ? i != 3 ? i != 4 ? "?" : "INTERNAL" : "AD_INSERTION" : "SEEK_ADJUSTMENT" : "SEEK" : "PERIOD_TRANSITION";
}
private static String getFormatSupportString(int i) {
return i != 0 ? i != 1 ? i != 2 ? i != 3 ? i != 4 ? "?" : "YES" : "NO_EXCEEDS_CAPABILITIES" : "NO_UNSUPPORTED_DRM" : "NO_UNSUPPORTED_TYPE" : "NO";
}
private static String getRepeatModeString(int i) {
return i != 0 ? i != 1 ? i != 2 ? "?" : "ALL" : "ONE" : "OFF";
}
private static String getStateString(int i) {
return i != 1 ? i != 2 ? i != 3 ? i != 4 ? "?" : "ENDED" : "READY" : "BUFFERING" : "IDLE";
}
private static String getTimelineChangeReasonString(int i) {
return i != 0 ? i != 1 ? i != 2 ? "?" : "DYNAMIC" : "RESET" : "PREPARED";
}
private static String getTrackStatusString(boolean z) {
return z ? "[X]" : "[ ]";
}
public void logd(String str) {
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onBandwidthEstimate(AnalyticsListener.EventTime eventTime, int i, long j, long j2) {
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onLoadCanceled(AnalyticsListener.EventTime eventTime, MediaSourceEventListener.LoadEventInfo loadEventInfo, MediaSourceEventListener.MediaLoadData mediaLoadData) {
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onLoadCompleted(AnalyticsListener.EventTime eventTime, MediaSourceEventListener.LoadEventInfo loadEventInfo, MediaSourceEventListener.MediaLoadData mediaLoadData) {
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onLoadStarted(AnalyticsListener.EventTime eventTime, MediaSourceEventListener.LoadEventInfo loadEventInfo, MediaSourceEventListener.MediaLoadData mediaLoadData) {
}
static {
NumberFormat numberFormat = NumberFormat.getInstance(Locale.US);
TIME_FORMAT = numberFormat;
numberFormat.setMinimumFractionDigits(2);
numberFormat.setMaximumFractionDigits(2);
numberFormat.setGroupingUsed(false);
}
public EventLogger(@Nullable MappingTrackSelector mappingTrackSelector) {
this.trackSelector = mappingTrackSelector;
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onLoadingChanged(AnalyticsListener.EventTime eventTime, boolean z) {
logd(eventTime, MRAIDCommunicatorUtil.STATES_LOADING, Boolean.toString(z));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onPlayerStateChanged(AnalyticsListener.EventTime eventTime, boolean z, int i) {
logd(eventTime, "state", z + ", " + getStateString(i));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onRepeatModeChanged(AnalyticsListener.EventTime eventTime, int i) {
logd(eventTime, "repeatMode", getRepeatModeString(i));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onShuffleModeChanged(AnalyticsListener.EventTime eventTime, boolean z) {
logd(eventTime, "shuffleModeEnabled", Boolean.toString(z));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onPositionDiscontinuity(AnalyticsListener.EventTime eventTime, int i) {
logd(eventTime, "positionDiscontinuity", getDiscontinuityReasonString(i));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onSeekStarted(AnalyticsListener.EventTime eventTime) {
logd(eventTime, "seekStarted");
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onPlaybackParametersChanged(AnalyticsListener.EventTime eventTime, PlaybackParameters playbackParameters) {
logd(eventTime, "playbackParameters", Util.formatInvariant("speed=%.2f, pitch=%.2f, skipSilence=%s", Float.valueOf(playbackParameters.speed), Float.valueOf(playbackParameters.pitch), Boolean.valueOf(playbackParameters.skipSilence)));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onTimelineChanged(AnalyticsListener.EventTime eventTime, int i) {
int periodCount = eventTime.timeline.getPeriodCount();
int windowCount = eventTime.timeline.getWindowCount();
logd("timelineChanged [" + getEventTimeString(eventTime) + ", periodCount=" + periodCount + ", windowCount=" + windowCount + ", reason=" + getTimelineChangeReasonString(i));
for (int i2 = 0; i2 < Math.min(periodCount, 3); i2++) {
eventTime.timeline.getPeriod(i2, this.period);
logd(" period [" + getTimeString(this.period.getDurationMs()) + v8.i.e);
}
if (periodCount > 3) {
logd(" ...");
}
for (int i3 = 0; i3 < Math.min(windowCount, 3); i3++) {
eventTime.timeline.getWindow(i3, this.window);
logd(" window [" + getTimeString(this.window.getDurationMs()) + ", " + this.window.isSeekable + ", " + this.window.isDynamic + v8.i.e);
}
if (windowCount > 3) {
logd(" ...");
}
logd(v8.i.e);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onPlayerError(AnalyticsListener.EventTime eventTime, ExoPlaybackException exoPlaybackException) {
loge(eventTime, "playerFailed", exoPlaybackException);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onTracksChanged(AnalyticsListener.EventTime eventTime, TrackGroupArray trackGroupArray, TrackSelectionArray trackSelectionArray) {
int i;
MappingTrackSelector mappingTrackSelector = this.trackSelector;
MappingTrackSelector.MappedTrackInfo currentMappedTrackInfo = mappingTrackSelector != null ? mappingTrackSelector.getCurrentMappedTrackInfo() : null;
if (currentMappedTrackInfo == null) {
logd(eventTime, "tracksChanged", "[]");
return;
}
logd("tracksChanged [" + getEventTimeString(eventTime) + ", ");
int rendererCount = currentMappedTrackInfo.getRendererCount();
int i2 = 0;
while (true) {
String str = " ]";
String str2 = " [";
if (i2 >= rendererCount) {
break;
}
TrackGroupArray trackGroups = currentMappedTrackInfo.getTrackGroups(i2);
TrackSelection trackSelection = trackSelectionArray.get(i2);
if (trackGroups.length > 0) {
StringBuilder sb = new StringBuilder();
i = rendererCount;
sb.append(" Renderer:");
sb.append(i2);
sb.append(" [");
logd(sb.toString());
int i3 = 0;
while (i3 < trackGroups.length) {
TrackGroup trackGroup = trackGroups.get(i3);
TrackGroupArray trackGroupArray2 = trackGroups;
String str3 = str;
logd(" Group:" + i3 + ", adaptive_supported=" + getAdaptiveSupportString(trackGroup.length, currentMappedTrackInfo.getAdaptiveSupport(i2, i3, false)) + str2);
int i4 = 0;
while (i4 < trackGroup.length) {
logd(" " + getTrackStatusString(trackSelection, trackGroup, i4) + " Track:" + i4 + ", " + Format.toLogString(trackGroup.getFormat(i4)) + ", supported=" + getFormatSupportString(currentMappedTrackInfo.getTrackSupport(i2, i3, i4)));
i4++;
str2 = str2;
}
logd(" ]");
i3++;
trackGroups = trackGroupArray2;
str = str3;
}
String str4 = str;
if (trackSelection != null) {
int i5 = 0;
while (true) {
if (i5 >= trackSelection.length()) {
break;
}
Metadata metadata = trackSelection.getFormat(i5).metadata;
if (metadata != null) {
logd(" Metadata [");
printMetadata(metadata, " ");
logd(" ]");
break;
}
i5++;
}
}
logd(str4);
} else {
i = rendererCount;
}
i2++;
rendererCount = i;
}
String str5 = " [";
TrackGroupArray unmappedTrackGroups = currentMappedTrackInfo.getUnmappedTrackGroups();
if (unmappedTrackGroups.length > 0) {
logd(" Renderer:None [");
int i6 = 0;
while (i6 < unmappedTrackGroups.length) {
StringBuilder sb2 = new StringBuilder();
sb2.append(" Group:");
sb2.append(i6);
String str6 = str5;
sb2.append(str6);
logd(sb2.toString());
TrackGroup trackGroup2 = unmappedTrackGroups.get(i6);
for (int i7 = 0; i7 < trackGroup2.length; i7++) {
logd(" " + getTrackStatusString(false) + " Track:" + i7 + ", " + Format.toLogString(trackGroup2.getFormat(i7)) + ", supported=" + getFormatSupportString(0));
}
logd(" ]");
i6++;
str5 = str6;
}
logd(" ]");
}
logd(v8.i.e);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onSeekProcessed(AnalyticsListener.EventTime eventTime) {
logd(eventTime, "seekProcessed");
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onMetadata(AnalyticsListener.EventTime eventTime, Metadata metadata) {
logd("metadata [" + getEventTimeString(eventTime) + ", ");
printMetadata(metadata, " ");
logd(v8.i.e);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onDecoderEnabled(AnalyticsListener.EventTime eventTime, int i, DecoderCounters decoderCounters) {
logd(eventTime, "decoderEnabled", getTrackTypeString(i));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onAudioSessionId(AnalyticsListener.EventTime eventTime, int i) {
logd(eventTime, "audioSessionId", Integer.toString(i));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onDecoderInitialized(AnalyticsListener.EventTime eventTime, int i, String str, long j) {
logd(eventTime, "decoderInitialized", getTrackTypeString(i) + ", " + str);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onDecoderInputFormatChanged(AnalyticsListener.EventTime eventTime, int i, Format format) {
logd(eventTime, "decoderInputFormatChanged", getTrackTypeString(i) + ", " + Format.toLogString(format));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onDecoderDisabled(AnalyticsListener.EventTime eventTime, int i, DecoderCounters decoderCounters) {
logd(eventTime, "decoderDisabled", getTrackTypeString(i));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onAudioUnderrun(AnalyticsListener.EventTime eventTime, int i, long j, long j2) {
loge(eventTime, "audioTrackUnderrun", i + ", " + j + ", " + j2 + v8.i.e, null);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onDroppedVideoFrames(AnalyticsListener.EventTime eventTime, int i, long j) {
logd(eventTime, "droppedFrames", Integer.toString(i));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onVideoSizeChanged(AnalyticsListener.EventTime eventTime, int i, int i2, int i3, float f) {
logd(eventTime, "videoSizeChanged", i + ", " + i2);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onRenderedFirstFrame(AnalyticsListener.EventTime eventTime, Surface surface) {
logd(eventTime, "renderedFirstFrame", surface.toString());
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onMediaPeriodCreated(AnalyticsListener.EventTime eventTime) {
logd(eventTime, "mediaPeriodCreated");
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onMediaPeriodReleased(AnalyticsListener.EventTime eventTime) {
logd(eventTime, "mediaPeriodReleased");
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onLoadError(AnalyticsListener.EventTime eventTime, MediaSourceEventListener.LoadEventInfo loadEventInfo, MediaSourceEventListener.MediaLoadData mediaLoadData, IOException iOException, boolean z) {
printInternalError(eventTime, "loadError", iOException);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onReadingStarted(AnalyticsListener.EventTime eventTime) {
logd(eventTime, "mediaPeriodReadingStarted");
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onViewportSizeChange(AnalyticsListener.EventTime eventTime, int i, int i2) {
logd(eventTime, "viewportSizeChanged", i + ", " + i2);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onNetworkTypeChanged(AnalyticsListener.EventTime eventTime, @Nullable NetworkInfo networkInfo) {
logd(eventTime, "networkTypeChanged", networkInfo == null ? "none" : networkInfo.toString());
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onUpstreamDiscarded(AnalyticsListener.EventTime eventTime, MediaSourceEventListener.MediaLoadData mediaLoadData) {
logd(eventTime, "upstreamDiscarded", Format.toLogString(mediaLoadData.trackFormat));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onDownstreamFormatChanged(AnalyticsListener.EventTime eventTime, MediaSourceEventListener.MediaLoadData mediaLoadData) {
logd(eventTime, "downstreamFormatChanged", Format.toLogString(mediaLoadData.trackFormat));
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onDrmSessionManagerError(AnalyticsListener.EventTime eventTime, Exception exc) {
printInternalError(eventTime, "drmSessionManagerError", exc);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onDrmKeysRestored(AnalyticsListener.EventTime eventTime) {
logd(eventTime, "drmKeysRestored");
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onDrmKeysRemoved(AnalyticsListener.EventTime eventTime) {
logd(eventTime, "drmKeysRemoved");
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.analytics.AnalyticsListener
public void onDrmKeysLoaded(AnalyticsListener.EventTime eventTime) {
logd(eventTime, "drmKeysLoaded");
}
public void loge(String str, Throwable th) {
Log.e(TAG, str, th);
}
private void logd(AnalyticsListener.EventTime eventTime, String str) {
logd(getEventString(eventTime, str));
}
private void logd(AnalyticsListener.EventTime eventTime, String str, String str2) {
logd(getEventString(eventTime, str, str2));
}
private void loge(AnalyticsListener.EventTime eventTime, String str, Throwable th) {
loge(getEventString(eventTime, str), th);
}
private void loge(AnalyticsListener.EventTime eventTime, String str, String str2, Throwable th) {
loge(getEventString(eventTime, str, str2), th);
}
private void printInternalError(AnalyticsListener.EventTime eventTime, String str, Exception exc) {
loge(eventTime, "internalError", str, exc);
}
private void printMetadata(Metadata metadata, String str) {
for (int i = 0; i < metadata.length(); i++) {
logd(str + metadata.get(i));
}
}
private String getEventString(AnalyticsListener.EventTime eventTime, String str) {
return str + " [" + getEventTimeString(eventTime) + v8.i.e;
}
private String getEventString(AnalyticsListener.EventTime eventTime, String str, String str2) {
return str + " [" + getEventTimeString(eventTime) + ", " + str2 + v8.i.e;
}
private String getEventTimeString(AnalyticsListener.EventTime eventTime) {
String str = "window=" + eventTime.windowIndex;
if (eventTime.mediaPeriodId != null) {
str = str + ", period=" + eventTime.mediaPeriodId.periodIndex;
if (eventTime.mediaPeriodId.isAd()) {
str = (str + ", adGroup=" + eventTime.mediaPeriodId.adGroupIndex) + ", ad=" + eventTime.mediaPeriodId.adIndexInAdGroup;
}
}
return getTimeString(eventTime.realtimeMs - this.startTimeMs) + ", " + getTimeString(eventTime.currentPlaybackPositionMs) + ", " + str;
}
private static String getTimeString(long j) {
return j == C.TIME_UNSET ? "?" : TIME_FORMAT.format(j / 1000.0f);
}
private static String getTrackStatusString(TrackSelection trackSelection, TrackGroup trackGroup, int i) {
return getTrackStatusString((trackSelection == null || trackSelection.getTrackGroup() != trackGroup || trackSelection.indexOf(i) == -1) ? false : true);
}
private static String getTrackTypeString(int i) {
if (i == 0) {
return MRAIDCommunicatorUtil.STATES_DEFAULT;
}
if (i == 1) {
return "audio";
}
if (i == 2) {
return "video";
}
if (i == 3) {
return "text";
}
if (i == 4) {
return "metadata";
}
if (i == 5) {
return "none";
}
if (i < 10000) {
return "?";
}
return "custom (" + i + ")";
}
}

View File

@@ -0,0 +1,70 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.support.v4.media.session.PlaybackStateCompat;
/* loaded from: classes4.dex */
public final class FlacStreamInfo {
public final int bitsPerSample;
public final int channels;
public final int maxBlockSize;
public final int maxFrameSize;
public final int minBlockSize;
public final int minFrameSize;
public final int sampleRate;
public final long totalSamples;
public final int bitRate() {
return this.bitsPerSample * this.sampleRate;
}
public FlacStreamInfo(byte[] bArr, int i) {
ParsableBitArray parsableBitArray = new ParsableBitArray(bArr);
parsableBitArray.setPosition(i * 8);
this.minBlockSize = parsableBitArray.readBits(16);
this.maxBlockSize = parsableBitArray.readBits(16);
this.minFrameSize = parsableBitArray.readBits(24);
this.maxFrameSize = parsableBitArray.readBits(24);
this.sampleRate = parsableBitArray.readBits(20);
this.channels = parsableBitArray.readBits(3) + 1;
this.bitsPerSample = parsableBitArray.readBits(5) + 1;
this.totalSamples = ((parsableBitArray.readBits(4) & 15) << 32) | (parsableBitArray.readBits(32) & 4294967295L);
}
public FlacStreamInfo(int i, int i2, int i3, int i4, int i5, int i6, int i7, long j) {
this.minBlockSize = i;
this.maxBlockSize = i2;
this.minFrameSize = i3;
this.maxFrameSize = i4;
this.sampleRate = i5;
this.channels = i6;
this.bitsPerSample = i7;
this.totalSamples = j;
}
public final int maxDecodedFrameSize() {
return this.maxBlockSize * this.channels * (this.bitsPerSample / 8);
}
public final long durationUs() {
return (this.totalSamples * 1000000) / this.sampleRate;
}
public final long getSampleIndex(long j) {
return Util.constrainValue((j * this.sampleRate) / 1000000, 0L, this.totalSamples - 1);
}
public final long getApproxBytesPerFrame() {
long j;
long j2;
int i = this.maxFrameSize;
if (i > 0) {
j = (i + this.minFrameSize) / 2;
j2 = 1;
} else {
int i2 = this.minBlockSize;
j = ((((i2 != this.maxBlockSize || i2 <= 0) ? PlaybackStateCompat.ACTION_SKIP_TO_QUEUE_ITEM : i2) * this.channels) * this.bitsPerSample) / 8;
j2 = 64;
}
return j + j2;
}
}

View File

@@ -0,0 +1,29 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.os.Looper;
import android.os.Message;
/* loaded from: classes4.dex */
public interface HandlerWrapper {
Looper getLooper();
Message obtainMessage(int i);
Message obtainMessage(int i, int i2, int i3);
Message obtainMessage(int i, int i2, int i3, Object obj);
Message obtainMessage(int i, Object obj);
boolean post(Runnable runnable);
boolean postDelayed(Runnable runnable, long j);
void removeCallbacksAndMessages(Object obj);
void removeMessages(int i);
boolean sendEmptyMessage(int i);
boolean sendEmptyMessageAtTime(int i, long j);
}

View File

@@ -0,0 +1,32 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
/* loaded from: classes4.dex */
public final class LibraryLoader {
private boolean isAvailable;
private boolean loadAttempted;
private String[] nativeLibraries;
public LibraryLoader(String... strArr) {
this.nativeLibraries = strArr;
}
public final synchronized void setLibraries(String... strArr) {
Assertions.checkState(!this.loadAttempted, "Cannot set libraries after loading");
this.nativeLibraries = strArr;
}
public final synchronized boolean isAvailable() {
if (this.loadAttempted) {
return this.isAvailable;
}
this.loadAttempted = true;
try {
for (String str : this.nativeLibraries) {
System.loadLibrary(str);
}
this.isAvailable = true;
} catch (UnsatisfiedLinkError unused) {
}
return this.isAvailable;
}
}

View File

@@ -0,0 +1,45 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import java.util.Arrays;
/* loaded from: classes4.dex */
public final class LongArray {
private static final int DEFAULT_INITIAL_CAPACITY = 32;
private int size;
private long[] values;
public final int size() {
return this.size;
}
public LongArray() {
this(32);
}
public LongArray(int i) {
this.values = new long[i];
}
public final void add(long j) {
int i = this.size;
long[] jArr = this.values;
if (i == jArr.length) {
this.values = Arrays.copyOf(jArr, i * 2);
}
long[] jArr2 = this.values;
int i2 = this.size;
this.size = i2 + 1;
jArr2[i2] = j;
}
public final long get(int i) {
if (i < 0 || i >= this.size) {
throw new IndexOutOfBoundsException("Invalid index " + i + ", size is " + this.size);
}
return this.values[i];
}
public final long[] toArray() {
return Arrays.copyOf(this.values, this.size);
}
}

View File

@@ -0,0 +1,12 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import com.mbridge.msdk.playercommon.exoplayer2.PlaybackParameters;
/* loaded from: classes4.dex */
public interface MediaClock {
PlaybackParameters getPlaybackParameters();
long getPositionUs();
PlaybackParameters setPlaybackParameters(PlaybackParameters playbackParameters);
}

View File

@@ -0,0 +1,321 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.text.TextUtils;
import androidx.annotation.Nullable;
import com.vungle.ads.internal.signals.SignalKey;
import java.util.ArrayList;
/* loaded from: classes4.dex */
public final class MimeTypes {
public static final String APPLICATION_CAMERA_MOTION = "application/x-camera-motion";
public static final String APPLICATION_CEA608 = "application/cea-608";
public static final String APPLICATION_CEA708 = "application/cea-708";
public static final String APPLICATION_DVBSUBS = "application/dvbsubs";
public static final String APPLICATION_EMSG = "application/x-emsg";
public static final String APPLICATION_EXIF = "application/x-exif";
public static final String APPLICATION_ID3 = "application/id3";
public static final String APPLICATION_M3U8 = "application/x-mpegURL";
public static final String APPLICATION_MP4 = "application/mp4";
public static final String APPLICATION_MP4CEA608 = "application/x-mp4-cea-608";
public static final String APPLICATION_MP4VTT = "application/x-mp4-vtt";
public static final String APPLICATION_MPD = "application/dash+xml";
public static final String APPLICATION_PGS = "application/pgs";
public static final String APPLICATION_RAWCC = "application/x-rawcc";
public static final String APPLICATION_SCTE35 = "application/x-scte35";
public static final String APPLICATION_SS = "application/vnd.ms-sstr+xml";
public static final String APPLICATION_SUBRIP = "application/x-subrip";
public static final String APPLICATION_TTML = "application/ttml+xml";
public static final String APPLICATION_TX3G = "application/x-quicktime-tx3g";
public static final String APPLICATION_VOBSUB = "application/vobsub";
public static final String APPLICATION_WEBM = "application/webm";
public static final String AUDIO_AAC = "audio/mp4a-latm";
public static final String AUDIO_AC3 = "audio/ac3";
public static final String AUDIO_ALAC = "audio/alac";
public static final String AUDIO_ALAW = "audio/g711-alaw";
public static final String AUDIO_AMR_NB = "audio/3gpp";
public static final String AUDIO_AMR_WB = "audio/amr-wb";
public static final String AUDIO_DTS = "audio/vnd.dts";
public static final String AUDIO_DTS_EXPRESS = "audio/vnd.dts.hd;profile=lbr";
public static final String AUDIO_DTS_HD = "audio/vnd.dts.hd";
public static final String AUDIO_E_AC3 = "audio/eac3";
public static final String AUDIO_E_AC3_JOC = "audio/eac3-joc";
public static final String AUDIO_FLAC = "audio/flac";
public static final String AUDIO_MLAW = "audio/g711-mlaw";
public static final String AUDIO_MP4 = "audio/mp4";
public static final String AUDIO_MPEG = "audio/mpeg";
public static final String AUDIO_MPEG_L1 = "audio/mpeg-L1";
public static final String AUDIO_MPEG_L2 = "audio/mpeg-L2";
public static final String AUDIO_MSGSM = "audio/gsm";
public static final String AUDIO_OPUS = "audio/opus";
public static final String AUDIO_RAW = "audio/raw";
public static final String AUDIO_TRUEHD = "audio/true-hd";
public static final String AUDIO_UNKNOWN = "audio/x-unknown";
public static final String AUDIO_VORBIS = "audio/vorbis";
public static final String AUDIO_WEBM = "audio/webm";
public static final String BASE_TYPE_APPLICATION = "application";
public static final String BASE_TYPE_AUDIO = "audio";
public static final String BASE_TYPE_TEXT = "text";
public static final String BASE_TYPE_VIDEO = "video";
public static final String TEXT_SSA = "text/x-ssa";
public static final String TEXT_VTT = "text/vtt";
public static final String VIDEO_H263 = "video/3gpp";
public static final String VIDEO_H264 = "video/avc";
public static final String VIDEO_H265 = "video/hevc";
public static final String VIDEO_MP4 = "video/mp4";
public static final String VIDEO_MP4V = "video/mp4v-es";
public static final String VIDEO_MPEG = "video/mpeg";
public static final String VIDEO_MPEG2 = "video/mpeg2";
public static final String VIDEO_UNKNOWN = "video/x-unknown";
public static final String VIDEO_VC1 = "video/wvc1";
public static final String VIDEO_VP8 = "video/x-vnd.on2.vp8";
public static final String VIDEO_VP9 = "video/x-vnd.on2.vp9";
public static final String VIDEO_WEBM = "video/webm";
private static final ArrayList<CustomMimeType> customMimeTypes = new ArrayList<>();
@Nullable
public static String getMimeTypeFromMp4ObjectType(int i) {
if (i == 32) {
return VIDEO_MP4V;
}
if (i == 33) {
return "video/avc";
}
if (i == 35) {
return "video/hevc";
}
if (i == 64) {
return AUDIO_AAC;
}
if (i == 163) {
return VIDEO_VC1;
}
if (i == 177) {
return VIDEO_VP9;
}
if (i == 165) {
return AUDIO_AC3;
}
if (i == 166) {
return AUDIO_E_AC3;
}
switch (i) {
case 96:
case 97:
case 98:
case 99:
case 100:
case 101:
return VIDEO_MPEG2;
case 102:
case 103:
case 104:
return AUDIO_AAC;
case 105:
case SignalKey.EVENT_ID /* 107 */:
return AUDIO_MPEG;
case 106:
return VIDEO_MPEG;
default:
switch (i) {
case 169:
case 172:
return AUDIO_DTS;
case 170:
case 171:
return AUDIO_DTS_HD;
case 173:
return AUDIO_OPUS;
default:
return null;
}
}
}
public static void registerCustomMimeType(String str, String str2, int i) {
CustomMimeType customMimeType = new CustomMimeType(str, str2, i);
int size = customMimeTypes.size();
int i2 = 0;
while (true) {
if (i2 >= size) {
break;
}
ArrayList<CustomMimeType> arrayList = customMimeTypes;
if (str.equals(arrayList.get(i2).mimeType)) {
arrayList.remove(i2);
break;
}
i2++;
}
customMimeTypes.add(customMimeType);
}
public static boolean isAudio(String str) {
return "audio".equals(getTopLevelType(str));
}
public static boolean isVideo(String str) {
return "video".equals(getTopLevelType(str));
}
public static boolean isText(String str) {
return "text".equals(getTopLevelType(str));
}
public static boolean isApplication(String str) {
return "application".equals(getTopLevelType(str));
}
@Nullable
public static String getVideoMediaMimeType(@Nullable String str) {
if (str == null) {
return null;
}
for (String str2 : Util.split(str, ",")) {
String mediaMimeType = getMediaMimeType(str2);
if (mediaMimeType != null && isVideo(mediaMimeType)) {
return mediaMimeType;
}
}
return null;
}
@Nullable
public static String getAudioMediaMimeType(@Nullable String str) {
if (str == null) {
return null;
}
for (String str2 : Util.split(str, ",")) {
String mediaMimeType = getMediaMimeType(str2);
if (mediaMimeType != null && isAudio(mediaMimeType)) {
return mediaMimeType;
}
}
return null;
}
@Nullable
public static String getMediaMimeType(@Nullable String str) {
String str2 = null;
if (str == null) {
return null;
}
String trim = str.trim();
if (trim.startsWith("avc1") || trim.startsWith("avc3")) {
return "video/avc";
}
if (trim.startsWith("hev1") || trim.startsWith("hvc1")) {
return "video/hevc";
}
if (trim.startsWith("vp9") || trim.startsWith("vp09")) {
return VIDEO_VP9;
}
if (trim.startsWith("vp8") || trim.startsWith("vp08")) {
return VIDEO_VP8;
}
if (!trim.startsWith("mp4a")) {
return (trim.startsWith("ac-3") || trim.startsWith("dac3")) ? AUDIO_AC3 : (trim.startsWith("ec-3") || trim.startsWith("dec3")) ? AUDIO_E_AC3 : trim.startsWith("ec+3") ? AUDIO_E_AC3_JOC : (trim.startsWith("dtsc") || trim.startsWith("dtse")) ? AUDIO_DTS : (trim.startsWith("dtsh") || trim.startsWith("dtsl")) ? AUDIO_DTS_HD : trim.startsWith("opus") ? AUDIO_OPUS : trim.startsWith("vorbis") ? AUDIO_VORBIS : getCustomMimeTypeForCodec(trim);
}
if (trim.startsWith("mp4a.")) {
String substring = trim.substring(5);
if (substring.length() >= 2) {
try {
str2 = getMimeTypeFromMp4ObjectType(Integer.parseInt(Util.toUpperInvariant(substring.substring(0, 2)), 16));
} catch (NumberFormatException unused) {
}
}
}
return str2 == null ? AUDIO_AAC : str2;
}
public static int getTrackType(String str) {
if (TextUtils.isEmpty(str)) {
return -1;
}
if (isAudio(str)) {
return 1;
}
if (isVideo(str)) {
return 2;
}
if (isText(str) || APPLICATION_CEA608.equals(str) || APPLICATION_CEA708.equals(str) || APPLICATION_MP4CEA608.equals(str) || APPLICATION_SUBRIP.equals(str) || APPLICATION_TTML.equals(str) || APPLICATION_TX3G.equals(str) || APPLICATION_MP4VTT.equals(str) || APPLICATION_RAWCC.equals(str) || APPLICATION_VOBSUB.equals(str) || APPLICATION_PGS.equals(str) || APPLICATION_DVBSUBS.equals(str)) {
return 3;
}
if (APPLICATION_ID3.equals(str) || APPLICATION_EMSG.equals(str) || APPLICATION_SCTE35.equals(str) || APPLICATION_CAMERA_MOTION.equals(str)) {
return 4;
}
return getTrackTypeForCustomMimeType(str);
}
public static int getEncoding(String str) {
str.hashCode();
switch (str) {
case "audio/eac3-joc":
case "audio/eac3":
return 6;
case "audio/vnd.dts":
return 7;
case "audio/ac3":
return 5;
case "audio/vnd.dts.hd":
return 8;
case "audio/true-hd":
return 14;
default:
return 0;
}
}
public static int getTrackTypeOfCodec(String str) {
return getTrackType(getMediaMimeType(str));
}
@Nullable
private static String getTopLevelType(@Nullable String str) {
if (str == null) {
return null;
}
int indexOf = str.indexOf(47);
if (indexOf == -1) {
throw new IllegalArgumentException("Invalid mime type: " + str);
}
return str.substring(0, indexOf);
}
@Nullable
private static String getCustomMimeTypeForCodec(String str) {
int size = customMimeTypes.size();
for (int i = 0; i < size; i++) {
CustomMimeType customMimeType = customMimeTypes.get(i);
if (str.startsWith(customMimeType.codecPrefix)) {
return customMimeType.mimeType;
}
}
return null;
}
private static int getTrackTypeForCustomMimeType(String str) {
int size = customMimeTypes.size();
for (int i = 0; i < size; i++) {
CustomMimeType customMimeType = customMimeTypes.get(i);
if (str.equals(customMimeType.mimeType)) {
return customMimeType.trackType;
}
}
return -1;
}
private MimeTypes() {
}
public static final class CustomMimeType {
public final String codecPrefix;
public final String mimeType;
public final int trackType;
public CustomMimeType(String str, String str2, int i) {
this.mimeType = str;
this.codecPrefix = str2;
this.trackType = i;
}
}
}

View File

@@ -0,0 +1,214 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import com.applovin.exoplayer2.common.base.Ascii;
import java.nio.ByteBuffer;
import java.util.Arrays;
/* loaded from: classes4.dex */
public final class NalUnitUtil {
public static final int EXTENDED_SAR = 255;
private static final int H264_NAL_UNIT_TYPE_SEI = 6;
private static final int H264_NAL_UNIT_TYPE_SPS = 7;
private static final int H265_NAL_UNIT_TYPE_PREFIX_SEI = 39;
private static final String TAG = "NalUnitUtil";
public static final byte[] NAL_START_CODE = {0, 0, 0, 1};
public static final float[] ASPECT_RATIO_IDC_VALUES = {1.0f, 1.0f, 1.0909091f, 0.90909094f, 1.4545455f, 1.2121212f, 2.1818182f, 1.8181819f, 2.909091f, 2.4242425f, 1.6363636f, 1.3636364f, 1.939394f, 1.6161616f, 1.3333334f, 1.5f, 2.0f};
private static final Object scratchEscapePositionsLock = new Object();
private static int[] scratchEscapePositions = new int[10];
public static final class SpsData {
public final boolean deltaPicOrderAlwaysZeroFlag;
public final boolean frameMbsOnlyFlag;
public final int frameNumLength;
public final int height;
public final int picOrderCntLsbLength;
public final int picOrderCountType;
public final float pixelWidthAspectRatio;
public final boolean separateColorPlaneFlag;
public final int seqParameterSetId;
public final int width;
public SpsData(int i, int i2, int i3, float f, boolean z, boolean z2, int i4, int i5, int i6, boolean z3) {
this.seqParameterSetId = i;
this.width = i2;
this.height = i3;
this.pixelWidthAspectRatio = f;
this.separateColorPlaneFlag = z;
this.frameMbsOnlyFlag = z2;
this.frameNumLength = i4;
this.picOrderCountType = i5;
this.picOrderCntLsbLength = i6;
this.deltaPicOrderAlwaysZeroFlag = z3;
}
}
public static final class PpsData {
public final boolean bottomFieldPicOrderInFramePresentFlag;
public final int picParameterSetId;
public final int seqParameterSetId;
public PpsData(int i, int i2, boolean z) {
this.picParameterSetId = i;
this.seqParameterSetId = i2;
this.bottomFieldPicOrderInFramePresentFlag = z;
}
}
public static int unescapeStream(byte[] bArr, int i) {
int i2;
synchronized (scratchEscapePositionsLock) {
int i3 = 0;
int i4 = 0;
while (i3 < i) {
try {
i3 = findNextUnescapeIndex(bArr, i3, i);
if (i3 < i) {
int[] iArr = scratchEscapePositions;
if (iArr.length <= i4) {
scratchEscapePositions = Arrays.copyOf(iArr, iArr.length * 2);
}
scratchEscapePositions[i4] = i3;
i3 += 3;
i4++;
}
} catch (Throwable th) {
throw th;
}
}
i2 = i - i4;
int i5 = 0;
int i6 = 0;
for (int i7 = 0; i7 < i4; i7++) {
int i8 = scratchEscapePositions[i7] - i6;
System.arraycopy(bArr, i6, bArr, i5, i8);
int i9 = i5 + i8;
int i10 = i9 + 1;
bArr[i9] = 0;
i5 = i9 + 2;
bArr[i10] = 0;
i6 += i8 + 3;
}
System.arraycopy(bArr, i6, bArr, i5, i2 - i5);
}
return i2;
}
public static void discardToSps(ByteBuffer byteBuffer) {
int position = byteBuffer.position();
int i = 0;
int i2 = 0;
while (true) {
int i3 = i + 1;
if (i3 < position) {
int i4 = byteBuffer.get(i) & 255;
if (i2 == 3) {
if (i4 == 1 && (byteBuffer.get(i3) & Ascii.US) == 7) {
ByteBuffer duplicate = byteBuffer.duplicate();
duplicate.position(i - 3);
duplicate.limit(position);
byteBuffer.position(0);
byteBuffer.put(duplicate);
return;
}
} else if (i4 == 0) {
i2++;
}
if (i4 != 0) {
i2 = 0;
}
i = i3;
} else {
byteBuffer.clear();
return;
}
}
}
public static boolean isNalUnitSei(String str, byte b) {
if ("video/avc".equals(str) && (b & Ascii.US) == 6) {
return true;
}
return "video/hevc".equals(str) && ((b & 126) >> 1) == 39;
}
public static int getNalUnitType(byte[] bArr, int i) {
return bArr[i + 3] & Ascii.US;
}
public static int getH265NalUnitType(byte[] bArr, int i) {
return (bArr[i + 3] & 126) >> 1;
}
/* JADX WARN: Removed duplicated region for block: B:28:0x00d9 */
/* JADX WARN: Removed duplicated region for block: B:31:0x00e7 */
/* JADX WARN: Removed duplicated region for block: B:48:0x012d */
/* JADX WARN: Removed duplicated region for block: B:52:0x013f */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public static com.mbridge.msdk.playercommon.exoplayer2.util.NalUnitUtil.SpsData parseSpsNalUnit(byte[] r19, int r20, int r21) {
/*
Method dump skipped, instructions count: 360
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.mbridge.msdk.playercommon.exoplayer2.util.NalUnitUtil.parseSpsNalUnit(byte[], int, int):com.mbridge.msdk.playercommon.exoplayer2.util.NalUnitUtil$SpsData");
}
public static PpsData parsePpsNalUnit(byte[] bArr, int i, int i2) {
ParsableNalUnitBitArray parsableNalUnitBitArray = new ParsableNalUnitBitArray(bArr, i, i2);
parsableNalUnitBitArray.skipBits(8);
int readUnsignedExpGolombCodedInt = parsableNalUnitBitArray.readUnsignedExpGolombCodedInt();
int readUnsignedExpGolombCodedInt2 = parsableNalUnitBitArray.readUnsignedExpGolombCodedInt();
parsableNalUnitBitArray.skipBit();
return new PpsData(readUnsignedExpGolombCodedInt, readUnsignedExpGolombCodedInt2, parsableNalUnitBitArray.readBit());
}
/* JADX WARN: Code restructure failed: missing block: B:56:0x0079, code lost:
r9 = true;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public static int findNalUnit(byte[] r8, int r9, int r10, boolean[] r11) {
/*
Method dump skipped, instructions count: 188
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.mbridge.msdk.playercommon.exoplayer2.util.NalUnitUtil.findNalUnit(byte[], int, int, boolean[]):int");
}
public static void clearPrefixFlags(boolean[] zArr) {
zArr[0] = false;
zArr[1] = false;
zArr[2] = false;
}
private static int findNextUnescapeIndex(byte[] bArr, int i, int i2) {
while (i < i2 - 2) {
if (bArr[i] == 0 && bArr[i + 1] == 0 && bArr[i + 2] == 3) {
return i;
}
i++;
}
return i2;
}
private static void skipScalingList(ParsableNalUnitBitArray parsableNalUnitBitArray, int i) {
int i2 = 8;
int i3 = 8;
for (int i4 = 0; i4 < i; i4++) {
if (i2 != 0) {
i2 = ((parsableNalUnitBitArray.readSignedExpGolombCodedInt() + i3) + 256) % 256;
}
if (i2 != 0) {
i3 = i2;
}
}
}
private NalUnitUtil() {
}
}

View File

@@ -0,0 +1,44 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.annotation.SuppressLint;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@SuppressLint({"InlinedApi"})
/* loaded from: classes4.dex */
public final class NotificationUtil {
public static final int IMPORTANCE_DEFAULT = 3;
public static final int IMPORTANCE_HIGH = 4;
public static final int IMPORTANCE_LOW = 2;
public static final int IMPORTANCE_MIN = 1;
public static final int IMPORTANCE_NONE = 0;
public static final int IMPORTANCE_UNSPECIFIED = -1000;
@Retention(RetentionPolicy.SOURCE)
public @interface Importance {
}
private NotificationUtil() {
}
public static void createNotificationChannel(Context context, String str, @StringRes int i, int i2) {
if (Util.SDK_INT >= 26) {
((NotificationManager) context.getSystemService("notification")).createNotificationChannel(new NotificationChannel(str, context.getString(i), i2));
}
}
public static void setNotification(Context context, int i, @Nullable Notification notification) {
NotificationManager notificationManager = (NotificationManager) context.getSystemService("notification");
if (notification != null) {
notificationManager.notify(i, notification);
} else {
notificationManager.cancel(i);
}
}
}

View File

@@ -0,0 +1,215 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import androidx.core.view.MotionEventCompat;
/* loaded from: classes4.dex */
public final class ParsableBitArray {
private int bitOffset;
private int byteLimit;
private int byteOffset;
public byte[] data;
public ParsableBitArray() {
}
public final int bitsLeft() {
return ((this.byteLimit - this.byteOffset) * 8) - this.bitOffset;
}
public final int getPosition() {
return (this.byteOffset * 8) + this.bitOffset;
}
public final void reset(byte[] bArr, int i) {
this.data = bArr;
this.byteOffset = 0;
this.bitOffset = 0;
this.byteLimit = i;
}
public ParsableBitArray(byte[] bArr) {
this(bArr, bArr.length);
}
public ParsableBitArray(byte[] bArr, int i) {
this.data = bArr;
this.byteLimit = i;
}
public final void reset(byte[] bArr) {
reset(bArr, bArr.length);
}
public final void reset(ParsableByteArray parsableByteArray) {
reset(parsableByteArray.data, parsableByteArray.limit());
setPosition(parsableByteArray.getPosition() * 8);
}
public final int getBytePosition() {
Assertions.checkState(this.bitOffset == 0);
return this.byteOffset;
}
public final void setPosition(int i) {
int i2 = i / 8;
this.byteOffset = i2;
this.bitOffset = i - (i2 * 8);
assertValidOffset();
}
public final void skipBit() {
int i = this.bitOffset + 1;
this.bitOffset = i;
if (i == 8) {
this.bitOffset = 0;
this.byteOffset++;
}
assertValidOffset();
}
public final void skipBits(int i) {
int i2 = i / 8;
int i3 = this.byteOffset + i2;
this.byteOffset = i3;
int i4 = this.bitOffset + (i - (i2 * 8));
this.bitOffset = i4;
if (i4 > 7) {
this.byteOffset = i3 + 1;
this.bitOffset = i4 - 8;
}
assertValidOffset();
}
public final boolean readBit() {
boolean z = (this.data[this.byteOffset] & (128 >> this.bitOffset)) != 0;
skipBit();
return z;
}
public final int readBits(int i) {
int i2;
if (i == 0) {
return 0;
}
this.bitOffset += i;
int i3 = 0;
while (true) {
i2 = this.bitOffset;
if (i2 <= 8) {
break;
}
int i4 = i2 - 8;
this.bitOffset = i4;
byte[] bArr = this.data;
int i5 = this.byteOffset;
this.byteOffset = i5 + 1;
i3 |= (bArr[i5] & 255) << i4;
}
byte[] bArr2 = this.data;
int i6 = this.byteOffset;
int i7 = ((-1) >>> (32 - i)) & (i3 | ((bArr2[i6] & 255) >> (8 - i2)));
if (i2 == 8) {
this.bitOffset = 0;
this.byteOffset = i6 + 1;
}
assertValidOffset();
return i7;
}
public final void readBits(byte[] bArr, int i, int i2) {
int i3 = (i2 >> 3) + i;
while (i < i3) {
byte[] bArr2 = this.data;
int i4 = this.byteOffset;
int i5 = i4 + 1;
this.byteOffset = i5;
byte b = bArr2[i4];
int i6 = this.bitOffset;
byte b2 = (byte) (b << i6);
bArr[i] = b2;
bArr[i] = (byte) (((255 & bArr2[i5]) >> (8 - i6)) | b2);
i++;
}
int i7 = i2 & 7;
if (i7 == 0) {
return;
}
byte b3 = (byte) (bArr[i3] & (255 >> i7));
bArr[i3] = b3;
int i8 = this.bitOffset;
if (i8 + i7 > 8) {
byte[] bArr3 = this.data;
int i9 = this.byteOffset;
this.byteOffset = i9 + 1;
bArr[i3] = (byte) (b3 | ((bArr3[i9] & 255) << i8));
this.bitOffset = i8 - 8;
}
int i10 = this.bitOffset + i7;
this.bitOffset = i10;
byte[] bArr4 = this.data;
int i11 = this.byteOffset;
bArr[i3] = (byte) (((byte) (((255 & bArr4[i11]) >> (8 - i10)) << (8 - i7))) | bArr[i3]);
if (i10 == 8) {
this.bitOffset = 0;
this.byteOffset = i11 + 1;
}
assertValidOffset();
}
public final void byteAlign() {
if (this.bitOffset == 0) {
return;
}
this.bitOffset = 0;
this.byteOffset++;
assertValidOffset();
}
public final void readBytes(byte[] bArr, int i, int i2) {
Assertions.checkState(this.bitOffset == 0);
System.arraycopy(this.data, this.byteOffset, bArr, i, i2);
this.byteOffset += i2;
assertValidOffset();
}
public final void skipBytes(int i) {
Assertions.checkState(this.bitOffset == 0);
this.byteOffset += i;
assertValidOffset();
}
public final void putInt(int i, int i2) {
if (i2 < 32) {
i &= (1 << i2) - 1;
}
int min = Math.min(8 - this.bitOffset, i2);
int i3 = this.bitOffset;
int i4 = (8 - i3) - min;
int i5 = (MotionEventCompat.ACTION_POINTER_INDEX_MASK >> i3) | ((1 << i4) - 1);
byte[] bArr = this.data;
int i6 = this.byteOffset;
byte b = (byte) (i5 & bArr[i6]);
bArr[i6] = b;
int i7 = i2 - min;
bArr[i6] = (byte) (b | ((i >>> i7) << i4));
int i8 = i6 + 1;
while (i7 > 8) {
this.data[i8] = (byte) (i >>> (i7 - 8));
i7 -= 8;
i8++;
}
int i9 = 8 - i7;
byte[] bArr2 = this.data;
byte b2 = (byte) (bArr2[i8] & ((1 << i9) - 1));
bArr2[i8] = b2;
bArr2[i8] = (byte) (((i & ((1 << i7) - 1)) << i9) | b2);
skipBits(i2);
assertValidOffset();
}
private void assertValidOffset() {
int i;
int i2 = this.byteOffset;
Assertions.checkState(i2 >= 0 && (i2 < (i = this.byteLimit) || (i2 == i && this.bitOffset == 0)));
}
}

View File

@@ -0,0 +1,391 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
/* loaded from: classes4.dex */
public final class ParsableByteArray {
public byte[] data;
private int limit;
private int position;
public ParsableByteArray() {
}
public final int bytesLeft() {
return this.limit - this.position;
}
public final int getPosition() {
return this.position;
}
public final int limit() {
return this.limit;
}
public final void reset() {
this.position = 0;
this.limit = 0;
}
public final void reset(byte[] bArr, int i) {
this.data = bArr;
this.limit = i;
this.position = 0;
}
public ParsableByteArray(int i) {
this.data = new byte[i];
this.limit = i;
}
public ParsableByteArray(byte[] bArr) {
this.data = bArr;
this.limit = bArr.length;
}
public ParsableByteArray(byte[] bArr, int i) {
this.data = bArr;
this.limit = i;
}
public final void reset(int i) {
reset(capacity() < i ? new byte[i] : this.data, i);
}
public final void setLimit(int i) {
Assertions.checkArgument(i >= 0 && i <= this.data.length);
this.limit = i;
}
public final int capacity() {
byte[] bArr = this.data;
if (bArr == null) {
return 0;
}
return bArr.length;
}
public final void setPosition(int i) {
Assertions.checkArgument(i >= 0 && i <= this.limit);
this.position = i;
}
public final void skipBytes(int i) {
setPosition(this.position + i);
}
public final void readBytes(ParsableBitArray parsableBitArray, int i) {
readBytes(parsableBitArray.data, 0, i);
parsableBitArray.setPosition(0);
}
public final void readBytes(byte[] bArr, int i, int i2) {
System.arraycopy(this.data, this.position, bArr, i, i2);
this.position += i2;
}
public final void readBytes(ByteBuffer byteBuffer, int i) {
byteBuffer.put(this.data, this.position, i);
this.position += i;
}
public final int peekUnsignedByte() {
return this.data[this.position] & 255;
}
public final char peekChar() {
byte[] bArr = this.data;
int i = this.position;
return (char) ((bArr[i + 1] & 255) | ((bArr[i] & 255) << 8));
}
public final int readUnsignedByte() {
byte[] bArr = this.data;
int i = this.position;
this.position = i + 1;
return bArr[i] & 255;
}
public final int readUnsignedShort() {
byte[] bArr = this.data;
int i = this.position;
int i2 = i + 1;
int i3 = (bArr[i] & 255) << 8;
this.position = i + 2;
return (bArr[i2] & 255) | i3;
}
public final int readLittleEndianUnsignedShort() {
byte[] bArr = this.data;
int i = this.position;
int i2 = i + 1;
int i3 = bArr[i] & 255;
this.position = i + 2;
return ((bArr[i2] & 255) << 8) | i3;
}
public final short readShort() {
byte[] bArr = this.data;
int i = this.position;
int i2 = i + 1;
int i3 = (bArr[i] & 255) << 8;
this.position = i + 2;
return (short) ((bArr[i2] & 255) | i3);
}
public final short readLittleEndianShort() {
byte[] bArr = this.data;
int i = this.position;
int i2 = i + 1;
int i3 = bArr[i] & 255;
this.position = i + 2;
return (short) (((bArr[i2] & 255) << 8) | i3);
}
public final int readUnsignedInt24() {
byte[] bArr = this.data;
int i = this.position;
int i2 = i + 2;
int i3 = ((bArr[i + 1] & 255) << 8) | ((bArr[i] & 255) << 16);
this.position = i + 3;
return (bArr[i2] & 255) | i3;
}
public final int readInt24() {
byte[] bArr = this.data;
int i = this.position;
int i2 = i + 2;
int i3 = ((bArr[i + 1] & 255) << 8) | (((bArr[i] & 255) << 24) >> 8);
this.position = i + 3;
return (bArr[i2] & 255) | i3;
}
public final int readLittleEndianInt24() {
byte[] bArr = this.data;
int i = this.position;
int i2 = i + 2;
int i3 = ((bArr[i + 1] & 255) << 8) | (bArr[i] & 255);
this.position = i + 3;
return ((bArr[i2] & 255) << 16) | i3;
}
public final int readLittleEndianUnsignedInt24() {
byte[] bArr = this.data;
int i = this.position;
int i2 = i + 2;
int i3 = ((bArr[i + 1] & 255) << 8) | (bArr[i] & 255);
this.position = i + 3;
return ((bArr[i2] & 255) << 16) | i3;
}
public final long readUnsignedInt() {
byte[] bArr = this.data;
int i = this.position;
int i2 = i + 3;
long j = ((bArr[i] & 255) << 24) | ((bArr[i + 1] & 255) << 16) | ((bArr[i + 2] & 255) << 8);
this.position = i + 4;
return (bArr[i2] & 255) | j;
}
public final long readLittleEndianUnsignedInt() {
byte[] bArr = this.data;
int i = this.position;
int i2 = i + 3;
long j = (bArr[i] & 255) | ((bArr[i + 1] & 255) << 8) | ((bArr[i + 2] & 255) << 16);
this.position = i + 4;
return ((bArr[i2] & 255) << 24) | j;
}
public final int readInt() {
byte[] bArr = this.data;
int i = this.position;
int i2 = ((bArr[i + 1] & 255) << 16) | ((bArr[i] & 255) << 24);
int i3 = i + 3;
int i4 = i2 | ((bArr[i + 2] & 255) << 8);
this.position = i + 4;
return (bArr[i3] & 255) | i4;
}
public final int readLittleEndianInt() {
byte[] bArr = this.data;
int i = this.position;
int i2 = ((bArr[i + 1] & 255) << 8) | (bArr[i] & 255);
int i3 = i + 3;
int i4 = i2 | ((bArr[i + 2] & 255) << 16);
this.position = i + 4;
return ((bArr[i3] & 255) << 24) | i4;
}
public final long readLong() {
byte[] bArr = this.data;
int i = this.position;
int i2 = i + 7;
long j = ((bArr[i] & 255) << 56) | ((bArr[i + 1] & 255) << 48) | ((bArr[i + 2] & 255) << 40) | ((bArr[i + 3] & 255) << 32) | ((bArr[i + 4] & 255) << 24) | ((bArr[i + 5] & 255) << 16) | ((bArr[i + 6] & 255) << 8);
this.position = i + 8;
return (bArr[i2] & 255) | j;
}
public final long readLittleEndianLong() {
byte[] bArr = this.data;
int i = this.position;
int i2 = i + 7;
long j = (bArr[i] & 255) | ((bArr[i + 1] & 255) << 8) | ((bArr[i + 2] & 255) << 16) | ((bArr[i + 3] & 255) << 24) | ((bArr[i + 4] & 255) << 32) | ((bArr[i + 5] & 255) << 40) | ((bArr[i + 6] & 255) << 48);
this.position = i + 8;
return ((bArr[i2] & 255) << 56) | j;
}
public final int readUnsignedFixedPoint1616() {
byte[] bArr = this.data;
int i = this.position;
int i2 = (bArr[i + 1] & 255) | ((bArr[i] & 255) << 8);
this.position = i + 4;
return i2;
}
public final int readSynchSafeInt() {
return (readUnsignedByte() << 21) | (readUnsignedByte() << 14) | (readUnsignedByte() << 7) | readUnsignedByte();
}
public final int readUnsignedIntToInt() {
int readInt = readInt();
if (readInt >= 0) {
return readInt;
}
throw new IllegalStateException("Top bit not zero: " + readInt);
}
public final int readLittleEndianUnsignedIntToInt() {
int readLittleEndianInt = readLittleEndianInt();
if (readLittleEndianInt >= 0) {
return readLittleEndianInt;
}
throw new IllegalStateException("Top bit not zero: " + readLittleEndianInt);
}
public final long readUnsignedLongToLong() {
long readLong = readLong();
if (readLong >= 0) {
return readLong;
}
throw new IllegalStateException("Top bit not zero: " + readLong);
}
public final float readFloat() {
return Float.intBitsToFloat(readInt());
}
public final double readDouble() {
return Double.longBitsToDouble(readLong());
}
public final String readString(int i) {
return readString(i, Charset.forName("UTF-8"));
}
public final String readString(int i, Charset charset) {
String str = new String(this.data, this.position, i, charset);
this.position += i;
return str;
}
public final String readNullTerminatedString(int i) {
if (i == 0) {
return "";
}
int i2 = this.position;
int i3 = (i2 + i) - 1;
String fromUtf8Bytes = Util.fromUtf8Bytes(this.data, i2, (i3 >= this.limit || this.data[i3] != 0) ? i : i - 1);
this.position += i;
return fromUtf8Bytes;
}
public final String readNullTerminatedString() {
if (bytesLeft() == 0) {
return null;
}
int i = this.position;
while (i < this.limit && this.data[i] != 0) {
i++;
}
byte[] bArr = this.data;
int i2 = this.position;
String fromUtf8Bytes = Util.fromUtf8Bytes(bArr, i2, i - i2);
this.position = i;
if (i < this.limit) {
this.position = i + 1;
}
return fromUtf8Bytes;
}
public final String readLine() {
if (bytesLeft() == 0) {
return null;
}
int i = this.position;
while (i < this.limit && !Util.isLinebreak(this.data[i])) {
i++;
}
int i2 = this.position;
if (i - i2 >= 3) {
byte[] bArr = this.data;
if (bArr[i2] == -17 && bArr[i2 + 1] == -69 && bArr[i2 + 2] == -65) {
this.position = i2 + 3;
}
}
byte[] bArr2 = this.data;
int i3 = this.position;
String fromUtf8Bytes = Util.fromUtf8Bytes(bArr2, i3, i - i3);
this.position = i;
int i4 = this.limit;
if (i == i4) {
return fromUtf8Bytes;
}
byte[] bArr3 = this.data;
if (bArr3[i] == 13) {
int i5 = i + 1;
this.position = i5;
if (i5 == i4) {
return fromUtf8Bytes;
}
}
int i6 = this.position;
if (bArr3[i6] == 10) {
this.position = i6 + 1;
}
return fromUtf8Bytes;
}
public final long readUtf8EncodedLong() {
int i;
int i2;
long j = this.data[this.position];
int i3 = 7;
while (true) {
if (i3 < 0) {
break;
}
if (((1 << i3) & j) != 0) {
i3--;
} else if (i3 < 6) {
j &= r6 - 1;
i2 = 7 - i3;
} else if (i3 == 7) {
i2 = 1;
}
}
i2 = 0;
if (i2 == 0) {
throw new NumberFormatException("Invalid UTF-8 sequence first byte: " + j);
}
for (i = 1; i < i2; i++) {
if ((this.data[this.position + i] & 192) != 128) {
throw new NumberFormatException("Invalid UTF-8 sequence continuation byte: " + j);
}
j = (j << 6) | (r3 & 63);
}
this.position += i2;
return j;
}
}

View File

@@ -0,0 +1,165 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
/* loaded from: classes4.dex */
public final class ParsableNalUnitBitArray {
private int bitOffset;
private int byteLimit;
private int byteOffset;
private byte[] data;
public ParsableNalUnitBitArray(byte[] bArr, int i, int i2) {
reset(bArr, i, i2);
}
public final void reset(byte[] bArr, int i, int i2) {
this.data = bArr;
this.byteOffset = i;
this.byteLimit = i2;
this.bitOffset = 0;
assertValidOffset();
}
public final void skipBit() {
int i = this.bitOffset + 1;
this.bitOffset = i;
if (i == 8) {
this.bitOffset = 0;
int i2 = this.byteOffset;
this.byteOffset = i2 + (shouldSkipByte(i2 + 1) ? 2 : 1);
}
assertValidOffset();
}
public final void skipBits(int i) {
int i2 = this.byteOffset;
int i3 = i / 8;
int i4 = i2 + i3;
this.byteOffset = i4;
int i5 = this.bitOffset + (i - (i3 * 8));
this.bitOffset = i5;
if (i5 > 7) {
this.byteOffset = i4 + 1;
this.bitOffset = i5 - 8;
}
while (true) {
i2++;
if (i2 <= this.byteOffset) {
if (shouldSkipByte(i2)) {
this.byteOffset++;
i2 += 2;
}
} else {
assertValidOffset();
return;
}
}
}
public final boolean canReadBits(int i) {
int i2 = this.byteOffset;
int i3 = i / 8;
int i4 = i2 + i3;
int i5 = (this.bitOffset + i) - (i3 * 8);
if (i5 > 7) {
i4++;
i5 -= 8;
}
while (true) {
i2++;
if (i2 > i4 || i4 >= this.byteLimit) {
break;
}
if (shouldSkipByte(i2)) {
i4++;
i2 += 2;
}
}
int i6 = this.byteLimit;
if (i4 >= i6) {
return i4 == i6 && i5 == 0;
}
return true;
}
public final boolean readBit() {
boolean z = (this.data[this.byteOffset] & (128 >> this.bitOffset)) != 0;
skipBit();
return z;
}
public final int readBits(int i) {
int i2;
this.bitOffset += i;
int i3 = 0;
while (true) {
i2 = this.bitOffset;
if (i2 <= 8) {
break;
}
int i4 = i2 - 8;
this.bitOffset = i4;
byte[] bArr = this.data;
int i5 = this.byteOffset;
i3 |= (bArr[i5] & 255) << i4;
if (!shouldSkipByte(i5 + 1)) {
r3 = 1;
}
this.byteOffset = i5 + r3;
}
byte[] bArr2 = this.data;
int i6 = this.byteOffset;
int i7 = ((-1) >>> (32 - i)) & (i3 | ((bArr2[i6] & 255) >> (8 - i2)));
if (i2 == 8) {
this.bitOffset = 0;
this.byteOffset = i6 + (shouldSkipByte(i6 + 1) ? 2 : 1);
}
assertValidOffset();
return i7;
}
public final boolean canReadExpGolombCodedNum() {
int i = this.byteOffset;
int i2 = this.bitOffset;
int i3 = 0;
while (this.byteOffset < this.byteLimit && !readBit()) {
i3++;
}
boolean z = this.byteOffset == this.byteLimit;
this.byteOffset = i;
this.bitOffset = i2;
return !z && canReadBits((i3 * 2) + 1);
}
public final int readUnsignedExpGolombCodedInt() {
return readExpGolombCodeNum();
}
public final int readSignedExpGolombCodedInt() {
int readExpGolombCodeNum = readExpGolombCodeNum();
return (readExpGolombCodeNum % 2 == 0 ? -1 : 1) * ((readExpGolombCodeNum + 1) / 2);
}
private int readExpGolombCodeNum() {
int i = 0;
while (!readBit()) {
i++;
}
return ((1 << i) - 1) + (i > 0 ? readBits(i) : 0);
}
private boolean shouldSkipByte(int i) {
if (2 <= i && i < this.byteLimit) {
byte[] bArr = this.data;
if (bArr[i] == 3 && bArr[i - 2] == 0 && bArr[i - 1] == 0) {
return true;
}
}
return false;
}
private void assertValidOffset() {
int i;
int i2 = this.byteOffset;
Assertions.checkState(i2 >= 0 && (i2 < (i = this.byteLimit) || (i2 == i && this.bitOffset == 0)));
}
}

View File

@@ -0,0 +1,6 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
/* loaded from: classes4.dex */
public interface Predicate<T> {
boolean evaluate(T t);
}

View File

@@ -0,0 +1,66 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import com.ironsource.v8;
import java.io.IOException;
import java.util.Collections;
import java.util.PriorityQueue;
/* loaded from: classes4.dex */
public final class PriorityTaskManager {
private final Object lock = new Object();
private final PriorityQueue<Integer> queue = new PriorityQueue<>(10, Collections.reverseOrder());
private int highestPriority = Integer.MIN_VALUE;
public static class PriorityTooLowException extends IOException {
public PriorityTooLowException(int i, int i2) {
super("Priority too low [priority=" + i + ", highest=" + i2 + v8.i.e);
}
}
public final void add(int i) {
synchronized (this.lock) {
this.queue.add(Integer.valueOf(i));
this.highestPriority = Math.max(this.highestPriority, i);
}
}
public final void proceed(int i) throws InterruptedException {
synchronized (this.lock) {
while (this.highestPriority != i) {
try {
this.lock.wait();
} catch (Throwable th) {
throw th;
}
}
}
}
public final boolean proceedNonBlocking(int i) {
boolean z;
synchronized (this.lock) {
z = this.highestPriority == i;
}
return z;
}
public final void proceedOrThrow(int i) throws PriorityTooLowException {
synchronized (this.lock) {
try {
if (this.highestPriority != i) {
throw new PriorityTooLowException(i, this.highestPriority);
}
} catch (Throwable th) {
throw th;
}
}
}
public final void remove(int i) {
synchronized (this.lock) {
this.queue.remove(Integer.valueOf(i));
this.highestPriority = this.queue.isEmpty() ? Integer.MIN_VALUE : this.queue.peek().intValue();
this.lock.notifyAll();
}
}
}

View File

@@ -0,0 +1,35 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/* loaded from: classes4.dex */
public final class RepeatModeUtil {
public static final int REPEAT_TOGGLE_MODE_ALL = 2;
public static final int REPEAT_TOGGLE_MODE_NONE = 0;
public static final int REPEAT_TOGGLE_MODE_ONE = 1;
@Retention(RetentionPolicy.SOURCE)
public @interface RepeatToggleModes {
}
public static boolean isRepeatModeEnabled(int i, int i2) {
if (i != 0) {
return i != 1 ? i == 2 && (i2 & 2) != 0 : (i2 & 1) != 0;
}
return true;
}
private RepeatModeUtil() {
}
public static int getNextRepeatMode(int i, int i2) {
for (int i3 = 1; i3 <= 2; i3++) {
int i4 = (i + i3) % 3;
if (isRepeatModeEnabled(i4, i2)) {
return i4;
}
}
return i;
}
}

View File

@@ -0,0 +1,46 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/* loaded from: classes4.dex */
public final class ReusableBufferedOutputStream extends BufferedOutputStream {
private boolean closed;
public ReusableBufferedOutputStream(OutputStream outputStream) {
super(outputStream);
}
public ReusableBufferedOutputStream(OutputStream outputStream, int i) {
super(outputStream, i);
}
@Override // java.io.FilterOutputStream, java.io.OutputStream, java.io.Closeable, java.lang.AutoCloseable
public final void close() throws IOException {
this.closed = true;
try {
flush();
th = null;
} catch (Throwable th) {
th = th;
}
try {
((BufferedOutputStream) this).out.close();
} catch (Throwable th2) {
if (th == null) {
th = th2;
}
}
if (th != null) {
Util.sneakyThrow(th);
}
}
public final void reset(OutputStream outputStream) {
Assertions.checkState(this.closed);
((BufferedOutputStream) this).out = outputStream;
((BufferedOutputStream) this).count = 0;
this.closed = false;
}
}

View File

@@ -0,0 +1,125 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
/* loaded from: classes4.dex */
public class SlidingPercentile {
private static final int MAX_RECYCLED_SAMPLES = 5;
private static final int SORT_ORDER_BY_INDEX = 1;
private static final int SORT_ORDER_BY_VALUE = 0;
private static final int SORT_ORDER_NONE = -1;
private final int maxWeight;
private int nextSampleIndex;
private int recycledSampleCount;
private int totalWeight;
private static final Comparator<Sample> INDEX_COMPARATOR = new Comparator<Sample>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.util.SlidingPercentile.1
@Override // java.util.Comparator
public int compare(Sample sample, Sample sample2) {
return sample.index - sample2.index;
}
};
private static final Comparator<Sample> VALUE_COMPARATOR = new Comparator<Sample>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.util.SlidingPercentile.2
@Override // java.util.Comparator
public int compare(Sample sample, Sample sample2) {
float f = sample.value;
float f2 = sample2.value;
if (f < f2) {
return -1;
}
return f2 < f ? 1 : 0;
}
};
private final Sample[] recycledSamples = new Sample[5];
private final ArrayList<Sample> samples = new ArrayList<>();
private int currentSortOrder = -1;
public static class Sample {
public int index;
public float value;
public int weight;
private Sample() {
}
}
public SlidingPercentile(int i) {
this.maxWeight = i;
}
public void addSample(int i, float f) {
Sample sample;
ensureSortedByIndex();
int i2 = this.recycledSampleCount;
if (i2 > 0) {
Sample[] sampleArr = this.recycledSamples;
int i3 = i2 - 1;
this.recycledSampleCount = i3;
sample = sampleArr[i3];
} else {
sample = new Sample();
}
int i4 = this.nextSampleIndex;
this.nextSampleIndex = i4 + 1;
sample.index = i4;
sample.weight = i;
sample.value = f;
this.samples.add(sample);
this.totalWeight += i;
while (true) {
int i5 = this.totalWeight;
int i6 = this.maxWeight;
if (i5 <= i6) {
return;
}
int i7 = i5 - i6;
Sample sample2 = this.samples.get(0);
int i8 = sample2.weight;
if (i8 <= i7) {
this.totalWeight -= i8;
this.samples.remove(0);
int i9 = this.recycledSampleCount;
if (i9 < 5) {
Sample[] sampleArr2 = this.recycledSamples;
this.recycledSampleCount = i9 + 1;
sampleArr2[i9] = sample2;
}
} else {
sample2.weight = i8 - i7;
this.totalWeight -= i7;
}
}
}
public float getPercentile(float f) {
ensureSortedByValue();
float f2 = f * this.totalWeight;
int i = 0;
for (int i2 = 0; i2 < this.samples.size(); i2++) {
Sample sample = this.samples.get(i2);
i += sample.weight;
if (i >= f2) {
return sample.value;
}
}
if (this.samples.isEmpty()) {
return Float.NaN;
}
return this.samples.get(r5.size() - 1).value;
}
private void ensureSortedByIndex() {
if (this.currentSortOrder != 1) {
Collections.sort(this.samples, INDEX_COMPARATOR);
this.currentSortOrder = 1;
}
}
private void ensureSortedByValue() {
if (this.currentSortOrder != 0) {
Collections.sort(this.samples, VALUE_COMPARATOR);
this.currentSortOrder = 0;
}
}
}

View File

@@ -0,0 +1,70 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import com.mbridge.msdk.playercommon.exoplayer2.C;
import com.mbridge.msdk.playercommon.exoplayer2.PlaybackParameters;
/* loaded from: classes4.dex */
public final class StandaloneMediaClock implements MediaClock {
private long baseElapsedMs;
private long baseUs;
private final Clock clock;
private PlaybackParameters playbackParameters = PlaybackParameters.DEFAULT;
private boolean started;
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.MediaClock
public final PlaybackParameters getPlaybackParameters() {
return this.playbackParameters;
}
public StandaloneMediaClock(Clock clock) {
this.clock = clock;
}
public final void start() {
if (this.started) {
return;
}
this.baseElapsedMs = this.clock.elapsedRealtime();
this.started = true;
}
public final void stop() {
if (this.started) {
resetPosition(getPositionUs());
this.started = false;
}
}
public final void resetPosition(long j) {
this.baseUs = j;
if (this.started) {
this.baseElapsedMs = this.clock.elapsedRealtime();
}
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.MediaClock
public final long getPositionUs() {
long mediaTimeUsForPlayoutTimeMs;
long j = this.baseUs;
if (!this.started) {
return j;
}
long elapsedRealtime = this.clock.elapsedRealtime() - this.baseElapsedMs;
PlaybackParameters playbackParameters = this.playbackParameters;
if (playbackParameters.speed == 1.0f) {
mediaTimeUsForPlayoutTimeMs = C.msToUs(elapsedRealtime);
} else {
mediaTimeUsForPlayoutTimeMs = playbackParameters.getMediaTimeUsForPlayoutTimeMs(elapsedRealtime);
}
return j + mediaTimeUsForPlayoutTimeMs;
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.MediaClock
public final PlaybackParameters setPlaybackParameters(PlaybackParameters playbackParameters) {
if (this.started) {
resetPosition(getPositionUs());
}
this.playbackParameters = playbackParameters;
return playbackParameters;
}
}

View File

@@ -0,0 +1,28 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.os.Handler;
import android.os.Looper;
import androidx.annotation.Nullable;
/* loaded from: classes4.dex */
final class SystemClock implements Clock {
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.Clock
public final long elapsedRealtime() {
return android.os.SystemClock.elapsedRealtime();
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.Clock
public final long uptimeMillis() {
return android.os.SystemClock.uptimeMillis();
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.Clock
public final void sleep(long j) {
android.os.SystemClock.sleep(j);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.Clock
public final HandlerWrapper createHandler(Looper looper, @Nullable Handler.Callback callback) {
return new SystemHandlerWrapper(new Handler(looper, callback));
}
}

View File

@@ -0,0 +1,69 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
/* loaded from: classes4.dex */
final class SystemHandlerWrapper implements HandlerWrapper {
private final Handler handler;
public SystemHandlerWrapper(Handler handler) {
this.handler = handler;
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.HandlerWrapper
public final Looper getLooper() {
return this.handler.getLooper();
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.HandlerWrapper
public final Message obtainMessage(int i) {
return this.handler.obtainMessage(i);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.HandlerWrapper
public final Message obtainMessage(int i, Object obj) {
return this.handler.obtainMessage(i, obj);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.HandlerWrapper
public final Message obtainMessage(int i, int i2, int i3) {
return this.handler.obtainMessage(i, i2, i3);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.HandlerWrapper
public final Message obtainMessage(int i, int i2, int i3, Object obj) {
return this.handler.obtainMessage(i, i2, i3, obj);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.HandlerWrapper
public final boolean sendEmptyMessage(int i) {
return this.handler.sendEmptyMessage(i);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.HandlerWrapper
public final boolean sendEmptyMessageAtTime(int i, long j) {
return this.handler.sendEmptyMessageAtTime(i, j);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.HandlerWrapper
public final void removeMessages(int i) {
this.handler.removeMessages(i);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.HandlerWrapper
public final void removeCallbacksAndMessages(Object obj) {
this.handler.removeCallbacksAndMessages(obj);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.HandlerWrapper
public final boolean post(Runnable runnable) {
return this.handler.post(runnable);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.util.HandlerWrapper
public final boolean postDelayed(Runnable runnable, long j) {
return this.handler.postDelayed(runnable, j);
}
}

View File

@@ -0,0 +1,93 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import com.mbridge.msdk.playercommon.exoplayer2.C;
/* loaded from: classes4.dex */
public final class TimestampAdjuster {
public static final long DO_NOT_OFFSET = Long.MAX_VALUE;
private static final long MAX_PTS_PLUS_ONE = 8589934592L;
private long firstSampleTimestampUs;
private volatile long lastSampleTimestampUs = C.TIME_UNSET;
private long timestampOffsetUs;
public final long getFirstSampleTimestampUs() {
return this.firstSampleTimestampUs;
}
public final long getLastAdjustedTimestampUs() {
if (this.lastSampleTimestampUs != C.TIME_UNSET) {
return this.timestampOffsetUs + this.lastSampleTimestampUs;
}
long j = this.firstSampleTimestampUs;
return j != Long.MAX_VALUE ? j : C.TIME_UNSET;
}
public final long getTimestampOffsetUs() {
if (this.firstSampleTimestampUs == Long.MAX_VALUE) {
return 0L;
}
return this.lastSampleTimestampUs == C.TIME_UNSET ? C.TIME_UNSET : this.timestampOffsetUs;
}
public final void reset() {
this.lastSampleTimestampUs = C.TIME_UNSET;
}
public TimestampAdjuster(long j) {
setFirstSampleTimestampUs(j);
}
public final synchronized void setFirstSampleTimestampUs(long j) {
Assertions.checkState(this.lastSampleTimestampUs == C.TIME_UNSET);
this.firstSampleTimestampUs = j;
}
public final long adjustTsTimestamp(long j) {
if (j == C.TIME_UNSET) {
return C.TIME_UNSET;
}
if (this.lastSampleTimestampUs != C.TIME_UNSET) {
long usToPts = usToPts(this.lastSampleTimestampUs);
long j2 = (4294967296L + usToPts) / MAX_PTS_PLUS_ONE;
long j3 = ((j2 - 1) * MAX_PTS_PLUS_ONE) + j;
j += j2 * MAX_PTS_PLUS_ONE;
if (Math.abs(j3 - usToPts) < Math.abs(j - usToPts)) {
j = j3;
}
}
return adjustSampleTimestamp(ptsToUs(j));
}
public final long adjustSampleTimestamp(long j) {
if (j == C.TIME_UNSET) {
return C.TIME_UNSET;
}
if (this.lastSampleTimestampUs != C.TIME_UNSET) {
this.lastSampleTimestampUs = j;
} else {
long j2 = this.firstSampleTimestampUs;
if (j2 != Long.MAX_VALUE) {
this.timestampOffsetUs = j2 - j;
}
synchronized (this) {
this.lastSampleTimestampUs = j;
notifyAll();
}
}
return j + this.timestampOffsetUs;
}
public final synchronized void waitUntilInitialized() throws InterruptedException {
while (this.lastSampleTimestampUs == C.TIME_UNSET) {
wait();
}
}
public static long ptsToUs(long j) {
return (j * 1000000) / 90000;
}
public static long usToPts(long j) {
return (j * 90000) / 1000000;
}
}

View File

@@ -0,0 +1,32 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.annotation.TargetApi;
import android.os.Trace;
/* loaded from: classes4.dex */
public final class TraceUtil {
private TraceUtil() {
}
public static void beginSection(String str) {
if (Util.SDK_INT >= 18) {
beginSectionV18(str);
}
}
public static void endSection() {
if (Util.SDK_INT >= 18) {
endSectionV18();
}
}
@TargetApi(18)
private static void beginSectionV18(String str) {
Trace.beginSection(str);
}
@TargetApi(18)
private static void endSectionV18() {
Trace.endSection();
}
}

View File

@@ -0,0 +1,168 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.net.Uri;
import android.text.TextUtils;
import java.util.Iterator;
/* loaded from: classes4.dex */
public final class UriUtil {
private static final int FRAGMENT = 3;
private static final int INDEX_COUNT = 4;
private static final int PATH = 1;
private static final int QUERY = 2;
private static final int SCHEME_COLON = 0;
private UriUtil() {
}
public static Uri resolveToUri(String str, String str2) {
return Uri.parse(resolve(str, str2));
}
public static String resolve(String str, String str2) {
StringBuilder sb = new StringBuilder();
if (str == null) {
str = "";
}
if (str2 == null) {
str2 = "";
}
int[] uriIndices = getUriIndices(str2);
if (uriIndices[0] != -1) {
sb.append(str2);
removeDotSegments(sb, uriIndices[1], uriIndices[2]);
return sb.toString();
}
int[] uriIndices2 = getUriIndices(str);
if (uriIndices[3] == 0) {
sb.append((CharSequence) str, 0, uriIndices2[3]);
sb.append(str2);
return sb.toString();
}
if (uriIndices[2] == 0) {
sb.append((CharSequence) str, 0, uriIndices2[2]);
sb.append(str2);
return sb.toString();
}
int i = uriIndices[1];
if (i != 0) {
int i2 = uriIndices2[0] + 1;
sb.append((CharSequence) str, 0, i2);
sb.append(str2);
return removeDotSegments(sb, uriIndices[1] + i2, i2 + uriIndices[2]);
}
if (str2.charAt(i) == '/') {
sb.append((CharSequence) str, 0, uriIndices2[1]);
sb.append(str2);
int i3 = uriIndices2[1];
return removeDotSegments(sb, i3, uriIndices[2] + i3);
}
int i4 = uriIndices2[0] + 2;
int i5 = uriIndices2[1];
if (i4 < i5 && i5 == uriIndices2[2]) {
sb.append((CharSequence) str, 0, i5);
sb.append('/');
sb.append(str2);
int i6 = uriIndices2[1];
return removeDotSegments(sb, i6, uriIndices[2] + i6 + 1);
}
int lastIndexOf = str.lastIndexOf(47, uriIndices2[2] - 1);
int i7 = lastIndexOf == -1 ? uriIndices2[1] : lastIndexOf + 1;
sb.append((CharSequence) str, 0, i7);
sb.append(str2);
return removeDotSegments(sb, uriIndices2[1], i7 + uriIndices[2]);
}
public static Uri removeQueryParameter(Uri uri, String str) {
Uri.Builder buildUpon = uri.buildUpon();
buildUpon.clearQuery();
for (String str2 : uri.getQueryParameterNames()) {
if (!str2.equals(str)) {
Iterator<String> it = uri.getQueryParameters(str2).iterator();
while (it.hasNext()) {
buildUpon.appendQueryParameter(str2, it.next());
}
}
}
return buildUpon.build();
}
private static String removeDotSegments(StringBuilder sb, int i, int i2) {
int i3;
int i4;
if (i >= i2) {
return sb.toString();
}
if (sb.charAt(i) == '/') {
i++;
}
int i5 = i;
int i6 = i5;
while (i5 <= i2) {
if (i5 == i2) {
i3 = i5;
} else if (sb.charAt(i5) == '/') {
i3 = i5 + 1;
} else {
i5++;
}
int i7 = i6 + 1;
if (i5 == i7 && sb.charAt(i6) == '.') {
sb.delete(i6, i3);
i2 -= i3 - i6;
} else {
if (i5 == i6 + 2 && sb.charAt(i6) == '.' && sb.charAt(i7) == '.') {
i4 = sb.lastIndexOf("/", i6 - 2) + 1;
int i8 = i4 > i ? i4 : i;
sb.delete(i8, i3);
i2 -= i3 - i8;
} else {
i4 = i5 + 1;
}
i6 = i4;
}
i5 = i6;
}
return sb.toString();
}
private static int[] getUriIndices(String str) {
int i;
int[] iArr = new int[4];
if (TextUtils.isEmpty(str)) {
iArr[0] = -1;
return iArr;
}
int length = str.length();
int indexOf = str.indexOf(35);
if (indexOf != -1) {
length = indexOf;
}
int indexOf2 = str.indexOf(63);
if (indexOf2 == -1 || indexOf2 > length) {
indexOf2 = length;
}
int indexOf3 = str.indexOf(47);
if (indexOf3 == -1 || indexOf3 > indexOf2) {
indexOf3 = indexOf2;
}
int indexOf4 = str.indexOf(58);
if (indexOf4 > indexOf3) {
indexOf4 = -1;
}
int i2 = indexOf4 + 2;
if (i2 < indexOf2 && str.charAt(indexOf4 + 1) == '/' && str.charAt(i2) == '/') {
i = str.indexOf(47, indexOf4 + 3);
if (i == -1 || i > indexOf2) {
i = indexOf2;
}
} else {
i = indexOf4 + 1;
}
iArr[0] = indexOf4;
iArr[1] = i;
iArr[2] = indexOf2;
iArr[3] = length;
return iArr;
}
}

View File

@@ -0,0 +1,864 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Point;
import android.net.Uri;
import android.os.Build;
import android.os.Parcel;
import android.text.TextUtils;
import android.view.Display;
import android.view.WindowManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.mbridge.msdk.newreward.function.common.MBridgeCommon;
import com.mbridge.msdk.playercommon.exoplayer2.C;
import com.mbridge.msdk.playercommon.exoplayer2.ExoPlayerLibraryInfo;
import com.mbridge.msdk.playercommon.exoplayer2.ParserException;
import com.mbridge.msdk.playercommon.exoplayer2.SeekParameters;
import com.mbridge.msdk.playercommon.exoplayer2.upstream.DataSource;
import csdk.gluads.Consts;
import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.Collections;
import java.util.Formatter;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.TimeZone;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/* loaded from: classes4.dex */
public final class Util {
private static final int[] CRC32_BYTES_MSBF;
public static final String DEVICE;
public static final String DEVICE_DEBUG_INFO;
private static final Pattern ESCAPED_CHARACTER_PATTERN;
public static final String MANUFACTURER;
public static final String MODEL;
public static final int SDK_INT;
private static final String TAG = "Util";
private static final Pattern XS_DATE_TIME_PATTERN;
private static final Pattern XS_DURATION_PATTERN;
private Util() {
}
public static long addWithOverflowDefault(long j, long j2, long j3) {
long j4 = j + j2;
return ((j ^ j4) & (j2 ^ j4)) < 0 ? j3 : j4;
}
public static int compareLong(long j, long j2) {
if (j < j2) {
return -1;
}
return j == j2 ? 0 : 1;
}
public static int getAudioContentTypeForStreamType(int i) {
if (i != 0) {
return (i == 1 || i == 2 || i == 4 || i == 5 || i == 8) ? 4 : 2;
}
return 1;
}
public static int getAudioUsageForStreamType(int i) {
if (i == 0) {
return 2;
}
if (i == 1) {
return 13;
}
if (i == 2) {
return 6;
}
int i2 = 4;
if (i != 4) {
i2 = 5;
if (i != 5) {
return i != 8 ? 1 : 3;
}
}
return i2;
}
public static int getPcmEncoding(int i) {
if (i == 8) {
return 3;
}
if (i == 16) {
return 2;
}
if (i != 24) {
return i != 32 ? 0 : 1073741824;
}
return Integer.MIN_VALUE;
}
public static int getStreamTypeForAudioUsage(int i) {
if (i == 13) {
return 1;
}
switch (i) {
case 2:
return 0;
case 3:
return 8;
case 4:
return 4;
case 5:
case 7:
case 8:
case 9:
case 10:
return 5;
case 6:
return 2;
default:
return 3;
}
}
public static boolean isEncodingHighResolutionIntegerPcm(int i) {
return i == Integer.MIN_VALUE || i == 1073741824;
}
public static boolean isEncodingPcm(int i) {
return i == 3 || i == 2 || i == Integer.MIN_VALUE || i == 1073741824 || i == 4;
}
public static boolean isLinebreak(int i) {
return i == 10 || i == 13;
}
@TargetApi(23)
public static boolean maybeRequestReadExternalStoragePermission(Activity activity, Uri... uriArr) {
return false;
}
private static boolean shouldEscapeCharacter(char c) {
return c == '\"' || c == '%' || c == '*' || c == '/' || c == ':' || c == '<' || c == '\\' || c == '|' || c == '>' || c == '?';
}
public static long subtractWithOverflowDefault(long j, long j2, long j3) {
long j4 = j - j2;
return ((j ^ j4) & (j2 ^ j)) < 0 ? j3 : j4;
}
static {
int i = Build.VERSION.SDK_INT;
SDK_INT = i;
String str = Build.DEVICE;
DEVICE = str;
String str2 = Build.MANUFACTURER;
MANUFACTURER = str2;
String str3 = Build.MODEL;
MODEL = str3;
DEVICE_DEBUG_INFO = str + ", " + str3 + ", " + str2 + ", " + i;
XS_DATE_TIME_PATTERN = Pattern.compile("(\\d\\d\\d\\d)\\-(\\d\\d)\\-(\\d\\d)[Tt](\\d\\d):(\\d\\d):(\\d\\d)([\\.,](\\d+))?([Zz]|((\\+|\\-)(\\d?\\d):?(\\d\\d)))?");
XS_DURATION_PATTERN = Pattern.compile("^(-)?P(([0-9]*)Y)?(([0-9]*)M)?(([0-9]*)D)?(T(([0-9]*)H)?(([0-9]*)M)?(([0-9.]*)S)?)?$");
ESCAPED_CHARACTER_PATTERN = Pattern.compile("%([A-Fa-f0-9]{2})");
CRC32_BYTES_MSBF = new int[]{0, 79764919, 159529838, 222504665, 319059676, 398814059, 445009330, 507990021, 638119352, 583659535, 797628118, 726387553, 890018660, 835552979, 1015980042, 944750013, 1276238704, 1221641927, 1167319070, 1095957929, 1595256236, 1540665371, 1452775106, 1381403509, 1780037320, 1859660671, 1671105958, 1733955601, 2031960084, 2111593891, 1889500026, 1952343757, -1742489888, -1662866601, -1851683442, -1788833735, -1960329156, -1880695413, -2103051438, -2040207643, -1104454824, -1159051537, -1213636554, -1284997759, -1389417084, -1444007885, -1532160278, -1603531939, -734892656, -789352409, -575645954, -646886583, -952755380, -1007220997, -827056094, -898286187, -231047128, -151282273, -71779514, -8804623, -515967244, -436212925, -390279782, -327299027, 881225847, 809987520, 1023691545, 969234094, 662832811, 591600412, 771767749, 717299826, 311336399, 374308984, 453813921, 533576470, 25881363, 88864420, 134795389, 214552010, 2023205639, 2086057648, 1897238633, 1976864222, 1804852699, 1867694188, 1645340341, 1724971778, 1587496639, 1516133128, 1461550545, 1406951526, 1302016099, 1230646740, 1142491917, 1087903418, -1398421865, -1469785312, -1524105735, -1578704818, -1079922613, -1151291908, -1239184603, -1293773166, -1968362705, -1905510760, -2094067647, -2014441994, -1716953613, -1654112188, -1876203875, -1796572374, -525066777, -462094256, -382327159, -302564546, -206542021, -143559028, -97365931, -17609246, -960696225, -1031934488, -817968335, -872425850, -709327229, -780559564, -600130067, -654598054, 1762451694, 1842216281, 1619975040, 1682949687, 2047383090, 2127137669, 1938468188, 2001449195, 1325665622, 1271206113, 1183200824, 1111960463, 1543535498, 1489069629, 1434599652, 1363369299, 622672798, 568075817, 748617968, 677256519, 907627842, 853037301, 1067152940, 995781531, 51762726, 131386257, 177728840, 240578815, 269590778, 349224269, 429104020, 491947555, -248556018, -168932423, -122852000, -60002089, -500490030, -420856475, -341238852, -278395381, -685261898, -739858943, -559578920, -630940305, -1004286614, -1058877219, -845023740, -916395085, -1119974018, -1174433591, -1262701040, -1333941337, -1371866206, -1426332139, -1481064244, -1552294533, -1690935098, -1611170447, -1833673816, -1770699233, -2009983462, -1930228819, -2119160460, -2056179517, 1569362073, 1498123566, 1409854455, 1355396672, 1317987909, 1246755826, 1192025387, 1137557660, 2072149281, 2135122070, 1912620623, 1992383480, 1753615357, 1816598090, 1627664531, 1707420964, 295390185, 358241886, 404320391, 483945776, 43990325, 106832002, 186451547, 266083308, 932423249, 861060070, 1041341759, 986742920, 613929101, 542559546, 756411363, 701822548, -978770311, -1050133554, -869589737, -924188512, -693284699, -764654318, -550540341, -605129092, -475935807, -413084042, -366743377, -287118056, -257573603, -194731862, -114850189, -35218492, -1984365303, -1921392450, -2143631769, -2063868976, -1698919467, -1635936670, -1824608069, -1744851700, -1347415887, -1418654458, -1506661409, -1561119128, -1129027987, -1200260134, -1254728445, -1309196108};
}
public static byte[] toByteArray(InputStream inputStream) throws IOException {
byte[] bArr = new byte[4096];
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
while (true) {
int read = inputStream.read(bArr);
if (read != -1) {
byteArrayOutputStream.write(bArr, 0, read);
} else {
return byteArrayOutputStream.toByteArray();
}
}
}
public static ComponentName startForegroundService(Context context, Intent intent) {
if (SDK_INT >= 26) {
return context.startForegroundService(intent);
}
return context.startService(intent);
}
public static boolean isLocalFileUri(Uri uri) {
String scheme = uri.getScheme();
return TextUtils.isEmpty(scheme) || "file".equals(scheme);
}
public static boolean areEqual(@Nullable Object obj, @Nullable Object obj2) {
if (obj == null) {
return obj2 == null;
}
return obj.equals(obj2);
}
public static boolean contains(Object[] objArr, Object obj) {
for (Object obj2 : objArr) {
if (areEqual(obj2, obj)) {
return true;
}
}
return false;
}
public static <T> void removeRange(List<T> list, int i, int i2) {
list.subList(i, i2).clear();
}
public static <T> T[] nullSafeArrayCopy(T[] tArr, int i) {
Assertions.checkArgument(i <= tArr.length);
return (T[]) Arrays.copyOf(tArr, i);
}
public static ExecutorService newSingleThreadExecutor(final String str) {
return Executors.newSingleThreadExecutor(new ThreadFactory() { // from class: com.mbridge.msdk.playercommon.exoplayer2.util.Util.1
@Override // java.util.concurrent.ThreadFactory
public Thread newThread(@NonNull Runnable runnable) {
return new Thread(runnable, str);
}
});
}
public static void closeQuietly(DataSource dataSource) {
if (dataSource != null) {
try {
dataSource.close();
} catch (IOException unused) {
}
}
}
public static void closeQuietly(Closeable closeable) {
if (closeable != null) {
try {
closeable.close();
} catch (IOException unused) {
}
}
}
public static boolean readBoolean(Parcel parcel) {
return parcel.readInt() != 0;
}
public static void writeBoolean(Parcel parcel, boolean z) {
parcel.writeInt(z ? 1 : 0);
}
@Nullable
public static String normalizeLanguageCode(@Nullable String str) {
if (str == null) {
return null;
}
try {
return new Locale(str).getISO3Language();
} catch (MissingResourceException unused) {
return toLowerInvariant(str);
}
}
public static String fromUtf8Bytes(byte[] bArr) {
return new String(bArr, Charset.forName("UTF-8"));
}
public static String fromUtf8Bytes(byte[] bArr, int i, int i2) {
return new String(bArr, i, i2, Charset.forName("UTF-8"));
}
public static byte[] getUtf8Bytes(String str) {
return str.getBytes(Charset.forName("UTF-8"));
}
public static String[] split(String str, String str2) {
return str.split(str2, -1);
}
public static String[] splitAtFirst(String str, String str2) {
return str.split(str2, 2);
}
public static String toLowerInvariant(String str) {
if (str == null) {
return null;
}
return str.toLowerCase(Locale.US);
}
public static String toUpperInvariant(String str) {
if (str == null) {
return null;
}
return str.toUpperCase(Locale.US);
}
public static String formatInvariant(String str, Object... objArr) {
return String.format(Locale.US, str, objArr);
}
public static int ceilDivide(int i, int i2) {
return ((i + i2) - 1) / i2;
}
public static long ceilDivide(long j, long j2) {
return ((j + j2) - 1) / j2;
}
public static int constrainValue(int i, int i2, int i3) {
return Math.max(i2, Math.min(i, i3));
}
public static long constrainValue(long j, long j2, long j3) {
return Math.max(j2, Math.min(j, j3));
}
public static float constrainValue(float f, float f2, float f3) {
return Math.max(f2, Math.min(f, f3));
}
public static int binarySearchFloor(int[] iArr, int i, boolean z, boolean z2) {
int i2;
int i3;
int binarySearch = Arrays.binarySearch(iArr, i);
if (binarySearch < 0) {
i3 = -(binarySearch + 2);
} else {
while (true) {
i2 = binarySearch - 1;
if (i2 < 0 || iArr[i2] != i) {
break;
}
binarySearch = i2;
}
i3 = z ? binarySearch : i2;
}
return z2 ? Math.max(0, i3) : i3;
}
public static int binarySearchFloor(long[] jArr, long j, boolean z, boolean z2) {
int i;
int i2;
int binarySearch = Arrays.binarySearch(jArr, j);
if (binarySearch < 0) {
i2 = -(binarySearch + 2);
} else {
while (true) {
i = binarySearch - 1;
if (i < 0 || jArr[i] != j) {
break;
}
binarySearch = i;
}
i2 = z ? binarySearch : i;
}
return z2 ? Math.max(0, i2) : i2;
}
public static <T> int binarySearchFloor(List<? extends Comparable<? super T>> list, T t, boolean z, boolean z2) {
int i;
int i2;
int binarySearch = Collections.binarySearch(list, t);
if (binarySearch < 0) {
i2 = -(binarySearch + 2);
} else {
while (true) {
i = binarySearch - 1;
if (i < 0 || list.get(i).compareTo(t) != 0) {
break;
}
binarySearch = i;
}
i2 = z ? binarySearch : i;
}
return z2 ? Math.max(0, i2) : i2;
}
public static int binarySearchCeil(long[] jArr, long j, boolean z, boolean z2) {
int i;
int i2;
int binarySearch = Arrays.binarySearch(jArr, j);
if (binarySearch < 0) {
i2 = ~binarySearch;
} else {
while (true) {
i = binarySearch + 1;
if (i >= jArr.length || jArr[i] != j) {
break;
}
binarySearch = i;
}
i2 = z ? binarySearch : i;
}
return z2 ? Math.min(jArr.length - 1, i2) : i2;
}
public static <T> int binarySearchCeil(List<? extends Comparable<? super T>> list, T t, boolean z, boolean z2) {
int i;
int i2;
int binarySearch = Collections.binarySearch(list, t);
if (binarySearch < 0) {
i2 = ~binarySearch;
} else {
int size = list.size();
while (true) {
i = binarySearch + 1;
if (i >= size || list.get(i).compareTo(t) != 0) {
break;
}
binarySearch = i;
}
i2 = z ? binarySearch : i;
}
return z2 ? Math.min(list.size() - 1, i2) : i2;
}
public static long parseXsDuration(String str) {
Matcher matcher = XS_DURATION_PATTERN.matcher(str);
if (matcher.matches()) {
boolean isEmpty = true ^ TextUtils.isEmpty(matcher.group(1));
String group = matcher.group(3);
double parseDouble = group != null ? Double.parseDouble(group) * 3.1556908E7d : 0.0d;
String group2 = matcher.group(5);
double parseDouble2 = parseDouble + (group2 != null ? Double.parseDouble(group2) * 2629739.0d : 0.0d);
String group3 = matcher.group(7);
double parseDouble3 = parseDouble2 + (group3 != null ? Double.parseDouble(group3) * 86400.0d : 0.0d);
String group4 = matcher.group(10);
double parseDouble4 = parseDouble3 + (group4 != null ? Double.parseDouble(group4) * 3600.0d : 0.0d);
String group5 = matcher.group(12);
double parseDouble5 = parseDouble4 + (group5 != null ? Double.parseDouble(group5) * 60.0d : 0.0d);
String group6 = matcher.group(14);
long parseDouble6 = (long) ((parseDouble5 + (group6 != null ? Double.parseDouble(group6) : 0.0d)) * 1000.0d);
return isEmpty ? -parseDouble6 : parseDouble6;
}
return (long) (Double.parseDouble(str) * 3600.0d * 1000.0d);
}
public static long parseXsDateTime(String str) throws ParserException {
Matcher matcher = XS_DATE_TIME_PATTERN.matcher(str);
if (!matcher.matches()) {
throw new ParserException("Invalid date/time format: " + str);
}
int i = 0;
if (matcher.group(9) != null && !matcher.group(9).equalsIgnoreCase("Z")) {
i = (Integer.parseInt(matcher.group(12)) * 60) + Integer.parseInt(matcher.group(13));
if ("-".equals(matcher.group(11))) {
i *= -1;
}
}
GregorianCalendar gregorianCalendar = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
gregorianCalendar.clear();
gregorianCalendar.set(Integer.parseInt(matcher.group(1)), Integer.parseInt(matcher.group(2)) - 1, Integer.parseInt(matcher.group(3)), Integer.parseInt(matcher.group(4)), Integer.parseInt(matcher.group(5)), Integer.parseInt(matcher.group(6)));
if (!TextUtils.isEmpty(matcher.group(8))) {
gregorianCalendar.set(14, new BigDecimal("0." + matcher.group(8)).movePointRight(3).intValue());
}
long timeInMillis = gregorianCalendar.getTimeInMillis();
return i != 0 ? timeInMillis - (i * MBridgeCommon.DEFAULT_LOAD_TIMEOUT) : timeInMillis;
}
public static long scaleLargeTimestamp(long j, long j2, long j3) {
if (j3 >= j2 && j3 % j2 == 0) {
return j / (j3 / j2);
}
if (j3 < j2 && j2 % j3 == 0) {
return j * (j2 / j3);
}
return (long) (j * (j2 / j3));
}
public static long[] scaleLargeTimestamps(List<Long> list, long j, long j2) {
int size = list.size();
long[] jArr = new long[size];
int i = 0;
if (j2 >= j && j2 % j == 0) {
long j3 = j2 / j;
while (i < size) {
jArr[i] = list.get(i).longValue() / j3;
i++;
}
} else if (j2 >= j || j % j2 != 0) {
double d = j / j2;
while (i < size) {
jArr[i] = (long) (list.get(i).longValue() * d);
i++;
}
} else {
long j4 = j / j2;
while (i < size) {
jArr[i] = list.get(i).longValue() * j4;
i++;
}
}
return jArr;
}
public static void scaleLargeTimestampsInPlace(long[] jArr, long j, long j2) {
int i = 0;
if (j2 >= j && j2 % j == 0) {
long j3 = j2 / j;
while (i < jArr.length) {
jArr[i] = jArr[i] / j3;
i++;
}
return;
}
if (j2 < j && j % j2 == 0) {
long j4 = j / j2;
while (i < jArr.length) {
jArr[i] = jArr[i] * j4;
i++;
}
return;
}
double d = j / j2;
while (i < jArr.length) {
jArr[i] = (long) (jArr[i] * d);
i++;
}
}
public static long getMediaDurationForPlayoutDuration(long j, float f) {
return f == 1.0f ? j : Math.round(j * f);
}
public static long getPlayoutDurationForMediaDuration(long j, float f) {
return f == 1.0f ? j : Math.round(j / f);
}
public static long resolveSeekPositionUs(long j, SeekParameters seekParameters, long j2, long j3) {
if (SeekParameters.EXACT.equals(seekParameters)) {
return j;
}
long subtractWithOverflowDefault = subtractWithOverflowDefault(j, seekParameters.toleranceBeforeUs, Long.MIN_VALUE);
long addWithOverflowDefault = addWithOverflowDefault(j, seekParameters.toleranceAfterUs, Long.MAX_VALUE);
boolean z = false;
boolean z2 = subtractWithOverflowDefault <= j2 && j2 <= addWithOverflowDefault;
if (subtractWithOverflowDefault <= j3 && j3 <= addWithOverflowDefault) {
z = true;
}
return (z2 && z) ? Math.abs(j2 - j) <= Math.abs(j3 - j) ? j2 : j3 : z2 ? j2 : z ? j3 : subtractWithOverflowDefault;
}
public static int[] toArray(List<Integer> list) {
if (list == null) {
return null;
}
int size = list.size();
int[] iArr = new int[size];
for (int i = 0; i < size; i++) {
iArr[i] = list.get(i).intValue();
}
return iArr;
}
public static int getIntegerCodeForString(String str) {
int length = str.length();
Assertions.checkArgument(length <= 4);
int i = 0;
for (int i2 = 0; i2 < length; i2++) {
i = (i << 8) | str.charAt(i2);
}
return i;
}
public static byte[] getBytesFromHexString(String str) {
int length = str.length() / 2;
byte[] bArr = new byte[length];
for (int i = 0; i < length; i++) {
int i2 = i * 2;
bArr[i] = (byte) ((Character.digit(str.charAt(i2), 16) << 4) + Character.digit(str.charAt(i2 + 1), 16));
}
return bArr;
}
public static String getCommaDelimitedSimpleClassNames(Object[] objArr) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < objArr.length; i++) {
sb.append(objArr[i].getClass().getSimpleName());
if (i < objArr.length - 1) {
sb.append(", ");
}
}
return sb.toString();
}
public static String getUserAgent(Context context, String str) {
String str2;
try {
str2 = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException unused) {
str2 = "?";
}
return str + "/" + str2 + " (Linux;Android " + Build.VERSION.RELEASE + ") " + ExoPlayerLibraryInfo.VERSION_SLASHY;
}
public static String getCodecsOfType(String str, int i) {
if (TextUtils.isEmpty(str)) {
return null;
}
String[] split = split(str.trim(), "(\\s*,\\s*)");
StringBuilder sb = new StringBuilder();
for (String str2 : split) {
if (i == MimeTypes.getTrackTypeOfCodec(str2)) {
if (sb.length() > 0) {
sb.append(",");
}
sb.append(str2);
}
}
if (sb.length() > 0) {
return sb.toString();
}
return null;
}
public static int getPcmFrameSize(int i, int i2) {
if (i == Integer.MIN_VALUE) {
return i2 * 3;
}
if (i != 1073741824) {
if (i == 2) {
return i2 * 2;
}
if (i == 3) {
return i2;
}
if (i != 4) {
throw new IllegalArgumentException();
}
}
return i2 * 4;
}
public static UUID getDrmUuid(String str) {
String lowerInvariant = toLowerInvariant(str);
lowerInvariant.hashCode();
switch (lowerInvariant) {
case "playready":
return C.PLAYREADY_UUID;
case "widevine":
return C.WIDEVINE_UUID;
case "clearkey":
return C.CLEARKEY_UUID;
default:
try {
return UUID.fromString(str);
} catch (RuntimeException unused) {
return null;
}
}
}
public static int inferContentType(Uri uri, String str) {
if (TextUtils.isEmpty(str)) {
return inferContentType(uri);
}
return inferContentType(Consts.STRING_PERIOD + str);
}
public static int inferContentType(Uri uri) {
String path = uri.getPath();
if (path == null) {
return 3;
}
return inferContentType(path);
}
public static int inferContentType(String str) {
String lowerInvariant = toLowerInvariant(str);
if (lowerInvariant.endsWith(".mpd")) {
return 0;
}
if (lowerInvariant.endsWith(".m3u8")) {
return 2;
}
return lowerInvariant.matches(".*\\.ism(l)?(/manifest(\\(.+\\))?)?") ? 1 : 3;
}
public static String getStringForTime(StringBuilder sb, Formatter formatter, long j) {
if (j == C.TIME_UNSET) {
j = 0;
}
long j2 = (j + 500) / 1000;
long j3 = j2 % 60;
long j4 = (j2 / 60) % 60;
long j5 = j2 / 3600;
sb.setLength(0);
if (j5 > 0) {
return formatter.format("%d:%02d:%02d", Long.valueOf(j5), Long.valueOf(j4), Long.valueOf(j3)).toString();
}
return formatter.format("%02d:%02d", Long.valueOf(j4), Long.valueOf(j3)).toString();
}
public static int getDefaultBufferSize(int i) {
if (i == 0) {
return 16777216;
}
if (i == 1) {
return C.DEFAULT_AUDIO_BUFFER_SIZE;
}
if (i == 2) {
return C.DEFAULT_VIDEO_BUFFER_SIZE;
}
if (i == 3 || i == 4) {
return 131072;
}
throw new IllegalStateException();
}
public static String escapeFileName(String str) {
int length = str.length();
int i = 0;
int i2 = 0;
for (int i3 = 0; i3 < length; i3++) {
if (shouldEscapeCharacter(str.charAt(i3))) {
i2++;
}
}
if (i2 == 0) {
return str;
}
StringBuilder sb = new StringBuilder((i2 * 2) + length);
while (i2 > 0) {
int i4 = i + 1;
char charAt = str.charAt(i);
if (shouldEscapeCharacter(charAt)) {
sb.append('%');
sb.append(Integer.toHexString(charAt));
i2--;
} else {
sb.append(charAt);
}
i = i4;
}
if (i < length) {
sb.append((CharSequence) str, i, length);
}
return sb.toString();
}
public static String unescapeFileName(String str) {
int length = str.length();
int i = 0;
int i2 = 0;
for (int i3 = 0; i3 < length; i3++) {
if (str.charAt(i3) == '%') {
i2++;
}
}
if (i2 == 0) {
return str;
}
int i4 = length - (i2 * 2);
StringBuilder sb = new StringBuilder(i4);
Matcher matcher = ESCAPED_CHARACTER_PATTERN.matcher(str);
while (i2 > 0 && matcher.find()) {
char parseInt = (char) Integer.parseInt(matcher.group(1), 16);
sb.append((CharSequence) str, i, matcher.start());
sb.append(parseInt);
i = matcher.end();
i2--;
}
if (i < length) {
sb.append((CharSequence) str, i, length);
}
if (sb.length() != i4) {
return null;
}
return sb.toString();
}
public static void sneakyThrow(Throwable th) {
sneakyThrowInternal(th);
}
private static <T extends Throwable> void sneakyThrowInternal(Throwable th) throws Throwable {
throw th;
}
public static void recursiveDelete(File file) {
if (file.isDirectory()) {
for (File file2 : file.listFiles()) {
recursiveDelete(file2);
}
}
file.delete();
}
public static File createTempDirectory(Context context, String str) throws IOException {
File createTempFile = createTempFile(context, str);
createTempFile.delete();
createTempFile.mkdir();
return createTempFile;
}
public static File createTempFile(Context context, String str) throws IOException {
return File.createTempFile(str, null, context.getCacheDir());
}
public static int crc(byte[] bArr, int i, int i2, int i3) {
while (i < i2) {
i3 = CRC32_BYTES_MSBF[((i3 >>> 24) ^ (bArr[i] & 255)) & 255] ^ (i3 << 8);
i++;
}
return i3;
}
public static Point getPhysicalDisplaySize(Context context) {
return getPhysicalDisplaySize(context, ((WindowManager) context.getSystemService("window")).getDefaultDisplay());
}
/* JADX WARN: Code restructure failed: missing block: B:44:0x006e, code lost:
if (r6.equals("TPM171E") == false) goto L41;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public static android.graphics.Point getPhysicalDisplaySize(android.content.Context r6, android.view.Display r7) {
/*
Method dump skipped, instructions count: 249
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.mbridge.msdk.playercommon.exoplayer2.util.Util.getPhysicalDisplaySize(android.content.Context, android.view.Display):android.graphics.Point");
}
@TargetApi(23)
private static void getDisplaySizeV23(Display display, Point point) {
Display.Mode mode = display.getMode();
point.x = mode.getPhysicalWidth();
point.y = mode.getPhysicalHeight();
}
@TargetApi(17)
private static void getDisplaySizeV17(Display display, Point point) {
display.getRealSize(point);
}
@TargetApi(16)
private static void getDisplaySizeV16(Display display, Point point) {
display.getSize(point);
}
private static void getDisplaySizeV9(Display display, Point point) {
point.x = display.getWidth();
point.y = display.getHeight();
}
}

View File

@@ -0,0 +1,55 @@
package com.mbridge.msdk.playercommon.exoplayer2.util;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
/* loaded from: classes4.dex */
public final class XmlPullParserUtil {
private XmlPullParserUtil() {
}
public static boolean isEndTag(XmlPullParser xmlPullParser, String str) throws XmlPullParserException {
return isEndTag(xmlPullParser) && xmlPullParser.getName().equals(str);
}
public static boolean isEndTag(XmlPullParser xmlPullParser) throws XmlPullParserException {
return xmlPullParser.getEventType() == 3;
}
public static boolean isStartTag(XmlPullParser xmlPullParser, String str) throws XmlPullParserException {
return isStartTag(xmlPullParser) && xmlPullParser.getName().equals(str);
}
public static boolean isStartTag(XmlPullParser xmlPullParser) throws XmlPullParserException {
return xmlPullParser.getEventType() == 2;
}
public static boolean isStartTagIgnorePrefix(XmlPullParser xmlPullParser, String str) throws XmlPullParserException {
return isStartTag(xmlPullParser) && stripPrefix(xmlPullParser.getName()).equals(str);
}
public static String getAttributeValue(XmlPullParser xmlPullParser, String str) {
int attributeCount = xmlPullParser.getAttributeCount();
for (int i = 0; i < attributeCount; i++) {
if (xmlPullParser.getAttributeName(i).equals(str)) {
return xmlPullParser.getAttributeValue(i);
}
}
return null;
}
public static String getAttributeValueIgnorePrefix(XmlPullParser xmlPullParser, String str) {
int attributeCount = xmlPullParser.getAttributeCount();
for (int i = 0; i < attributeCount; i++) {
if (stripPrefix(xmlPullParser.getAttributeName(i)).equals(str)) {
return xmlPullParser.getAttributeValue(i);
}
}
return null;
}
private static String stripPrefix(String str) {
int indexOf = str.indexOf(58);
return indexOf == -1 ? str : str.substring(indexOf + 1);
}
}