discord-jadx/app/src/main/java/c/i/a/c/v1/y.java

532 lines
17 KiB
Java

package c.i.a.c.v1;
import android.content.Context;
import android.media.MediaCrypto;
import android.media.MediaFormat;
import android.os.Handler;
import androidx.annotation.Nullable;
import c.i.a.c.b2.g;
import c.i.a.c.b2.r;
import c.i.a.c.b2.s;
import c.i.a.c.b2.t;
import c.i.a.c.d1;
import c.i.a.c.i2.f0;
import c.i.a.c.i2.r;
import c.i.a.c.k1;
import c.i.a.c.m1;
import c.i.a.c.s0;
import c.i.a.c.v1.q;
import c.i.a.c.x1.d;
import c.i.a.c.x1.e;
import com.airbnb.lottie.parser.AnimatableValueParser;
import com.google.android.exoplayer2.ExoPlaybackException;
import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.audio.AudioSink;
import com.google.android.exoplayer2.decoder.DecoderInputBuffer;
import com.google.android.exoplayer2.drm.DrmSession;
import com.google.android.exoplayer2.mediacodec.MediaCodecRenderer;
import com.google.android.exoplayer2.mediacodec.MediaCodecUtil;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.regex.Pattern;
/* compiled from: MediaCodecAudioRenderer */
public class y extends MediaCodecRenderer implements r {
public final Context P0;
public final q.a Q0;
public final AudioSink R0;
public int S0;
public boolean T0;
@Nullable
public Format U0;
public long V0;
public boolean W0;
public boolean X0;
public boolean Y0;
@Nullable
public k1.a Z0;
/* compiled from: MediaCodecAudioRenderer */
public final class b implements AudioSink.a {
public b(a aVar) {
}
}
public y(Context context, t tVar, boolean z2, @Nullable Handler handler, @Nullable q qVar, AudioSink audioSink) {
super(1, r.a.a, tVar, z2, 44100.0f);
this.P0 = context.getApplicationContext();
this.R0 = audioSink;
this.Q0 = new q.a(handler, qVar);
audioSink.r(new b(null));
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer, c.i.a.c.g0
public void B() {
this.Y0 = true;
try {
this.R0.flush();
try {
super.B();
} finally {
this.Q0.a(this.L0);
}
} catch (Throwable th) {
super.B();
throw th;
} finally {
this.Q0.a(this.L0);
}
}
@Override // c.i.a.c.g0
public void C(boolean z2, boolean z3) throws ExoPlaybackException {
d dVar = new d();
this.L0 = dVar;
q.a aVar = this.Q0;
Handler handler = aVar.a;
if (handler != null) {
handler.post(new i(aVar, dVar));
}
m1 m1Var = this.k;
Objects.requireNonNull(m1Var);
if (m1Var.b) {
this.R0.o();
} else {
this.R0.k();
}
}
public final int C0(s sVar, Format format) {
int i;
if (!"OMX.google.raw.decoder".equals(sVar.a) || (i = f0.a) >= 24 || (i == 23 && f0.A(this.P0))) {
return format.u;
}
return -1;
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer, c.i.a.c.g0
public void D(long j, boolean z2) throws ExoPlaybackException {
super.D(j, z2);
this.R0.flush();
this.V0 = j;
this.W0 = true;
this.X0 = true;
}
public final void D0() {
long j = this.R0.j(b());
if (j != Long.MIN_VALUE) {
if (!this.X0) {
j = Math.max(this.V0, j);
}
this.V0 = j;
this.X0 = false;
}
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer, c.i.a.c.g0
public void E() {
DrmSession drmSession = null;
boolean z2 = false;
try {
N();
n0();
try {
} finally {
if (this.Y0) {
this.Y0 = z2;
this.R0.reset();
}
}
} finally {
t0(drmSession);
}
}
@Override // c.i.a.c.g0
public void F() {
this.R0.p();
}
@Override // c.i.a.c.g0
public void G() {
D0();
this.R0.i();
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public e K(s sVar, Format format, Format format2) {
e c2 = sVar.c(format, format2);
int i = c2.e;
if (C0(sVar, format2) > this.S0) {
i |= 64;
}
return new e(sVar.a, format, format2, i != 0 ? 0 : c2.d, i);
}
/* JADX WARNING: Removed duplicated region for block: B:24:0x008d */
/* JADX WARNING: Removed duplicated region for block: B:34:0x00b1 */
/* JADX WARNING: Removed duplicated region for block: B:42:0x00cd */
/* JADX WARNING: Removed duplicated region for block: B:51:0x0109 */
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public void L(s sVar, c.i.a.c.b2.r rVar, Format format, @Nullable MediaCrypto mediaCrypto, float f) {
boolean z2;
MediaFormat mediaFormat;
boolean z3;
Format[] formatArr = this.o;
Objects.requireNonNull(formatArr);
int C0 = C0(sVar, format);
boolean z4 = false;
if (formatArr.length != 1) {
for (Format format2 : formatArr) {
if (sVar.c(format, format2).d != 0) {
C0 = Math.max(C0, C0(sVar, format2));
}
}
}
this.S0 = C0;
String str = sVar.a;
int i = f0.a;
if (i < 24 && "OMX.SEC.aac.dec".equals(str) && "samsung".equals(f0.f899c)) {
String str2 = f0.b;
if (str2.startsWith("zeroflte") || str2.startsWith("herolte") || str2.startsWith("heroqlte")) {
z2 = true;
this.T0 = z2;
String str3 = sVar.f765c;
int i2 = this.S0;
mediaFormat = new MediaFormat();
mediaFormat.setString("mime", str3);
mediaFormat.setInteger("channel-count", format.G);
mediaFormat.setInteger("sample-rate", format.H);
AnimatableValueParser.w2(mediaFormat, format.v);
AnimatableValueParser.J1(mediaFormat, "max-input-size", i2);
if (i >= 23) {
mediaFormat.setInteger("priority", 0);
if (f != -1.0f) {
if (i == 23) {
String str4 = f0.d;
if ("ZTE B2017G".equals(str4) || "AXON 7 mini".equals(str4)) {
z3 = true;
if (!z3) {
mediaFormat.setFloat("operating-rate", f);
}
}
}
z3 = false;
if (!z3) {
}
}
}
if (i <= 28 && "audio/ac4".equals(format.t)) {
mediaFormat.setInteger("ac4-is-sync", 1);
}
if (i >= 24) {
AudioSink audioSink = this.R0;
int i3 = format.G;
int i4 = format.H;
Format.b bVar = new Format.b();
bVar.k = "audio/raw";
bVar.f2199x = i3;
bVar.f2200y = i4;
bVar.f2201z = 4;
if (audioSink.s(bVar.a()) == 2) {
mediaFormat.setInteger("pcm-encoding", 4);
}
}
rVar.configure(mediaFormat, null, mediaCrypto, 0);
if ("audio/raw".equals(sVar.b) && !"audio/raw".equals(format.t)) {
z4 = true;
}
if (!z4) {
format = null;
}
this.U0 = format;
}
}
z2 = false;
this.T0 = z2;
String str3 = sVar.f765c;
int i2 = this.S0;
mediaFormat = new MediaFormat();
mediaFormat.setString("mime", str3);
mediaFormat.setInteger("channel-count", format.G);
mediaFormat.setInteger("sample-rate", format.H);
AnimatableValueParser.w2(mediaFormat, format.v);
AnimatableValueParser.J1(mediaFormat, "max-input-size", i2);
if (i >= 23) {
}
mediaFormat.setInteger("ac4-is-sync", 1);
if (i >= 24) {
}
rVar.configure(mediaFormat, null, mediaCrypto, 0);
z4 = true;
if (!z4) {
}
this.U0 = format;
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public float W(float f, Format format, Format[] formatArr) {
int i = -1;
for (Format format2 : formatArr) {
int i2 = format2.H;
if (i2 != -1) {
i = Math.max(i, i2);
}
}
if (i == -1) {
return -1.0f;
}
return f * ((float) i);
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public List<s> X(t tVar, Format format, boolean z2) throws MediaCodecUtil.DecoderQueryException {
s d;
String str = format.t;
if (str == null) {
return Collections.emptyList();
}
if (this.R0.a(format) && (d = MediaCodecUtil.d("audio/raw", false, false)) != null) {
return Collections.singletonList(d);
}
List<s> a2 = tVar.a(str, z2, false);
Pattern pattern = MediaCodecUtil.a;
ArrayList arrayList = new ArrayList(a2);
MediaCodecUtil.j(arrayList, new g(format));
if ("audio/eac3-joc".equals(str)) {
ArrayList arrayList2 = new ArrayList(arrayList);
arrayList2.addAll(tVar.a("audio/eac3", z2, false));
arrayList = arrayList2;
}
return Collections.unmodifiableList(arrayList);
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer, c.i.a.c.k1
public boolean b() {
return this.E0 && this.R0.b();
}
@Override // c.i.a.c.i2.r
public d1 c() {
return this.R0.c();
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer, c.i.a.c.k1
public boolean d() {
return this.R0.g() || super.d();
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public void d0(String str, long j, long j2) {
q.a aVar = this.Q0;
Handler handler = aVar.a;
if (handler != null) {
handler.post(new e(aVar, str, j, j2));
}
}
@Override // c.i.a.c.i2.r
public void e(d1 d1Var) {
this.R0.e(d1Var);
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public void e0(String str) {
q.a aVar = this.Q0;
Handler handler = aVar.a;
if (handler != null) {
handler.post(new f(aVar, str));
}
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
@Nullable
public e f0(s0 s0Var) throws ExoPlaybackException {
e f02 = super.f0(s0Var);
q.a aVar = this.Q0;
Format format = s0Var.b;
Handler handler = aVar.a;
if (handler != null) {
handler.post(new d(aVar, format, f02));
}
return f02;
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public void g0(Format format, @Nullable MediaFormat mediaFormat) throws ExoPlaybackException {
int i;
Format format2 = this.U0;
int[] iArr = null;
if (format2 != null) {
format = format2;
} else if (this.R != null) {
int r = "audio/raw".equals(format.t) ? format.I : (f0.a < 24 || !mediaFormat.containsKey("pcm-encoding")) ? mediaFormat.containsKey("v-bits-per-sample") ? f0.r(mediaFormat.getInteger("v-bits-per-sample")) : "audio/raw".equals(format.t) ? format.I : 2 : mediaFormat.getInteger("pcm-encoding");
Format.b bVar = new Format.b();
bVar.k = "audio/raw";
bVar.f2201z = r;
bVar.A = format.J;
bVar.B = format.K;
bVar.f2199x = mediaFormat.getInteger("channel-count");
bVar.f2200y = mediaFormat.getInteger("sample-rate");
Format a2 = bVar.a();
if (this.T0 && a2.G == 6 && (i = format.G) < 6) {
iArr = new int[i];
for (int i2 = 0; i2 < format.G; i2++) {
iArr[i2] = i2;
}
}
format = a2;
}
try {
this.R0.t(format, 0, iArr);
} catch (AudioSink.ConfigurationException e) {
throw z(e, e.format, false);
}
}
@Override // c.i.a.c.k1, c.i.a.c.l1
public String getName() {
return "MediaCodecAudioRenderer";
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public void i0() {
this.R0.m();
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public void j0(DecoderInputBuffer decoderInputBuffer) {
if (this.W0 && !decoderInputBuffer.m()) {
if (Math.abs(decoderInputBuffer.m - this.V0) > 500000) {
this.V0 = decoderInputBuffer.m;
}
this.W0 = false;
}
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public boolean l0(long j, long j2, @Nullable c.i.a.c.b2.r rVar, @Nullable ByteBuffer byteBuffer, int i, int i2, int i3, long j3, boolean z2, boolean z3, Format format) throws ExoPlaybackException {
Objects.requireNonNull(byteBuffer);
if (this.U0 != null && (i2 & 2) != 0) {
Objects.requireNonNull(rVar);
rVar.releaseOutputBuffer(i, false);
return true;
} else if (z2) {
if (rVar != null) {
rVar.releaseOutputBuffer(i, false);
}
this.L0.f += i3;
this.R0.m();
return true;
} else {
try {
if (!this.R0.q(byteBuffer, j3, i3)) {
return false;
}
if (rVar != null) {
rVar.releaseOutputBuffer(i, false);
}
this.L0.e += i3;
return true;
} catch (AudioSink.InitializationException e) {
throw z(e, e.format, e.isRecoverable);
} catch (AudioSink.WriteException e2) {
throw z(e2, format, e2.isRecoverable);
}
}
}
@Override // c.i.a.c.i2.r
public long m() {
if (this.m == 2) {
D0();
}
return this.V0;
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public void o0() throws ExoPlaybackException {
try {
this.R0.f();
} catch (AudioSink.WriteException e) {
throw z(e, e.format, e.isRecoverable);
}
}
@Override // c.i.a.c.g0, c.i.a.c.h1.b
public void r(int i, @Nullable Object obj) throws ExoPlaybackException {
if (i == 2) {
this.R0.n(((Float) obj).floatValue());
} else if (i == 3) {
this.R0.l((n) obj);
} else if (i != 5) {
switch (i) {
case 101:
this.R0.u(((Boolean) obj).booleanValue());
return;
case 102:
this.R0.h(((Integer) obj).intValue());
return;
case 103:
this.Z0 = (k1.a) obj;
return;
default:
return;
}
} else {
this.R0.v((t) obj);
}
}
@Override // c.i.a.c.g0, c.i.a.c.k1
@Nullable
public c.i.a.c.i2.r w() {
return this;
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public boolean w0(Format format) {
return this.R0.a(format);
}
@Override // com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
public int x0(t tVar, Format format) throws MediaCodecUtil.DecoderQueryException {
if (!c.i.a.c.i2.s.h(format.t)) {
return 0;
}
int i = f0.a >= 21 ? 32 : 0;
boolean z2 = format.M != null;
boolean y0 = MediaCodecRenderer.y0(format);
if (y0 && this.R0.a(format) && (!z2 || MediaCodecUtil.d("audio/raw", false, false) != null)) {
return i | 12;
}
if ("audio/raw".equals(format.t) && !this.R0.a(format)) {
return 1;
}
AudioSink audioSink = this.R0;
int i2 = format.G;
int i3 = format.H;
Format.b bVar = new Format.b();
bVar.k = "audio/raw";
bVar.f2199x = i2;
bVar.f2200y = i3;
bVar.f2201z = 2;
if (!audioSink.a(bVar.a())) {
return 1;
}
List<s> X = X(tVar, format, false);
if (X.isEmpty()) {
return 1;
}
if (!y0) {
return 2;
}
s sVar = X.get(0);
boolean e = sVar.e(format);
return ((!e || !sVar.f(format)) ? 8 : 16) | (e ? 4 : 3) | i;
}
}