Files
rr3-apk/decompiled-community/sources/com/google/android/exoplayer2/video/spherical/FrameRotationQueue.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

52 lines
1.8 KiB
Java

package com.google.android.exoplayer2.video.spherical;
import android.opengl.Matrix;
import com.google.android.exoplayer2.util.TimedValueQueue;
/* loaded from: classes2.dex */
public final class FrameRotationQueue {
public boolean recenterMatrixComputed;
public final float[] recenterMatrix = new float[16];
public final float[] rotationMatrix = new float[16];
public final TimedValueQueue rotations = new TimedValueQueue();
public boolean pollRotationMatrix(float[] fArr, long j) {
float[] fArr2 = (float[]) this.rotations.pollFloor(j);
if (fArr2 == null) {
return false;
}
getRotationMatrixFromAngleAxis(this.rotationMatrix, fArr2);
if (!this.recenterMatrixComputed) {
computeRecenterMatrix(this.recenterMatrix, this.rotationMatrix);
this.recenterMatrixComputed = true;
}
Matrix.multiplyMM(fArr, 0, this.recenterMatrix, 0, this.rotationMatrix, 0);
return true;
}
public static void computeRecenterMatrix(float[] fArr, float[] fArr2) {
Matrix.setIdentityM(fArr, 0);
float f = fArr2[10];
float f2 = fArr2[8];
float sqrt = (float) Math.sqrt((f * f) + (f2 * f2));
float f3 = fArr2[10];
fArr[0] = f3 / sqrt;
float f4 = fArr2[8];
fArr[2] = f4 / sqrt;
fArr[8] = (-f4) / sqrt;
fArr[10] = f3 / sqrt;
}
public static void getRotationMatrixFromAngleAxis(float[] fArr, float[] fArr2) {
float f = fArr2[0];
float f2 = -fArr2[1];
float f3 = -fArr2[2];
float length = Matrix.length(f, f2, f3);
if (length != 0.0f) {
Matrix.setRotateM(fArr, 0, (float) Math.toDegrees(length), f / length, f2 / length, f3 / length);
} else {
Matrix.setIdentityM(fArr, 0);
}
}
}