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,90 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import java.util.Arrays;
import java.util.List;
/* loaded from: classes4.dex */
public final class Metadata implements Parcelable {
public static final Parcelable.Creator<Metadata> CREATOR = new Parcelable.Creator<Metadata>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.Metadata.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public Metadata[] newArray(int i) {
return new Metadata[0];
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public Metadata createFromParcel(Parcel parcel) {
return new Metadata(parcel);
}
};
private final Entry[] entries;
public interface Entry extends Parcelable {
}
@Override // android.os.Parcelable
public final int describeContents() {
return 0;
}
public Metadata(Entry... entryArr) {
this.entries = entryArr == null ? new Entry[0] : entryArr;
}
public Metadata(List<? extends Entry> list) {
if (list == null) {
this.entries = new Entry[0];
return;
}
Entry[] entryArr = new Entry[list.size()];
this.entries = entryArr;
list.toArray(entryArr);
}
public Metadata(Parcel parcel) {
this.entries = new Entry[parcel.readInt()];
int i = 0;
while (true) {
Entry[] entryArr = this.entries;
if (i >= entryArr.length) {
return;
}
entryArr[i] = (Entry) parcel.readParcelable(Entry.class.getClassLoader());
i++;
}
}
public final int length() {
return this.entries.length;
}
public final Entry get(int i) {
return this.entries[i];
}
public final boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj == null || Metadata.class != obj.getClass()) {
return false;
}
return Arrays.equals(this.entries, ((Metadata) obj).entries);
}
public final int hashCode() {
return Arrays.hashCode(this.entries);
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeInt(this.entries.length);
for (Entry entry : this.entries) {
parcel.writeParcelable(entry, 0);
}
}
}

View File

@@ -0,0 +1,6 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata;
/* loaded from: classes4.dex */
public interface MetadataDecoder {
Metadata decode(MetadataInputBuffer metadataInputBuffer) throws MetadataDecoderException;
}

View File

@@ -0,0 +1,12 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata;
/* loaded from: classes4.dex */
public class MetadataDecoderException extends Exception {
public MetadataDecoderException(String str) {
super(str);
}
public MetadataDecoderException(String str, Throwable th) {
super(str, th);
}
}

View File

@@ -0,0 +1,38 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata;
import com.mbridge.msdk.playercommon.exoplayer2.Format;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.emsg.EventMessageDecoder;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Decoder;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35.SpliceInfoDecoder;
import com.mbridge.msdk.playercommon.exoplayer2.util.MimeTypes;
/* loaded from: classes4.dex */
public interface MetadataDecoderFactory {
public static final MetadataDecoderFactory DEFAULT = new MetadataDecoderFactory() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataDecoderFactory.1
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataDecoderFactory
public boolean supportsFormat(Format format) {
String str = format.sampleMimeType;
return MimeTypes.APPLICATION_ID3.equals(str) || MimeTypes.APPLICATION_EMSG.equals(str) || MimeTypes.APPLICATION_SCTE35.equals(str);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataDecoderFactory
public MetadataDecoder createDecoder(Format format) {
String str = format.sampleMimeType;
str.hashCode();
switch (str) {
case "application/id3":
return new Id3Decoder();
case "application/x-emsg":
return new EventMessageDecoder();
case "application/x-scte35":
return new SpliceInfoDecoder();
default:
throw new IllegalArgumentException("Attempted to create decoder for unsupported format");
}
}
};
MetadataDecoder createDecoder(Format format);
boolean supportsFormat(Format format);
}

View File

@@ -0,0 +1,12 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata;
import com.mbridge.msdk.playercommon.exoplayer2.decoder.DecoderInputBuffer;
/* loaded from: classes4.dex */
public final class MetadataInputBuffer extends DecoderInputBuffer {
public long subsampleOffsetUs;
public MetadataInputBuffer() {
super(1);
}
}

View File

@@ -0,0 +1,6 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata;
/* loaded from: classes4.dex */
public interface MetadataOutput {
void onMetadata(Metadata metadata);
}

View File

@@ -0,0 +1,146 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import com.mbridge.msdk.playercommon.exoplayer2.BaseRenderer;
import com.mbridge.msdk.playercommon.exoplayer2.ExoPlaybackException;
import com.mbridge.msdk.playercommon.exoplayer2.Format;
import com.mbridge.msdk.playercommon.exoplayer2.FormatHolder;
import com.mbridge.msdk.playercommon.exoplayer2.util.Assertions;
import java.util.Arrays;
/* loaded from: classes4.dex */
public final class MetadataRenderer extends BaseRenderer implements Handler.Callback {
private static final int MAX_PENDING_METADATA_COUNT = 5;
private static final int MSG_INVOKE_RENDERER = 0;
private final MetadataInputBuffer buffer;
private MetadataDecoder decoder;
private final MetadataDecoderFactory decoderFactory;
private final FormatHolder formatHolder;
private boolean inputStreamEnded;
private final MetadataOutput output;
private final Handler outputHandler;
private final Metadata[] pendingMetadata;
private int pendingMetadataCount;
private int pendingMetadataIndex;
private final long[] pendingMetadataTimestamps;
@Deprecated
public interface Output extends MetadataOutput {
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.Renderer
public final boolean isEnded() {
return this.inputStreamEnded;
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.Renderer
public final boolean isReady() {
return true;
}
public MetadataRenderer(MetadataOutput metadataOutput, Looper looper) {
this(metadataOutput, looper, MetadataDecoderFactory.DEFAULT);
}
public MetadataRenderer(MetadataOutput metadataOutput, Looper looper, MetadataDecoderFactory metadataDecoderFactory) {
super(4);
this.output = (MetadataOutput) Assertions.checkNotNull(metadataOutput);
this.outputHandler = looper == null ? null : new Handler(looper, this);
this.decoderFactory = (MetadataDecoderFactory) Assertions.checkNotNull(metadataDecoderFactory);
this.formatHolder = new FormatHolder();
this.buffer = new MetadataInputBuffer();
this.pendingMetadata = new Metadata[5];
this.pendingMetadataTimestamps = new long[5];
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.RendererCapabilities
public final int supportsFormat(Format format) {
if (this.decoderFactory.supportsFormat(format)) {
return BaseRenderer.supportsFormatDrm(null, format.drmInitData) ? 4 : 2;
}
return 0;
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.BaseRenderer
public final void onStreamChanged(Format[] formatArr, long j) throws ExoPlaybackException {
this.decoder = this.decoderFactory.createDecoder(formatArr[0]);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.BaseRenderer
public final void onPositionReset(long j, boolean z) {
flushPendingMetadata();
this.inputStreamEnded = false;
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.Renderer
public final void render(long j, long j2) throws ExoPlaybackException {
if (!this.inputStreamEnded && this.pendingMetadataCount < 5) {
this.buffer.clear();
if (readSource(this.formatHolder, this.buffer, false) == -4) {
if (this.buffer.isEndOfStream()) {
this.inputStreamEnded = true;
} else if (!this.buffer.isDecodeOnly()) {
MetadataInputBuffer metadataInputBuffer = this.buffer;
metadataInputBuffer.subsampleOffsetUs = this.formatHolder.format.subsampleOffsetUs;
metadataInputBuffer.flip();
try {
int i = (this.pendingMetadataIndex + this.pendingMetadataCount) % 5;
this.pendingMetadata[i] = this.decoder.decode(this.buffer);
this.pendingMetadataTimestamps[i] = this.buffer.timeUs;
this.pendingMetadataCount++;
} catch (MetadataDecoderException e) {
throw ExoPlaybackException.createForRenderer(e, getIndex());
}
}
}
}
if (this.pendingMetadataCount > 0) {
long[] jArr = this.pendingMetadataTimestamps;
int i2 = this.pendingMetadataIndex;
if (jArr[i2] <= j) {
invokeRenderer(this.pendingMetadata[i2]);
Metadata[] metadataArr = this.pendingMetadata;
int i3 = this.pendingMetadataIndex;
metadataArr[i3] = null;
this.pendingMetadataIndex = (i3 + 1) % 5;
this.pendingMetadataCount--;
}
}
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.BaseRenderer
public final void onDisabled() {
flushPendingMetadata();
this.decoder = null;
}
private void invokeRenderer(Metadata metadata) {
Handler handler = this.outputHandler;
if (handler != null) {
handler.obtainMessage(0, metadata).sendToTarget();
} else {
invokeRendererInternal(metadata);
}
}
private void flushPendingMetadata() {
Arrays.fill(this.pendingMetadata, (Object) null);
this.pendingMetadataIndex = 0;
this.pendingMetadataCount = 0;
}
@Override // android.os.Handler.Callback
public final boolean handleMessage(Message message) {
if (message.what == 0) {
invokeRendererInternal((Metadata) message.obj);
return true;
}
throw new IllegalStateException();
}
private void invokeRendererInternal(Metadata metadata) {
this.output.onMetadata(metadata);
}
}

View File

@@ -0,0 +1,97 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.emsg;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import com.ironsource.mediationsdk.logger.IronSourceError;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.Metadata;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
import java.util.Arrays;
/* loaded from: classes4.dex */
public final class EventMessage implements Metadata.Entry {
public static final Parcelable.Creator<EventMessage> CREATOR = new Parcelable.Creator<EventMessage>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.emsg.EventMessage.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public EventMessage createFromParcel(Parcel parcel) {
return new EventMessage(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public EventMessage[] newArray(int i) {
return new EventMessage[i];
}
};
public final long durationMs;
private int hashCode;
public final long id;
public final byte[] messageData;
public final long presentationTimeUs;
public final String schemeIdUri;
public final String value;
@Override // android.os.Parcelable
public final int describeContents() {
return 0;
}
public EventMessage(String str, String str2, long j, long j2, byte[] bArr, long j3) {
this.schemeIdUri = str;
this.value = str2;
this.durationMs = j;
this.id = j2;
this.messageData = bArr;
this.presentationTimeUs = j3;
}
public EventMessage(Parcel parcel) {
this.schemeIdUri = parcel.readString();
this.value = parcel.readString();
this.presentationTimeUs = parcel.readLong();
this.durationMs = parcel.readLong();
this.id = parcel.readLong();
this.messageData = parcel.createByteArray();
}
public final int hashCode() {
if (this.hashCode == 0) {
String str = this.schemeIdUri;
int hashCode = (IronSourceError.ERROR_NON_EXISTENT_INSTANCE + (str != null ? str.hashCode() : 0)) * 31;
String str2 = this.value;
int hashCode2 = str2 != null ? str2.hashCode() : 0;
long j = this.presentationTimeUs;
int i = (((hashCode + hashCode2) * 31) + ((int) (j ^ (j >>> 32)))) * 31;
long j2 = this.durationMs;
int i2 = (i + ((int) (j2 ^ (j2 >>> 32)))) * 31;
long j3 = this.id;
this.hashCode = ((i2 + ((int) (j3 ^ (j3 >>> 32)))) * 31) + Arrays.hashCode(this.messageData);
}
return this.hashCode;
}
public final boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj == null || EventMessage.class != obj.getClass()) {
return false;
}
EventMessage eventMessage = (EventMessage) obj;
return this.presentationTimeUs == eventMessage.presentationTimeUs && this.durationMs == eventMessage.durationMs && this.id == eventMessage.id && Util.areEqual(this.schemeIdUri, eventMessage.schemeIdUri) && Util.areEqual(this.value, eventMessage.value) && Arrays.equals(this.messageData, eventMessage.messageData);
}
public final String toString() {
return "EMSG: scheme=" + this.schemeIdUri + ", id=" + this.id + ", value=" + this.value;
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.schemeIdUri);
parcel.writeString(this.value);
parcel.writeLong(this.presentationTimeUs);
parcel.writeLong(this.durationMs);
parcel.writeLong(this.id);
parcel.writeByteArray(this.messageData);
}
}

View File

@@ -0,0 +1,24 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.emsg;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.Metadata;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataDecoder;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataInputBuffer;
import com.mbridge.msdk.playercommon.exoplayer2.util.ParsableByteArray;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
import java.nio.ByteBuffer;
import java.util.Arrays;
/* loaded from: classes4.dex */
public final class EventMessageDecoder implements MetadataDecoder {
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataDecoder
public final Metadata decode(MetadataInputBuffer metadataInputBuffer) {
ByteBuffer byteBuffer = metadataInputBuffer.data;
byte[] array = byteBuffer.array();
int limit = byteBuffer.limit();
ParsableByteArray parsableByteArray = new ParsableByteArray(array, limit);
String readNullTerminatedString = parsableByteArray.readNullTerminatedString();
String readNullTerminatedString2 = parsableByteArray.readNullTerminatedString();
long readUnsignedInt = parsableByteArray.readUnsignedInt();
return new Metadata(new EventMessage(readNullTerminatedString, readNullTerminatedString2, Util.scaleLargeTimestamp(parsableByteArray.readUnsignedInt(), 1000L, readUnsignedInt), parsableByteArray.readUnsignedInt(), Arrays.copyOfRange(array, parsableByteArray.getPosition(), limit), Util.scaleLargeTimestamp(parsableByteArray.readUnsignedInt(), 1000000L, readUnsignedInt)));
}
}

View File

@@ -0,0 +1,55 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.emsg;
import androidx.annotation.Nullable;
import com.mbridge.msdk.playercommon.exoplayer2.util.Assertions;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
/* loaded from: classes4.dex */
public final class EventMessageEncoder {
private final ByteArrayOutputStream byteArrayOutputStream;
private final DataOutputStream dataOutputStream;
public EventMessageEncoder() {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(512);
this.byteArrayOutputStream = byteArrayOutputStream;
this.dataOutputStream = new DataOutputStream(byteArrayOutputStream);
}
@Nullable
public final byte[] encode(EventMessage eventMessage, long j) {
Assertions.checkArgument(j >= 0);
this.byteArrayOutputStream.reset();
try {
writeNullTerminatedString(this.dataOutputStream, eventMessage.schemeIdUri);
String str = eventMessage.value;
if (str == null) {
str = "";
}
writeNullTerminatedString(this.dataOutputStream, str);
writeUnsignedInt(this.dataOutputStream, j);
writeUnsignedInt(this.dataOutputStream, Util.scaleLargeTimestamp(eventMessage.presentationTimeUs, j, 1000000L));
writeUnsignedInt(this.dataOutputStream, Util.scaleLargeTimestamp(eventMessage.durationMs, j, 1000L));
writeUnsignedInt(this.dataOutputStream, eventMessage.id);
this.dataOutputStream.write(eventMessage.messageData);
this.dataOutputStream.flush();
return this.byteArrayOutputStream.toByteArray();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
private static void writeNullTerminatedString(DataOutputStream dataOutputStream, String str) throws IOException {
dataOutputStream.writeBytes(str);
dataOutputStream.writeByte(0);
}
private static void writeUnsignedInt(DataOutputStream dataOutputStream, long j) throws IOException {
dataOutputStream.writeByte(((int) (j >>> 24)) & 255);
dataOutputStream.writeByte(((int) (j >>> 16)) & 255);
dataOutputStream.writeByte(((int) (j >>> 8)) & 255);
dataOutputStream.writeByte(((int) j) & 255);
}
}

View File

@@ -0,0 +1,78 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.id3;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import com.ironsource.mediationsdk.logger.IronSourceError;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
import java.util.Arrays;
/* loaded from: classes4.dex */
public final class ApicFrame extends Id3Frame {
public static final Parcelable.Creator<ApicFrame> CREATOR = new Parcelable.Creator<ApicFrame>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.ApicFrame.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public ApicFrame createFromParcel(Parcel parcel) {
return new ApicFrame(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public ApicFrame[] newArray(int i) {
return new ApicFrame[i];
}
};
public static final String ID = "APIC";
public final String description;
public final String mimeType;
public final byte[] pictureData;
public final int pictureType;
public ApicFrame(String str, String str2, int i, byte[] bArr) {
super(ID);
this.mimeType = str;
this.description = str2;
this.pictureType = i;
this.pictureData = bArr;
}
public ApicFrame(Parcel parcel) {
super(ID);
this.mimeType = parcel.readString();
this.description = parcel.readString();
this.pictureType = parcel.readInt();
this.pictureData = parcel.createByteArray();
}
public final boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj == null || ApicFrame.class != obj.getClass()) {
return false;
}
ApicFrame apicFrame = (ApicFrame) obj;
return this.pictureType == apicFrame.pictureType && Util.areEqual(this.mimeType, apicFrame.mimeType) && Util.areEqual(this.description, apicFrame.description) && Arrays.equals(this.pictureData, apicFrame.pictureData);
}
public final int hashCode() {
int i = (IronSourceError.ERROR_NON_EXISTENT_INSTANCE + this.pictureType) * 31;
String str = this.mimeType;
int hashCode = (i + (str != null ? str.hashCode() : 0)) * 31;
String str2 = this.description;
return ((hashCode + (str2 != null ? str2.hashCode() : 0)) * 31) + Arrays.hashCode(this.pictureData);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Frame
public final String toString() {
return this.id + ": mimeType=" + this.mimeType + ", description=" + this.description;
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.mimeType);
parcel.writeString(this.description);
parcel.writeInt(this.pictureType);
parcel.writeByteArray(this.pictureData);
}
}

View File

@@ -0,0 +1,56 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.id3;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import com.ironsource.mediationsdk.logger.IronSourceError;
import java.util.Arrays;
/* loaded from: classes4.dex */
public final class BinaryFrame extends Id3Frame {
public static final Parcelable.Creator<BinaryFrame> CREATOR = new Parcelable.Creator<BinaryFrame>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.BinaryFrame.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public BinaryFrame createFromParcel(Parcel parcel) {
return new BinaryFrame(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public BinaryFrame[] newArray(int i) {
return new BinaryFrame[i];
}
};
public final byte[] data;
public BinaryFrame(String str, byte[] bArr) {
super(str);
this.data = bArr;
}
public BinaryFrame(Parcel parcel) {
super(parcel.readString());
this.data = parcel.createByteArray();
}
public final boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj == null || BinaryFrame.class != obj.getClass()) {
return false;
}
BinaryFrame binaryFrame = (BinaryFrame) obj;
return this.id.equals(binaryFrame.id) && Arrays.equals(this.data, binaryFrame.data);
}
public final int hashCode() {
return ((IronSourceError.ERROR_NON_EXISTENT_INSTANCE + this.id.hashCode()) * 31) + Arrays.hashCode(this.data);
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.id);
parcel.writeByteArray(this.data);
}
}

View File

@@ -0,0 +1,99 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.id3;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import com.ironsource.mediationsdk.logger.IronSourceError;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
import java.util.Arrays;
/* loaded from: classes4.dex */
public final class ChapterFrame extends Id3Frame {
public static final Parcelable.Creator<ChapterFrame> CREATOR = new Parcelable.Creator<ChapterFrame>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.ChapterFrame.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public ChapterFrame createFromParcel(Parcel parcel) {
return new ChapterFrame(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public ChapterFrame[] newArray(int i) {
return new ChapterFrame[i];
}
};
public static final String ID = "CHAP";
public final String chapterId;
public final long endOffset;
public final int endTimeMs;
public final long startOffset;
public final int startTimeMs;
private final Id3Frame[] subFrames;
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Frame, android.os.Parcelable
public final int describeContents() {
return 0;
}
public ChapterFrame(String str, int i, int i2, long j, long j2, Id3Frame[] id3FrameArr) {
super(ID);
this.chapterId = str;
this.startTimeMs = i;
this.endTimeMs = i2;
this.startOffset = j;
this.endOffset = j2;
this.subFrames = id3FrameArr;
}
public ChapterFrame(Parcel parcel) {
super(ID);
this.chapterId = parcel.readString();
this.startTimeMs = parcel.readInt();
this.endTimeMs = parcel.readInt();
this.startOffset = parcel.readLong();
this.endOffset = parcel.readLong();
int readInt = parcel.readInt();
this.subFrames = new Id3Frame[readInt];
for (int i = 0; i < readInt; i++) {
this.subFrames[i] = (Id3Frame) parcel.readParcelable(Id3Frame.class.getClassLoader());
}
}
public final int getSubFrameCount() {
return this.subFrames.length;
}
public final Id3Frame getSubFrame(int i) {
return this.subFrames[i];
}
public final boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj == null || ChapterFrame.class != obj.getClass()) {
return false;
}
ChapterFrame chapterFrame = (ChapterFrame) obj;
return this.startTimeMs == chapterFrame.startTimeMs && this.endTimeMs == chapterFrame.endTimeMs && this.startOffset == chapterFrame.startOffset && this.endOffset == chapterFrame.endOffset && Util.areEqual(this.chapterId, chapterFrame.chapterId) && Arrays.equals(this.subFrames, chapterFrame.subFrames);
}
public final int hashCode() {
int i = (((((((IronSourceError.ERROR_NON_EXISTENT_INSTANCE + this.startTimeMs) * 31) + this.endTimeMs) * 31) + ((int) this.startOffset)) * 31) + ((int) this.endOffset)) * 31;
String str = this.chapterId;
return i + (str != null ? str.hashCode() : 0);
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.chapterId);
parcel.writeInt(this.startTimeMs);
parcel.writeInt(this.endTimeMs);
parcel.writeLong(this.startOffset);
parcel.writeLong(this.endOffset);
parcel.writeInt(this.subFrames.length);
for (Id3Frame id3Frame : this.subFrames) {
parcel.writeParcelable(id3Frame, 0);
}
}
}

View File

@@ -0,0 +1,90 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.id3;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import com.ironsource.mediationsdk.logger.IronSourceError;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
import java.util.Arrays;
/* loaded from: classes4.dex */
public final class ChapterTocFrame extends Id3Frame {
public static final Parcelable.Creator<ChapterTocFrame> CREATOR = new Parcelable.Creator<ChapterTocFrame>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.ChapterTocFrame.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public ChapterTocFrame createFromParcel(Parcel parcel) {
return new ChapterTocFrame(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public ChapterTocFrame[] newArray(int i) {
return new ChapterTocFrame[i];
}
};
public static final String ID = "CTOC";
public final String[] children;
public final String elementId;
public final boolean isOrdered;
public final boolean isRoot;
private final Id3Frame[] subFrames;
public ChapterTocFrame(String str, boolean z, boolean z2, String[] strArr, Id3Frame[] id3FrameArr) {
super(ID);
this.elementId = str;
this.isRoot = z;
this.isOrdered = z2;
this.children = strArr;
this.subFrames = id3FrameArr;
}
public ChapterTocFrame(Parcel parcel) {
super(ID);
this.elementId = parcel.readString();
this.isRoot = parcel.readByte() != 0;
this.isOrdered = parcel.readByte() != 0;
this.children = parcel.createStringArray();
int readInt = parcel.readInt();
this.subFrames = new Id3Frame[readInt];
for (int i = 0; i < readInt; i++) {
this.subFrames[i] = (Id3Frame) parcel.readParcelable(Id3Frame.class.getClassLoader());
}
}
public final int getSubFrameCount() {
return this.subFrames.length;
}
public final Id3Frame getSubFrame(int i) {
return this.subFrames[i];
}
public final boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj == null || ChapterTocFrame.class != obj.getClass()) {
return false;
}
ChapterTocFrame chapterTocFrame = (ChapterTocFrame) obj;
return this.isRoot == chapterTocFrame.isRoot && this.isOrdered == chapterTocFrame.isOrdered && Util.areEqual(this.elementId, chapterTocFrame.elementId) && Arrays.equals(this.children, chapterTocFrame.children) && Arrays.equals(this.subFrames, chapterTocFrame.subFrames);
}
public final int hashCode() {
int i = (((IronSourceError.ERROR_NON_EXISTENT_INSTANCE + (this.isRoot ? 1 : 0)) * 31) + (this.isOrdered ? 1 : 0)) * 31;
String str = this.elementId;
return i + (str != null ? str.hashCode() : 0);
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.elementId);
parcel.writeByte(this.isRoot ? (byte) 1 : (byte) 0);
parcel.writeByte(this.isOrdered ? (byte) 1 : (byte) 0);
parcel.writeStringArray(this.children);
parcel.writeInt(this.subFrames.length);
for (Id3Frame id3Frame : this.subFrames) {
parcel.writeParcelable(id3Frame, 0);
}
}
}

View File

@@ -0,0 +1,74 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.id3;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import com.ironsource.mediationsdk.logger.IronSourceError;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
/* loaded from: classes4.dex */
public final class CommentFrame extends Id3Frame {
public static final Parcelable.Creator<CommentFrame> CREATOR = new Parcelable.Creator<CommentFrame>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.CommentFrame.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public CommentFrame createFromParcel(Parcel parcel) {
return new CommentFrame(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public CommentFrame[] newArray(int i) {
return new CommentFrame[i];
}
};
public static final String ID = "COMM";
public final String description;
public final String language;
public final String text;
public CommentFrame(String str, String str2, String str3) {
super(ID);
this.language = str;
this.description = str2;
this.text = str3;
}
public CommentFrame(Parcel parcel) {
super(ID);
this.language = parcel.readString();
this.description = parcel.readString();
this.text = parcel.readString();
}
public final boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj == null || CommentFrame.class != obj.getClass()) {
return false;
}
CommentFrame commentFrame = (CommentFrame) obj;
return Util.areEqual(this.description, commentFrame.description) && Util.areEqual(this.language, commentFrame.language) && Util.areEqual(this.text, commentFrame.text);
}
public final int hashCode() {
String str = this.language;
int hashCode = (IronSourceError.ERROR_NON_EXISTENT_INSTANCE + (str != null ? str.hashCode() : 0)) * 31;
String str2 = this.description;
int hashCode2 = (hashCode + (str2 != null ? str2.hashCode() : 0)) * 31;
String str3 = this.text;
return hashCode2 + (str3 != null ? str3.hashCode() : 0);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Frame
public final String toString() {
return this.id + ": language=" + this.language + ", description=" + this.description;
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.id);
parcel.writeString(this.language);
parcel.writeString(this.text);
}
}

View File

@@ -0,0 +1,79 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.id3;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import com.ironsource.mediationsdk.logger.IronSourceError;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
import java.util.Arrays;
/* loaded from: classes4.dex */
public final class GeobFrame extends Id3Frame {
public static final Parcelable.Creator<GeobFrame> CREATOR = new Parcelable.Creator<GeobFrame>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.GeobFrame.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public GeobFrame createFromParcel(Parcel parcel) {
return new GeobFrame(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public GeobFrame[] newArray(int i) {
return new GeobFrame[i];
}
};
public static final String ID = "GEOB";
public final byte[] data;
public final String description;
public final String filename;
public final String mimeType;
public GeobFrame(String str, String str2, String str3, byte[] bArr) {
super(ID);
this.mimeType = str;
this.filename = str2;
this.description = str3;
this.data = bArr;
}
public GeobFrame(Parcel parcel) {
super(ID);
this.mimeType = parcel.readString();
this.filename = parcel.readString();
this.description = parcel.readString();
this.data = parcel.createByteArray();
}
public final boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj == null || GeobFrame.class != obj.getClass()) {
return false;
}
GeobFrame geobFrame = (GeobFrame) obj;
return Util.areEqual(this.mimeType, geobFrame.mimeType) && Util.areEqual(this.filename, geobFrame.filename) && Util.areEqual(this.description, geobFrame.description) && Arrays.equals(this.data, geobFrame.data);
}
public final int hashCode() {
String str = this.mimeType;
int hashCode = (IronSourceError.ERROR_NON_EXISTENT_INSTANCE + (str != null ? str.hashCode() : 0)) * 31;
String str2 = this.filename;
int hashCode2 = (hashCode + (str2 != null ? str2.hashCode() : 0)) * 31;
String str3 = this.description;
return ((hashCode2 + (str3 != null ? str3.hashCode() : 0)) * 31) + Arrays.hashCode(this.data);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Frame
public final String toString() {
return this.id + ": mimeType=" + this.mimeType + ", filename=" + this.filename + ", description=" + this.description;
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.mimeType);
parcel.writeString(this.filename);
parcel.writeString(this.description);
parcel.writeByteArray(this.data);
}
}

View File

@@ -0,0 +1,536 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.id3;
import android.util.Log;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.Metadata;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataDecoder;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataInputBuffer;
import com.mbridge.msdk.playercommon.exoplayer2.util.ParsableByteArray;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Locale;
/* loaded from: classes4.dex */
public final class Id3Decoder implements MetadataDecoder {
private static final int FRAME_FLAG_V3_HAS_GROUP_IDENTIFIER = 32;
private static final int FRAME_FLAG_V3_IS_COMPRESSED = 128;
private static final int FRAME_FLAG_V3_IS_ENCRYPTED = 64;
private static final int FRAME_FLAG_V4_HAS_DATA_LENGTH = 1;
private static final int FRAME_FLAG_V4_HAS_GROUP_IDENTIFIER = 64;
private static final int FRAME_FLAG_V4_IS_COMPRESSED = 8;
private static final int FRAME_FLAG_V4_IS_ENCRYPTED = 4;
private static final int FRAME_FLAG_V4_IS_UNSYNCHRONIZED = 2;
public static final int ID3_HEADER_LENGTH = 10;
private static final int ID3_TEXT_ENCODING_ISO_8859_1 = 0;
private static final int ID3_TEXT_ENCODING_UTF_16 = 1;
private static final int ID3_TEXT_ENCODING_UTF_16BE = 2;
private static final int ID3_TEXT_ENCODING_UTF_8 = 3;
private static final String TAG = "Id3Decoder";
private final FramePredicate framePredicate;
public static final FramePredicate NO_FRAMES_PREDICATE = new FramePredicate() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Decoder.1
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Decoder.FramePredicate
public boolean evaluate(int i, int i2, int i3, int i4, int i5) {
return false;
}
};
public static final int ID3_TAG = Util.getIntegerCodeForString("ID3");
public interface FramePredicate {
boolean evaluate(int i, int i2, int i3, int i4, int i5);
}
private static int delimiterLength(int i) {
return (i == 0 || i == 3) ? 1 : 2;
}
private static String getCharsetName(int i) {
return i != 1 ? i != 2 ? i != 3 ? "ISO-8859-1" : "UTF-8" : "UTF-16BE" : "UTF-16";
}
public Id3Decoder() {
this(null);
}
public Id3Decoder(FramePredicate framePredicate) {
this.framePredicate = framePredicate;
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataDecoder
public final Metadata decode(MetadataInputBuffer metadataInputBuffer) {
ByteBuffer byteBuffer = metadataInputBuffer.data;
return decode(byteBuffer.array(), byteBuffer.limit());
}
public final Metadata decode(byte[] bArr, int i) {
ArrayList arrayList = new ArrayList();
ParsableByteArray parsableByteArray = new ParsableByteArray(bArr, i);
Id3Header decodeHeader = decodeHeader(parsableByteArray);
if (decodeHeader == null) {
return null;
}
int position = parsableByteArray.getPosition();
int i2 = decodeHeader.majorVersion == 2 ? 6 : 10;
int i3 = decodeHeader.framesSize;
if (decodeHeader.isUnsynchronized) {
i3 = removeUnsynchronization(parsableByteArray, decodeHeader.framesSize);
}
parsableByteArray.setLimit(position + i3);
boolean z = false;
if (!validateFrames(parsableByteArray, decodeHeader.majorVersion, i2, false)) {
if (decodeHeader.majorVersion != 4 || !validateFrames(parsableByteArray, 4, i2, true)) {
Log.w(TAG, "Failed to validate ID3 tag with majorVersion=" + decodeHeader.majorVersion);
return null;
}
z = true;
}
while (parsableByteArray.bytesLeft() >= i2) {
Id3Frame decodeFrame = decodeFrame(decodeHeader.majorVersion, parsableByteArray, z, i2, this.framePredicate);
if (decodeFrame != null) {
arrayList.add(decodeFrame);
}
}
return new Metadata(arrayList);
}
private static Id3Header decodeHeader(ParsableByteArray parsableByteArray) {
if (parsableByteArray.bytesLeft() < 10) {
Log.w(TAG, "Data too short to be an ID3 tag");
return null;
}
int readUnsignedInt24 = parsableByteArray.readUnsignedInt24();
if (readUnsignedInt24 != ID3_TAG) {
Log.w(TAG, "Unexpected first three bytes of ID3 tag header: " + readUnsignedInt24);
return null;
}
int readUnsignedByte = parsableByteArray.readUnsignedByte();
parsableByteArray.skipBytes(1);
int readUnsignedByte2 = parsableByteArray.readUnsignedByte();
int readSynchSafeInt = parsableByteArray.readSynchSafeInt();
if (readUnsignedByte == 2) {
if ((readUnsignedByte2 & 64) != 0) {
Log.w(TAG, "Skipped ID3 tag with majorVersion=2 and undefined compression scheme");
return null;
}
} else if (readUnsignedByte == 3) {
if ((readUnsignedByte2 & 64) != 0) {
int readInt = parsableByteArray.readInt();
parsableByteArray.skipBytes(readInt);
readSynchSafeInt -= readInt + 4;
}
} else {
if (readUnsignedByte != 4) {
Log.w(TAG, "Skipped ID3 tag with unsupported majorVersion=" + readUnsignedByte);
return null;
}
if ((readUnsignedByte2 & 64) != 0) {
int readSynchSafeInt2 = parsableByteArray.readSynchSafeInt();
parsableByteArray.skipBytes(readSynchSafeInt2 - 4);
readSynchSafeInt -= readSynchSafeInt2;
}
if ((readUnsignedByte2 & 16) != 0) {
readSynchSafeInt -= 10;
}
}
return new Id3Header(readUnsignedByte, readUnsignedByte < 4 && (readUnsignedByte2 & 128) != 0, readSynchSafeInt);
}
/* JADX WARN: Code restructure failed: missing block: B:31:0x0079, code lost:
if ((r10 & 1) != 0) goto L45;
*/
/* JADX WARN: Code restructure failed: missing block: B:32:0x007c, code lost:
r4 = false;
*/
/* JADX WARN: Code restructure failed: missing block: B:54:0x0089, code lost:
if ((r10 & 128) != 0) goto L45;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
private static boolean validateFrames(com.mbridge.msdk.playercommon.exoplayer2.util.ParsableByteArray r18, int r19, int r20, boolean r21) {
/*
r1 = r18
r0 = r19
int r2 = r18.getPosition()
L8:
int r3 = r18.bytesLeft() // Catch: java.lang.Throwable -> L22
r4 = 1
r5 = r20
if (r3 < r5) goto Lae
r3 = 3
r6 = 0
if (r0 < r3) goto L25
int r7 = r18.readInt() // Catch: java.lang.Throwable -> L22
long r8 = r18.readUnsignedInt() // Catch: java.lang.Throwable -> L22
int r10 = r18.readUnsignedShort() // Catch: java.lang.Throwable -> L22
goto L2f
L22:
r0 = move-exception
goto Lb2
L25:
int r7 = r18.readUnsignedInt24() // Catch: java.lang.Throwable -> L22
int r8 = r18.readUnsignedInt24() // Catch: java.lang.Throwable -> L22
long r8 = (long) r8
r10 = r6
L2f:
r11 = 0
if (r7 != 0) goto L3d
int r7 = (r8 > r11 ? 1 : (r8 == r11 ? 0 : -1))
if (r7 != 0) goto L3d
if (r10 != 0) goto L3d
r1.setPosition(r2)
return r4
L3d:
r7 = 4
if (r0 != r7) goto L6e
if (r21 != 0) goto L6e
r13 = 8421504(0x808080, double:4.160776E-317)
long r13 = r13 & r8
int r11 = (r13 > r11 ? 1 : (r13 == r11 ? 0 : -1))
if (r11 == 0) goto L4e
r1.setPosition(r2)
return r6
L4e:
r11 = 255(0xff, double:1.26E-321)
long r13 = r8 & r11
r15 = 8
long r15 = r8 >> r15
long r15 = r15 & r11
r17 = 7
long r15 = r15 << r17
long r13 = r13 | r15
r15 = 16
long r15 = r8 >> r15
long r15 = r15 & r11
r17 = 14
long r15 = r15 << r17
long r13 = r13 | r15
r15 = 24
long r8 = r8 >> r15
long r8 = r8 & r11
r11 = 21
long r8 = r8 << r11
long r8 = r8 | r13
L6e:
if (r0 != r7) goto L7e
r3 = r10 & 64
if (r3 == 0) goto L76
r3 = r4
goto L77
L76:
r3 = r6
L77:
r7 = r10 & 1
if (r7 == 0) goto L7c
goto L8e
L7c:
r4 = r6
goto L8e
L7e:
if (r0 != r3) goto L8c
r3 = r10 & 32
if (r3 == 0) goto L86
r3 = r4
goto L87
L86:
r3 = r6
L87:
r7 = r10 & 128(0x80, float:1.8E-43)
if (r7 == 0) goto L7c
goto L8e
L8c:
r3 = r6
r4 = r3
L8e:
if (r4 == 0) goto L92
int r3 = r3 + 4
L92:
long r3 = (long) r3
int r3 = (r8 > r3 ? 1 : (r8 == r3 ? 0 : -1))
if (r3 >= 0) goto L9b
r1.setPosition(r2)
return r6
L9b:
int r3 = r18.bytesLeft() // Catch: java.lang.Throwable -> L22
long r3 = (long) r3
int r3 = (r3 > r8 ? 1 : (r3 == r8 ? 0 : -1))
if (r3 >= 0) goto La8
r1.setPosition(r2)
return r6
La8:
int r3 = (int) r8
r1.skipBytes(r3) // Catch: java.lang.Throwable -> L22
goto L8
Lae:
r1.setPosition(r2)
return r4
Lb2:
r1.setPosition(r2)
throw r0
*/
throw new UnsupportedOperationException("Method not decompiled: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Decoder.validateFrames(com.mbridge.msdk.playercommon.exoplayer2.util.ParsableByteArray, int, int, boolean):boolean");
}
/* JADX WARN: Code restructure failed: missing block: B:122:0x0192, code lost:
if (r13 == 67) goto L132;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
private static com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Frame decodeFrame(int r19, com.mbridge.msdk.playercommon.exoplayer2.util.ParsableByteArray r20, boolean r21, int r22, com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Decoder.FramePredicate r23) {
/*
Method dump skipped, instructions count: 544
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Decoder.decodeFrame(int, com.mbridge.msdk.playercommon.exoplayer2.util.ParsableByteArray, boolean, int, com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Decoder$FramePredicate):com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Frame");
}
private static TextInformationFrame decodeTxxxFrame(ParsableByteArray parsableByteArray, int i) throws UnsupportedEncodingException {
if (i < 1) {
return null;
}
int readUnsignedByte = parsableByteArray.readUnsignedByte();
String charsetName = getCharsetName(readUnsignedByte);
int i2 = i - 1;
byte[] bArr = new byte[i2];
parsableByteArray.readBytes(bArr, 0, i2);
int indexOfEos = indexOfEos(bArr, 0, readUnsignedByte);
String str = new String(bArr, 0, indexOfEos, charsetName);
int delimiterLength = indexOfEos + delimiterLength(readUnsignedByte);
return new TextInformationFrame("TXXX", str, decodeStringIfValid(bArr, delimiterLength, indexOfEos(bArr, delimiterLength, readUnsignedByte), charsetName));
}
private static TextInformationFrame decodeTextInformationFrame(ParsableByteArray parsableByteArray, int i, String str) throws UnsupportedEncodingException {
if (i < 1) {
return null;
}
int readUnsignedByte = parsableByteArray.readUnsignedByte();
String charsetName = getCharsetName(readUnsignedByte);
int i2 = i - 1;
byte[] bArr = new byte[i2];
parsableByteArray.readBytes(bArr, 0, i2);
return new TextInformationFrame(str, null, new String(bArr, 0, indexOfEos(bArr, 0, readUnsignedByte), charsetName));
}
private static UrlLinkFrame decodeWxxxFrame(ParsableByteArray parsableByteArray, int i) throws UnsupportedEncodingException {
if (i < 1) {
return null;
}
int readUnsignedByte = parsableByteArray.readUnsignedByte();
String charsetName = getCharsetName(readUnsignedByte);
int i2 = i - 1;
byte[] bArr = new byte[i2];
parsableByteArray.readBytes(bArr, 0, i2);
int indexOfEos = indexOfEos(bArr, 0, readUnsignedByte);
String str = new String(bArr, 0, indexOfEos, charsetName);
int delimiterLength = indexOfEos + delimiterLength(readUnsignedByte);
return new UrlLinkFrame("WXXX", str, decodeStringIfValid(bArr, delimiterLength, indexOfZeroByte(bArr, delimiterLength), "ISO-8859-1"));
}
private static UrlLinkFrame decodeUrlLinkFrame(ParsableByteArray parsableByteArray, int i, String str) throws UnsupportedEncodingException {
byte[] bArr = new byte[i];
parsableByteArray.readBytes(bArr, 0, i);
return new UrlLinkFrame(str, null, new String(bArr, 0, indexOfZeroByte(bArr, 0), "ISO-8859-1"));
}
private static PrivFrame decodePrivFrame(ParsableByteArray parsableByteArray, int i) throws UnsupportedEncodingException {
byte[] bArr = new byte[i];
parsableByteArray.readBytes(bArr, 0, i);
int indexOfZeroByte = indexOfZeroByte(bArr, 0);
return new PrivFrame(new String(bArr, 0, indexOfZeroByte, "ISO-8859-1"), copyOfRangeIfValid(bArr, indexOfZeroByte + 1, i));
}
private static GeobFrame decodeGeobFrame(ParsableByteArray parsableByteArray, int i) throws UnsupportedEncodingException {
int readUnsignedByte = parsableByteArray.readUnsignedByte();
String charsetName = getCharsetName(readUnsignedByte);
int i2 = i - 1;
byte[] bArr = new byte[i2];
parsableByteArray.readBytes(bArr, 0, i2);
int indexOfZeroByte = indexOfZeroByte(bArr, 0);
String str = new String(bArr, 0, indexOfZeroByte, "ISO-8859-1");
int i3 = indexOfZeroByte + 1;
int indexOfEos = indexOfEos(bArr, i3, readUnsignedByte);
String decodeStringIfValid = decodeStringIfValid(bArr, i3, indexOfEos, charsetName);
int delimiterLength = indexOfEos + delimiterLength(readUnsignedByte);
int indexOfEos2 = indexOfEos(bArr, delimiterLength, readUnsignedByte);
return new GeobFrame(str, decodeStringIfValid, decodeStringIfValid(bArr, delimiterLength, indexOfEos2, charsetName), copyOfRangeIfValid(bArr, indexOfEos2 + delimiterLength(readUnsignedByte), i2));
}
private static ApicFrame decodeApicFrame(ParsableByteArray parsableByteArray, int i, int i2) throws UnsupportedEncodingException {
int indexOfZeroByte;
String lowerInvariant;
int readUnsignedByte = parsableByteArray.readUnsignedByte();
String charsetName = getCharsetName(readUnsignedByte);
int i3 = i - 1;
byte[] bArr = new byte[i3];
parsableByteArray.readBytes(bArr, 0, i3);
if (i2 == 2) {
lowerInvariant = "image/" + Util.toLowerInvariant(new String(bArr, 0, 3, "ISO-8859-1"));
if ("image/jpg".equals(lowerInvariant)) {
lowerInvariant = "image/jpeg";
}
indexOfZeroByte = 2;
} else {
indexOfZeroByte = indexOfZeroByte(bArr, 0);
lowerInvariant = Util.toLowerInvariant(new String(bArr, 0, indexOfZeroByte, "ISO-8859-1"));
if (lowerInvariant.indexOf(47) == -1) {
lowerInvariant = "image/" + lowerInvariant;
}
}
int i4 = bArr[indexOfZeroByte + 1] & 255;
int i5 = indexOfZeroByte + 2;
int indexOfEos = indexOfEos(bArr, i5, readUnsignedByte);
return new ApicFrame(lowerInvariant, new String(bArr, i5, indexOfEos - i5, charsetName), i4, copyOfRangeIfValid(bArr, indexOfEos + delimiterLength(readUnsignedByte), i3));
}
private static CommentFrame decodeCommentFrame(ParsableByteArray parsableByteArray, int i) throws UnsupportedEncodingException {
if (i < 4) {
return null;
}
int readUnsignedByte = parsableByteArray.readUnsignedByte();
String charsetName = getCharsetName(readUnsignedByte);
byte[] bArr = new byte[3];
parsableByteArray.readBytes(bArr, 0, 3);
String str = new String(bArr, 0, 3);
int i2 = i - 4;
byte[] bArr2 = new byte[i2];
parsableByteArray.readBytes(bArr2, 0, i2);
int indexOfEos = indexOfEos(bArr2, 0, readUnsignedByte);
String str2 = new String(bArr2, 0, indexOfEos, charsetName);
int delimiterLength = indexOfEos + delimiterLength(readUnsignedByte);
return new CommentFrame(str, str2, decodeStringIfValid(bArr2, delimiterLength, indexOfEos(bArr2, delimiterLength, readUnsignedByte), charsetName));
}
private static ChapterFrame decodeChapterFrame(ParsableByteArray parsableByteArray, int i, int i2, boolean z, int i3, FramePredicate framePredicate) throws UnsupportedEncodingException {
int position = parsableByteArray.getPosition();
int indexOfZeroByte = indexOfZeroByte(parsableByteArray.data, position);
String str = new String(parsableByteArray.data, position, indexOfZeroByte - position, "ISO-8859-1");
parsableByteArray.setPosition(indexOfZeroByte + 1);
int readInt = parsableByteArray.readInt();
int readInt2 = parsableByteArray.readInt();
long readUnsignedInt = parsableByteArray.readUnsignedInt();
long j = readUnsignedInt == 4294967295L ? -1L : readUnsignedInt;
long readUnsignedInt2 = parsableByteArray.readUnsignedInt();
long j2 = readUnsignedInt2 == 4294967295L ? -1L : readUnsignedInt2;
ArrayList arrayList = new ArrayList();
int i4 = position + i;
while (parsableByteArray.getPosition() < i4) {
Id3Frame decodeFrame = decodeFrame(i2, parsableByteArray, z, i3, framePredicate);
if (decodeFrame != null) {
arrayList.add(decodeFrame);
}
}
Id3Frame[] id3FrameArr = new Id3Frame[arrayList.size()];
arrayList.toArray(id3FrameArr);
return new ChapterFrame(str, readInt, readInt2, j, j2, id3FrameArr);
}
private static ChapterTocFrame decodeChapterTOCFrame(ParsableByteArray parsableByteArray, int i, int i2, boolean z, int i3, FramePredicate framePredicate) throws UnsupportedEncodingException {
int position = parsableByteArray.getPosition();
int indexOfZeroByte = indexOfZeroByte(parsableByteArray.data, position);
String str = new String(parsableByteArray.data, position, indexOfZeroByte - position, "ISO-8859-1");
parsableByteArray.setPosition(indexOfZeroByte + 1);
int readUnsignedByte = parsableByteArray.readUnsignedByte();
boolean z2 = (readUnsignedByte & 2) != 0;
boolean z3 = (readUnsignedByte & 1) != 0;
int readUnsignedByte2 = parsableByteArray.readUnsignedByte();
String[] strArr = new String[readUnsignedByte2];
for (int i4 = 0; i4 < readUnsignedByte2; i4++) {
int position2 = parsableByteArray.getPosition();
int indexOfZeroByte2 = indexOfZeroByte(parsableByteArray.data, position2);
strArr[i4] = new String(parsableByteArray.data, position2, indexOfZeroByte2 - position2, "ISO-8859-1");
parsableByteArray.setPosition(indexOfZeroByte2 + 1);
}
ArrayList arrayList = new ArrayList();
int i5 = position + i;
while (parsableByteArray.getPosition() < i5) {
Id3Frame decodeFrame = decodeFrame(i2, parsableByteArray, z, i3, framePredicate);
if (decodeFrame != null) {
arrayList.add(decodeFrame);
}
}
Id3Frame[] id3FrameArr = new Id3Frame[arrayList.size()];
arrayList.toArray(id3FrameArr);
return new ChapterTocFrame(str, z2, z3, strArr, id3FrameArr);
}
private static BinaryFrame decodeBinaryFrame(ParsableByteArray parsableByteArray, int i, String str) {
byte[] bArr = new byte[i];
parsableByteArray.readBytes(bArr, 0, i);
return new BinaryFrame(str, bArr);
}
private static int removeUnsynchronization(ParsableByteArray parsableByteArray, int i) {
byte[] bArr = parsableByteArray.data;
int position = parsableByteArray.getPosition();
while (true) {
int i2 = position + 1;
if (i2 >= i) {
return i;
}
if ((bArr[position] & 255) == 255 && bArr[i2] == 0) {
System.arraycopy(bArr, position + 2, bArr, i2, (i - position) - 2);
i--;
}
position = i2;
}
}
private static String getFrameId(int i, int i2, int i3, int i4, int i5) {
if (i == 2) {
return String.format(Locale.US, "%c%c%c", Integer.valueOf(i2), Integer.valueOf(i3), Integer.valueOf(i4));
}
return String.format(Locale.US, "%c%c%c%c", Integer.valueOf(i2), Integer.valueOf(i3), Integer.valueOf(i4), Integer.valueOf(i5));
}
private static int indexOfEos(byte[] bArr, int i, int i2) {
int indexOfZeroByte = indexOfZeroByte(bArr, i);
if (i2 == 0 || i2 == 3) {
return indexOfZeroByte;
}
while (indexOfZeroByte < bArr.length - 1) {
if (indexOfZeroByte % 2 == 0 && bArr[indexOfZeroByte + 1] == 0) {
return indexOfZeroByte;
}
indexOfZeroByte = indexOfZeroByte(bArr, indexOfZeroByte + 1);
}
return bArr.length;
}
private static int indexOfZeroByte(byte[] bArr, int i) {
while (i < bArr.length) {
if (bArr[i] == 0) {
return i;
}
i++;
}
return bArr.length;
}
private static byte[] copyOfRangeIfValid(byte[] bArr, int i, int i2) {
return i2 <= i ? new byte[0] : Arrays.copyOfRange(bArr, i, i2);
}
private static String decodeStringIfValid(byte[] bArr, int i, int i2, String str) throws UnsupportedEncodingException {
return (i2 <= i || i2 > bArr.length) ? "" : new String(bArr, i, i2 - i, str);
}
public static final class Id3Header {
private final int framesSize;
private final boolean isUnsynchronized;
private final int majorVersion;
public Id3Header(int i, boolean z, int i2) {
this.majorVersion = i;
this.isUnsynchronized = z;
this.framesSize = i2;
}
}
}

View File

@@ -0,0 +1,22 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.id3;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.Metadata;
import com.mbridge.msdk.playercommon.exoplayer2.util.Assertions;
/* loaded from: classes4.dex */
public abstract class Id3Frame implements Metadata.Entry {
public final String id;
@Override // android.os.Parcelable
public int describeContents() {
return 0;
}
public String toString() {
return this.id;
}
public Id3Frame(String str) {
this.id = (String) Assertions.checkNotNull(str);
}
}

View File

@@ -0,0 +1,75 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.id3;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import com.ironsource.mediationsdk.logger.IronSourceError;
import com.mbridge.msdk.playercommon.exoplayer2.util.Assertions;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
/* loaded from: classes4.dex */
public final class InternalFrame extends Id3Frame {
public static final Parcelable.Creator<InternalFrame> CREATOR = new Parcelable.Creator<InternalFrame>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.InternalFrame.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public InternalFrame createFromParcel(Parcel parcel) {
return new InternalFrame(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public InternalFrame[] newArray(int i) {
return new InternalFrame[i];
}
};
public static final String ID = "----";
public final String description;
public final String domain;
public final String text;
public InternalFrame(String str, String str2, String str3) {
super(ID);
this.domain = str;
this.description = str2;
this.text = str3;
}
public InternalFrame(Parcel parcel) {
super(ID);
this.domain = (String) Assertions.checkNotNull(parcel.readString());
this.description = (String) Assertions.checkNotNull(parcel.readString());
this.text = (String) Assertions.checkNotNull(parcel.readString());
}
public final boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj == null || InternalFrame.class != obj.getClass()) {
return false;
}
InternalFrame internalFrame = (InternalFrame) obj;
return Util.areEqual(this.description, internalFrame.description) && Util.areEqual(this.domain, internalFrame.domain) && Util.areEqual(this.text, internalFrame.text);
}
public final int hashCode() {
String str = this.domain;
int hashCode = (IronSourceError.ERROR_NON_EXISTENT_INSTANCE + (str != null ? str.hashCode() : 0)) * 31;
String str2 = this.description;
int hashCode2 = (hashCode + (str2 != null ? str2.hashCode() : 0)) * 31;
String str3 = this.text;
return hashCode2 + (str3 != null ? str3.hashCode() : 0);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Frame
public final String toString() {
return this.id + ": domain=" + this.domain + ", description=" + this.description;
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.id);
parcel.writeString(this.domain);
parcel.writeString(this.text);
}
}

View File

@@ -0,0 +1,67 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.id3;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import com.ironsource.mediationsdk.logger.IronSourceError;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
import java.util.Arrays;
/* loaded from: classes4.dex */
public final class PrivFrame extends Id3Frame {
public static final Parcelable.Creator<PrivFrame> CREATOR = new Parcelable.Creator<PrivFrame>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.PrivFrame.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public PrivFrame createFromParcel(Parcel parcel) {
return new PrivFrame(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public PrivFrame[] newArray(int i) {
return new PrivFrame[i];
}
};
public static final String ID = "PRIV";
public final String owner;
public final byte[] privateData;
public PrivFrame(String str, byte[] bArr) {
super(ID);
this.owner = str;
this.privateData = bArr;
}
public PrivFrame(Parcel parcel) {
super(ID);
this.owner = parcel.readString();
this.privateData = parcel.createByteArray();
}
public final boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj == null || PrivFrame.class != obj.getClass()) {
return false;
}
PrivFrame privFrame = (PrivFrame) obj;
return Util.areEqual(this.owner, privFrame.owner) && Arrays.equals(this.privateData, privFrame.privateData);
}
public final int hashCode() {
String str = this.owner;
return ((IronSourceError.ERROR_NON_EXISTENT_INSTANCE + (str != null ? str.hashCode() : 0)) * 31) + Arrays.hashCode(this.privateData);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Frame
public final String toString() {
return this.id + ": owner=" + this.owner;
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.owner);
parcel.writeByteArray(this.privateData);
}
}

View File

@@ -0,0 +1,69 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.id3;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import com.ironsource.mediationsdk.logger.IronSourceError;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
/* loaded from: classes4.dex */
public final class TextInformationFrame extends Id3Frame {
public static final Parcelable.Creator<TextInformationFrame> CREATOR = new Parcelable.Creator<TextInformationFrame>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.TextInformationFrame.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public TextInformationFrame createFromParcel(Parcel parcel) {
return new TextInformationFrame(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public TextInformationFrame[] newArray(int i) {
return new TextInformationFrame[i];
}
};
public final String description;
public final String value;
public TextInformationFrame(String str, String str2, String str3) {
super(str);
this.description = str2;
this.value = str3;
}
public TextInformationFrame(Parcel parcel) {
super(parcel.readString());
this.description = parcel.readString();
this.value = parcel.readString();
}
public final boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj == null || TextInformationFrame.class != obj.getClass()) {
return false;
}
TextInformationFrame textInformationFrame = (TextInformationFrame) obj;
return this.id.equals(textInformationFrame.id) && Util.areEqual(this.description, textInformationFrame.description) && Util.areEqual(this.value, textInformationFrame.value);
}
public final int hashCode() {
int hashCode = (IronSourceError.ERROR_NON_EXISTENT_INSTANCE + this.id.hashCode()) * 31;
String str = this.description;
int hashCode2 = (hashCode + (str != null ? str.hashCode() : 0)) * 31;
String str2 = this.value;
return hashCode2 + (str2 != null ? str2.hashCode() : 0);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Frame
public final String toString() {
return this.id + ": value=" + this.value;
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.id);
parcel.writeString(this.description);
parcel.writeString(this.value);
}
}

View File

@@ -0,0 +1,69 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.id3;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import com.ironsource.mediationsdk.logger.IronSourceError;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
/* loaded from: classes4.dex */
public final class UrlLinkFrame extends Id3Frame {
public static final Parcelable.Creator<UrlLinkFrame> CREATOR = new Parcelable.Creator<UrlLinkFrame>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.UrlLinkFrame.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public UrlLinkFrame createFromParcel(Parcel parcel) {
return new UrlLinkFrame(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public UrlLinkFrame[] newArray(int i) {
return new UrlLinkFrame[i];
}
};
public final String description;
public final String url;
public UrlLinkFrame(String str, String str2, String str3) {
super(str);
this.description = str2;
this.url = str3;
}
public UrlLinkFrame(Parcel parcel) {
super(parcel.readString());
this.description = parcel.readString();
this.url = parcel.readString();
}
public final boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj == null || UrlLinkFrame.class != obj.getClass()) {
return false;
}
UrlLinkFrame urlLinkFrame = (UrlLinkFrame) obj;
return this.id.equals(urlLinkFrame.id) && Util.areEqual(this.description, urlLinkFrame.description) && Util.areEqual(this.url, urlLinkFrame.url);
}
public final int hashCode() {
int hashCode = (IronSourceError.ERROR_NON_EXISTENT_INSTANCE + this.id.hashCode()) * 31;
String str = this.description;
int hashCode2 = (hashCode + (str != null ? str.hashCode() : 0)) * 31;
String str2 = this.url;
return hashCode2 + (str2 != null ? str2.hashCode() : 0);
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.id3.Id3Frame
public final String toString() {
return this.id + ": url=" + this.url;
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.id);
parcel.writeString(this.description);
parcel.writeString(this.url);
}
}

View File

@@ -0,0 +1,55 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35;
import android.os.Parcel;
import android.os.Parcelable;
import com.mbridge.msdk.playercommon.exoplayer2.util.ParsableByteArray;
/* loaded from: classes4.dex */
public final class PrivateCommand extends SpliceCommand {
public static final Parcelable.Creator<PrivateCommand> CREATOR = new Parcelable.Creator<PrivateCommand>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35.PrivateCommand.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public PrivateCommand createFromParcel(Parcel parcel) {
return new PrivateCommand(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public PrivateCommand[] newArray(int i) {
return new PrivateCommand[i];
}
};
public final byte[] commandBytes;
public final long identifier;
public final long ptsAdjustment;
private PrivateCommand(long j, byte[] bArr, long j2) {
this.ptsAdjustment = j2;
this.identifier = j;
this.commandBytes = bArr;
}
private PrivateCommand(Parcel parcel) {
this.ptsAdjustment = parcel.readLong();
this.identifier = parcel.readLong();
byte[] bArr = new byte[parcel.readInt()];
this.commandBytes = bArr;
parcel.readByteArray(bArr);
}
public static PrivateCommand parseFromSection(ParsableByteArray parsableByteArray, int i, long j) {
long readUnsignedInt = parsableByteArray.readUnsignedInt();
int i2 = i - 4;
byte[] bArr = new byte[i2];
parsableByteArray.readBytes(bArr, 0, i2);
return new PrivateCommand(readUnsignedInt, bArr, j);
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeLong(this.ptsAdjustment);
parcel.writeLong(this.identifier);
parcel.writeInt(this.commandBytes.length);
parcel.writeByteArray(this.commandBytes);
}
}

View File

@@ -0,0 +1,15 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.Metadata;
/* loaded from: classes4.dex */
public abstract class SpliceCommand implements Metadata.Entry {
@Override // android.os.Parcelable
public int describeContents() {
return 0;
}
public String toString() {
return "SCTE-35 splice command: type=" + getClass().getSimpleName();
}
}

View File

@@ -0,0 +1,56 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.Metadata;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataDecoder;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataDecoderException;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataInputBuffer;
import com.mbridge.msdk.playercommon.exoplayer2.util.ParsableBitArray;
import com.mbridge.msdk.playercommon.exoplayer2.util.ParsableByteArray;
import com.mbridge.msdk.playercommon.exoplayer2.util.TimestampAdjuster;
import java.nio.ByteBuffer;
/* loaded from: classes4.dex */
public final class SpliceInfoDecoder implements MetadataDecoder {
private static final int TYPE_PRIVATE_COMMAND = 255;
private static final int TYPE_SPLICE_INSERT = 5;
private static final int TYPE_SPLICE_NULL = 0;
private static final int TYPE_SPLICE_SCHEDULE = 4;
private static final int TYPE_TIME_SIGNAL = 6;
private final ParsableByteArray sectionData = new ParsableByteArray();
private final ParsableBitArray sectionHeader = new ParsableBitArray();
private TimestampAdjuster timestampAdjuster;
@Override // com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataDecoder
public final Metadata decode(MetadataInputBuffer metadataInputBuffer) throws MetadataDecoderException {
Metadata.Entry spliceNullCommand;
TimestampAdjuster timestampAdjuster = this.timestampAdjuster;
if (timestampAdjuster == null || metadataInputBuffer.subsampleOffsetUs != timestampAdjuster.getTimestampOffsetUs()) {
TimestampAdjuster timestampAdjuster2 = new TimestampAdjuster(metadataInputBuffer.timeUs);
this.timestampAdjuster = timestampAdjuster2;
timestampAdjuster2.adjustSampleTimestamp(metadataInputBuffer.timeUs - metadataInputBuffer.subsampleOffsetUs);
}
ByteBuffer byteBuffer = metadataInputBuffer.data;
byte[] array = byteBuffer.array();
int limit = byteBuffer.limit();
this.sectionData.reset(array, limit);
this.sectionHeader.reset(array, limit);
this.sectionHeader.skipBits(39);
long readBits = (this.sectionHeader.readBits(1) << 32) | this.sectionHeader.readBits(32);
this.sectionHeader.skipBits(20);
int readBits2 = this.sectionHeader.readBits(12);
int readBits3 = this.sectionHeader.readBits(8);
this.sectionData.skipBytes(14);
if (readBits3 == 0) {
spliceNullCommand = new SpliceNullCommand();
} else if (readBits3 == 255) {
spliceNullCommand = PrivateCommand.parseFromSection(this.sectionData, readBits2, readBits);
} else if (readBits3 == 4) {
spliceNullCommand = SpliceScheduleCommand.parseFromSection(this.sectionData);
} else if (readBits3 == 5) {
spliceNullCommand = SpliceInsertCommand.parseFromSection(this.sectionData, readBits, this.timestampAdjuster);
} else {
spliceNullCommand = readBits3 != 6 ? null : TimeSignalCommand.parseFromSection(this.sectionData, readBits, this.timestampAdjuster);
}
return spliceNullCommand == null ? new Metadata(new Metadata.Entry[0]) : new Metadata(spliceNullCommand);
}
}

View File

@@ -0,0 +1,188 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35;
import android.os.Parcel;
import android.os.Parcelable;
import com.mbridge.msdk.playercommon.exoplayer2.C;
import com.mbridge.msdk.playercommon.exoplayer2.util.ParsableByteArray;
import com.mbridge.msdk.playercommon.exoplayer2.util.TimestampAdjuster;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/* loaded from: classes4.dex */
public final class SpliceInsertCommand extends SpliceCommand {
public static final Parcelable.Creator<SpliceInsertCommand> CREATOR = new Parcelable.Creator<SpliceInsertCommand>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35.SpliceInsertCommand.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public SpliceInsertCommand createFromParcel(Parcel parcel) {
return new SpliceInsertCommand(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public SpliceInsertCommand[] newArray(int i) {
return new SpliceInsertCommand[i];
}
};
public final boolean autoReturn;
public final int availNum;
public final int availsExpected;
public final long breakDurationUs;
public final List<ComponentSplice> componentSpliceList;
public final boolean outOfNetworkIndicator;
public final boolean programSpliceFlag;
public final long programSplicePlaybackPositionUs;
public final long programSplicePts;
public final boolean spliceEventCancelIndicator;
public final long spliceEventId;
public final boolean spliceImmediateFlag;
public final int uniqueProgramId;
private SpliceInsertCommand(long j, boolean z, boolean z2, boolean z3, boolean z4, long j2, long j3, List<ComponentSplice> list, boolean z5, long j4, int i, int i2, int i3) {
this.spliceEventId = j;
this.spliceEventCancelIndicator = z;
this.outOfNetworkIndicator = z2;
this.programSpliceFlag = z3;
this.spliceImmediateFlag = z4;
this.programSplicePts = j2;
this.programSplicePlaybackPositionUs = j3;
this.componentSpliceList = Collections.unmodifiableList(list);
this.autoReturn = z5;
this.breakDurationUs = j4;
this.uniqueProgramId = i;
this.availNum = i2;
this.availsExpected = i3;
}
private SpliceInsertCommand(Parcel parcel) {
this.spliceEventId = parcel.readLong();
this.spliceEventCancelIndicator = parcel.readByte() == 1;
this.outOfNetworkIndicator = parcel.readByte() == 1;
this.programSpliceFlag = parcel.readByte() == 1;
this.spliceImmediateFlag = parcel.readByte() == 1;
this.programSplicePts = parcel.readLong();
this.programSplicePlaybackPositionUs = parcel.readLong();
int readInt = parcel.readInt();
ArrayList arrayList = new ArrayList(readInt);
for (int i = 0; i < readInt; i++) {
arrayList.add(ComponentSplice.createFromParcel(parcel));
}
this.componentSpliceList = Collections.unmodifiableList(arrayList);
this.autoReturn = parcel.readByte() == 1;
this.breakDurationUs = parcel.readLong();
this.uniqueProgramId = parcel.readInt();
this.availNum = parcel.readInt();
this.availsExpected = parcel.readInt();
}
public static SpliceInsertCommand parseFromSection(ParsableByteArray parsableByteArray, long j, TimestampAdjuster timestampAdjuster) {
List list;
boolean z;
boolean z2;
long j2;
boolean z3;
long j3;
int i;
int i2;
int i3;
boolean z4;
boolean z5;
long j4;
long readUnsignedInt = parsableByteArray.readUnsignedInt();
boolean z6 = (parsableByteArray.readUnsignedByte() & 128) != 0;
List emptyList = Collections.emptyList();
if (z6) {
list = emptyList;
z = false;
z2 = false;
j2 = C.TIME_UNSET;
z3 = false;
j3 = C.TIME_UNSET;
i = 0;
i2 = 0;
i3 = 0;
z4 = false;
} else {
int readUnsignedByte = parsableByteArray.readUnsignedByte();
boolean z7 = (readUnsignedByte & 128) != 0;
boolean z8 = (readUnsignedByte & 64) != 0;
boolean z9 = (readUnsignedByte & 32) != 0;
boolean z10 = (readUnsignedByte & 16) != 0;
long parseSpliceTime = (!z8 || z10) ? C.TIME_UNSET : TimeSignalCommand.parseSpliceTime(parsableByteArray, j);
if (!z8) {
int readUnsignedByte2 = parsableByteArray.readUnsignedByte();
ArrayList arrayList = new ArrayList(readUnsignedByte2);
for (int i4 = 0; i4 < readUnsignedByte2; i4++) {
int readUnsignedByte3 = parsableByteArray.readUnsignedByte();
long parseSpliceTime2 = !z10 ? TimeSignalCommand.parseSpliceTime(parsableByteArray, j) : C.TIME_UNSET;
arrayList.add(new ComponentSplice(readUnsignedByte3, parseSpliceTime2, timestampAdjuster.adjustTsTimestamp(parseSpliceTime2)));
}
emptyList = arrayList;
}
if (z9) {
long readUnsignedByte4 = parsableByteArray.readUnsignedByte();
boolean z11 = (128 & readUnsignedByte4) != 0;
j4 = ((((readUnsignedByte4 & 1) << 32) | parsableByteArray.readUnsignedInt()) * 1000) / 90;
z5 = z11;
} else {
z5 = false;
j4 = C.TIME_UNSET;
}
i = parsableByteArray.readUnsignedShort();
z4 = z8;
i2 = parsableByteArray.readUnsignedByte();
i3 = parsableByteArray.readUnsignedByte();
list = emptyList;
long j5 = parseSpliceTime;
z3 = z5;
j3 = j4;
z2 = z10;
z = z7;
j2 = j5;
}
return new SpliceInsertCommand(readUnsignedInt, z6, z, z4, z2, j2, timestampAdjuster.adjustTsTimestamp(j2), list, z3, j3, i, i2, i3);
}
public static final class ComponentSplice {
public final long componentSplicePlaybackPositionUs;
public final long componentSplicePts;
public final int componentTag;
private ComponentSplice(int i, long j, long j2) {
this.componentTag = i;
this.componentSplicePts = j;
this.componentSplicePlaybackPositionUs = j2;
}
public final void writeToParcel(Parcel parcel) {
parcel.writeInt(this.componentTag);
parcel.writeLong(this.componentSplicePts);
parcel.writeLong(this.componentSplicePlaybackPositionUs);
}
public static ComponentSplice createFromParcel(Parcel parcel) {
return new ComponentSplice(parcel.readInt(), parcel.readLong(), parcel.readLong());
}
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeLong(this.spliceEventId);
parcel.writeByte(this.spliceEventCancelIndicator ? (byte) 1 : (byte) 0);
parcel.writeByte(this.outOfNetworkIndicator ? (byte) 1 : (byte) 0);
parcel.writeByte(this.programSpliceFlag ? (byte) 1 : (byte) 0);
parcel.writeByte(this.spliceImmediateFlag ? (byte) 1 : (byte) 0);
parcel.writeLong(this.programSplicePts);
parcel.writeLong(this.programSplicePlaybackPositionUs);
int size = this.componentSpliceList.size();
parcel.writeInt(size);
for (int i2 = 0; i2 < size; i2++) {
this.componentSpliceList.get(i2).writeToParcel(parcel);
}
parcel.writeByte(this.autoReturn ? (byte) 1 : (byte) 0);
parcel.writeLong(this.breakDurationUs);
parcel.writeInt(this.uniqueProgramId);
parcel.writeInt(this.availNum);
parcel.writeInt(this.availsExpected);
}
}

View File

@@ -0,0 +1,25 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35;
import android.os.Parcel;
import android.os.Parcelable;
/* loaded from: classes4.dex */
public final class SpliceNullCommand extends SpliceCommand {
public static final Parcelable.Creator<SpliceNullCommand> CREATOR = new Parcelable.Creator<SpliceNullCommand>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35.SpliceNullCommand.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public SpliceNullCommand createFromParcel(Parcel parcel) {
return new SpliceNullCommand();
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public SpliceNullCommand[] newArray(int i) {
return new SpliceNullCommand[i];
}
};
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
}
}

View File

@@ -0,0 +1,216 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35;
import android.os.Parcel;
import android.os.Parcelable;
import com.mbridge.msdk.playercommon.exoplayer2.C;
import com.mbridge.msdk.playercommon.exoplayer2.util.ParsableByteArray;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/* loaded from: classes4.dex */
public final class SpliceScheduleCommand extends SpliceCommand {
public static final Parcelable.Creator<SpliceScheduleCommand> CREATOR = new Parcelable.Creator<SpliceScheduleCommand>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35.SpliceScheduleCommand.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public SpliceScheduleCommand createFromParcel(Parcel parcel) {
return new SpliceScheduleCommand(parcel);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public SpliceScheduleCommand[] newArray(int i) {
return new SpliceScheduleCommand[i];
}
};
public final List<Event> events;
public static final class Event {
public final boolean autoReturn;
public final int availNum;
public final int availsExpected;
public final long breakDurationUs;
public final List<ComponentSplice> componentSpliceList;
public final boolean outOfNetworkIndicator;
public final boolean programSpliceFlag;
public final boolean spliceEventCancelIndicator;
public final long spliceEventId;
public final int uniqueProgramId;
public final long utcSpliceTime;
private Event(long j, boolean z, boolean z2, boolean z3, List<ComponentSplice> list, long j2, boolean z4, long j3, int i, int i2, int i3) {
this.spliceEventId = j;
this.spliceEventCancelIndicator = z;
this.outOfNetworkIndicator = z2;
this.programSpliceFlag = z3;
this.componentSpliceList = Collections.unmodifiableList(list);
this.utcSpliceTime = j2;
this.autoReturn = z4;
this.breakDurationUs = j3;
this.uniqueProgramId = i;
this.availNum = i2;
this.availsExpected = i3;
}
private Event(Parcel parcel) {
this.spliceEventId = parcel.readLong();
this.spliceEventCancelIndicator = parcel.readByte() == 1;
this.outOfNetworkIndicator = parcel.readByte() == 1;
this.programSpliceFlag = parcel.readByte() == 1;
int readInt = parcel.readInt();
ArrayList arrayList = new ArrayList(readInt);
for (int i = 0; i < readInt; i++) {
arrayList.add(ComponentSplice.createFromParcel(parcel));
}
this.componentSpliceList = Collections.unmodifiableList(arrayList);
this.utcSpliceTime = parcel.readLong();
this.autoReturn = parcel.readByte() == 1;
this.breakDurationUs = parcel.readLong();
this.uniqueProgramId = parcel.readInt();
this.availNum = parcel.readInt();
this.availsExpected = parcel.readInt();
}
/* JADX INFO: Access modifiers changed from: private */
public static Event parseFromSection(ParsableByteArray parsableByteArray) {
ArrayList arrayList;
boolean z;
long j;
boolean z2;
long j2;
int i;
int i2;
int i3;
boolean z3;
boolean z4;
long j3;
long readUnsignedInt = parsableByteArray.readUnsignedInt();
boolean z5 = (parsableByteArray.readUnsignedByte() & 128) != 0;
ArrayList arrayList2 = new ArrayList();
if (z5) {
arrayList = arrayList2;
z = false;
j = C.TIME_UNSET;
z2 = false;
j2 = C.TIME_UNSET;
i = 0;
i2 = 0;
i3 = 0;
z3 = false;
} else {
int readUnsignedByte = parsableByteArray.readUnsignedByte();
boolean z6 = (readUnsignedByte & 128) != 0;
boolean z7 = (readUnsignedByte & 64) != 0;
boolean z8 = (readUnsignedByte & 32) != 0;
long readUnsignedInt2 = z7 ? parsableByteArray.readUnsignedInt() : C.TIME_UNSET;
if (!z7) {
int readUnsignedByte2 = parsableByteArray.readUnsignedByte();
ArrayList arrayList3 = new ArrayList(readUnsignedByte2);
for (int i4 = 0; i4 < readUnsignedByte2; i4++) {
arrayList3.add(new ComponentSplice(parsableByteArray.readUnsignedByte(), parsableByteArray.readUnsignedInt()));
}
arrayList2 = arrayList3;
}
if (z8) {
long readUnsignedByte3 = parsableByteArray.readUnsignedByte();
boolean z9 = (128 & readUnsignedByte3) != 0;
j3 = ((((readUnsignedByte3 & 1) << 32) | parsableByteArray.readUnsignedInt()) * 1000) / 90;
z4 = z9;
} else {
z4 = false;
j3 = C.TIME_UNSET;
}
int readUnsignedShort = parsableByteArray.readUnsignedShort();
int readUnsignedByte4 = parsableByteArray.readUnsignedByte();
z3 = z7;
i3 = parsableByteArray.readUnsignedByte();
j2 = j3;
arrayList = arrayList2;
long j4 = readUnsignedInt2;
i = readUnsignedShort;
i2 = readUnsignedByte4;
j = j4;
boolean z10 = z6;
z2 = z4;
z = z10;
}
return new Event(readUnsignedInt, z5, z, z3, arrayList, j, z2, j2, i, i2, i3);
}
/* JADX INFO: Access modifiers changed from: private */
public void writeToParcel(Parcel parcel) {
parcel.writeLong(this.spliceEventId);
parcel.writeByte(this.spliceEventCancelIndicator ? (byte) 1 : (byte) 0);
parcel.writeByte(this.outOfNetworkIndicator ? (byte) 1 : (byte) 0);
parcel.writeByte(this.programSpliceFlag ? (byte) 1 : (byte) 0);
int size = this.componentSpliceList.size();
parcel.writeInt(size);
for (int i = 0; i < size; i++) {
this.componentSpliceList.get(i).writeToParcel(parcel);
}
parcel.writeLong(this.utcSpliceTime);
parcel.writeByte(this.autoReturn ? (byte) 1 : (byte) 0);
parcel.writeLong(this.breakDurationUs);
parcel.writeInt(this.uniqueProgramId);
parcel.writeInt(this.availNum);
parcel.writeInt(this.availsExpected);
}
/* JADX INFO: Access modifiers changed from: private */
public static Event createFromParcel(Parcel parcel) {
return new Event(parcel);
}
}
public static final class ComponentSplice {
public final int componentTag;
public final long utcSpliceTime;
private ComponentSplice(int i, long j) {
this.componentTag = i;
this.utcSpliceTime = j;
}
/* JADX INFO: Access modifiers changed from: private */
public static ComponentSplice createFromParcel(Parcel parcel) {
return new ComponentSplice(parcel.readInt(), parcel.readLong());
}
/* JADX INFO: Access modifiers changed from: private */
public void writeToParcel(Parcel parcel) {
parcel.writeInt(this.componentTag);
parcel.writeLong(this.utcSpliceTime);
}
}
private SpliceScheduleCommand(List<Event> list) {
this.events = Collections.unmodifiableList(list);
}
private SpliceScheduleCommand(Parcel parcel) {
int readInt = parcel.readInt();
ArrayList arrayList = new ArrayList(readInt);
for (int i = 0; i < readInt; i++) {
arrayList.add(Event.createFromParcel(parcel));
}
this.events = Collections.unmodifiableList(arrayList);
}
public static SpliceScheduleCommand parseFromSection(ParsableByteArray parsableByteArray) {
int readUnsignedByte = parsableByteArray.readUnsignedByte();
ArrayList arrayList = new ArrayList(readUnsignedByte);
for (int i = 0; i < readUnsignedByte; i++) {
arrayList.add(Event.parseFromSection(parsableByteArray));
}
return new SpliceScheduleCommand(arrayList);
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
int size = this.events.size();
parcel.writeInt(size);
for (int i2 = 0; i2 < size; i2++) {
this.events.get(i2).writeToParcel(parcel);
}
}
}

View File

@@ -0,0 +1,47 @@
package com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35;
import android.os.Parcel;
import android.os.Parcelable;
import com.mbridge.msdk.playercommon.exoplayer2.C;
import com.mbridge.msdk.playercommon.exoplayer2.util.ParsableByteArray;
import com.mbridge.msdk.playercommon.exoplayer2.util.TimestampAdjuster;
/* loaded from: classes4.dex */
public final class TimeSignalCommand extends SpliceCommand {
public static final Parcelable.Creator<TimeSignalCommand> CREATOR = new Parcelable.Creator<TimeSignalCommand>() { // from class: com.mbridge.msdk.playercommon.exoplayer2.metadata.scte35.TimeSignalCommand.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public TimeSignalCommand createFromParcel(Parcel parcel) {
return new TimeSignalCommand(parcel.readLong(), parcel.readLong());
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public TimeSignalCommand[] newArray(int i) {
return new TimeSignalCommand[i];
}
};
public final long playbackPositionUs;
public final long ptsTime;
private TimeSignalCommand(long j, long j2) {
this.ptsTime = j;
this.playbackPositionUs = j2;
}
public static TimeSignalCommand parseFromSection(ParsableByteArray parsableByteArray, long j, TimestampAdjuster timestampAdjuster) {
long parseSpliceTime = parseSpliceTime(parsableByteArray, j);
return new TimeSignalCommand(parseSpliceTime, timestampAdjuster.adjustTsTimestamp(parseSpliceTime));
}
public static long parseSpliceTime(ParsableByteArray parsableByteArray, long j) {
long readUnsignedByte = parsableByteArray.readUnsignedByte();
return (128 & readUnsignedByte) != 0 ? 8589934591L & ((((readUnsignedByte & 1) << 32) | parsableByteArray.readUnsignedInt()) + j) : C.TIME_UNSET;
}
@Override // android.os.Parcelable
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeLong(this.ptsTime);
parcel.writeLong(this.playbackPositionUs);
}
}