o.smali
.class public Lcom/polly/mobile/videosdk/o;
.super Ljava/lang/Thread;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/polly/mobile/videosdk/o$a;
}
.end annotation
# static fields
.field static final a:Ljava/lang/String;
# instance fields
.field b:Ljava/lang/ref/WeakReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ref/WeakReference<",
"Lcom/polly/mobile/videosdk/m;",
">;"
}
.end annotation
.end field
.field final c:Ljava/lang/Object;
.field d:Z
.field e:Z
.field f:Z
.field g:Ljava/util/concurrent/CountDownLatch;
.field h:Lcom/polly/mobile/videosdk/r;
.field private i:Lcom/polly/mobile/videosdk/o$a;
.field private j:Z
.field private k:I
.field private l:I
.field private m:Z
.field private n:Lcom/polly/mobile/video/proc/h;
.field private o:Lcom/polly/mobile/video/proc/GlOffScreenSurface;
.field private p:Z
.field private q:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Ljava/lang/Runnable;",
">;"
}
.end annotation
.end field
.field private r:Lcom/polly/mobile/videosdk/f;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 17
const-class v0, Lcom/polly/mobile/videosdk/o;
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/polly/mobile/videosdk/o;->a:Ljava/lang/String;
return-void
.end method
.method constructor <init>(Lcom/polly/mobile/videosdk/o$a;Z)V
.registers 6
.line 58
invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
const/4 v0, 0x4
.line 22
iput v0, p0, Lcom/polly/mobile/videosdk/o;->k:I
.line 23
iput v0, p0, Lcom/polly/mobile/videosdk/o;->l:I
const/4 v0, 0x0
.line 32
iput-boolean v0, p0, Lcom/polly/mobile/videosdk/o;->p:Z
.line 34
new-instance v1, Ljava/lang/Object;
invoke-direct {v1}, Ljava/lang/Object;-><init>()V
iput-object v1, p0, Lcom/polly/mobile/videosdk/o;->c:Ljava/lang/Object;
.line 38
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
iput-object v1, p0, Lcom/polly/mobile/videosdk/o;->q:Ljava/util/ArrayList;
.line 40
iput-boolean v0, p0, Lcom/polly/mobile/videosdk/o;->f:Z
.line 41
new-instance v0, Ljava/util/concurrent/CountDownLatch;
const/4 v1, 0x1
invoke-direct {v0, v1}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V
iput-object v0, p0, Lcom/polly/mobile/videosdk/o;->g:Ljava/util/concurrent/CountDownLatch;
const/4 v0, 0x0
.line 43
iput-object v0, p0, Lcom/polly/mobile/videosdk/o;->h:Lcom/polly/mobile/videosdk/r;
.line 44
iput-object v0, p0, Lcom/polly/mobile/videosdk/o;->r:Lcom/polly/mobile/videosdk/f;
.line 59
sget-object v0, Lcom/polly/mobile/videosdk/o;->a:Ljava/lang/String;
const-string v2, "OffScreenRenderThread create "
invoke-static {v0, v2}, Lcom/polly/mobile/util/f;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 60
iput-object p1, p0, Lcom/polly/mobile/videosdk/o;->i:Lcom/polly/mobile/videosdk/o$a;
.line 61
iput-boolean v1, p0, Lcom/polly/mobile/videosdk/o;->j:Z
if-eqz p2, :cond_3d
const-string p1, "ren"
.line 63
invoke-static {p1}, Lcom/polly/mobile/videosdk/g;->a(Ljava/lang/String;)Lcom/polly/mobile/videosdk/f;
move-result-object p1
iput-object p1, p0, Lcom/polly/mobile/videosdk/o;->r:Lcom/polly/mobile/videosdk/f;
:cond_3d
return-void
.end method
.method private a()Z
.registers 7
.line 183
sget-object v0, Lcom/polly/mobile/videosdk/o;->a:Ljava/lang/String;
const-string v1, "enter setupGLEnv"
invoke-static {v0, v1}, Lcom/polly/mobile/util/f;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 185
iget-boolean v0, p0, Lcom/polly/mobile/videosdk/o;->m:Z
const/4 v1, 0x1
if-eqz v0, :cond_d
return v1
:cond_d
const/4 v0, 0x0
.line 191
:try_start_e
invoke-direct {p0}, Lcom/polly/mobile/videosdk/o;->b()Lcom/polly/mobile/videosdk/m;
move-result-object v2
if-eqz v2, :cond_23
.line 193
iget v3, p0, Lcom/polly/mobile/videosdk/o;->k:I
iget v4, p0, Lcom/polly/mobile/videosdk/o;->l:I
invoke-interface {v2, v3, v4}, Lcom/polly/mobile/videosdk/m;->a(II)Z
move-result v3
.line 196
invoke-interface {v2}, Lcom/polly/mobile/videosdk/m;->a()Z
move-result v2
iput-boolean v2, p0, Lcom/polly/mobile/videosdk/o;->p:Z
goto :goto_24
:cond_23
const/4 v3, 0x0
:goto_24
if-nez v3, :cond_4e
.line 3212
sget-object v2, Lcom/polly/mobile/videosdk/o;->a:Ljava/lang/String;
const-string v3, "initExclusiveContext"
invoke-static {v2, v3}, Lcom/polly/mobile/util/f;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 3213
iget-boolean v2, p0, Lcom/polly/mobile/videosdk/o;->j:Z
invoke-static {v2}, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->a(Z)Lcom/polly/mobile/video/proc/h;
move-result-object v2
iput-object v2, p0, Lcom/polly/mobile/videosdk/o;->n:Lcom/polly/mobile/video/proc/h;
.line 3214
invoke-interface {v2}, Lcom/polly/mobile/video/proc/h;->b()I
move-result v2
const/4 v3, 0x3
if-ne v2, v3, :cond_3e
.line 3215
iput-boolean v1, p0, Lcom/polly/mobile/videosdk/o;->p:Z
.line 3218
:cond_3e
new-instance v2, Lcom/polly/mobile/video/proc/GlOffScreenSurface;
iget-object v3, p0, Lcom/polly/mobile/videosdk/o;->n:Lcom/polly/mobile/video/proc/h;
iget v4, p0, Lcom/polly/mobile/videosdk/o;->k:I
iget v5, p0, Lcom/polly/mobile/videosdk/o;->l:I
invoke-direct {v2, v3, v4, v5}, Lcom/polly/mobile/video/proc/GlOffScreenSurface;-><init>(Lcom/polly/mobile/video/proc/h;II)V
iput-object v2, p0, Lcom/polly/mobile/videosdk/o;->o:Lcom/polly/mobile/video/proc/GlOffScreenSurface;
.line 3219
invoke-virtual {v2}, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->b()V
.line 203
:cond_4e
iput-boolean v1, p0, Lcom/polly/mobile/videosdk/o;->m:Z
:try_end_50
.catch Ljava/lang/RuntimeException; {:try_start_e .. :try_end_50} :catch_51
return v1
:catch_51
return v0
.end method
.method private b()Lcom/polly/mobile/videosdk/m;
.registers 2
.line 230
iget-object v0, p0, Lcom/polly/mobile/videosdk/o;->b:Ljava/lang/ref/WeakReference;
if-eqz v0, :cond_b
.line 231
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/polly/mobile/videosdk/m;
return-object v0
:cond_b
const/4 v0, 0x0
return-object v0
.end method
# virtual methods
.method public run()V
.registers 8
.line 125
invoke-direct {p0}, Lcom/polly/mobile/videosdk/o;->a()Z
move-result v0
iput-boolean v0, p0, Lcom/polly/mobile/videosdk/o;->f:Z
.line 126
iget-object v0, p0, Lcom/polly/mobile/videosdk/o;->g:Ljava/util/concurrent/CountDownLatch;
invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->countDown()V
.line 128
iget-boolean v0, p0, Lcom/polly/mobile/videosdk/o;->f:Z
if-nez v0, :cond_1e
.line 129
sget-object v0, Lcom/polly/mobile/videosdk/o;->a:Ljava/lang/String;
const-string v1, "call setupGLEnv() failed"
invoke-static {v0, v1}, Lcom/polly/mobile/util/f;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 130
iget-object v0, p0, Lcom/polly/mobile/videosdk/o;->h:Lcom/polly/mobile/videosdk/r;
if-eqz v0, :cond_1d
.line 132
invoke-interface {v0}, Lcom/polly/mobile/videosdk/r;->a()V
:cond_1d
return-void
.line 137
:cond_1e
iget-object v0, p0, Lcom/polly/mobile/videosdk/o;->i:Lcom/polly/mobile/videosdk/o$a;
if-eqz v0, :cond_27
.line 138
iget-boolean v1, p0, Lcom/polly/mobile/videosdk/o;->p:Z
invoke-interface {v0, v1}, Lcom/polly/mobile/videosdk/o$a;->a(Z)V
.line 141
:cond_27
:goto_27
iget-boolean v0, p0, Lcom/polly/mobile/videosdk/o;->e:Z
const/4 v1, 0x0
const/4 v2, 0x0
if-nez v0, :cond_84
.line 144
iget-object v0, p0, Lcom/polly/mobile/videosdk/o;->c:Ljava/lang/Object;
monitor-enter v0
.line 145
:try_start_30
iget-boolean v3, p0, Lcom/polly/mobile/videosdk/o;->d:Z
.line 146
iput-boolean v2, p0, Lcom/polly/mobile/videosdk/o;->d:Z
.line 147
monitor-exit v0
:try_end_35
.catchall {:try_start_30 .. :try_end_35} :catchall_81
if-eqz v3, :cond_45
.line 149
iget-object v0, p0, Lcom/polly/mobile/videosdk/o;->i:Lcom/polly/mobile/videosdk/o$a;
if-eqz v0, :cond_45
.line 150
invoke-interface {v0}, Lcom/polly/mobile/videosdk/o$a;->c()V
.line 151
iget-object v0, p0, Lcom/polly/mobile/videosdk/o;->r:Lcom/polly/mobile/videosdk/f;
if-eqz v0, :cond_45
invoke-virtual {v0}, Lcom/polly/mobile/videosdk/f;->a()V
.line 155
:cond_45
iget-object v3, p0, Lcom/polly/mobile/videosdk/o;->q:Ljava/util/ArrayList;
monitor-enter v3
.line 156
:try_start_48
iget-object v0, p0, Lcom/polly/mobile/videosdk/o;->q:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->isEmpty()Z
move-result v0
if-nez v0, :cond_59
.line 157
iget-object v0, p0, Lcom/polly/mobile/videosdk/o;->q:Ljava/util/ArrayList;
invoke-virtual {v0, v2}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
move-result-object v0
move-object v1, v0
check-cast v1, Ljava/lang/Runnable;
.line 159
:cond_59
monitor-exit v3
:try_end_5a
.catchall {:try_start_48 .. :try_end_5a} :catchall_7e
if-eqz v1, :cond_5f
.line 161
invoke-interface {v1}, Ljava/lang/Runnable;->run()V
.line 164
:cond_5f
iget-object v0, p0, Lcom/polly/mobile/videosdk/o;->c:Ljava/lang/Object;
monitor-enter v0
.line 166
:try_start_62
iget-boolean v1, p0, Lcom/polly/mobile/videosdk/o;->e:Z
if-nez v1, :cond_7a
iget-boolean v1, p0, Lcom/polly/mobile/videosdk/o;->d:Z
if-nez v1, :cond_7a
iget-object v1, p0, Lcom/polly/mobile/videosdk/o;->q:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->isEmpty()Z
move-result v1
if-eqz v1, :cond_7a
.line 167
iget-object v1, p0, Lcom/polly/mobile/videosdk/o;->c:Ljava/lang/Object;
invoke-virtual {v1}, Ljava/lang/Object;->wait()V
:try_end_77
.catch Ljava/lang/InterruptedException; {:try_start_62 .. :try_end_77} :catch_7a
.catchall {:try_start_62 .. :try_end_77} :catchall_78
goto :goto_7a
:catchall_78
move-exception v1
goto :goto_7c
.line 172
:catch_7a
:cond_7a
:goto_7a
:try_start_7a
monitor-exit v0
goto :goto_27
:goto_7c
monitor-exit v0
:try_end_7d
.catchall {:try_start_7a .. :try_end_7d} :catchall_78
throw v1
:catchall_7e
move-exception v0
.line 159
:try_start_7f
monitor-exit v3
:try_end_80
.catchall {:try_start_7f .. :try_end_80} :catchall_7e
throw v0
:catchall_81
move-exception v1
.line 147
:try_start_82
monitor-exit v0
:try_end_83
.catchall {:try_start_82 .. :try_end_83} :catchall_81
throw v1
.line 175
:cond_84
iget-object v0, p0, Lcom/polly/mobile/videosdk/o;->i:Lcom/polly/mobile/videosdk/o$a;
if-eqz v0, :cond_8b
.line 176
invoke-interface {v0}, Lcom/polly/mobile/videosdk/o$a;->b()V
.line 1237
:cond_8b
sget-object v0, Lcom/polly/mobile/videosdk/o;->a:Ljava/lang/String;
const-string v3, "enter teardownGLEnv"
invoke-static {v0, v3}, Lcom/polly/mobile/util/f;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 1239
iget-boolean v0, p0, Lcom/polly/mobile/videosdk/o;->m:Z
if-eqz v0, :cond_c8
.line 1240
iput-boolean v2, p0, Lcom/polly/mobile/videosdk/o;->m:Z
.line 1241
invoke-direct {p0}, Lcom/polly/mobile/videosdk/o;->b()Lcom/polly/mobile/videosdk/m;
move-result-object v0
if-eqz v0, :cond_a1
.line 1243
invoke-interface {v0}, Lcom/polly/mobile/videosdk/m;->b()V
.line 2223
:cond_a1
iget-object v0, p0, Lcom/polly/mobile/videosdk/o;->o:Lcom/polly/mobile/video/proc/GlOffScreenSurface;
if-eqz v0, :cond_c8
.line 3112
iget-object v3, v0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->d:[I
const/4 v4, 0x1
invoke-static {v4, v3, v2}, Landroid/opengl/GLES20;->glDeleteTextures(I[II)V
.line 3113
iget-object v3, v0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->d:[I
invoke-static {v4, v3, v4}, Landroid/opengl/GLES20;->glDeleteTextures(I[II)V
.line 3114
iget-object v3, v0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->d:[I
const/4 v5, 0x2
invoke-static {v4, v3, v5}, Landroid/opengl/GLES20;->glDeleteTextures(I[II)V
.line 3115
iget-object v3, v0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->d:[I
const/4 v6, -0x1
aput v6, v3, v2
.line 3116
iget-object v2, v0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->d:[I
aput v6, v2, v4
.line 3117
iget-object v2, v0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->d:[I
aput v6, v2, v5
.line 3119
invoke-virtual {v0}, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->a()V
.line 2225
iput-object v1, p0, Lcom/polly/mobile/videosdk/o;->o:Lcom/polly/mobile/video/proc/GlOffScreenSurface;
:cond_c8
return-void
.end method