- 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
174 lines
9.9 KiB
Java
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));
|
|
}
|
|
}
|