package com.google.android.exoplayer2; import android.os.Parcel; import android.os.Parcelable; import com.google.android.exoplayer2.drm.DrmInitData; import com.google.android.exoplayer2.drm.UnsupportedMediaCrypto; import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.video.ColorInfo; import com.ironsource.mediationsdk.logger.IronSourceError; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; /* loaded from: classes2.dex */ public final class Format implements Parcelable { public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { // from class: com.google.android.exoplayer2.Format.1 @Override // android.os.Parcelable.Creator public Format createFromParcel(Parcel parcel) { return new Format(parcel); } @Override // android.os.Parcelable.Creator public Format[] newArray(int i) { return new Format[i]; } }; public final int accessibilityChannel; public final int averageBitrate; public final int bitrate; public final int channelCount; public final String codecs; public final ColorInfo colorInfo; public final String containerMimeType; public final DrmInitData drmInitData; public final int encoderDelay; public final int encoderPadding; public final Class exoMediaCryptoType; public final float frameRate; public int hashCode; public final int height; public final String id; public final List initializationData; public final String label; public final String language; public final int maxInputSize; public final Metadata metadata; public final int pcmEncoding; public final int peakBitrate; public final float pixelWidthHeightRatio; public final byte[] projectionData; public final int roleFlags; public final int rotationDegrees; public final String sampleMimeType; public final int sampleRate; public final int selectionFlags; public final int stereoMode; public final long subsampleOffsetUs; public final int width; @Override // android.os.Parcelable public int describeContents() { return 0; } public static final class Builder { public String codecs; public ColorInfo colorInfo; public String containerMimeType; public DrmInitData drmInitData; public int encoderDelay; public int encoderPadding; public Class exoMediaCryptoType; public String id; public List initializationData; public String label; public String language; public Metadata metadata; public byte[] projectionData; public int roleFlags; public int rotationDegrees; public String sampleMimeType; public int selectionFlags; public int averageBitrate = -1; public int peakBitrate = -1; public int maxInputSize = -1; public long subsampleOffsetUs = Long.MAX_VALUE; public int width = -1; public int height = -1; public float frameRate = -1.0f; public float pixelWidthHeightRatio = 1.0f; public int stereoMode = -1; public int channelCount = -1; public int sampleRate = -1; public int pcmEncoding = -1; public int accessibilityChannel = -1; public Builder setSampleMimeType(String str) { this.sampleMimeType = str; return this; } public Format build() { return new Format(this); } } public Format(Builder builder) { this.id = builder.id; this.label = builder.label; this.language = Util.normalizeLanguageCode(builder.language); this.selectionFlags = builder.selectionFlags; this.roleFlags = builder.roleFlags; int i = builder.averageBitrate; this.averageBitrate = i; int i2 = builder.peakBitrate; this.peakBitrate = i2; this.bitrate = i2 != -1 ? i2 : i; this.codecs = builder.codecs; this.metadata = builder.metadata; this.containerMimeType = builder.containerMimeType; this.sampleMimeType = builder.sampleMimeType; this.maxInputSize = builder.maxInputSize; this.initializationData = builder.initializationData == null ? Collections.emptyList() : builder.initializationData; DrmInitData drmInitData = builder.drmInitData; this.drmInitData = drmInitData; this.subsampleOffsetUs = builder.subsampleOffsetUs; this.width = builder.width; this.height = builder.height; this.frameRate = builder.frameRate; this.rotationDegrees = builder.rotationDegrees == -1 ? 0 : builder.rotationDegrees; this.pixelWidthHeightRatio = builder.pixelWidthHeightRatio == -1.0f ? 1.0f : builder.pixelWidthHeightRatio; this.projectionData = builder.projectionData; this.stereoMode = builder.stereoMode; this.colorInfo = builder.colorInfo; this.channelCount = builder.channelCount; this.sampleRate = builder.sampleRate; this.pcmEncoding = builder.pcmEncoding; this.encoderDelay = builder.encoderDelay == -1 ? 0 : builder.encoderDelay; this.encoderPadding = builder.encoderPadding != -1 ? builder.encoderPadding : 0; this.accessibilityChannel = builder.accessibilityChannel; if (builder.exoMediaCryptoType != null || drmInitData == null) { this.exoMediaCryptoType = builder.exoMediaCryptoType; } else { this.exoMediaCryptoType = UnsupportedMediaCrypto.class; } } public Format(Parcel parcel) { this.id = parcel.readString(); this.label = parcel.readString(); this.language = parcel.readString(); this.selectionFlags = parcel.readInt(); this.roleFlags = parcel.readInt(); int readInt = parcel.readInt(); this.averageBitrate = readInt; int readInt2 = parcel.readInt(); this.peakBitrate = readInt2; this.bitrate = readInt2 != -1 ? readInt2 : readInt; this.codecs = parcel.readString(); this.metadata = (Metadata) parcel.readParcelable(Metadata.class.getClassLoader()); this.containerMimeType = parcel.readString(); this.sampleMimeType = parcel.readString(); this.maxInputSize = parcel.readInt(); int readInt3 = parcel.readInt(); this.initializationData = new ArrayList(readInt3); for (int i = 0; i < readInt3; i++) { this.initializationData.add((byte[]) Assertions.checkNotNull(parcel.createByteArray())); } DrmInitData drmInitData = (DrmInitData) parcel.readParcelable(DrmInitData.class.getClassLoader()); this.drmInitData = drmInitData; this.subsampleOffsetUs = parcel.readLong(); this.width = parcel.readInt(); this.height = parcel.readInt(); this.frameRate = parcel.readFloat(); this.rotationDegrees = parcel.readInt(); this.pixelWidthHeightRatio = parcel.readFloat(); this.projectionData = Util.readBoolean(parcel) ? parcel.createByteArray() : null; this.stereoMode = parcel.readInt(); this.colorInfo = (ColorInfo) parcel.readParcelable(ColorInfo.class.getClassLoader()); this.channelCount = parcel.readInt(); this.sampleRate = parcel.readInt(); this.pcmEncoding = parcel.readInt(); this.encoderDelay = parcel.readInt(); this.encoderPadding = parcel.readInt(); this.accessibilityChannel = parcel.readInt(); this.exoMediaCryptoType = drmInitData != null ? UnsupportedMediaCrypto.class : null; } public String toString() { String str = this.id; String str2 = this.label; String str3 = this.containerMimeType; String str4 = this.sampleMimeType; String str5 = this.codecs; int i = this.bitrate; String str6 = this.language; int i2 = this.width; int i3 = this.height; float f = this.frameRate; int i4 = this.channelCount; int i5 = this.sampleRate; StringBuilder sb = new StringBuilder(String.valueOf(str).length() + 104 + String.valueOf(str2).length() + String.valueOf(str3).length() + String.valueOf(str4).length() + String.valueOf(str5).length() + String.valueOf(str6).length()); sb.append("Format("); sb.append(str); sb.append(", "); sb.append(str2); sb.append(", "); sb.append(str3); sb.append(", "); sb.append(str4); sb.append(", "); sb.append(str5); sb.append(", "); sb.append(i); sb.append(", "); sb.append(str6); sb.append(", ["); sb.append(i2); sb.append(", "); sb.append(i3); sb.append(", "); sb.append(f); sb.append("], ["); sb.append(i4); sb.append(", "); sb.append(i5); sb.append("])"); return sb.toString(); } public int hashCode() { if (this.hashCode == 0) { String str = this.id; int hashCode = (IronSourceError.ERROR_NON_EXISTENT_INSTANCE + (str == null ? 0 : str.hashCode())) * 31; String str2 = this.label; int hashCode2 = (hashCode + (str2 != null ? str2.hashCode() : 0)) * 31; String str3 = this.language; int hashCode3 = (((((((((hashCode2 + (str3 == null ? 0 : str3.hashCode())) * 31) + this.selectionFlags) * 31) + this.roleFlags) * 31) + this.averageBitrate) * 31) + this.peakBitrate) * 31; String str4 = this.codecs; int hashCode4 = (hashCode3 + (str4 == null ? 0 : str4.hashCode())) * 31; Metadata metadata = this.metadata; int hashCode5 = (hashCode4 + (metadata == null ? 0 : metadata.hashCode())) * 31; String str5 = this.containerMimeType; int hashCode6 = (hashCode5 + (str5 == null ? 0 : str5.hashCode())) * 31; String str6 = this.sampleMimeType; int hashCode7 = (((((((((((((((((((((((((((((hashCode6 + (str6 == null ? 0 : str6.hashCode())) * 31) + this.maxInputSize) * 31) + ((int) this.subsampleOffsetUs)) * 31) + this.width) * 31) + this.height) * 31) + Float.floatToIntBits(this.frameRate)) * 31) + this.rotationDegrees) * 31) + Float.floatToIntBits(this.pixelWidthHeightRatio)) * 31) + this.stereoMode) * 31) + this.channelCount) * 31) + this.sampleRate) * 31) + this.pcmEncoding) * 31) + this.encoderDelay) * 31) + this.encoderPadding) * 31) + this.accessibilityChannel) * 31; Class cls = this.exoMediaCryptoType; this.hashCode = hashCode7 + (cls != null ? cls.hashCode() : 0); } return this.hashCode; } public boolean equals(Object obj) { int i; if (this == obj) { return true; } if (obj == null || Format.class != obj.getClass()) { return false; } Format format = (Format) obj; int i2 = this.hashCode; if (i2 == 0 || (i = format.hashCode) == 0 || i2 == i) { return this.selectionFlags == format.selectionFlags && this.roleFlags == format.roleFlags && this.averageBitrate == format.averageBitrate && this.peakBitrate == format.peakBitrate && this.maxInputSize == format.maxInputSize && this.subsampleOffsetUs == format.subsampleOffsetUs && this.width == format.width && this.height == format.height && this.rotationDegrees == format.rotationDegrees && this.stereoMode == format.stereoMode && this.channelCount == format.channelCount && this.sampleRate == format.sampleRate && this.pcmEncoding == format.pcmEncoding && this.encoderDelay == format.encoderDelay && this.encoderPadding == format.encoderPadding && this.accessibilityChannel == format.accessibilityChannel && Float.compare(this.frameRate, format.frameRate) == 0 && Float.compare(this.pixelWidthHeightRatio, format.pixelWidthHeightRatio) == 0 && Util.areEqual(this.exoMediaCryptoType, format.exoMediaCryptoType) && Util.areEqual(this.id, format.id) && Util.areEqual(this.label, format.label) && Util.areEqual(this.codecs, format.codecs) && Util.areEqual(this.containerMimeType, format.containerMimeType) && Util.areEqual(this.sampleMimeType, format.sampleMimeType) && Util.areEqual(this.language, format.language) && Arrays.equals(this.projectionData, format.projectionData) && Util.areEqual(this.metadata, format.metadata) && Util.areEqual(this.colorInfo, format.colorInfo) && Util.areEqual(this.drmInitData, format.drmInitData) && initializationDataEquals(format); } return false; } public boolean initializationDataEquals(Format format) { if (this.initializationData.size() != format.initializationData.size()) { return false; } for (int i = 0; i < this.initializationData.size(); i++) { if (!Arrays.equals((byte[]) this.initializationData.get(i), (byte[]) format.initializationData.get(i))) { return false; } } return true; } @Override // android.os.Parcelable public void writeToParcel(Parcel parcel, int i) { parcel.writeString(this.id); parcel.writeString(this.label); parcel.writeString(this.language); parcel.writeInt(this.selectionFlags); parcel.writeInt(this.roleFlags); parcel.writeInt(this.averageBitrate); parcel.writeInt(this.peakBitrate); parcel.writeString(this.codecs); parcel.writeParcelable(this.metadata, 0); parcel.writeString(this.containerMimeType); parcel.writeString(this.sampleMimeType); parcel.writeInt(this.maxInputSize); int size = this.initializationData.size(); parcel.writeInt(size); for (int i2 = 0; i2 < size; i2++) { parcel.writeByteArray((byte[]) this.initializationData.get(i2)); } parcel.writeParcelable(this.drmInitData, 0); parcel.writeLong(this.subsampleOffsetUs); parcel.writeInt(this.width); parcel.writeInt(this.height); parcel.writeFloat(this.frameRate); parcel.writeInt(this.rotationDegrees); parcel.writeFloat(this.pixelWidthHeightRatio); Util.writeBoolean(parcel, this.projectionData != null); byte[] bArr = this.projectionData; if (bArr != null) { parcel.writeByteArray(bArr); } parcel.writeInt(this.stereoMode); parcel.writeParcelable(this.colorInfo, i); parcel.writeInt(this.channelCount); parcel.writeInt(this.sampleRate); parcel.writeInt(this.pcmEncoding); parcel.writeInt(this.encoderDelay); parcel.writeInt(this.encoderPadding); parcel.writeInt(this.accessibilityChannel); } }