what-the-bank/sources/org/tensorflow/lite/NativeInterpreterWrapper.java

159 lines
5.1 KiB
Java

package org.tensorflow.lite;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.MappedByteBuffer;
import java.util.Map;
import o.C15516gsl;
/* loaded from: classes6.dex */
public final class NativeInterpreterWrapper implements AutoCloseable {
public boolean a;
public long b = -1;
public long c;
public Map<String, Integer> d;
public long e;
private ByteBuffer f;
private final Tensor[] g;
public Map<String, Integer> h;
private long i;
public final Tensor[] j;
public static native long allocateTensors(long j, long j2);
public static native long createErrorReporter(int i);
public static native long createInterpreter(long j, long j2, int i);
public static native long createModel(String str, long j);
public static native long createModelWithBuffer(ByteBuffer byteBuffer, long j);
public static native void delete(long j, long j2, long j3);
public static native int getInputCount(long j);
public static native String[] getInputNames(long j);
public static native int getInputTensorIndex(long j, int i);
public static native int getOutputCount(long j);
public static native String[] getOutputNames(long j);
public static native int getOutputTensorIndex(long j, int i);
public static native boolean resizeInput(long j, long j2, int i, int[] iArr);
public static native boolean run(long j, long j2);
public static native void useNNAPI(long j, boolean z);
public NativeInterpreterWrapper(String str) {
this.a = false;
C15516gsl.HBt hBt = new C15516gsl.HBt();
long createErrorReporter = createErrorReporter(512);
this.e = createErrorReporter;
long createModel = createModel(str, createErrorReporter);
this.i = createModel;
long createInterpreter = createInterpreter(createModel, this.e, hBt.c);
this.c = createInterpreter;
this.a = true;
this.g = new Tensor[getInputCount(createInterpreter)];
this.j = new Tensor[getOutputCount(this.c)];
boolean z = hBt.b;
}
public NativeInterpreterWrapper(ByteBuffer byteBuffer) {
this.a = false;
C15516gsl.HBt hBt = new C15516gsl.HBt();
if (byteBuffer == null || (!(byteBuffer instanceof MappedByteBuffer) && (!byteBuffer.isDirect() || byteBuffer.order() != ByteOrder.nativeOrder()))) {
throw new IllegalArgumentException("Model ByteBuffer should be either a MappedByteBuffer of the model file, or a direct ByteBuffer using ByteOrder.nativeOrder() which contains bytes of model content.");
}
this.f = byteBuffer;
long createErrorReporter = createErrorReporter(512);
this.e = createErrorReporter;
long createModelWithBuffer = createModelWithBuffer(this.f, createErrorReporter);
this.i = createModelWithBuffer;
long createInterpreter = createInterpreter(createModelWithBuffer, this.e, hBt.c);
this.c = createInterpreter;
this.a = true;
this.g = new Tensor[getInputCount(createInterpreter)];
this.j = new Tensor[getOutputCount(this.c)];
boolean z = hBt.d;
boolean z2 = hBt.b;
}
@Override // java.lang.AutoCloseable
public final void close() {
int i = 0;
while (true) {
Tensor[] tensorArr = this.g;
if (i >= tensorArr.length) {
break;
}
Tensor tensor = tensorArr[i];
if (tensor != null) {
Tensor.delete(tensor.d);
tensor.d = 0L;
this.g[i] = null;
}
i++;
}
int i2 = 0;
while (true) {
Tensor[] tensorArr2 = this.j;
if (i2 < tensorArr2.length) {
Tensor tensor2 = tensorArr2[i2];
if (tensor2 != null) {
Tensor.delete(tensor2.d);
tensor2.d = 0L;
this.j[i2] = null;
}
i2++;
} else {
delete(this.e, this.i, this.c);
this.e = 0L;
this.i = 0L;
this.c = 0L;
this.f = null;
this.d = null;
this.h = null;
this.a = false;
return;
}
}
}
public final void b(int i, int[] iArr) {
if (resizeInput(this.c, this.e, i, iArr)) {
this.a = false;
Tensor tensor = this.g[i];
if (tensor != null) {
tensor.b = Tensor.shape(tensor.d);
}
}
}
public final Tensor a(int i) {
if (i >= 0) {
Tensor[] tensorArr = this.g;
if (i < tensorArr.length) {
Tensor tensor = tensorArr[i];
if (tensor != null) {
return tensor;
}
long j = this.c;
Tensor b = Tensor.b(j, getInputTensorIndex(j, i));
tensorArr[i] = b;
return b;
}
}
throw new IllegalArgumentException("Invalid input Tensor index: ".concat(String.valueOf(i)));
}
static {
TensorFlowLite.a();
}
}