Add Discord community version (64-bit only)

- 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
This commit is contained in:
2026-02-18 15:48:36 -08:00
parent c19eb3d7ff
commit c080f0d97f
26930 changed files with 2529574 additions and 0 deletions

View File

@@ -0,0 +1,304 @@
package com.google.android.exoplayer2;
import android.net.Uri;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Util;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/* loaded from: classes2.dex */
public final class MediaItem {
public final ClippingProperties clippingProperties;
public final LiveConfiguration liveConfiguration;
public final String mediaId;
public final MediaMetadata mediaMetadata;
public final PlaybackProperties playbackProperties;
public static final MediaItem EMPTY = new Builder().build();
public static final Bundleable$Creator CREATOR = new MediaItem$$ExternalSyntheticLambda0();
public static final class Builder {
public Uri adTagUri;
public Object adsId;
public boolean clipRelativeToDefaultPosition;
public boolean clipRelativeToLiveWindow;
public long clipStartPositionMs;
public boolean clipStartsAtKeyFrame;
public String customCacheKey;
public boolean drmForceDefaultLicenseUri;
public byte[] drmKeySetId;
public Uri drmLicenseUri;
public boolean drmMultiSession;
public boolean drmPlayClearContentWithoutKey;
public UUID drmUuid;
public String mediaId;
public MediaMetadata mediaMetadata;
public String mimeType;
public Object tag;
public Uri uri;
public long clipEndPositionMs = Long.MIN_VALUE;
public List drmSessionForClearTypes = Collections.emptyList();
public Map drmLicenseRequestHeaders = Collections.emptyMap();
public List streamKeys = Collections.emptyList();
public List subtitles = Collections.emptyList();
public long liveTargetOffsetMs = com.mbridge.msdk.playercommon.exoplayer2.C.TIME_UNSET;
public long liveMinOffsetMs = com.mbridge.msdk.playercommon.exoplayer2.C.TIME_UNSET;
public long liveMaxOffsetMs = com.mbridge.msdk.playercommon.exoplayer2.C.TIME_UNSET;
public float liveMinPlaybackSpeed = -3.4028235E38f;
public float liveMaxPlaybackSpeed = -3.4028235E38f;
public Builder setUri(Uri uri) {
this.uri = uri;
return this;
}
public Builder setMediaId(String str) {
this.mediaId = (String) Assertions.checkNotNull(str);
return this;
}
public MediaItem build() {
PlaybackProperties playbackProperties;
Assertions.checkState(this.drmLicenseUri == null || this.drmUuid != null);
Uri uri = this.uri;
if (uri != null) {
String str = this.mimeType;
UUID uuid = this.drmUuid;
DrmConfiguration drmConfiguration = uuid != null ? new DrmConfiguration(uuid, this.drmLicenseUri, this.drmLicenseRequestHeaders, this.drmMultiSession, this.drmForceDefaultLicenseUri, this.drmPlayClearContentWithoutKey, this.drmSessionForClearTypes, this.drmKeySetId) : null;
Uri uri2 = this.adTagUri;
playbackProperties = new PlaybackProperties(uri, str, drmConfiguration, uri2 != null ? new AdsConfiguration(uri2, this.adsId) : null, this.streamKeys, this.customCacheKey, this.subtitles, this.tag);
} else {
playbackProperties = null;
}
String str2 = this.mediaId;
if (str2 == null) {
str2 = "";
}
String str3 = str2;
ClippingProperties clippingProperties = new ClippingProperties(this.clipStartPositionMs, this.clipEndPositionMs, this.clipRelativeToLiveWindow, this.clipRelativeToDefaultPosition, this.clipStartsAtKeyFrame);
LiveConfiguration liveConfiguration = new LiveConfiguration(this.liveTargetOffsetMs, this.liveMinOffsetMs, this.liveMaxOffsetMs, this.liveMinPlaybackSpeed, this.liveMaxPlaybackSpeed);
MediaMetadata mediaMetadata = this.mediaMetadata;
if (mediaMetadata == null) {
mediaMetadata = MediaMetadata.EMPTY;
}
return new MediaItem(str3, clippingProperties, playbackProperties, liveConfiguration, mediaMetadata);
}
}
public static final class DrmConfiguration {
public final boolean forceDefaultLicenseUri;
public final byte[] keySetId;
public final Uri licenseUri;
public final boolean multiSession;
public final boolean playClearContentWithoutKey;
public final Map requestHeaders;
public final List sessionForClearTypes;
public final UUID uuid;
public DrmConfiguration(UUID uuid, Uri uri, Map map, boolean z, boolean z2, boolean z3, List list, byte[] bArr) {
Assertions.checkArgument((z2 && uri == null) ? false : true);
this.uuid = uuid;
this.licenseUri = uri;
this.requestHeaders = map;
this.multiSession = z;
this.forceDefaultLicenseUri = z2;
this.playClearContentWithoutKey = z3;
this.sessionForClearTypes = list;
this.keySetId = bArr != null ? Arrays.copyOf(bArr, bArr.length) : null;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof DrmConfiguration)) {
return false;
}
DrmConfiguration drmConfiguration = (DrmConfiguration) obj;
return this.uuid.equals(drmConfiguration.uuid) && Util.areEqual(this.licenseUri, drmConfiguration.licenseUri) && Util.areEqual(this.requestHeaders, drmConfiguration.requestHeaders) && this.multiSession == drmConfiguration.multiSession && this.forceDefaultLicenseUri == drmConfiguration.forceDefaultLicenseUri && this.playClearContentWithoutKey == drmConfiguration.playClearContentWithoutKey && this.sessionForClearTypes.equals(drmConfiguration.sessionForClearTypes) && Arrays.equals(this.keySetId, drmConfiguration.keySetId);
}
public int hashCode() {
int hashCode = this.uuid.hashCode() * 31;
Uri uri = this.licenseUri;
return ((((((((((((hashCode + (uri != null ? uri.hashCode() : 0)) * 31) + this.requestHeaders.hashCode()) * 31) + (this.multiSession ? 1 : 0)) * 31) + (this.forceDefaultLicenseUri ? 1 : 0)) * 31) + (this.playClearContentWithoutKey ? 1 : 0)) * 31) + this.sessionForClearTypes.hashCode()) * 31) + Arrays.hashCode(this.keySetId);
}
}
public static final class AdsConfiguration {
public final Uri adTagUri;
public final Object adsId;
public AdsConfiguration(Uri uri, Object obj) {
this.adTagUri = uri;
this.adsId = obj;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof AdsConfiguration)) {
return false;
}
AdsConfiguration adsConfiguration = (AdsConfiguration) obj;
return this.adTagUri.equals(adsConfiguration.adTagUri) && Util.areEqual(this.adsId, adsConfiguration.adsId);
}
public int hashCode() {
int hashCode = this.adTagUri.hashCode() * 31;
Object obj = this.adsId;
return hashCode + (obj != null ? obj.hashCode() : 0);
}
}
public static final class PlaybackProperties {
public final AdsConfiguration adsConfiguration;
public final String customCacheKey;
public final DrmConfiguration drmConfiguration;
public final String mimeType;
public final List streamKeys;
public final List subtitles;
public final Object tag;
public final Uri uri;
public PlaybackProperties(Uri uri, String str, DrmConfiguration drmConfiguration, AdsConfiguration adsConfiguration, List list, String str2, List list2, Object obj) {
this.uri = uri;
this.mimeType = str;
this.drmConfiguration = drmConfiguration;
this.adsConfiguration = adsConfiguration;
this.streamKeys = list;
this.customCacheKey = str2;
this.subtitles = list2;
this.tag = obj;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof PlaybackProperties)) {
return false;
}
PlaybackProperties playbackProperties = (PlaybackProperties) obj;
return this.uri.equals(playbackProperties.uri) && Util.areEqual(this.mimeType, playbackProperties.mimeType) && Util.areEqual(this.drmConfiguration, playbackProperties.drmConfiguration) && Util.areEqual(this.adsConfiguration, playbackProperties.adsConfiguration) && this.streamKeys.equals(playbackProperties.streamKeys) && Util.areEqual(this.customCacheKey, playbackProperties.customCacheKey) && this.subtitles.equals(playbackProperties.subtitles) && Util.areEqual(this.tag, playbackProperties.tag);
}
public int hashCode() {
int hashCode = this.uri.hashCode() * 31;
String str = this.mimeType;
int hashCode2 = (hashCode + (str == null ? 0 : str.hashCode())) * 31;
DrmConfiguration drmConfiguration = this.drmConfiguration;
int hashCode3 = (hashCode2 + (drmConfiguration == null ? 0 : drmConfiguration.hashCode())) * 31;
AdsConfiguration adsConfiguration = this.adsConfiguration;
int hashCode4 = (((hashCode3 + (adsConfiguration == null ? 0 : adsConfiguration.hashCode())) * 31) + this.streamKeys.hashCode()) * 31;
String str2 = this.customCacheKey;
int hashCode5 = (((hashCode4 + (str2 == null ? 0 : str2.hashCode())) * 31) + this.subtitles.hashCode()) * 31;
Object obj = this.tag;
return hashCode5 + (obj != null ? obj.hashCode() : 0);
}
}
public static final class LiveConfiguration {
public final long maxOffsetMs;
public final float maxPlaybackSpeed;
public final long minOffsetMs;
public final float minPlaybackSpeed;
public final long targetOffsetMs;
public static final LiveConfiguration UNSET = new LiveConfiguration(com.mbridge.msdk.playercommon.exoplayer2.C.TIME_UNSET, com.mbridge.msdk.playercommon.exoplayer2.C.TIME_UNSET, com.mbridge.msdk.playercommon.exoplayer2.C.TIME_UNSET, -3.4028235E38f, -3.4028235E38f);
public static final Bundleable$Creator CREATOR = new MediaItem$$ExternalSyntheticLambda0();
public LiveConfiguration(long j, long j2, long j3, float f, float f2) {
this.targetOffsetMs = j;
this.minOffsetMs = j2;
this.maxOffsetMs = j3;
this.minPlaybackSpeed = f;
this.maxPlaybackSpeed = f2;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof LiveConfiguration)) {
return false;
}
LiveConfiguration liveConfiguration = (LiveConfiguration) obj;
return this.targetOffsetMs == liveConfiguration.targetOffsetMs && this.minOffsetMs == liveConfiguration.minOffsetMs && this.maxOffsetMs == liveConfiguration.maxOffsetMs && this.minPlaybackSpeed == liveConfiguration.minPlaybackSpeed && this.maxPlaybackSpeed == liveConfiguration.maxPlaybackSpeed;
}
public int hashCode() {
long j = this.targetOffsetMs;
long j2 = this.minOffsetMs;
int i = ((((int) (j ^ (j >>> 32))) * 31) + ((int) (j2 ^ (j2 >>> 32)))) * 31;
long j3 = this.maxOffsetMs;
int i2 = (i + ((int) ((j3 >>> 32) ^ j3))) * 31;
float f = this.minPlaybackSpeed;
int floatToIntBits = (i2 + (f != 0.0f ? Float.floatToIntBits(f) : 0)) * 31;
float f2 = this.maxPlaybackSpeed;
return floatToIntBits + (f2 != 0.0f ? Float.floatToIntBits(f2) : 0);
}
}
public static final class ClippingProperties {
public static final Bundleable$Creator CREATOR = new MediaItem$$ExternalSyntheticLambda0();
public final long endPositionMs;
public final boolean relativeToDefaultPosition;
public final boolean relativeToLiveWindow;
public final long startPositionMs;
public final boolean startsAtKeyFrame;
public int hashCode() {
long j = this.startPositionMs;
int i = ((int) (j ^ (j >>> 32))) * 31;
long j2 = this.endPositionMs;
return ((((((i + ((int) ((j2 >>> 32) ^ j2))) * 31) + (this.relativeToLiveWindow ? 1 : 0)) * 31) + (this.relativeToDefaultPosition ? 1 : 0)) * 31) + (this.startsAtKeyFrame ? 1 : 0);
}
public ClippingProperties(long j, long j2, boolean z, boolean z2, boolean z3) {
this.startPositionMs = j;
this.endPositionMs = j2;
this.relativeToLiveWindow = z;
this.relativeToDefaultPosition = z2;
this.startsAtKeyFrame = z3;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof ClippingProperties)) {
return false;
}
ClippingProperties clippingProperties = (ClippingProperties) obj;
return this.startPositionMs == clippingProperties.startPositionMs && this.endPositionMs == clippingProperties.endPositionMs && this.relativeToLiveWindow == clippingProperties.relativeToLiveWindow && this.relativeToDefaultPosition == clippingProperties.relativeToDefaultPosition && this.startsAtKeyFrame == clippingProperties.startsAtKeyFrame;
}
}
public MediaItem(String str, ClippingProperties clippingProperties, PlaybackProperties playbackProperties, LiveConfiguration liveConfiguration, MediaMetadata mediaMetadata) {
this.mediaId = str;
this.playbackProperties = playbackProperties;
this.liveConfiguration = liveConfiguration;
this.mediaMetadata = mediaMetadata;
this.clippingProperties = clippingProperties;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof MediaItem)) {
return false;
}
MediaItem mediaItem = (MediaItem) obj;
return Util.areEqual(this.mediaId, mediaItem.mediaId) && this.clippingProperties.equals(mediaItem.clippingProperties) && Util.areEqual(this.playbackProperties, mediaItem.playbackProperties) && Util.areEqual(this.liveConfiguration, mediaItem.liveConfiguration) && Util.areEqual(this.mediaMetadata, mediaItem.mediaMetadata);
}
public int hashCode() {
int hashCode = this.mediaId.hashCode() * 31;
PlaybackProperties playbackProperties = this.playbackProperties;
return ((((((hashCode + (playbackProperties != null ? playbackProperties.hashCode() : 0)) * 31) + this.liveConfiguration.hashCode()) * 31) + this.clippingProperties.hashCode()) * 31) + this.mediaMetadata.hashCode();
}
}