120 lines
3.3 KiB
Java
120 lines
3.3 KiB
Java
package c.i.a.c.b2;
|
|
|
|
import android.media.MediaCodec;
|
|
import android.media.MediaFormat;
|
|
import android.os.Handler;
|
|
import android.os.HandlerThread;
|
|
import androidx.annotation.GuardedBy;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.annotation.RequiresApi;
|
|
import c.i.a.c.i2.n;
|
|
import java.util.ArrayDeque;
|
|
/* compiled from: AsynchronousMediaCodecCallback */
|
|
@RequiresApi(23)
|
|
public final class o extends MediaCodec.Callback {
|
|
public final Object a = new Object();
|
|
public final HandlerThread b;
|
|
|
|
/* renamed from: c reason: collision with root package name */
|
|
public Handler f767c;
|
|
@GuardedBy("lock")
|
|
public final n d;
|
|
@GuardedBy("lock")
|
|
public final n e;
|
|
@GuardedBy("lock")
|
|
public final ArrayDeque<MediaCodec.BufferInfo> f;
|
|
@GuardedBy("lock")
|
|
public final ArrayDeque<MediaFormat> g;
|
|
@Nullable
|
|
@GuardedBy("lock")
|
|
public MediaFormat h;
|
|
@Nullable
|
|
@GuardedBy("lock")
|
|
public MediaFormat i;
|
|
@Nullable
|
|
@GuardedBy("lock")
|
|
public MediaCodec.CodecException j;
|
|
@GuardedBy("lock")
|
|
public long k;
|
|
@GuardedBy("lock")
|
|
public boolean l;
|
|
@Nullable
|
|
@GuardedBy("lock")
|
|
public IllegalStateException m;
|
|
|
|
public o(HandlerThread handlerThread) {
|
|
this.b = handlerThread;
|
|
this.d = new n();
|
|
this.e = new n();
|
|
this.f = new ArrayDeque<>();
|
|
this.g = new ArrayDeque<>();
|
|
}
|
|
|
|
@GuardedBy("lock")
|
|
public final void a() {
|
|
if (!this.g.isEmpty()) {
|
|
this.i = this.g.getLast();
|
|
}
|
|
n nVar = this.d;
|
|
nVar.a = 0;
|
|
nVar.b = -1;
|
|
nVar.f906c = 0;
|
|
n nVar2 = this.e;
|
|
nVar2.a = 0;
|
|
nVar2.b = -1;
|
|
nVar2.f906c = 0;
|
|
this.f.clear();
|
|
this.g.clear();
|
|
this.j = null;
|
|
}
|
|
|
|
@GuardedBy("lock")
|
|
public final boolean b() {
|
|
return this.k > 0 || this.l;
|
|
}
|
|
|
|
public final void c(IllegalStateException illegalStateException) {
|
|
synchronized (this.a) {
|
|
this.m = illegalStateException;
|
|
}
|
|
}
|
|
|
|
@Override // android.media.MediaCodec.Callback
|
|
public void onError(@NonNull MediaCodec mediaCodec, @NonNull MediaCodec.CodecException codecException) {
|
|
synchronized (this.a) {
|
|
this.j = codecException;
|
|
}
|
|
}
|
|
|
|
@Override // android.media.MediaCodec.Callback
|
|
public void onInputBufferAvailable(@NonNull MediaCodec mediaCodec, int i) {
|
|
synchronized (this.a) {
|
|
this.d.a(i);
|
|
}
|
|
}
|
|
|
|
@Override // android.media.MediaCodec.Callback
|
|
public void onOutputBufferAvailable(@NonNull MediaCodec mediaCodec, int i, @NonNull MediaCodec.BufferInfo bufferInfo) {
|
|
synchronized (this.a) {
|
|
MediaFormat mediaFormat = this.i;
|
|
if (mediaFormat != null) {
|
|
this.e.a(-2);
|
|
this.g.add(mediaFormat);
|
|
this.i = null;
|
|
}
|
|
this.e.a(i);
|
|
this.f.add(bufferInfo);
|
|
}
|
|
}
|
|
|
|
@Override // android.media.MediaCodec.Callback
|
|
public void onOutputFormatChanged(@NonNull MediaCodec mediaCodec, @NonNull MediaFormat mediaFormat) {
|
|
synchronized (this.a) {
|
|
this.e.a(-2);
|
|
this.g.add(mediaFormat);
|
|
this.i = null;
|
|
}
|
|
}
|
|
}
|