Files
rr3-apk/decompiled-community/sources/com/mbridge/msdk/playercommon/exoplayer2/DefaultRenderersFactory.java
Daniel Elliott c080f0d97f 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
2026-02-18 15:48:36 -08:00

174 lines
9.9 KiB
Java

package com.mbridge.msdk.playercommon.exoplayer2;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import androidx.annotation.Nullable;
import com.mbridge.msdk.playercommon.exoplayer2.audio.AudioCapabilities;
import com.mbridge.msdk.playercommon.exoplayer2.audio.AudioProcessor;
import com.mbridge.msdk.playercommon.exoplayer2.audio.AudioRendererEventListener;
import com.mbridge.msdk.playercommon.exoplayer2.audio.MediaCodecAudioRenderer;
import com.mbridge.msdk.playercommon.exoplayer2.drm.DrmSessionManager;
import com.mbridge.msdk.playercommon.exoplayer2.drm.FrameworkMediaCrypto;
import com.mbridge.msdk.playercommon.exoplayer2.mediacodec.MediaCodecSelector;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataOutput;
import com.mbridge.msdk.playercommon.exoplayer2.metadata.MetadataRenderer;
import com.mbridge.msdk.playercommon.exoplayer2.text.TextOutput;
import com.mbridge.msdk.playercommon.exoplayer2.text.TextRenderer;
import com.mbridge.msdk.playercommon.exoplayer2.video.MediaCodecVideoRenderer;
import com.mbridge.msdk.playercommon.exoplayer2.video.VideoRendererEventListener;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
/* loaded from: classes4.dex */
public class DefaultRenderersFactory implements RenderersFactory {
public static final long DEFAULT_ALLOWED_VIDEO_JOINING_TIME_MS = 5000;
public static final int EXTENSION_RENDERER_MODE_OFF = 0;
public static final int EXTENSION_RENDERER_MODE_ON = 1;
public static final int EXTENSION_RENDERER_MODE_PREFER = 2;
protected static final int MAX_DROPPED_VIDEO_FRAME_COUNT_TO_NOTIFY = 50;
private static final String TAG = "DefaultRenderersFactory";
private final long allowedVideoJoiningTimeMs;
private final Context context;
@Nullable
private final DrmSessionManager<FrameworkMediaCrypto> drmSessionManager;
private final int extensionRendererMode;
@Retention(RetentionPolicy.SOURCE)
public @interface ExtensionRendererMode {
}
public AudioProcessor[] buildAudioProcessors() {
return new AudioProcessor[0];
}
public void buildMiscellaneousRenderers(Context context, Handler handler, int i, ArrayList<Renderer> arrayList) {
}
public DefaultRenderersFactory(Context context) {
this(context, 0);
}
@Deprecated
public DefaultRenderersFactory(Context context, @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) {
this(context, drmSessionManager, 0);
}
public DefaultRenderersFactory(Context context, int i) {
this(context, null, i, 5000L);
}
@Deprecated
public DefaultRenderersFactory(Context context, @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager, int i) {
this(context, drmSessionManager, i, 5000L);
}
public DefaultRenderersFactory(Context context, int i, long j) {
this(context, null, i, j);
}
@Deprecated
public DefaultRenderersFactory(Context context, @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager, int i, long j) {
this.context = context;
this.extensionRendererMode = i;
this.allowedVideoJoiningTimeMs = j;
this.drmSessionManager = drmSessionManager;
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.RenderersFactory
public Renderer[] createRenderers(Handler handler, VideoRendererEventListener videoRendererEventListener, AudioRendererEventListener audioRendererEventListener, TextOutput textOutput, MetadataOutput metadataOutput, @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) {
DrmSessionManager<FrameworkMediaCrypto> drmSessionManager2 = drmSessionManager == null ? this.drmSessionManager : drmSessionManager;
ArrayList<Renderer> arrayList = new ArrayList<>();
DrmSessionManager<FrameworkMediaCrypto> drmSessionManager3 = drmSessionManager2;
buildVideoRenderers(this.context, drmSessionManager3, this.allowedVideoJoiningTimeMs, handler, videoRendererEventListener, this.extensionRendererMode, arrayList);
buildAudioRenderers(this.context, drmSessionManager3, buildAudioProcessors(), handler, audioRendererEventListener, this.extensionRendererMode, arrayList);
buildTextRenderers(this.context, textOutput, handler.getLooper(), this.extensionRendererMode, arrayList);
buildMetadataRenderers(this.context, metadataOutput, handler.getLooper(), this.extensionRendererMode, arrayList);
buildMiscellaneousRenderers(this.context, handler, this.extensionRendererMode, arrayList);
return (Renderer[]) arrayList.toArray(new Renderer[arrayList.size()]);
}
public void buildVideoRenderers(Context context, @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager, long j, Handler handler, VideoRendererEventListener videoRendererEventListener, int i, ArrayList<Renderer> arrayList) {
arrayList.add(new MediaCodecVideoRenderer(context, MediaCodecSelector.DEFAULT, j, drmSessionManager, false, handler, videoRendererEventListener, 50));
if (i == 0) {
return;
}
int size = arrayList.size();
if (i == 2) {
size--;
}
try {
arrayList.add(size, (Renderer) Class.forName("com.mbridge.msdk.playercommon.exoplayer2.ext.vp9.LibvpxVideoRenderer").getConstructor(Boolean.TYPE, Long.TYPE, Handler.class, VideoRendererEventListener.class, Integer.TYPE).newInstance(Boolean.TRUE, Long.valueOf(j), handler, videoRendererEventListener, 50));
} catch (ClassNotFoundException unused) {
} catch (Exception e) {
throw new RuntimeException("Error instantiating VP9 extension", e);
}
}
public void buildAudioRenderers(Context context, @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager, AudioProcessor[] audioProcessorArr, Handler handler, AudioRendererEventListener audioRendererEventListener, int i, ArrayList<Renderer> arrayList) {
AudioProcessor[] audioProcessorArr2;
int i2;
arrayList.add(new MediaCodecAudioRenderer(context, MediaCodecSelector.DEFAULT, drmSessionManager, false, handler, audioRendererEventListener, AudioCapabilities.getCapabilities(context), audioProcessorArr));
if (i == 0) {
return;
}
int size = arrayList.size();
if (i == 2) {
size--;
}
try {
try {
audioProcessorArr2 = audioProcessorArr;
try {
i2 = size + 1;
try {
arrayList.add(size, (Renderer) Class.forName("com.mbridge.msdk.playercommon.exoplayer2.ext.opus.LibopusAudioRenderer").getConstructor(Handler.class, AudioRendererEventListener.class, AudioProcessor[].class).newInstance(handler, audioRendererEventListener, audioProcessorArr2));
} catch (ClassNotFoundException unused) {
size = i2;
i2 = size;
try {
int i3 = i2 + 1;
try {
arrayList.add(i2, (Renderer) Class.forName("com.mbridge.msdk.playercommon.exoplayer2.ext.flac.LibflacAudioRenderer").getConstructor(Handler.class, AudioRendererEventListener.class, AudioProcessor[].class).newInstance(handler, audioRendererEventListener, audioProcessorArr2));
} catch (ClassNotFoundException unused2) {
i2 = i3;
i3 = i2;
arrayList.add(i3, (Renderer) Class.forName("com.mbridge.msdk.playercommon.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer").getConstructor(Handler.class, AudioRendererEventListener.class, AudioProcessor[].class).newInstance(handler, audioRendererEventListener, audioProcessorArr2));
}
arrayList.add(i3, (Renderer) Class.forName("com.mbridge.msdk.playercommon.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer").getConstructor(Handler.class, AudioRendererEventListener.class, AudioProcessor[].class).newInstance(handler, audioRendererEventListener, audioProcessorArr2));
} catch (Exception e) {
throw new RuntimeException("Error instantiating FLAC extension", e);
}
}
} catch (ClassNotFoundException unused3) {
}
} catch (Exception e2) {
throw new RuntimeException("Error instantiating Opus extension", e2);
}
} catch (ClassNotFoundException unused4) {
audioProcessorArr2 = audioProcessorArr;
}
try {
int i32 = i2 + 1;
arrayList.add(i2, (Renderer) Class.forName("com.mbridge.msdk.playercommon.exoplayer2.ext.flac.LibflacAudioRenderer").getConstructor(Handler.class, AudioRendererEventListener.class, AudioProcessor[].class).newInstance(handler, audioRendererEventListener, audioProcessorArr2));
} catch (ClassNotFoundException unused5) {
}
try {
arrayList.add(i32, (Renderer) Class.forName("com.mbridge.msdk.playercommon.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer").getConstructor(Handler.class, AudioRendererEventListener.class, AudioProcessor[].class).newInstance(handler, audioRendererEventListener, audioProcessorArr2));
} catch (ClassNotFoundException unused6) {
} catch (Exception e3) {
throw new RuntimeException("Error instantiating FFmpeg extension", e3);
}
}
public void buildTextRenderers(Context context, TextOutput textOutput, Looper looper, int i, ArrayList<Renderer> arrayList) {
arrayList.add(new TextRenderer(textOutput, looper));
}
public void buildMetadataRenderers(Context context, MetadataOutput metadataOutput, Looper looper, int i, ArrayList<Renderer> arrayList) {
arrayList.add(new MetadataRenderer(metadataOutput, looper));
}
}