Add Discord APKTool decompilation (Smali source for modding)

- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide

This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)

Total: 44,417 files, 538.51 MB Smali source code
This commit is contained in:
2026-02-18 16:13:44 -08:00
parent c080f0d97f
commit f3960ee359
44288 changed files with 10998761 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
.class public Lcom/google/android/exoplayer2/video/ColorInfo$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/os/Parcelable$Creator;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/ColorInfo;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 187
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public createFromParcel(Landroid/os/Parcel;)Lcom/google/android/exoplayer2/video/ColorInfo;
.locals 1
.line 190
new-instance v0, Lcom/google/android/exoplayer2/video/ColorInfo;
invoke-direct {v0, p1}, Lcom/google/android/exoplayer2/video/ColorInfo;-><init>(Landroid/os/Parcel;)V
return-object v0
.end method
.method public bridge synthetic createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
.locals 0
.line 187
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/video/ColorInfo$1;->createFromParcel(Landroid/os/Parcel;)Lcom/google/android/exoplayer2/video/ColorInfo;
move-result-object p1
return-object p1
.end method
.method public newArray(I)[Lcom/google/android/exoplayer2/video/ColorInfo;
.locals 0
.line 195
new-array p1, p1, [Lcom/google/android/exoplayer2/video/ColorInfo;
return-object p1
.end method
.method public bridge synthetic newArray(I)[Ljava/lang/Object;
.locals 0
.line 187
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/video/ColorInfo$1;->newArray(I)[Lcom/google/android/exoplayer2/video/ColorInfo;
move-result-object p1
return-object p1
.end method

View File

@@ -0,0 +1,324 @@
.class public final Lcom/google/android/exoplayer2/video/ColorInfo;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/os/Parcelable;
# static fields
.field public static final CREATOR:Landroid/os/Parcelable$Creator;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/os/Parcelable$Creator<",
"Lcom/google/android/exoplayer2/video/ColorInfo;",
">;"
}
.end annotation
.end field
# instance fields
.field public final colorRange:I
.field public final colorSpace:I
.field public final colorTransfer:I
.field public hashCode:I
.field public final hdrStaticInfo:[B
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 186
new-instance v0, Lcom/google/android/exoplayer2/video/ColorInfo$1;
invoke-direct {v0}, Lcom/google/android/exoplayer2/video/ColorInfo$1;-><init>()V
sput-object v0, Lcom/google/android/exoplayer2/video/ColorInfo;->CREATOR:Landroid/os/Parcelable$Creator;
return-void
.end method
.method public constructor <init>(Landroid/os/Parcel;)V
.locals 1
.line 120
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 121
invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
.line 122
invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
.line 123
invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
.line 124
invoke-static {p1}, Lcom/google/android/exoplayer2/util/Util;->readBoolean(Landroid/os/Parcel;)Z
move-result v0
if-eqz v0, :cond_0
.line 125
invoke-virtual {p1}, Landroid/os/Parcel;->createByteArray()[B
move-result-object p1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
iput-object p1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
return-void
.end method
# virtual methods
.method public describeContents()I
.locals 1
const/4 v0, 0x0
return v0
.end method
.method public equals(Ljava/lang/Object;)Z
.locals 4
const/4 v0, 0x1
if-ne p0, p1, :cond_0
return v0
:cond_0
const/4 v1, 0x0
if-eqz p1, :cond_3
.line 134
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
const-class v3, Lcom/google/android/exoplayer2/video/ColorInfo;
if-eq v3, v2, :cond_1
goto :goto_1
.line 137
:cond_1
check-cast p1, Lcom/google/android/exoplayer2/video/ColorInfo;
iget v2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
.line 138
iget v3, p1, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
if-ne v2, v3, :cond_2
iget v2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
iget v3, p1, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
if-ne v2, v3, :cond_2
iget v2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
iget v3, p1, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
if-ne v2, v3, :cond_2
iget-object v2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
iget-object p1, p1, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
.line 141
invoke-static {v2, p1}, Ljava/util/Arrays;->equals([B[B)Z
move-result p1
if-eqz p1, :cond_2
goto :goto_0
:cond_2
move v0, v1
:goto_0
return v0
:cond_3
:goto_1
return v1
.end method
.method public hashCode()I
.locals 2
iget v0, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hashCode:I
if-nez v0, :cond_0
const/16 v0, 0x20f
iget v1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
add-int/2addr v0, v1
mul-int/lit8 v0, v0, 0x1f
iget v1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
add-int/2addr v0, v1
mul-int/lit8 v0, v0, 0x1f
iget v1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
add-int/2addr v0, v1
mul-int/lit8 v0, v0, 0x1f
iget-object v1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
.line 164
invoke-static {v1}, Ljava/util/Arrays;->hashCode([B)I
move-result v1
add-int/2addr v0, v1
iput v0, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hashCode:I
:cond_0
iget v0, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hashCode:I
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 6
iget v0, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
iget v1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
iget v2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
iget-object v3, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
if-eqz v3, :cond_0
const/4 v3, 0x1
goto :goto_0
:cond_0
const/4 v3, 0x0
.line 146
:goto_0
new-instance v4, Ljava/lang/StringBuilder;
const/16 v5, 0x37
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v5, "ColorInfo("
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v0, ", "
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v0, ")"
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public writeToParcel(Landroid/os/Parcel;I)V
.locals 0
iget p2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
.line 177
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeInt(I)V
iget p2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
.line 178
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeInt(I)V
iget p2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
.line 179
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeInt(I)V
iget-object p2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
if-eqz p2, :cond_0
const/4 p2, 0x1
goto :goto_0
:cond_0
const/4 p2, 0x0
.line 180
:goto_0
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/util/Util;->writeBoolean(Landroid/os/Parcel;Z)V
iget-object p2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
if-eqz p2, :cond_1
.line 182
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeByteArray([B)V
:cond_1
return-void
.end method

View File

@@ -0,0 +1,23 @@
.class public final Lcom/google/android/exoplayer2/video/DummySurface;
.super Landroid/view/Surface;
.source "SourceFile"
# annotations
.annotation build Landroidx/annotation/RequiresApi;
value = 0x11
.end annotation
# virtual methods
.method public release()V
.locals 1
.line 93
invoke-super {p0}, Landroid/view/Surface;->release()V
const/4 v0, 0x0
.line 98
throw v0
.end method

View File

@@ -0,0 +1,479 @@
.class public final Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/opengl/GLSurfaceView$Renderer;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Renderer"
.end annotation
# static fields
.field public static final TEXTURE_UNIFORMS:[Ljava/lang/String;
.field public static final TEXTURE_VERTICES:Ljava/nio/FloatBuffer;
.field public static final kColorConversion2020:[F
.field public static final kColorConversion601:[F
.field public static final kColorConversion709:[F
# instance fields
.field public colorMatrixLocation:I
.field public final pendingOutputBufferReference:Ljava/util/concurrent/atomic/AtomicReference;
.field public final previousStrides:[I
.field public final previousWidths:[I
.field public program:I
.field public final surfaceView:Landroid/opengl/GLSurfaceView;
.field public final texLocations:[I
.field public final textureCoords:[Ljava/nio/FloatBuffer;
.field public final yuvTextures:[I
# direct methods
.method static constructor <clinit>()V
.locals 3
const/16 v0, 0x9
new-array v1, v0, [F
fill-array-data v1, :array_0
sput-object v1, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->kColorConversion601:[F
new-array v1, v0, [F
fill-array-data v1, :array_1
sput-object v1, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->kColorConversion709:[F
new-array v0, v0, [F
fill-array-data v0, :array_2
sput-object v0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->kColorConversion2020:[F
const-string v0, "u_tex"
const-string v1, "v_tex"
const-string v2, "y_tex"
filled-new-array {v2, v0, v1}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->TEXTURE_UNIFORMS:[Ljava/lang/String;
const/16 v0, 0x8
new-array v0, v0, [F
fill-array-data v0, :array_3
.line 129
invoke-static {v0}, Lcom/google/android/exoplayer2/util/GlUtil;->createBuffer([F)Ljava/nio/FloatBuffer;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->TEXTURE_VERTICES:Ljava/nio/FloatBuffer;
return-void
nop
:array_0
.array-data 4
0x3f94fdf4 # 1.164f
0x3f94fdf4 # 1.164f
0x3f94fdf4 # 1.164f
0x0
-0x41374bc7 # -0.392f
0x40011687 # 2.017f
0x3fcc49ba # 1.596f
-0x40afdf3b # -0.813f
0x0
.end array-data
:array_1
.array-data 4
0x3f94fdf4 # 1.164f
0x3f94fdf4 # 1.164f
0x3f94fdf4 # 1.164f
0x0
-0x41a5e354 # -0.213f
0x40072b02 # 2.112f
0x3fe58106 # 1.793f
-0x40f78d50 # -0.533f
0x0
.end array-data
:array_2
.array-data 4
0x3f958106 # 1.168f
0x3f958106 # 1.168f
0x3f958106 # 1.168f
0x0
-0x41bf7cee # -0.188f
0x400978d5 # 2.148f
0x3fd76c8b # 1.683f
-0x40d91687 # -0.652f
0x0
.end array-data
:array_3
.array-data 4
-0x40800000 # -1.0f
0x3f800000 # 1.0f
-0x40800000 # -1.0f
-0x40800000 # -1.0f
0x3f800000 # 1.0f
0x3f800000 # 1.0f
0x3f800000 # 1.0f
-0x40800000 # -1.0f
.end array-data
.end method
.method public constructor <init>(Landroid/opengl/GLSurfaceView;)V
.locals 4
.line 149
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->surfaceView:Landroid/opengl/GLSurfaceView;
const/4 p1, 0x3
new-array v0, p1, [I
iput-object v0, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->yuvTextures:[I
new-array v0, p1, [I
iput-object v0, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->texLocations:[I
new-array v0, p1, [I
iput-object v0, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->previousWidths:[I
new-array v0, p1, [I
iput-object v0, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->previousStrides:[I
.line 155
new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->pendingOutputBufferReference:Ljava/util/concurrent/atomic/AtomicReference;
new-array v0, p1, [Ljava/nio/FloatBuffer;
iput-object v0, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->textureCoords:[Ljava/nio/FloatBuffer;
const/4 v0, 0x0
:goto_0
if-ge v0, p1, :cond_0
iget-object v1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->previousWidths:[I
iget-object v2, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->previousStrides:[I
const/4 v3, -0x1
.line 158
aput v3, v2, v0
aput v3, v1, v0
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
return-void
.end method
# virtual methods
.method public onDrawFrame(Ljavax/microedition/khronos/opengles/GL10;)V
.locals 1
iget-object p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->pendingOutputBufferReference:Ljava/util/concurrent/atomic/AtomicReference;
const/4 v0, 0x0
.line 197
invoke-virtual {p1, v0}, Ljava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
invoke-static {p1}, Lcom/amazonaws/handlers/HandlerChainFactory$$ExternalSyntheticThrowCCEIfNotNull0;->m(Ljava/lang/Object;)V
return-void
.end method
.method public onSurfaceChanged(Ljavax/microedition/khronos/opengles/GL10;II)V
.locals 0
const/4 p1, 0x0
.line 190
invoke-static {p1, p1, p2, p3}, Landroid/opengl/GLES20;->glViewport(IIII)V
return-void
.end method
.method public onSurfaceCreated(Ljavax/microedition/khronos/opengles/GL10;Ljavax/microedition/khronos/egl/EGLConfig;)V
.locals 6
const-string p1, "varying vec2 interp_tc_y;\nvarying vec2 interp_tc_u;\nvarying vec2 interp_tc_v;\nattribute vec4 in_pos;\nattribute vec2 in_tc_y;\nattribute vec2 in_tc_u;\nattribute vec2 in_tc_v;\nvoid main() {\n gl_Position = in_pos;\n interp_tc_y = in_tc_y;\n interp_tc_u = in_tc_u;\n interp_tc_v = in_tc_v;\n}\n"
const-string p2, "precision mediump float;\nvarying vec2 interp_tc_y;\nvarying vec2 interp_tc_u;\nvarying vec2 interp_tc_v;\nuniform sampler2D y_tex;\nuniform sampler2D u_tex;\nuniform sampler2D v_tex;\nuniform mat3 mColorConversion;\nvoid main() {\n vec3 yuv;\n yuv.x = texture2D(y_tex, interp_tc_y).r - 0.0625;\n yuv.y = texture2D(u_tex, interp_tc_u).r - 0.5;\n yuv.z = texture2D(v_tex, interp_tc_v).r - 0.5;\n gl_FragColor = vec4(mColorConversion * yuv, 1.0);\n}\n"
.line 164
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/util/GlUtil;->compileProgram(Ljava/lang/String;Ljava/lang/String;)I
move-result p1
iput p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->program:I
.line 165
invoke-static {p1}, Landroid/opengl/GLES20;->glUseProgram(I)V
iget p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->program:I
const-string p2, "in_pos"
.line 166
invoke-static {p1, p2}, Landroid/opengl/GLES20;->glGetAttribLocation(ILjava/lang/String;)I
move-result v0
.line 167
invoke-static {v0}, Landroid/opengl/GLES20;->glEnableVertexAttribArray(I)V
const/4 v1, 0x2
const/16 v2, 0x1406
const/4 v3, 0x0
const/4 v4, 0x0
sget-object v5, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->TEXTURE_VERTICES:Ljava/nio/FloatBuffer;
.line 168
invoke-static/range {v0 .. v5}, Landroid/opengl/GLES20;->glVertexAttribPointer(IIIZILjava/nio/Buffer;)V
iget-object p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->texLocations:[I
iget p2, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->program:I
const-string v0, "in_tc_y"
.line 175
invoke-static {p2, v0}, Landroid/opengl/GLES20;->glGetAttribLocation(ILjava/lang/String;)I
move-result p2
const/4 v0, 0x0
aput p2, p1, v0
iget-object p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->texLocations:[I
.line 176
aget p1, p1, v0
invoke-static {p1}, Landroid/opengl/GLES20;->glEnableVertexAttribArray(I)V
iget-object p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->texLocations:[I
iget p2, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->program:I
const-string v0, "in_tc_u"
.line 177
invoke-static {p2, v0}, Landroid/opengl/GLES20;->glGetAttribLocation(ILjava/lang/String;)I
move-result p2
const/4 v0, 0x1
aput p2, p1, v0
iget-object p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->texLocations:[I
.line 178
aget p1, p1, v0
invoke-static {p1}, Landroid/opengl/GLES20;->glEnableVertexAttribArray(I)V
iget-object p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->texLocations:[I
iget p2, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->program:I
const-string v0, "in_tc_v"
.line 179
invoke-static {p2, v0}, Landroid/opengl/GLES20;->glGetAttribLocation(ILjava/lang/String;)I
move-result p2
const/4 v0, 0x2
aput p2, p1, v0
iget-object p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->texLocations:[I
.line 180
aget p1, p1, v0
invoke-static {p1}, Landroid/opengl/GLES20;->glEnableVertexAttribArray(I)V
.line 181
invoke-static {}, Lcom/google/android/exoplayer2/util/GlUtil;->checkGlError()V
iget p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->program:I
const-string p2, "mColorConversion"
.line 182
invoke-static {p1, p2}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I
move-result p1
iput p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->colorMatrixLocation:I
.line 183
invoke-static {}, Lcom/google/android/exoplayer2/util/GlUtil;->checkGlError()V
.line 184
invoke-virtual {p0}, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->setupTextures()V
.line 185
invoke-static {}, Lcom/google/android/exoplayer2/util/GlUtil;->checkGlError()V
return-void
.end method
.method public setOutputBuffer(Lcom/google/android/exoplayer2/video/VideoDecoderOutputBuffer;)V
.locals 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->pendingOutputBufferReference:Ljava/util/concurrent/atomic/AtomicReference;
.line 288
invoke-virtual {v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
invoke-static {p1}, Lcom/amazonaws/handlers/HandlerChainFactory$$ExternalSyntheticThrowCCEIfNotNull0;->m(Ljava/lang/Object;)V
iget-object p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->surfaceView:Landroid/opengl/GLSurfaceView;
.line 293
invoke-virtual {p1}, Landroid/opengl/GLSurfaceView;->requestRender()V
return-void
.end method
.method public final setupTextures()V
.locals 5
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->yuvTextures:[I
const/4 v1, 0x3
const/4 v2, 0x0
.line 297
invoke-static {v1, v0, v2}, Landroid/opengl/GLES20;->glGenTextures(I[II)V
:goto_0
if-ge v2, v1, :cond_0
iget v0, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->program:I
sget-object v3, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->TEXTURE_UNIFORMS:[Ljava/lang/String;
.line 299
aget-object v3, v3, v2
invoke-static {v0, v3}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I
move-result v0
invoke-static {v0, v2}, Landroid/opengl/GLES20;->glUniform1i(II)V
const v0, 0x84c0
add-int/2addr v0, v2
.line 300
invoke-static {v0}, Landroid/opengl/GLES20;->glActiveTexture(I)V
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->yuvTextures:[I
.line 301
aget v0, v0, v2
const/16 v3, 0xde1
invoke-static {v3, v0}, Landroid/opengl/GLES20;->glBindTexture(II)V
const/16 v0, 0x2801
const v4, 0x46180400 # 9729.0f
.line 302
invoke-static {v3, v0, v4}, Landroid/opengl/GLES20;->glTexParameterf(IIF)V
const/16 v0, 0x2800
.line 304
invoke-static {v3, v0, v4}, Landroid/opengl/GLES20;->glTexParameterf(IIF)V
const/16 v0, 0x2802
const v4, 0x47012f00 # 33071.0f
.line 306
invoke-static {v3, v0, v4}, Landroid/opengl/GLES20;->glTexParameterf(IIF)V
const/16 v0, 0x2803
.line 308
invoke-static {v3, v0, v4}, Landroid/opengl/GLES20;->glTexParameterf(IIF)V
add-int/lit8 v2, v2, 0x1
goto :goto_0
.line 311
:cond_0
invoke-static {}, Lcom/google/android/exoplayer2/util/GlUtil;->checkGlError()V
return-void
.end method

View File

@@ -0,0 +1,83 @@
.class public final Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView;
.super Landroid/opengl/GLSurfaceView;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;
}
.end annotation
# static fields
.field public static final synthetic $r8$clinit:I
# instance fields
.field public final renderer:Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.locals 1
const/4 v0, 0x0
.line 48
invoke-direct {p0, p1, v0}, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 0
.param p2 # Landroid/util/AttributeSet;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.line 57
invoke-direct {p0, p1, p2}, Landroid/opengl/GLSurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.line 58
new-instance p1, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;
invoke-direct {p1, p0}, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;-><init>(Landroid/opengl/GLSurfaceView;)V
iput-object p1, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView;->renderer:Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;
const/4 p2, 0x1
.line 59
invoke-virtual {p0, p2}, Landroid/opengl/GLSurfaceView;->setPreserveEGLContextOnPause(Z)V
const/4 p2, 0x2
.line 60
invoke-virtual {p0, p2}, Landroid/opengl/GLSurfaceView;->setEGLContextClientVersion(I)V
.line 61
invoke-virtual {p0, p1}, Landroid/opengl/GLSurfaceView;->setRenderer(Landroid/opengl/GLSurfaceView$Renderer;)V
const/4 p1, 0x0
.line 62
invoke-virtual {p0, p1}, Landroid/opengl/GLSurfaceView;->setRenderMode(I)V
return-void
.end method
# virtual methods
.method public setOutputBuffer(Lcom/google/android/exoplayer2/video/VideoDecoderOutputBuffer;)V
.locals 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView;->renderer:Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;
.line 67
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/video/VideoDecoderGLSurfaceView$Renderer;->setOutputBuffer(Lcom/google/android/exoplayer2/video/VideoDecoderOutputBuffer;)V
return-void
.end method

View File

@@ -0,0 +1,3 @@
.class public abstract Lcom/google/android/exoplayer2/video/VideoDecoderOutputBuffer;
.super Lcom/google/android/exoplayer2/decoder/OutputBuffer;
.source "SourceFile"

View File

@@ -0,0 +1,169 @@
.class public final Lcom/google/android/exoplayer2/video/VideoSize;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final CREATOR:Lcom/google/android/exoplayer2/Bundleable$Creator;
.field public static final UNKNOWN:Lcom/google/android/exoplayer2/video/VideoSize;
# instance fields
.field public final height:I
.field public final pixelWidthHeightRatio:F
.field public final unappliedRotationDegrees:I
.field public final width:I
# direct methods
.method static constructor <clinit>()V
.locals 2
.line 36
new-instance v0, Lcom/google/android/exoplayer2/video/VideoSize;
const/4 v1, 0x0
invoke-direct {v0, v1, v1}, Lcom/google/android/exoplayer2/video/VideoSize;-><init>(II)V
sput-object v0, Lcom/google/android/exoplayer2/video/VideoSize;->UNKNOWN:Lcom/google/android/exoplayer2/video/VideoSize;
.line 155
new-instance v0, Lcom/google/android/exoplayer2/MediaItem$$ExternalSyntheticLambda0;
invoke-direct {v0}, Lcom/google/android/exoplayer2/MediaItem$$ExternalSyntheticLambda0;-><init>()V
sput-object v0, Lcom/google/android/exoplayer2/video/VideoSize;->CREATOR:Lcom/google/android/exoplayer2/Bundleable$Creator;
return-void
.end method
.method public constructor <init>(II)V
.locals 2
const/4 v0, 0x0
const/high16 v1, 0x3f800000 # 1.0f
.line 78
invoke-direct {p0, p1, p2, v0, v1}, Lcom/google/android/exoplayer2/video/VideoSize;-><init>(IIIF)V
return-void
.end method
.method public constructor <init>(IIIF)V
.locals 0
.line 97
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput p1, p0, Lcom/google/android/exoplayer2/video/VideoSize;->width:I
iput p2, p0, Lcom/google/android/exoplayer2/video/VideoSize;->height:I
iput p3, p0, Lcom/google/android/exoplayer2/video/VideoSize;->unappliedRotationDegrees:I
iput p4, p0, Lcom/google/android/exoplayer2/video/VideoSize;->pixelWidthHeightRatio:F
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 4
const/4 v0, 0x1
if-ne p0, p1, :cond_0
return v0
.line 109
:cond_0
instance-of v1, p1, Lcom/google/android/exoplayer2/video/VideoSize;
const/4 v2, 0x0
if-eqz v1, :cond_2
.line 110
check-cast p1, Lcom/google/android/exoplayer2/video/VideoSize;
iget v1, p0, Lcom/google/android/exoplayer2/video/VideoSize;->width:I
.line 111
iget v3, p1, Lcom/google/android/exoplayer2/video/VideoSize;->width:I
if-ne v1, v3, :cond_1
iget v1, p0, Lcom/google/android/exoplayer2/video/VideoSize;->height:I
iget v3, p1, Lcom/google/android/exoplayer2/video/VideoSize;->height:I
if-ne v1, v3, :cond_1
iget v1, p0, Lcom/google/android/exoplayer2/video/VideoSize;->unappliedRotationDegrees:I
iget v3, p1, Lcom/google/android/exoplayer2/video/VideoSize;->unappliedRotationDegrees:I
if-ne v1, v3, :cond_1
iget v1, p0, Lcom/google/android/exoplayer2/video/VideoSize;->pixelWidthHeightRatio:F
iget p1, p1, Lcom/google/android/exoplayer2/video/VideoSize;->pixelWidthHeightRatio:F
cmpl-float p1, v1, p1
if-nez p1, :cond_1
goto :goto_0
:cond_1
move v0, v2
:goto_0
return v0
:cond_2
return v2
.end method
.method public hashCode()I
.locals 2
const/16 v0, 0xd9
iget v1, p0, Lcom/google/android/exoplayer2/video/VideoSize;->width:I
add-int/2addr v0, v1
mul-int/lit8 v0, v0, 0x1f
iget v1, p0, Lcom/google/android/exoplayer2/video/VideoSize;->height:I
add-int/2addr v0, v1
mul-int/lit8 v0, v0, 0x1f
iget v1, p0, Lcom/google/android/exoplayer2/video/VideoSize;->unappliedRotationDegrees:I
add-int/2addr v0, v1
mul-int/lit8 v0, v0, 0x1f
iget v1, p0, Lcom/google/android/exoplayer2/video/VideoSize;->pixelWidthHeightRatio:F
.line 125
invoke-static {v1}, Ljava/lang/Float;->floatToRawIntBits(F)I
move-result v1
add-int/2addr v0, v1
return v0
.end method

View File

@@ -0,0 +1,229 @@
.class public final Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;
.super Ljava/lang/Object;
.source "SourceFile"
# instance fields
.field public final recenterMatrix:[F
.field public recenterMatrixComputed:Z
.field public final rotationMatrix:[F
.field public final rotations:Lcom/google/android/exoplayer2/util/TimedValueQueue;
# direct methods
.method public constructor <init>()V
.locals 2
.line 36
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0x10
new-array v1, v0, [F
iput-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->recenterMatrix:[F
new-array v0, v0, [F
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->rotationMatrix:[F
.line 39
new-instance v0, Lcom/google/android/exoplayer2/util/TimedValueQueue;
invoke-direct {v0}, Lcom/google/android/exoplayer2/util/TimedValueQueue;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->rotations:Lcom/google/android/exoplayer2/util/TimedValueQueue;
return-void
.end method
.method public static computeRecenterMatrix([F[F)V
.locals 6
const/4 v0, 0x0
.line 99
invoke-static {p0, v0}, Landroid/opengl/Matrix;->setIdentityM([FI)V
const/16 v1, 0xa
.line 100
aget v2, p1, v1
mul-float/2addr v2, v2
const/16 v3, 0x8
aget v4, p1, v3
mul-float/2addr v4, v4
add-float/2addr v2, v4
float-to-double v4, v2
.line 102
invoke-static {v4, v5}, Ljava/lang/Math;->sqrt(D)D
move-result-wide v4
double-to-float v2, v4
.line 103
aget v4, p1, v1
div-float v5, v4, v2
aput v5, p0, v0
.line 104
aget p1, p1, v3
div-float v0, p1, v2
const/4 v5, 0x2
aput v0, p0, v5
neg-float p1, p1
div-float/2addr p1, v2
.line 105
aput p1, p0, v3
div-float/2addr v4, v2
.line 106
aput v4, p0, v1
return-void
.end method
.method public static getRotationMatrixFromAngleAxis([F[F)V
.locals 12
const/4 v0, 0x0
.line 113
aget v1, p1, v0
const/4 v2, 0x1
.line 114
aget v2, p1, v2
neg-float v2, v2
const/4 v3, 0x2
.line 115
aget p1, p1, v3
neg-float p1, p1
.line 116
invoke-static {v1, v2, p1}, Landroid/opengl/Matrix;->length(FFF)F
move-result v3
const/4 v4, 0x0
cmpl-float v4, v3, v4
if-eqz v4, :cond_0
float-to-double v4, v3
.line 118
invoke-static {v4, v5}, Ljava/lang/Math;->toDegrees(D)D
move-result-wide v4
double-to-float v8, v4
const/4 v7, 0x0
div-float v9, v1, v3
div-float v10, v2, v3
div-float v11, p1, v3
move-object v6, p0
.line 119
invoke-static/range {v6 .. v11}, Landroid/opengl/Matrix;->setRotateM([FIFFFF)V
goto :goto_0
.line 121
:cond_0
invoke-static {p0, v0}, Landroid/opengl/Matrix;->setIdentityM([FI)V
:goto_0
return-void
.end method
# virtual methods
.method public pollRotationMatrix([FJ)Z
.locals 7
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->rotations:Lcom/google/android/exoplayer2/util/TimedValueQueue;
.line 69
invoke-virtual {v0, p2, p3}, Lcom/google/android/exoplayer2/util/TimedValueQueue;->pollFloor(J)Ljava/lang/Object;
move-result-object p2
check-cast p2, [F
if-nez p2, :cond_0
const/4 p1, 0x0
return p1
:cond_0
iget-object p3, p0, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->rotationMatrix:[F
.line 74
invoke-static {p3, p2}, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->getRotationMatrixFromAngleAxis([F[F)V
iget-boolean p2, p0, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->recenterMatrixComputed:Z
const/4 p3, 0x1
if-nez p2, :cond_1
iget-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->recenterMatrix:[F
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->rotationMatrix:[F
.line 76
invoke-static {p2, v0}, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->computeRecenterMatrix([F[F)V
iput-boolean p3, p0, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->recenterMatrixComputed:Z
:cond_1
const/4 v2, 0x0
iget-object v3, p0, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->recenterMatrix:[F
const/4 v4, 0x0
iget-object v5, p0, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->rotationMatrix:[F
const/4 v6, 0x0
move-object v1, p1
.line 79
invoke-static/range {v1 .. v6}, Landroid/opengl/Matrix;->multiplyMM([FI[FI[FI)V
return p3
.end method

View File

@@ -0,0 +1,19 @@
.class public interface abstract Lcom/google/android/exoplayer2/video/spherical/OrientationListener$Listener;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/spherical/OrientationListener;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "Listener"
.end annotation
# virtual methods
.method public abstract onOrientationChange([FF)V
.end method

View File

@@ -0,0 +1,301 @@
.class public final Lcom/google/android/exoplayer2/video/spherical/OrientationListener;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/hardware/SensorEventListener;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/video/spherical/OrientationListener$Listener;
}
.end annotation
# instance fields
.field public final angles:[F
.field public final deviceOrientationMatrix4x4:[F
.field public final display:Landroid/view/Display;
.field public final listeners:[Lcom/google/android/exoplayer2/video/spherical/OrientationListener$Listener;
.field public final recenterMatrix4x4:[F
.field public recenterMatrixComputed:Z
.field public final tempMatrix4x4:[F
# direct methods
.method public varargs constructor <init>(Landroid/view/Display;[Lcom/google/android/exoplayer2/video/spherical/OrientationListener$Listener;)V
.locals 2
.line 51
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0x10
new-array v1, v0, [F
iput-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->deviceOrientationMatrix4x4:[F
new-array v1, v0, [F
iput-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->tempMatrix4x4:[F
new-array v0, v0, [F
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->recenterMatrix4x4:[F
const/4 v0, 0x3
new-array v0, v0, [F
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->angles:[F
iput-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->display:Landroid/view/Display;
iput-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->listeners:[Lcom/google/android/exoplayer2/video/spherical/OrientationListener$Listener;
return-void
.end method
.method public static rotateYtoSky([F)V
.locals 6
const/4 v1, 0x0
const/high16 v2, 0x42b40000 # 90.0f
const/high16 v3, 0x3f800000 # 1.0f
const/4 v4, 0x0
const/4 v5, 0x0
move-object v0, p0
.line 123
invoke-static/range {v0 .. v5}, Landroid/opengl/Matrix;->rotateM([FIFFFF)V
return-void
.end method
# virtual methods
.method public final extractRoll([F)F
.locals 3
const/16 v0, 0x83
iget-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->tempMatrix4x4:[F
const/4 v2, 0x1
.line 91
invoke-static {p1, v2, v0, v1}, Landroid/hardware/SensorManager;->remapCoordinateSystem([FII[F)Z
iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->tempMatrix4x4:[F
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->angles:[F
.line 93
invoke-static {p1, v0}, Landroid/hardware/SensorManager;->getOrientation([F[F)[F
iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->angles:[F
const/4 v0, 0x2
.line 94
aget p1, p1, v0
return p1
.end method
.method public final notifyListeners([FF)V
.locals 4
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->listeners:[Lcom/google/android/exoplayer2/video/spherical/OrientationListener$Listener;
.line 74
array-length v1, v0
const/4 v2, 0x0
:goto_0
if-ge v2, v1, :cond_0
aget-object v3, v0, v2
.line 75
invoke-interface {v3, p1, p2}, Lcom/google/android/exoplayer2/video/spherical/OrientationListener$Listener;->onOrientationChange([FF)V
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_0
return-void
.end method
.method public onAccuracyChanged(Landroid/hardware/Sensor;I)V
.locals 0
return-void
.end method
.method public onSensorChanged(Landroid/hardware/SensorEvent;)V
.locals 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->deviceOrientationMatrix4x4:[F
.line 59
iget-object p1, p1, Landroid/hardware/SensorEvent;->values:[F
invoke-static {v0, p1}, Landroid/hardware/SensorManager;->getRotationMatrixFromVector([F[F)V
iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->deviceOrientationMatrix4x4:[F
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->display:Landroid/view/Display;
.line 60
invoke-virtual {v0}, Landroid/view/Display;->getRotation()I
move-result v0
invoke-virtual {p0, p1, v0}, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->rotateAroundZ([FI)V
iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->deviceOrientationMatrix4x4:[F
.line 61
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->extractRoll([F)F
move-result p1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->deviceOrientationMatrix4x4:[F
.line 63
invoke-static {v0}, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->rotateYtoSky([F)V
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->deviceOrientationMatrix4x4:[F
.line 64
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->recenter([F)V
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->deviceOrientationMatrix4x4:[F
.line 65
invoke-virtual {p0, v0, p1}, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->notifyListeners([FF)V
return-void
.end method
.method public final recenter([F)V
.locals 9
iget-boolean v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->recenterMatrixComputed:Z
if-nez v0, :cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->recenterMatrix4x4:[F
.line 81
invoke-static {v0, p1}, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->computeRecenterMatrix([F[F)V
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->recenterMatrixComputed:Z
:cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->tempMatrix4x4:[F
.line 84
array-length v1, v0
const/4 v2, 0x0
invoke-static {p1, v2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
const/4 v4, 0x0
iget-object v5, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->tempMatrix4x4:[F
const/4 v6, 0x0
iget-object v7, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->recenterMatrix4x4:[F
const/4 v8, 0x0
move-object v3, p1
.line 85
invoke-static/range {v3 .. v8}, Landroid/opengl/Matrix;->multiplyMM([FI[FI[FI)V
return-void
.end method
.method public final rotateAroundZ([FI)V
.locals 4
if-eqz p2, :cond_3
const/16 v0, 0x81
const/4 v1, 0x2
const/4 v2, 0x1
if-eq p2, v2, :cond_2
const/16 v3, 0x82
if-eq p2, v1, :cond_1
const/4 v0, 0x3
if-ne p2, v0, :cond_0
move v0, v3
goto :goto_0
.line 116
:cond_0
new-instance p1, Ljava/lang/IllegalStateException;
invoke-direct {p1}, Ljava/lang/IllegalStateException;-><init>()V
throw p1
:cond_1
move v2, v3
goto :goto_0
:cond_2
move v2, v0
move v0, v1
:goto_0
iget-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->tempMatrix4x4:[F
.line 118
array-length v1, p2
const/4 v3, 0x0
invoke-static {p1, v3, p2, v3, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
iget-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;->tempMatrix4x4:[F
.line 119
invoke-static {p2, v0, v2, p1}, Landroid/hardware/SensorManager;->remapCoordinateSystem([FII[F)Z
:cond_3
return-void
.end method

View File

@@ -0,0 +1,269 @@
.class public final Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final FRAGMENT_SHADER_CODE:[Ljava/lang/String;
.field public static final TEX_MATRIX_BOTTOM:[F
.field public static final TEX_MATRIX_LEFT:[F
.field public static final TEX_MATRIX_RIGHT:[F
.field public static final TEX_MATRIX_TOP:[F
.field public static final TEX_MATRIX_WHOLE:[F
.field public static final VERTEX_SHADER_CODE:[Ljava/lang/String;
# instance fields
.field public mvpMatrixHandle:I
.field public positionHandle:I
.field public program:I
.field public texCoordsHandle:I
.field public textureHandle:I
.field public uTexMatrixHandle:I
# direct methods
.method static constructor <clinit>()V
.locals 9
const-string v0, "uniform mat4 uMvpMatrix;"
const-string v1, "uniform mat3 uTexMatrix;"
const-string v2, "attribute vec4 aPosition;"
const-string v3, "attribute vec2 aTexCoords;"
const-string v4, "varying vec2 vTexCoords;"
const-string v5, "void main() {"
const-string v6, " gl_Position = uMvpMatrix * aPosition;"
const-string v7, " vTexCoords = (uTexMatrix * vec3(aTexCoords, 1)).xy;"
const-string v8, "}"
filled-new-array/range {v0 .. v8}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->VERTEX_SHADER_CODE:[Ljava/lang/String;
const-string v1, "#extension GL_OES_EGL_image_external : require"
const-string v2, "precision mediump float;"
const-string v3, "uniform samplerExternalOES uTexture;"
const-string v4, "varying vec2 vTexCoords;"
const-string v5, "void main() {"
const-string v6, " gl_FragColor = texture2D(uTexture, vTexCoords);"
const-string v7, "}"
filled-new-array/range {v1 .. v7}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->FRAGMENT_SHADER_CODE:[Ljava/lang/String;
const/16 v0, 0x9
new-array v1, v0, [F
fill-array-data v1, :array_0
sput-object v1, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->TEX_MATRIX_WHOLE:[F
new-array v1, v0, [F
fill-array-data v1, :array_1
sput-object v1, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->TEX_MATRIX_TOP:[F
new-array v1, v0, [F
fill-array-data v1, :array_2
sput-object v1, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->TEX_MATRIX_BOTTOM:[F
new-array v1, v0, [F
fill-array-data v1, :array_3
sput-object v1, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->TEX_MATRIX_LEFT:[F
new-array v0, v0, [F
fill-array-data v0, :array_4
sput-object v0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->TEX_MATRIX_RIGHT:[F
return-void
:array_0
.array-data 4
0x3f800000 # 1.0f
0x0
0x0
0x0
-0x40800000 # -1.0f
0x0
0x0
0x3f800000 # 1.0f
0x3f800000 # 1.0f
.end array-data
:array_1
.array-data 4
0x3f800000 # 1.0f
0x0
0x0
0x0
-0x41000000 # -0.5f
0x0
0x0
0x3f000000 # 0.5f
0x3f800000 # 1.0f
.end array-data
:array_2
.array-data 4
0x3f800000 # 1.0f
0x0
0x0
0x0
-0x41000000 # -0.5f
0x0
0x0
0x3f800000 # 1.0f
0x3f800000 # 1.0f
.end array-data
:array_3
.array-data 4
0x3f000000 # 0.5f
0x0
0x0
0x0
-0x40800000 # -1.0f
0x0
0x0
0x3f800000 # 1.0f
0x3f800000 # 1.0f
.end array-data
:array_4
.array-data 4
0x3f000000 # 0.5f
0x0
0x0
0x0
-0x40800000 # -1.0f
0x0
0x3f000000 # 0.5f
0x3f800000 # 1.0f
0x3f800000 # 1.0f
.end array-data
.end method
.method public constructor <init>()V
.locals 0
.line 31
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public draw(I[FZ)V
.locals 0
return-void
.end method
.method public init()V
.locals 2
sget-object v0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->VERTEX_SHADER_CODE:[Ljava/lang/String;
sget-object v1, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->FRAGMENT_SHADER_CODE:[Ljava/lang/String;
.line 122
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/util/GlUtil;->compileProgram([Ljava/lang/String;[Ljava/lang/String;)I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->program:I
const-string v1, "uMvpMatrix"
.line 123
invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->mvpMatrixHandle:I
iget v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->program:I
const-string v1, "uTexMatrix"
.line 124
invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->uTexMatrixHandle:I
iget v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->program:I
const-string v1, "aPosition"
.line 125
invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetAttribLocation(ILjava/lang/String;)I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->positionHandle:I
iget v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->program:I
const-string v1, "aTexCoords"
.line 126
invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetAttribLocation(ILjava/lang/String;)I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->texCoordsHandle:I
iget v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->program:I
const-string v1, "uTexture"
.line 127
invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->textureHandle:I
return-void
.end method

View File

@@ -0,0 +1,36 @@
.class public final synthetic Lcom/google/android/exoplayer2/video/spherical/SceneRenderer$$ExternalSyntheticLambda0;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
# instance fields
.field public final synthetic f$0:Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;
# direct methods
.method public synthetic constructor <init>(Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;)V
.locals 0
.line 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer$$ExternalSyntheticLambda0;->f$0:Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;
return-void
.end method
# virtual methods
.method public final onFrameAvailable(Landroid/graphics/SurfaceTexture;)V
.locals 1
.line 0
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer$$ExternalSyntheticLambda0;->f$0:Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;
invoke-static {v0, p1}, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->$r8$lambda$_DXYx5AUskH1JbhOOBU0nDoBYVw(Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;Landroid/graphics/SurfaceTexture;)V
return-void
.end method

View File

@@ -0,0 +1,303 @@
.class public final Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;
.super Ljava/lang/Object;
.source "SourceFile"
# instance fields
.field public volatile defaultStereoMode:I
.field public final frameAvailable:Ljava/util/concurrent/atomic/AtomicBoolean;
.field public final frameRotationQueue:Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;
.field public lastStereoMode:I
.field public final projectionQueue:Lcom/google/android/exoplayer2/util/TimedValueQueue;
.field public final projectionRenderer:Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;
.field public final resetRotationAtNextFrame:Ljava/util/concurrent/atomic/AtomicBoolean;
.field public final rotationMatrix:[F
.field public final sampleTimestampQueue:Lcom/google/android/exoplayer2/util/TimedValueQueue;
.field public surfaceTexture:Landroid/graphics/SurfaceTexture;
.field public final tempMatrix:[F
.field public textureId:I
# direct methods
.method public static synthetic $r8$lambda$_DXYx5AUskH1JbhOOBU0nDoBYVw(Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;Landroid/graphics/SurfaceTexture;)V
.locals 0
.line 0
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->lambda$init$0(Landroid/graphics/SurfaceTexture;)V
return-void
.end method
.method public constructor <init>()V
.locals 2
.line 59
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 60
new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->frameAvailable:Ljava/util/concurrent/atomic/AtomicBoolean;
.line 61
new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v1, 0x1
invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>(Z)V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->resetRotationAtNextFrame:Ljava/util/concurrent/atomic/AtomicBoolean;
.line 62
new-instance v0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;
invoke-direct {v0}, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->projectionRenderer:Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;
.line 63
new-instance v0, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;
invoke-direct {v0}, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->frameRotationQueue:Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;
.line 64
new-instance v0, Lcom/google/android/exoplayer2/util/TimedValueQueue;
invoke-direct {v0}, Lcom/google/android/exoplayer2/util/TimedValueQueue;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->sampleTimestampQueue:Lcom/google/android/exoplayer2/util/TimedValueQueue;
.line 65
new-instance v0, Lcom/google/android/exoplayer2/util/TimedValueQueue;
invoke-direct {v0}, Lcom/google/android/exoplayer2/util/TimedValueQueue;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->projectionQueue:Lcom/google/android/exoplayer2/util/TimedValueQueue;
const/16 v0, 0x10
new-array v1, v0, [F
iput-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->rotationMatrix:[F
new-array v0, v0, [F
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->tempMatrix:[F
const/4 v0, 0x0
iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->defaultStereoMode:I
const/4 v0, -0x1
iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->lastStereoMode:I
return-void
.end method
# virtual methods
.method public drawFrame([FZ)V
.locals 7
const/16 v0, 0x4000
.line 109
invoke-static {v0}, Landroid/opengl/GLES20;->glClear(I)V
.line 110
invoke-static {}, Lcom/google/android/exoplayer2/util/GlUtil;->checkGlError()V
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->frameAvailable:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v1, 0x1
const/4 v2, 0x0
.line 112
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v0
if-eqz v0, :cond_2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->surfaceTexture:Landroid/graphics/SurfaceTexture;
.line 113
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/graphics/SurfaceTexture;
invoke-virtual {v0}, Landroid/graphics/SurfaceTexture;->updateTexImage()V
.line 114
invoke-static {}, Lcom/google/android/exoplayer2/util/GlUtil;->checkGlError()V
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->resetRotationAtNextFrame:Ljava/util/concurrent/atomic/AtomicBoolean;
.line 115
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->rotationMatrix:[F
.line 116
invoke-static {v0, v2}, Landroid/opengl/Matrix;->setIdentityM([FI)V
:cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->surfaceTexture:Landroid/graphics/SurfaceTexture;
.line 118
invoke-virtual {v0}, Landroid/graphics/SurfaceTexture;->getTimestamp()J
move-result-wide v0
iget-object v2, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->sampleTimestampQueue:Lcom/google/android/exoplayer2/util/TimedValueQueue;
.line 119
invoke-virtual {v2, v0, v1}, Lcom/google/android/exoplayer2/util/TimedValueQueue;->poll(J)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Long;
if-eqz v2, :cond_1
iget-object v3, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->frameRotationQueue:Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;
iget-object v4, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->rotationMatrix:[F
.line 121
invoke-virtual {v2}, Ljava/lang/Long;->longValue()J
move-result-wide v5
invoke-virtual {v3, v4, v5, v6}, Lcom/google/android/exoplayer2/video/spherical/FrameRotationQueue;->pollRotationMatrix([FJ)Z
:cond_1
iget-object v2, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->projectionQueue:Lcom/google/android/exoplayer2/util/TimedValueQueue;
.line 123
invoke-virtual {v2, v0, v1}, Lcom/google/android/exoplayer2/util/TimedValueQueue;->pollFloor(J)Ljava/lang/Object;
move-result-object v0
invoke-static {v0}, Lcom/amazonaws/handlers/HandlerChainFactory$$ExternalSyntheticThrowCCEIfNotNull0;->m(Ljava/lang/Object;)V
:cond_2
iget-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->tempMatrix:[F
const/4 v2, 0x0
const/4 v4, 0x0
iget-object v5, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->rotationMatrix:[F
const/4 v6, 0x0
move-object v3, p1
.line 128
invoke-static/range {v1 .. v6}, Landroid/opengl/Matrix;->multiplyMM([FI[FI[FI)V
iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->projectionRenderer:Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;
iget v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->textureId:I
iget-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->tempMatrix:[F
.line 129
invoke-virtual {p1, v0, v1, p2}, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->draw(I[FZ)V
return-void
.end method
.method public init()Landroid/graphics/SurfaceTexture;
.locals 2
const/high16 v0, 0x3f000000 # 0.5f
const/high16 v1, 0x3f800000 # 1.0f
.line 87
invoke-static {v0, v0, v0, v1}, Landroid/opengl/GLES20;->glClearColor(FFFF)V
.line 88
invoke-static {}, Lcom/google/android/exoplayer2/util/GlUtil;->checkGlError()V
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->projectionRenderer:Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;
.line 90
invoke-virtual {v0}, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->init()V
.line 91
invoke-static {}, Lcom/google/android/exoplayer2/util/GlUtil;->checkGlError()V
.line 93
invoke-static {}, Lcom/google/android/exoplayer2/util/GlUtil;->createExternalTexture()I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->textureId:I
.line 94
new-instance v0, Landroid/graphics/SurfaceTexture;
iget v1, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->textureId:I
invoke-direct {v0, v1}, Landroid/graphics/SurfaceTexture;-><init>(I)V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->surfaceTexture:Landroid/graphics/SurfaceTexture;
.line 95
new-instance v1, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer$$ExternalSyntheticLambda0;
invoke-direct {v1, p0}, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer$$ExternalSyntheticLambda0;-><init>(Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;)V
invoke-virtual {v0, v1}, Landroid/graphics/SurfaceTexture;->setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->surfaceTexture:Landroid/graphics/SurfaceTexture;
return-object v0
.end method
.method public final synthetic lambda$init$0(Landroid/graphics/SurfaceTexture;)V
.locals 1
iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->frameAvailable:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v0, 0x1
.line 95
invoke-virtual {p1, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V
return-void
.end method
.method public setDefaultStereoMode(I)V
.locals 0
iput p1, p0, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->defaultStereoMode:I
return-void
.end method

View File

@@ -0,0 +1,42 @@
.class public final synthetic Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$$ExternalSyntheticLambda0;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# instance fields
.field public final synthetic f$0:Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;
.field public final synthetic f$1:Landroid/graphics/SurfaceTexture;
# direct methods
.method public synthetic constructor <init>(Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;Landroid/graphics/SurfaceTexture;)V
.locals 0
.line 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$$ExternalSyntheticLambda0;->f$0:Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;
iput-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$$ExternalSyntheticLambda0;->f$1:Landroid/graphics/SurfaceTexture;
return-void
.end method
# virtual methods
.method public final run()V
.locals 2
.line 0
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$$ExternalSyntheticLambda0;->f$0:Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;
iget-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$$ExternalSyntheticLambda0;->f$1:Landroid/graphics/SurfaceTexture;
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->$r8$lambda$UBzzr65Zo1XPkIEBcqr2dbWk4y4(Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;Landroid/graphics/SurfaceTexture;)V
return-void
.end method

View File

@@ -0,0 +1,36 @@
.class public final synthetic Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$$ExternalSyntheticLambda1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# instance fields
.field public final synthetic f$0:Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;
# direct methods
.method public synthetic constructor <init>(Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;)V
.locals 0
.line 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$$ExternalSyntheticLambda1;->f$0:Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;
return-void
.end method
# virtual methods
.method public final run()V
.locals 1
.line 0
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$$ExternalSyntheticLambda1;->f$0:Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;
invoke-static {v0}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->$r8$lambda$UfBR3e5C5rYBioPdx5p65nBUCbA(Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;)V
return-void
.end method

View File

@@ -0,0 +1,432 @@
.class public final Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/opengl/GLSurfaceView$Renderer;
.implements Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;
.implements Lcom/google/android/exoplayer2/video/spherical/OrientationListener$Listener;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "Renderer"
.end annotation
# instance fields
.field public final deviceOrientationMatrix:[F
.field public deviceRoll:F
.field public final projectionMatrix:[F
.field public final scene:Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;
.field public final tempMatrix:[F
.field public final synthetic this$0:Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;
.field public touchPitch:F
.field public final touchPitchMatrix:[F
.field public final touchYawMatrix:[F
.field public final viewMatrix:[F
.field public final viewProjectionMatrix:[F
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;)V
.locals 4
iput-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->this$0:Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;
.line 285
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 p1, 0x10
new-array v0, p1, [F
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->projectionMatrix:[F
new-array v0, p1, [F
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->viewProjectionMatrix:[F
new-array v0, p1, [F
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->deviceOrientationMatrix:[F
new-array v1, p1, [F
iput-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->touchPitchMatrix:[F
new-array v2, p1, [F
iput-object v2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->touchYawMatrix:[F
new-array v3, p1, [F
iput-object v3, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->viewMatrix:[F
new-array p1, p1, [F
iput-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->tempMatrix:[F
iput-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->scene:Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;
const/4 p1, 0x0
.line 287
invoke-static {v0, p1}, Landroid/opengl/Matrix;->setIdentityM([FI)V
.line 288
invoke-static {v1, p1}, Landroid/opengl/Matrix;->setIdentityM([FI)V
.line 289
invoke-static {v2, p1}, Landroid/opengl/Matrix;->setIdentityM([FI)V
const p1, 0x40490fdb # (float)Math.PI
iput p1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->deviceRoll:F
return-void
.end method
# virtual methods
.method public final calculateFieldOfViewInYDirection(F)F
.locals 4
const/high16 v0, 0x3f800000 # 1.0f
cmpl-float v0, p1, v0
if-lez v0, :cond_0
const-wide v0, 0x4046800000000000L # 45.0
.line 365
invoke-static {v0, v1}, Ljava/lang/Math;->toRadians(D)D
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Math;->tan(D)D
move-result-wide v0
float-to-double v2, p1
div-double/2addr v0, v2
.line 366
invoke-static {v0, v1}, Ljava/lang/Math;->atan(D)D
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Math;->toDegrees(D)D
move-result-wide v0
const-wide/high16 v2, 0x4000000000000000L # 2.0
mul-double/2addr v0, v2
double-to-float p1, v0
return p1
:cond_0
const/high16 p1, 0x42b40000 # 90.0f
return p1
.end method
.method public onDrawFrame(Ljavax/microedition/khronos/opengles/GL10;)V
.locals 12
.line 311
monitor-enter p0
:try_start_0
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->tempMatrix:[F
const/4 v1, 0x0
iget-object v2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->deviceOrientationMatrix:[F
const/4 v3, 0x0
iget-object v4, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->touchYawMatrix:[F
const/4 v5, 0x0
.line 312
invoke-static/range {v0 .. v5}, Landroid/opengl/Matrix;->multiplyMM([FI[FI[FI)V
iget-object v6, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->viewMatrix:[F
const/4 v7, 0x0
iget-object v8, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->touchPitchMatrix:[F
const/4 v9, 0x0
iget-object v10, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->tempMatrix:[F
const/4 v11, 0x0
.line 313
invoke-static/range {v6 .. v11}, Landroid/opengl/Matrix;->multiplyMM([FI[FI[FI)V
.line 314
monitor-exit p0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->viewProjectionMatrix:[F
const/4 v1, 0x0
iget-object v2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->projectionMatrix:[F
const/4 v3, 0x0
iget-object v4, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->viewMatrix:[F
const/4 v5, 0x0
.line 316
invoke-static/range {v0 .. v5}, Landroid/opengl/Matrix;->multiplyMM([FI[FI[FI)V
iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->scene:Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->viewProjectionMatrix:[F
.line 317
invoke-virtual {p1, v0, v1}, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->drawFrame([FZ)V
return-void
:catchall_0
move-exception p1
.line 314
:try_start_1
monitor-exit p0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw p1
.end method
.method public declared-synchronized onOrientationChange([FF)V
.locals 3
monitor-enter p0
:try_start_0
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->deviceOrientationMatrix:[F
.line 324
array-length v1, v0
const/4 v2, 0x0
invoke-static {p1, v2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
neg-float p1, p2
iput p1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->deviceRoll:F
.line 326
invoke-virtual {p0}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->updatePitchMatrix()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 327
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized onScrollChange(Landroid/graphics/PointF;)V
.locals 7
monitor-enter p0
.line 350
:try_start_0
iget v0, p1, Landroid/graphics/PointF;->y:F
iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->touchPitch:F
.line 351
invoke-virtual {p0}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->updatePitchMatrix()V
iget-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->touchYawMatrix:[F
const/4 v2, 0x0
.line 352
iget p1, p1, Landroid/graphics/PointF;->x:F
neg-float v3, p1
const/4 v4, 0x0
const/high16 v5, 0x3f800000 # 1.0f
const/4 v6, 0x0
invoke-static/range {v1 .. v6}, Landroid/opengl/Matrix;->setRotateM([FIFFFF)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 353
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method
.method public onSingleTapUp(Landroid/view/MotionEvent;)Z
.locals 0
iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->this$0:Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;
.line 358
invoke-virtual {p1}, Landroid/view/View;->performClick()Z
move-result p1
return p1
.end method
.method public onSurfaceChanged(Ljavax/microedition/khronos/opengles/GL10;II)V
.locals 6
const/4 p1, 0x0
.line 300
invoke-static {p1, p1, p2, p3}, Landroid/opengl/GLES20;->glViewport(IIII)V
int-to-float p1, p2
int-to-float p2, p3
div-float v3, p1, p2
.line 302
invoke-virtual {p0, v3}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->calculateFieldOfViewInYDirection(F)F
move-result v2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->projectionMatrix:[F
const/4 v1, 0x0
const v4, 0x3dcccccd # 0.1f
const/high16 v5, 0x42c80000 # 100.0f
.line 303
invoke-static/range {v0 .. v5}, Landroid/opengl/Matrix;->perspectiveM([FIFFFF)V
return-void
.end method
.method public declared-synchronized onSurfaceCreated(Ljavax/microedition/khronos/opengles/GL10;Ljavax/microedition/khronos/egl/EGLConfig;)V
.locals 0
monitor-enter p0
:try_start_0
iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->this$0:Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;
iget-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->scene:Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;
.line 295
invoke-virtual {p2}, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->init()Landroid/graphics/SurfaceTexture;
move-result-object p2
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->access$000(Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;Landroid/graphics/SurfaceTexture;)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 296
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method
.method public final updatePitchMatrix()V
.locals 6
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->touchPitchMatrix:[F
const/4 v1, 0x0
iget v2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->touchPitch:F
neg-float v2, v2
iget v3, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->deviceRoll:F
float-to-double v3, v3
.line 342
invoke-static {v3, v4}, Ljava/lang/Math;->cos(D)D
move-result-wide v3
double-to-float v3, v3
iget v4, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;->deviceRoll:F
float-to-double v4, v4
.line 343
invoke-static {v4, v5}, Ljava/lang/Math;->sin(D)D
move-result-wide v4
double-to-float v4, v4
const/4 v5, 0x0
.line 338
invoke-static/range {v0 .. v5}, Landroid/opengl/Matrix;->setRotateM([FIFFFF)V
return-void
.end method

View File

@@ -0,0 +1,492 @@
.class public final Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;
.super Landroid/opengl/GLSurfaceView;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;
}
.end annotation
# static fields
.field public static final synthetic $r8$clinit:I
# instance fields
.field public isOrientationListenerRegistered:Z
.field public isStarted:Z
.field public final mainHandler:Landroid/os/Handler;
.field public final orientationListener:Lcom/google/android/exoplayer2/video/spherical/OrientationListener;
.field public final orientationSensor:Landroid/hardware/Sensor;
.field public final scene:Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;
.field public final sensorManager:Landroid/hardware/SensorManager;
.field public surface:Landroid/view/Surface;
.field public surfaceTexture:Landroid/graphics/SurfaceTexture;
.field public final touchTracker:Lcom/google/android/exoplayer2/video/spherical/TouchTracker;
.field public useSensorRotation:Z
.field public final videoSurfaceListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
# direct methods
.method public static synthetic $r8$lambda$UBzzr65Zo1XPkIEBcqr2dbWk4y4(Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;Landroid/graphics/SurfaceTexture;)V
.locals 0
.line 0
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->lambda$onSurfaceTextureAvailable$1(Landroid/graphics/SurfaceTexture;)V
return-void
.end method
.method public static synthetic $r8$lambda$UfBR3e5C5rYBioPdx5p65nBUCbA(Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;)V
.locals 0
.line 0
invoke-virtual {p0}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->lambda$onDetachedFromWindow$0()V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.locals 1
const/4 v0, 0x0
.line 92
invoke-direct {p0, p1, v0}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 5
.param p2 # Landroid/util/AttributeSet;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.line 96
invoke-direct {p0, p1, p2}, Landroid/opengl/GLSurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.line 97
new-instance p2, Ljava/util/concurrent/CopyOnWriteArrayList;
invoke-direct {p2}, Ljava/util/concurrent/CopyOnWriteArrayList;-><init>()V
iput-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->videoSurfaceListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
.line 98
new-instance p2, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v0
invoke-direct {p2, v0}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->mainHandler:Landroid/os/Handler;
const-string p2, "sensor"
.line 102
invoke-virtual {p1, p2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p2
invoke-static {p2}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p2
check-cast p2, Landroid/hardware/SensorManager;
iput-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->sensorManager:Landroid/hardware/SensorManager;
.line 104
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v1, 0x12
if-lt v0, v1, :cond_0
const/16 v0, 0xf
.line 109
invoke-virtual {p2, v0}, Landroid/hardware/SensorManager;->getDefaultSensor(I)Landroid/hardware/Sensor;
move-result-object v0
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
if-nez v0, :cond_1
const/16 v0, 0xb
.line 112
invoke-virtual {p2, v0}, Landroid/hardware/SensorManager;->getDefaultSensor(I)Landroid/hardware/Sensor;
move-result-object v0
:cond_1
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->orientationSensor:Landroid/hardware/Sensor;
.line 116
new-instance p2, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;
invoke-direct {p2}, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;-><init>()V
iput-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->scene:Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;
.line 117
new-instance v0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;
invoke-direct {v0, p0, p2}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$Renderer;-><init>(Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;)V
.line 119
new-instance p2, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;
const/high16 v1, 0x41c80000 # 25.0f
invoke-direct {p2, p1, v0, v1}, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;-><init>(Landroid/content/Context;Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;F)V
iput-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->touchTracker:Lcom/google/android/exoplayer2/video/spherical/TouchTracker;
const-string v1, "window"
.line 120
invoke-virtual {p1, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/view/WindowManager;
.line 121
invoke-static {p1}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/view/WindowManager;
invoke-interface {p1}, Landroid/view/WindowManager;->getDefaultDisplay()Landroid/view/Display;
move-result-object p1
.line 122
new-instance v1, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;
const/4 v2, 0x2
new-array v3, v2, [Lcom/google/android/exoplayer2/video/spherical/OrientationListener$Listener;
const/4 v4, 0x0
aput-object p2, v3, v4
const/4 v4, 0x1
aput-object v0, v3, v4
invoke-direct {v1, p1, v3}, Lcom/google/android/exoplayer2/video/spherical/OrientationListener;-><init>(Landroid/view/Display;[Lcom/google/android/exoplayer2/video/spherical/OrientationListener$Listener;)V
iput-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->orientationListener:Lcom/google/android/exoplayer2/video/spherical/OrientationListener;
iput-boolean v4, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->useSensorRotation:Z
.line 125
invoke-virtual {p0, v2}, Landroid/opengl/GLSurfaceView;->setEGLContextClientVersion(I)V
.line 126
invoke-virtual {p0, v0}, Landroid/opengl/GLSurfaceView;->setRenderer(Landroid/opengl/GLSurfaceView$Renderer;)V
.line 127
invoke-virtual {p0, p2}, Landroid/view/View;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V
return-void
.end method
.method public static synthetic access$000(Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;Landroid/graphics/SurfaceTexture;)V
.locals 0
.line 56
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->onSurfaceTextureAvailable(Landroid/graphics/SurfaceTexture;)V
return-void
.end method
.method public static releaseSurface(Landroid/graphics/SurfaceTexture;Landroid/view/Surface;)V
.locals 0
if-eqz p0, :cond_0
.line 250
invoke-virtual {p0}, Landroid/graphics/SurfaceTexture;->release()V
:cond_0
if-eqz p1, :cond_1
.line 253
invoke-virtual {p1}, Landroid/view/Surface;->release()V
:cond_1
return-void
.end method
# virtual methods
.method public final synthetic lambda$onDetachedFromWindow$0()V
.locals 4
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->surface:Landroid/view/Surface;
const/4 v1, 0x0
if-eqz v0, :cond_1
iget-object v2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->videoSurfaceListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
.line 207
invoke-virtual {v2}, Ljava/util/concurrent/CopyOnWriteArrayList;->iterator()Ljava/util/Iterator;
move-result-object v2
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-nez v3, :cond_0
goto :goto_0
:cond_0
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
invoke-static {v0}, Lcom/amazonaws/handlers/HandlerChainFactory$$ExternalSyntheticThrowCCEIfNotNull0;->m(Ljava/lang/Object;)V
.line 208
throw v1
:cond_1
:goto_0
iget-object v2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->surfaceTexture:Landroid/graphics/SurfaceTexture;
.line 211
invoke-static {v2, v0}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->releaseSurface(Landroid/graphics/SurfaceTexture;Landroid/view/Surface;)V
iput-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->surfaceTexture:Landroid/graphics/SurfaceTexture;
iput-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->surface:Landroid/view/Surface;
return-void
.end method
.method public final synthetic lambda$onSurfaceTextureAvailable$1(Landroid/graphics/SurfaceTexture;)V
.locals 3
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->surfaceTexture:Landroid/graphics/SurfaceTexture;
iget-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->surface:Landroid/view/Surface;
.line 237
new-instance v2, Landroid/view/Surface;
invoke-direct {v2, p1}, Landroid/view/Surface;-><init>(Landroid/graphics/SurfaceTexture;)V
iput-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->surfaceTexture:Landroid/graphics/SurfaceTexture;
iput-object v2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->surface:Landroid/view/Surface;
iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->videoSurfaceListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
.line 240
invoke-virtual {p1}, Ljava/util/concurrent/CopyOnWriteArrayList;->iterator()Ljava/util/Iterator;
move-result-object p1
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-nez v2, :cond_0
.line 243
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->releaseSurface(Landroid/graphics/SurfaceTexture;Landroid/view/Surface;)V
return-void
.line 240
:cond_0
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object p1
invoke-static {p1}, Lcom/amazonaws/handlers/HandlerChainFactory$$ExternalSyntheticThrowCCEIfNotNull0;->m(Ljava/lang/Object;)V
const/4 p1, 0x0
.line 241
throw p1
.end method
.method public onDetachedFromWindow()V
.locals 2
.line 200
invoke-super {p0}, Landroid/opengl/GLSurfaceView;->onDetachedFromWindow()V
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->mainHandler:Landroid/os/Handler;
.line 203
new-instance v1, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$$ExternalSyntheticLambda1;
invoke-direct {v1, p0}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$$ExternalSyntheticLambda1;-><init>(Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method public onPause()V
.locals 1
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->isStarted:Z
.line 193
invoke-virtual {p0}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->updateOrientationListenerRegistration()V
.line 194
invoke-super {p0}, Landroid/opengl/GLSurfaceView;->onPause()V
return-void
.end method
.method public onResume()V
.locals 1
.line 185
invoke-super {p0}, Landroid/opengl/GLSurfaceView;->onResume()V
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->isStarted:Z
.line 187
invoke-virtual {p0}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->updateOrientationListenerRegistration()V
return-void
.end method
.method public final onSurfaceTextureAvailable(Landroid/graphics/SurfaceTexture;)V
.locals 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->mainHandler:Landroid/os/Handler;
.line 233
new-instance v1, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$$ExternalSyntheticLambda0;
invoke-direct {v1, p0, p1}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView$$ExternalSyntheticLambda0;-><init>(Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;Landroid/graphics/SurfaceTexture;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method public setDefaultStereoMode(I)V
.locals 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->scene:Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;
.line 174
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/video/spherical/SceneRenderer;->setDefaultStereoMode(I)V
return-void
.end method
.method public setUseSensorRotation(Z)V
.locals 0
iput-boolean p1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->useSensorRotation:Z
.line 180
invoke-virtual {p0}, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->updateOrientationListenerRegistration()V
return-void
.end method
.method public final updateOrientationListenerRegistration()V
.locals 5
iget-boolean v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->useSensorRotation:Z
const/4 v1, 0x0
if-eqz v0, :cond_0
iget-boolean v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->isStarted:Z
if-eqz v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
move v0, v1
:goto_0
iget-object v2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->orientationSensor:Landroid/hardware/Sensor;
if-eqz v2, :cond_3
iget-boolean v3, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->isOrientationListenerRegistered:Z
if-ne v0, v3, :cond_1
goto :goto_2
:cond_1
if-eqz v0, :cond_2
iget-object v3, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->sensorManager:Landroid/hardware/SensorManager;
iget-object v4, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->orientationListener:Lcom/google/android/exoplayer2/video/spherical/OrientationListener;
.line 223
invoke-virtual {v3, v4, v2, v1}, Landroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;I)Z
goto :goto_1
:cond_2
iget-object v1, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->sensorManager:Landroid/hardware/SensorManager;
iget-object v2, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->orientationListener:Lcom/google/android/exoplayer2/video/spherical/OrientationListener;
.line 226
invoke-virtual {v1, v2}, Landroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;)V
:goto_1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView;->isOrientationListenerRegistered:Z
:cond_3
:goto_2
return-void
.end method

View File

@@ -0,0 +1,22 @@
.class public interface abstract Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/spherical/TouchTracker;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "Listener"
.end annotation
# virtual methods
.method public abstract onScrollChange(Landroid/graphics/PointF;)V
.end method
.method public abstract onSingleTapUp(Landroid/view/MotionEvent;)Z
.end method

View File

@@ -0,0 +1,245 @@
.class public final Lcom/google/android/exoplayer2/video/spherical/TouchTracker;
.super Landroid/view/GestureDetector$SimpleOnGestureListener;
.source "SourceFile"
# interfaces
.implements Landroid/view/View$OnTouchListener;
.implements Lcom/google/android/exoplayer2/video/spherical/OrientationListener$Listener;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;
}
.end annotation
# instance fields
.field public final accumulatedTouchOffsetDegrees:Landroid/graphics/PointF;
.field public final gestureDetector:Landroid/view/GestureDetector;
.field public final listener:Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;
.field public final previousTouchPointPx:Landroid/graphics/PointF;
.field public final pxPerDegrees:F
.field public volatile roll:F
# direct methods
.method public constructor <init>(Landroid/content/Context;Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;F)V
.locals 1
.line 73
invoke-direct {p0}, Landroid/view/GestureDetector$SimpleOnGestureListener;-><init>()V
.line 62
new-instance v0, Landroid/graphics/PointF;
invoke-direct {v0}, Landroid/graphics/PointF;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->previousTouchPointPx:Landroid/graphics/PointF;
.line 63
new-instance v0, Landroid/graphics/PointF;
invoke-direct {v0}, Landroid/graphics/PointF;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->accumulatedTouchOffsetDegrees:Landroid/graphics/PointF;
iput-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->listener:Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;
iput p3, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->pxPerDegrees:F
.line 76
new-instance p2, Landroid/view/GestureDetector;
invoke-direct {p2, p1, p0}, Landroid/view/GestureDetector;-><init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;)V
iput-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->gestureDetector:Landroid/view/GestureDetector;
const p1, 0x40490fdb # (float)Math.PI
iput p1, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->roll:F
return-void
.end method
# virtual methods
.method public onDown(Landroid/view/MotionEvent;)Z
.locals 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->previousTouchPointPx:Landroid/graphics/PointF;
.line 93
invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F
move-result v1
invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F
move-result p1
invoke-virtual {v0, v1, p1}, Landroid/graphics/PointF;->set(FF)V
const/4 p1, 0x1
return p1
.end method
.method public onOrientationChange([FF)V
.locals 0
neg-float p1, p2
iput p1, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->roll:F
return-void
.end method
.method public onScroll(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z
.locals 4
.line 100
invoke-virtual {p2}, Landroid/view/MotionEvent;->getX()F
move-result p1
iget-object p3, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->previousTouchPointPx:Landroid/graphics/PointF;
iget p3, p3, Landroid/graphics/PointF;->x:F
sub-float/2addr p1, p3
iget p3, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->pxPerDegrees:F
div-float/2addr p1, p3
.line 101
invoke-virtual {p2}, Landroid/view/MotionEvent;->getY()F
move-result p3
iget-object p4, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->previousTouchPointPx:Landroid/graphics/PointF;
iget v0, p4, Landroid/graphics/PointF;->y:F
sub-float/2addr p3, v0
iget v0, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->pxPerDegrees:F
div-float/2addr p3, v0
.line 102
invoke-virtual {p2}, Landroid/view/MotionEvent;->getX()F
move-result v0
invoke-virtual {p2}, Landroid/view/MotionEvent;->getY()F
move-result p2
invoke-virtual {p4, v0, p2}, Landroid/graphics/PointF;->set(FF)V
iget p2, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->roll:F
float-to-double v0, p2
.line 105
invoke-static {v0, v1}, Ljava/lang/Math;->cos(D)D
move-result-wide v2
double-to-float p2, v2
.line 106
invoke-static {v0, v1}, Ljava/lang/Math;->sin(D)D
move-result-wide v0
double-to-float p4, v0
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->accumulatedTouchOffsetDegrees:Landroid/graphics/PointF;
.line 111
iget v1, v0, Landroid/graphics/PointF;->x:F
mul-float v2, p2, p1
mul-float v3, p4, p3
sub-float/2addr v2, v3
sub-float/2addr v1, v2
iput v1, v0, Landroid/graphics/PointF;->x:F
.line 113
iget v1, v0, Landroid/graphics/PointF;->y:F
mul-float/2addr p4, p1
mul-float/2addr p2, p3
add-float/2addr p4, p2
add-float/2addr v1, p4
iput v1, v0, Landroid/graphics/PointF;->y:F
const/high16 p1, 0x42340000 # 45.0f
.line 115
invoke-static {p1, v1}, Ljava/lang/Math;->min(FF)F
move-result p1
const/high16 p2, -0x3dcc0000 # -45.0f
invoke-static {p2, p1}, Ljava/lang/Math;->max(FF)F
move-result p1
iput p1, v0, Landroid/graphics/PointF;->y:F
iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->listener:Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;
iget-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->accumulatedTouchOffsetDegrees:Landroid/graphics/PointF;
.line 117
invoke-interface {p1, p2}, Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;->onScrollChange(Landroid/graphics/PointF;)V
const/4 p1, 0x1
return p1
.end method
.method public onSingleTapUp(Landroid/view/MotionEvent;)Z
.locals 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->listener:Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;
.line 123
invoke-interface {v0, p1}, Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;->onSingleTapUp(Landroid/view/MotionEvent;)Z
move-result p1
return p1
.end method
.method public onTouch(Landroid/view/View;Landroid/view/MotionEvent;)Z
.locals 0
iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->gestureDetector:Landroid/view/GestureDetector;
.line 87
invoke-virtual {p1, p2}, Landroid/view/GestureDetector;->onTouchEvent(Landroid/view/MotionEvent;)Z
move-result p1
return p1
.end method