- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
188 lines
11 KiB
Java
188 lines
11 KiB
Java
package com.google.android.exoplayer2.trackselection;
|
|
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import com.google.android.exoplayer2.util.Util;
|
|
import com.google.common.collect.ImmutableList;
|
|
import java.util.ArrayList;
|
|
import java.util.Collection;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public class TrackSelectionParameters implements Parcelable {
|
|
public static final Parcelable.Creator<TrackSelectionParameters> CREATOR;
|
|
public static final TrackSelectionParameters DEFAULT;
|
|
public static final TrackSelectionParameters DEFAULT_WITHOUT_CONTEXT;
|
|
public final boolean forceHighestSupportedBitrate;
|
|
public final boolean forceLowestBitrate;
|
|
public final int maxAudioBitrate;
|
|
public final int maxAudioChannelCount;
|
|
public final int maxVideoBitrate;
|
|
public final int maxVideoFrameRate;
|
|
public final int maxVideoHeight;
|
|
public final int maxVideoWidth;
|
|
public final int minVideoBitrate;
|
|
public final int minVideoFrameRate;
|
|
public final int minVideoHeight;
|
|
public final int minVideoWidth;
|
|
public final ImmutableList preferredAudioLanguages;
|
|
public final ImmutableList preferredAudioMimeTypes;
|
|
public final int preferredAudioRoleFlags;
|
|
public final ImmutableList preferredTextLanguages;
|
|
public final int preferredTextRoleFlags;
|
|
public final ImmutableList preferredVideoMimeTypes;
|
|
public final boolean selectUndeterminedTextLanguage;
|
|
public final int viewportHeight;
|
|
public final boolean viewportOrientationMayChange;
|
|
public final int viewportWidth;
|
|
|
|
@Override // android.os.Parcelable
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
public static class Builder {
|
|
public int minVideoBitrate;
|
|
public int minVideoFrameRate;
|
|
public int minVideoHeight;
|
|
public int minVideoWidth;
|
|
public int maxVideoWidth = Integer.MAX_VALUE;
|
|
public int maxVideoHeight = Integer.MAX_VALUE;
|
|
public int maxVideoFrameRate = Integer.MAX_VALUE;
|
|
public int maxVideoBitrate = Integer.MAX_VALUE;
|
|
public int viewportWidth = Integer.MAX_VALUE;
|
|
public int viewportHeight = Integer.MAX_VALUE;
|
|
public boolean viewportOrientationMayChange = true;
|
|
public ImmutableList preferredVideoMimeTypes = ImmutableList.of();
|
|
public ImmutableList preferredAudioLanguages = ImmutableList.of();
|
|
public int preferredAudioRoleFlags = 0;
|
|
public int maxAudioChannelCount = Integer.MAX_VALUE;
|
|
public int maxAudioBitrate = Integer.MAX_VALUE;
|
|
public ImmutableList preferredAudioMimeTypes = ImmutableList.of();
|
|
public ImmutableList preferredTextLanguages = ImmutableList.of();
|
|
public int preferredTextRoleFlags = 0;
|
|
public boolean selectUndeterminedTextLanguage = false;
|
|
public boolean forceLowestBitrate = false;
|
|
public boolean forceHighestSupportedBitrate = false;
|
|
|
|
public TrackSelectionParameters build() {
|
|
return new TrackSelectionParameters(this);
|
|
}
|
|
}
|
|
|
|
static {
|
|
TrackSelectionParameters build = new Builder().build();
|
|
DEFAULT_WITHOUT_CONTEXT = build;
|
|
DEFAULT = build;
|
|
CREATOR = new Parcelable.Creator() { // from class: com.google.android.exoplayer2.trackselection.TrackSelectionParameters.1
|
|
@Override // android.os.Parcelable.Creator
|
|
public TrackSelectionParameters createFromParcel(Parcel parcel) {
|
|
return new TrackSelectionParameters(parcel);
|
|
}
|
|
|
|
@Override // android.os.Parcelable.Creator
|
|
public TrackSelectionParameters[] newArray(int i) {
|
|
return new TrackSelectionParameters[i];
|
|
}
|
|
};
|
|
}
|
|
|
|
public TrackSelectionParameters(Builder builder) {
|
|
this.maxVideoWidth = builder.maxVideoWidth;
|
|
this.maxVideoHeight = builder.maxVideoHeight;
|
|
this.maxVideoFrameRate = builder.maxVideoFrameRate;
|
|
this.maxVideoBitrate = builder.maxVideoBitrate;
|
|
this.minVideoWidth = builder.minVideoWidth;
|
|
this.minVideoHeight = builder.minVideoHeight;
|
|
this.minVideoFrameRate = builder.minVideoFrameRate;
|
|
this.minVideoBitrate = builder.minVideoBitrate;
|
|
this.viewportWidth = builder.viewportWidth;
|
|
this.viewportHeight = builder.viewportHeight;
|
|
this.viewportOrientationMayChange = builder.viewportOrientationMayChange;
|
|
this.preferredVideoMimeTypes = builder.preferredVideoMimeTypes;
|
|
this.preferredAudioLanguages = builder.preferredAudioLanguages;
|
|
this.preferredAudioRoleFlags = builder.preferredAudioRoleFlags;
|
|
this.maxAudioChannelCount = builder.maxAudioChannelCount;
|
|
this.maxAudioBitrate = builder.maxAudioBitrate;
|
|
this.preferredAudioMimeTypes = builder.preferredAudioMimeTypes;
|
|
this.preferredTextLanguages = builder.preferredTextLanguages;
|
|
this.preferredTextRoleFlags = builder.preferredTextRoleFlags;
|
|
this.selectUndeterminedTextLanguage = builder.selectUndeterminedTextLanguage;
|
|
this.forceLowestBitrate = builder.forceLowestBitrate;
|
|
this.forceHighestSupportedBitrate = builder.forceHighestSupportedBitrate;
|
|
}
|
|
|
|
public TrackSelectionParameters(Parcel parcel) {
|
|
ArrayList arrayList = new ArrayList();
|
|
parcel.readList(arrayList, null);
|
|
this.preferredAudioLanguages = ImmutableList.copyOf((Collection) arrayList);
|
|
this.preferredAudioRoleFlags = parcel.readInt();
|
|
ArrayList arrayList2 = new ArrayList();
|
|
parcel.readList(arrayList2, null);
|
|
this.preferredTextLanguages = ImmutableList.copyOf((Collection) arrayList2);
|
|
this.preferredTextRoleFlags = parcel.readInt();
|
|
this.selectUndeterminedTextLanguage = Util.readBoolean(parcel);
|
|
this.maxVideoWidth = parcel.readInt();
|
|
this.maxVideoHeight = parcel.readInt();
|
|
this.maxVideoFrameRate = parcel.readInt();
|
|
this.maxVideoBitrate = parcel.readInt();
|
|
this.minVideoWidth = parcel.readInt();
|
|
this.minVideoHeight = parcel.readInt();
|
|
this.minVideoFrameRate = parcel.readInt();
|
|
this.minVideoBitrate = parcel.readInt();
|
|
this.viewportWidth = parcel.readInt();
|
|
this.viewportHeight = parcel.readInt();
|
|
this.viewportOrientationMayChange = Util.readBoolean(parcel);
|
|
ArrayList arrayList3 = new ArrayList();
|
|
parcel.readList(arrayList3, null);
|
|
this.preferredVideoMimeTypes = ImmutableList.copyOf((Collection) arrayList3);
|
|
this.maxAudioChannelCount = parcel.readInt();
|
|
this.maxAudioBitrate = parcel.readInt();
|
|
ArrayList arrayList4 = new ArrayList();
|
|
parcel.readList(arrayList4, null);
|
|
this.preferredAudioMimeTypes = ImmutableList.copyOf((Collection) arrayList4);
|
|
this.forceLowestBitrate = Util.readBoolean(parcel);
|
|
this.forceHighestSupportedBitrate = Util.readBoolean(parcel);
|
|
}
|
|
|
|
public boolean equals(Object obj) {
|
|
if (this == obj) {
|
|
return true;
|
|
}
|
|
if (obj == null || getClass() != obj.getClass()) {
|
|
return false;
|
|
}
|
|
TrackSelectionParameters trackSelectionParameters = (TrackSelectionParameters) obj;
|
|
return this.maxVideoWidth == trackSelectionParameters.maxVideoWidth && this.maxVideoHeight == trackSelectionParameters.maxVideoHeight && this.maxVideoFrameRate == trackSelectionParameters.maxVideoFrameRate && this.maxVideoBitrate == trackSelectionParameters.maxVideoBitrate && this.minVideoWidth == trackSelectionParameters.minVideoWidth && this.minVideoHeight == trackSelectionParameters.minVideoHeight && this.minVideoFrameRate == trackSelectionParameters.minVideoFrameRate && this.minVideoBitrate == trackSelectionParameters.minVideoBitrate && this.viewportOrientationMayChange == trackSelectionParameters.viewportOrientationMayChange && this.viewportWidth == trackSelectionParameters.viewportWidth && this.viewportHeight == trackSelectionParameters.viewportHeight && this.preferredVideoMimeTypes.equals(trackSelectionParameters.preferredVideoMimeTypes) && this.preferredAudioLanguages.equals(trackSelectionParameters.preferredAudioLanguages) && this.preferredAudioRoleFlags == trackSelectionParameters.preferredAudioRoleFlags && this.maxAudioChannelCount == trackSelectionParameters.maxAudioChannelCount && this.maxAudioBitrate == trackSelectionParameters.maxAudioBitrate && this.preferredAudioMimeTypes.equals(trackSelectionParameters.preferredAudioMimeTypes) && this.preferredTextLanguages.equals(trackSelectionParameters.preferredTextLanguages) && this.preferredTextRoleFlags == trackSelectionParameters.preferredTextRoleFlags && this.selectUndeterminedTextLanguage == trackSelectionParameters.selectUndeterminedTextLanguage && this.forceLowestBitrate == trackSelectionParameters.forceLowestBitrate && this.forceHighestSupportedBitrate == trackSelectionParameters.forceHighestSupportedBitrate;
|
|
}
|
|
|
|
public int hashCode() {
|
|
return ((((((((((((((((((((((((((((((((((((((((((this.maxVideoWidth + 31) * 31) + this.maxVideoHeight) * 31) + this.maxVideoFrameRate) * 31) + this.maxVideoBitrate) * 31) + this.minVideoWidth) * 31) + this.minVideoHeight) * 31) + this.minVideoFrameRate) * 31) + this.minVideoBitrate) * 31) + (this.viewportOrientationMayChange ? 1 : 0)) * 31) + this.viewportWidth) * 31) + this.viewportHeight) * 31) + this.preferredVideoMimeTypes.hashCode()) * 31) + this.preferredAudioLanguages.hashCode()) * 31) + this.preferredAudioRoleFlags) * 31) + this.maxAudioChannelCount) * 31) + this.maxAudioBitrate) * 31) + this.preferredAudioMimeTypes.hashCode()) * 31) + this.preferredTextLanguages.hashCode()) * 31) + this.preferredTextRoleFlags) * 31) + (this.selectUndeterminedTextLanguage ? 1 : 0)) * 31) + (this.forceLowestBitrate ? 1 : 0)) * 31) + (this.forceHighestSupportedBitrate ? 1 : 0);
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public void writeToParcel(Parcel parcel, int i) {
|
|
parcel.writeList(this.preferredAudioLanguages);
|
|
parcel.writeInt(this.preferredAudioRoleFlags);
|
|
parcel.writeList(this.preferredTextLanguages);
|
|
parcel.writeInt(this.preferredTextRoleFlags);
|
|
Util.writeBoolean(parcel, this.selectUndeterminedTextLanguage);
|
|
parcel.writeInt(this.maxVideoWidth);
|
|
parcel.writeInt(this.maxVideoHeight);
|
|
parcel.writeInt(this.maxVideoFrameRate);
|
|
parcel.writeInt(this.maxVideoBitrate);
|
|
parcel.writeInt(this.minVideoWidth);
|
|
parcel.writeInt(this.minVideoHeight);
|
|
parcel.writeInt(this.minVideoFrameRate);
|
|
parcel.writeInt(this.minVideoBitrate);
|
|
parcel.writeInt(this.viewportWidth);
|
|
parcel.writeInt(this.viewportHeight);
|
|
Util.writeBoolean(parcel, this.viewportOrientationMayChange);
|
|
parcel.writeList(this.preferredVideoMimeTypes);
|
|
parcel.writeInt(this.maxAudioChannelCount);
|
|
parcel.writeInt(this.maxAudioBitrate);
|
|
parcel.writeList(this.preferredAudioMimeTypes);
|
|
Util.writeBoolean(parcel, this.forceLowestBitrate);
|
|
Util.writeBoolean(parcel, this.forceHighestSupportedBitrate);
|
|
}
|
|
}
|