a.smali
.class public final Lcom/polly/mobile/video/proc/a;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/polly/mobile/video/proc/h;
# instance fields
.field private a:Landroid/opengl/EGLDisplay;
.field private b:Landroid/opengl/EGLContext;
.field private c:Landroid/opengl/EGLConfig;
.field private d:I
# direct methods
.method public constructor <init>()V
.registers 3
const/4 v0, 0x0
const/4 v1, 0x0
.line 68
invoke-direct {p0, v0, v1}, Lcom/polly/mobile/video/proc/a;-><init>(Landroid/opengl/EGLContext;I)V
return-void
.end method
.method public constructor <init>(Landroid/opengl/EGLContext;I)V
.registers 12
.line 77
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 56
sget-object v0, Landroid/opengl/EGL14;->EGL_NO_DISPLAY:Landroid/opengl/EGLDisplay;
iput-object v0, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
.line 57
sget-object v0, Landroid/opengl/EGL14;->EGL_NO_CONTEXT:Landroid/opengl/EGLContext;
iput-object v0, p0, Lcom/polly/mobile/video/proc/a;->b:Landroid/opengl/EGLContext;
const/4 v0, 0x0
.line 58
iput-object v0, p0, Lcom/polly/mobile/video/proc/a;->c:Landroid/opengl/EGLConfig;
const/4 v1, -0x1
.line 59
iput v1, p0, Lcom/polly/mobile/video/proc/a;->d:I
.line 78
sget-object v2, Landroid/opengl/EGL14;->EGL_NO_DISPLAY:Landroid/opengl/EGLDisplay;
iput-object v2, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
.line 79
sget-object v2, Landroid/opengl/EGL14;->EGL_NO_CONTEXT:Landroid/opengl/EGLContext;
iput-object v2, p0, Lcom/polly/mobile/video/proc/a;->b:Landroid/opengl/EGLContext;
.line 80
iput-object v0, p0, Lcom/polly/mobile/video/proc/a;->c:Landroid/opengl/EGLConfig;
.line 81
iput v1, p0, Lcom/polly/mobile/video/proc/a;->d:I
.line 82
iget-object v1, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
sget-object v2, Landroid/opengl/EGL14;->EGL_NO_DISPLAY:Landroid/opengl/EGLDisplay;
const-string v3, "EglCore"
if-ne v1, v2, :cond_c2
if-nez p1, :cond_29
.line 88
sget-object p1, Landroid/opengl/EGL14;->EGL_NO_CONTEXT:Landroid/opengl/EGLContext;
:cond_29
const/4 v1, 0x0
.line 91
invoke-static {v1}, Landroid/opengl/EGL14;->eglGetDisplay(I)Landroid/opengl/EGLDisplay;
move-result-object v2
iput-object v2, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
.line 92
sget-object v4, Landroid/opengl/EGL14;->EGL_NO_DISPLAY:Landroid/opengl/EGLDisplay;
if-eq v2, v4, :cond_b7
const/4 v2, 0x2
new-array v4, v2, [I
.line 97
iget-object v5, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
const/4 v6, 0x1
invoke-static {v5, v4, v1, v4, v6}, Landroid/opengl/EGL14;->eglInitialize(Landroid/opengl/EGLDisplay;[II[II)Z
move-result v4
if-eqz v4, :cond_aa
and-int/lit8 v0, p2, 0x2
const/4 v4, 0x3
if-eqz v0, :cond_64
.line 106
invoke-direct {p0, p2, v4}, Lcom/polly/mobile/video/proc/a;->b(II)Landroid/opengl/EGLConfig;
move-result-object v0
if-eqz v0, :cond_64
new-array v5, v4, [I
.line 108
fill-array-data v5, :array_ce
.line 112
iget-object v7, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
invoke-static {v7, v0, p1, v5, v1}, Landroid/opengl/EGL14;->eglCreateContext(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Landroid/opengl/EGLContext;[II)Landroid/opengl/EGLContext;
move-result-object v5
.line 113
invoke-static {}, Landroid/opengl/EGL14;->eglGetError()I
move-result v7
const/16 v8, 0x3000
if-ne v7, v8, :cond_64
.line 114
iput-object v0, p0, Lcom/polly/mobile/video/proc/a;->c:Landroid/opengl/EGLConfig;
.line 115
iput-object v5, p0, Lcom/polly/mobile/video/proc/a;->b:Landroid/opengl/EGLContext;
.line 116
iput v4, p0, Lcom/polly/mobile/video/proc/a;->d:I
.line 121
:cond_64
iget-object v0, p0, Lcom/polly/mobile/video/proc/a;->b:Landroid/opengl/EGLContext;
sget-object v5, Landroid/opengl/EGL14;->EGL_NO_CONTEXT:Landroid/opengl/EGLContext;
if-ne v0, v5, :cond_92
.line 122
invoke-direct {p0, p2, v2}, Lcom/polly/mobile/video/proc/a;->b(II)Landroid/opengl/EGLConfig;
move-result-object p2
if-eqz p2, :cond_87
new-array v0, v4, [I
.line 128
fill-array-data v0, :array_d8
.line 132
iget-object v3, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
invoke-static {v3, p2, p1, v0, v1}, Landroid/opengl/EGL14;->eglCreateContext(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Landroid/opengl/EGLContext;[II)Landroid/opengl/EGLContext;
move-result-object p1
const-string v0, "eglCreateContext"
.line 133
invoke-static {v0}, Lcom/polly/mobile/video/proc/a;->a(Ljava/lang/String;)V
.line 134
iput-object p2, p0, Lcom/polly/mobile/video/proc/a;->c:Landroid/opengl/EGLConfig;
.line 135
iput-object p1, p0, Lcom/polly/mobile/video/proc/a;->b:Landroid/opengl/EGLContext;
.line 136
iput v2, p0, Lcom/polly/mobile/video/proc/a;->d:I
goto :goto_92
:cond_87
const-string p1, "Unable to find a suitable EGLConfig"
.line 124
invoke-static {v3, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 125
new-instance p2, Ljava/lang/RuntimeException;
invoke-direct {p2, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p2
:cond_92
:goto_92
new-array p1, v6, [I
.line 140
iget-object p2, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
iget-object v0, p0, Lcom/polly/mobile/video/proc/a;->b:Landroid/opengl/EGLContext;
const/16 v2, 0x3098
invoke-static {p2, v0, v2, p1, v1}, Landroid/opengl/EGL14;->eglQueryContext(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLContext;I[II)Z
.line 141
new-instance p2, Ljava/lang/StringBuilder;
const-string v0, "EGLContext created, client version "
invoke-direct {p2, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
aget p1, p1, v1
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
return-void
.line 98
:cond_aa
iput-object v0, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
const-string p1, "unable to initialize EGL14"
.line 99
invoke-static {v3, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 100
new-instance p2, Ljava/lang/RuntimeException;
invoke-direct {p2, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p2
:cond_b7
const-string p1, "unable to get EGL14 display"
.line 93
invoke-static {v3, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 94
new-instance p2, Ljava/lang/RuntimeException;
invoke-direct {p2, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p2
:cond_c2
const-string p1, "EGL already set up"
.line 83
invoke-static {v3, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 84
new-instance p2, Ljava/lang/RuntimeException;
invoke-direct {p2, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p2
nop
:array_ce
.array-data 4
0x3098
0x3
0x3038
.end array-data
:array_d8
.array-data 4
0x3098
0x2
0x3038
.end array-data
.end method
.method private static a(Ljava/lang/String;)V
.registers 4
.line 384
invoke-static {}, Landroid/opengl/EGL14;->eglGetError()I
move-result v0
const/16 v1, 0x3000
if-ne v0, v1, :cond_9
return-void
.line 385
:cond_9
new-instance v1, Ljava/lang/RuntimeException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, ": EGL error: 0x"
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {v0}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object p0
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v1, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method private b(II)Landroid/opengl/EGLConfig;
.registers 16
const/4 v0, 0x3
const/4 v1, 0x4
if-lt p2, v0, :cond_7
const/16 v2, 0x44
goto :goto_8
:cond_7
const/4 v2, 0x4
:goto_8
const/16 v3, 0x11
new-array v5, v3, [I
const/16 v3, 0x3024
const/4 v12, 0x0
aput v3, v5, v12
const/4 v3, 0x1
const/16 v4, 0x8
aput v4, v5, v3
const/4 v6, 0x2
const/16 v7, 0x3023
aput v7, v5, v6
aput v4, v5, v0
const/16 v0, 0x3022
aput v0, v5, v1
const/4 v0, 0x5
aput v4, v5, v0
const/4 v0, 0x6
const/16 v1, 0x3021
aput v1, v5, v0
const/4 v0, 0x7
aput v4, v5, v0
const/16 v0, 0x3025
aput v0, v5, v4
const/16 v0, 0x9
const/16 v1, 0x10
aput v1, v5, v0
const/16 v0, 0xa
const/16 v6, 0x3026
aput v6, v5, v0
const/16 v0, 0xb
aput v4, v5, v0
const/16 v0, 0xc
const/16 v4, 0x3040
aput v4, v5, v0
const/16 v0, 0xd
aput v2, v5, v0
const/16 v0, 0x3038
const/16 v2, 0xe
aput v0, v5, v2
const/16 v4, 0xf
aput v12, v5, v4
aput v0, v5, v1
and-int/2addr p1, v3
if-eqz p1, :cond_5f
const/16 p1, 0x3142
aput p1, v5, v2
aput v3, v5, v4
:cond_5f
new-array p1, v3, [Landroid/opengl/EGLConfig;
new-array v10, v3, [I
.line 176
iget-object v4, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
const/4 v6, 0x0
const/4 v8, 0x0
const/4 v9, 0x1
const/4 v11, 0x0
move-object v7, p1
invoke-static/range {v4 .. v11}, Landroid/opengl/EGL14;->eglChooseConfig(Landroid/opengl/EGLDisplay;[II[Landroid/opengl/EGLConfig;II[II)Z
move-result v0
if-nez v0, :cond_8a
.line 177
new-instance p1, Ljava/lang/StringBuilder;
const-string v0, "unable to find RGB8888 / "
invoke-direct {p1, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p2, " EGLConfig"
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string p2, "EglCore"
invoke-static {p2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
const/4 p1, 0x0
return-object p1
.line 180
:cond_8a
aget-object p1, p1, v12
return-object p1
.end method
.method private static c(Lcom/polly/mobile/video/proc/d;)Landroid/opengl/EGLSurface;
.registers 1
if-eqz p0, :cond_7
.line 1015
iget-object p0, p0, Lcom/polly/mobile/video/proc/d;->a:Ljava/lang/Object;
.line 392
check-cast p0, Landroid/opengl/EGLSurface;
goto :goto_8
:cond_7
const/4 p0, 0x0
:goto_8
return-object p0
.end method
# virtual methods
.method public final a(II)Lcom/polly/mobile/video/proc/d;
.registers 6
const/4 v0, 0x5
new-array v0, v0, [I
const/16 v1, 0x3057
const/4 v2, 0x0
aput v1, v0, v2
const/4 v1, 0x1
aput p1, v0, v1
const/4 p1, 0x2
const/16 v1, 0x3056
aput v1, v0, p1
const/4 p1, 0x3
aput p2, v0, p1
const/4 p1, 0x4
const/16 p2, 0x3038
aput p2, v0, p1
.line 261
iget-object p1, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
iget-object p2, p0, Lcom/polly/mobile/video/proc/a;->c:Landroid/opengl/EGLConfig;
invoke-static {p1, p2, v0, v2}, Landroid/opengl/EGL14;->eglCreatePbufferSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;[II)Landroid/opengl/EGLSurface;
move-result-object p1
const-string p2, "eglCreatePbufferSurface"
.line 263
invoke-static {p2}, Lcom/polly/mobile/video/proc/a;->a(Ljava/lang/String;)V
if-eqz p1, :cond_2d
.line 267
new-instance p2, Lcom/polly/mobile/video/proc/d;
invoke-direct {p2, p1}, Lcom/polly/mobile/video/proc/d;-><init>(Ljava/lang/Object;)V
return-object p2
.line 265
:cond_2d
new-instance p1, Ljava/lang/RuntimeException;
const-string p2, "surface was null"
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public final a()V
.registers 4
.line 191
iget-object v0, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
sget-object v1, Landroid/opengl/EGL14;->EGL_NO_DISPLAY:Landroid/opengl/EGLDisplay;
if-eq v0, v1, :cond_1e
.line 194
iget-object v0, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
sget-object v1, Landroid/opengl/EGL14;->EGL_NO_SURFACE:Landroid/opengl/EGLSurface;
sget-object v2, Landroid/opengl/EGL14;->EGL_NO_CONTEXT:Landroid/opengl/EGLContext;
invoke-static {v0, v1, v1, v2}, Landroid/opengl/EGL14;->eglMakeCurrent(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;Landroid/opengl/EGLSurface;Landroid/opengl/EGLContext;)Z
.line 196
iget-object v0, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
iget-object v1, p0, Lcom/polly/mobile/video/proc/a;->b:Landroid/opengl/EGLContext;
invoke-static {v0, v1}, Landroid/opengl/EGL14;->eglDestroyContext(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLContext;)Z
.line 197
invoke-static {}, Landroid/opengl/EGL14;->eglReleaseThread()Z
.line 198
iget-object v0, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
invoke-static {v0}, Landroid/opengl/EGL14;->eglTerminate(Landroid/opengl/EGLDisplay;)Z
.line 201
:cond_1e
sget-object v0, Landroid/opengl/EGL14;->EGL_NO_DISPLAY:Landroid/opengl/EGLDisplay;
iput-object v0, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
.line 202
sget-object v0, Landroid/opengl/EGL14;->EGL_NO_CONTEXT:Landroid/opengl/EGLContext;
iput-object v0, p0, Lcom/polly/mobile/video/proc/a;->b:Landroid/opengl/EGLContext;
const/4 v0, 0x0
.line 203
iput-object v0, p0, Lcom/polly/mobile/video/proc/a;->c:Landroid/opengl/EGLConfig;
return-void
.end method
.method public final a(Lcom/polly/mobile/video/proc/d;)V
.registers 3
.line 273
invoke-static {p1}, Lcom/polly/mobile/video/proc/a;->c(Lcom/polly/mobile/video/proc/d;)Landroid/opengl/EGLSurface;
move-result-object p1
.line 274
iget-object v0, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
invoke-static {v0, p1}, Landroid/opengl/EGL14;->eglDestroySurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;)Z
return-void
.end method
.method public final b()I
.registers 2
.line 361
iget v0, p0, Lcom/polly/mobile/video/proc/a;->d:I
return v0
.end method
.method public final b(Lcom/polly/mobile/video/proc/d;)V
.registers 4
.line 279
sget-object v0, Landroid/opengl/EGL14;->EGL_NO_DISPLAY:Landroid/opengl/EGLDisplay;
.line 283
invoke-static {p1}, Lcom/polly/mobile/video/proc/a;->c(Lcom/polly/mobile/video/proc/d;)Landroid/opengl/EGLSurface;
move-result-object p1
.line 284
iget-object v0, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
iget-object v1, p0, Lcom/polly/mobile/video/proc/a;->b:Landroid/opengl/EGLContext;
invoke-static {v0, p1, p1, v1}, Landroid/opengl/EGL14;->eglMakeCurrent(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;Landroid/opengl/EGLSurface;Landroid/opengl/EGLContext;)Z
move-result p1
if-eqz p1, :cond_11
return-void
.line 285
:cond_11
new-instance p1, Ljava/lang/RuntimeException;
const-string v0, "eglMakeCurrent failed"
invoke-direct {p1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method protected final finalize()V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
.line 209
:try_start_0
iget-object v0, p0, Lcom/polly/mobile/video/proc/a;->a:Landroid/opengl/EGLDisplay;
sget-object v1, Landroid/opengl/EGL14;->EGL_NO_DISPLAY:Landroid/opengl/EGLDisplay;
if-eq v0, v1, :cond_10
const-string v0, "EglCore"
const-string v1, "WARNING: EglCore was not explicitly released -- state may be leaked"
.line 214
invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 215
invoke-virtual {p0}, Lcom/polly/mobile/video/proc/a;->a()V
:try_end_10
.catchall {:try_start_0 .. :try_end_10} :catchall_14
.line 218
:cond_10
invoke-super {p0}, Ljava/lang/Object;->finalize()V
return-void
:catchall_14
move-exception v0
invoke-super {p0}, Ljava/lang/Object;->finalize()V
throw v0
.end method