a$a.smali

.class public final Lcom/yysdk/mobile/vpsdk/p/b/a$a;
.super Ljava/lang/Thread;
.source "SourceFile"


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/yysdk/mobile/vpsdk/p/b/a;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x9
    name = "a"
.end annotation


# instance fields
.field a:I

.field volatile b:J

.field c:Lcom/yysdk/mobile/vpsdk/p/b;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lcom/yysdk/mobile/vpsdk/p/b<",
            "Lcom/yysdk/mobile/vpsdk/p/b/c;",
            ">;"
        }
    .end annotation
.end field

.field private volatile d:Z

.field private volatile e:Z

.field private final f:Ljava/lang/Object;

.field private g:[B

.field private h:I

.field private i:I

.field private j:Z

.field private k:I

.field private l:I

.field private m:I

.field private n:Lcom/yysdk/mobile/vpsdk/u;


# direct methods
.method public constructor <init>()V
    .registers 4

    const-string v0, "AsyncGLReadPixelThread"

    .line 185
    invoke-direct {p0, v0}, Ljava/lang/Thread;-><init>(Ljava/lang/String;)V

    const/4 v0, 0x0

    .line 158
    iput v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->a:I

    const-wide/16 v1, 0x0

    .line 161
    iput-wide v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->b:J

    .line 162
    iput-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->d:Z

    .line 163
    iput-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->e:Z

    .line 164
    new-instance v1, Ljava/lang/Object;

    invoke-direct {v1}, Ljava/lang/Object;-><init>()V

    iput-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    const/4 v1, 0x0

    .line 175
    iput-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->g:[B

    .line 176
    iput v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->h:I

    .line 177
    iput v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->i:I

    .line 178
    iput-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->j:Z

    .line 179
    iput v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    .line 180
    iput v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->l:I

    .line 181
    iput v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->m:I

    .line 182
    iput-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->n:Lcom/yysdk/mobile/vpsdk/u;

    return-void
.end method

.method static a(Lcom/yysdk/mobile/vpsdk/i/c;II)Z
    .registers 4

    .line 7186
    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/i/c;->f:Z

    if-eqz v0, :cond_f

    .line 7190
    iget v0, p0, Lcom/yysdk/mobile/vpsdk/i/c;->c:I

    if-ne v0, p1, :cond_f

    .line 7194
    iget v0, p0, Lcom/yysdk/mobile/vpsdk/i/c;->d:I

    if-eq v0, p2, :cond_d

    goto :goto_f

    :cond_d
    const/4 p0, 0x1

    return p0

    .line 569
    :cond_f
    :goto_f
    invoke-virtual {p0}, Lcom/yysdk/mobile/vpsdk/i/c;->a()V

    .line 8041
    invoke-virtual {p0, p1, p2}, Lcom/yysdk/mobile/vpsdk/i/c;->a(II)Z

    move-result p0

    return p0
.end method

.method private c()Z
    .registers 14

    const-wide/16 v0, 0x0

    const/4 v2, 0x4

    const/4 v3, 0x1

    const/4 v4, 0x0

    .line 198
    :try_start_5
    invoke-static {v2, v2}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->a(II)J

    move-result-wide v5

    iput-wide v5, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->b:J

    .line 200
    iget-wide v5, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->b:J

    cmp-long v7, v5, v0

    if-eqz v7, :cond_1a5

    .line 204
    iget-wide v5, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->b:J

    invoke-static {v5, v6}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->b(J)I

    move-result v5

    const/16 v6, 0x3000

    if-ne v5, v6, :cond_195

    const-string v5, "AsyncGLReadPixelThread"

    const-string v6, "[run] create & make context OK "

    .line 209
    invoke-static {v5, v6}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    new-array v5, v3, [I

    .line 212
    invoke-static {v3, v5, v4}, Landroid/opengl/GLES20;->glGenFramebuffers(I[II)V

    .line 213
    aget v5, v5, v4

    iput v5, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    const v6, 0x8d40

    .line 214
    invoke-static {v6, v5}, Landroid/opengl/GLES20;->glBindFramebuffer(II)V

    .line 215
    iget v5, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    if-lez v5, :cond_173

    const-string v5, "AsyncGLReadPixelThread"

    .line 220
    new-instance v6, Ljava/lang/StringBuilder;

    const-string v7, "[run] fbo = "

    invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    iget v7, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v6

    invoke-static {v5, v6}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 222
    new-instance v5, Lcom/yysdk/mobile/vpsdk/u;

    invoke-direct {v5}, Lcom/yysdk/mobile/vpsdk/u;-><init>()V

    iput-object v5, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->n:Lcom/yysdk/mobile/vpsdk/u;

    .line 1058
    iget v6, v5, Lcom/yysdk/mobile/vpsdk/u;->e:I

    if-gez v6, :cond_142

    const-string v6, "attribute vec2 attPosition;\nvarying vec2 texcoord;\n\nvoid main() {\ngl_Position = vec4(attPosition, 0.0, 1.0);\ngl_Position.y = (gl_Position.y + 1.0) * 8.0 / 3.0 - 1.0;\ntexcoord = attPosition / 2.0  + 0.5;\n}"

    const-string v7, "precision highp float;\nvarying vec2 texcoord ;\nuniform float width  ;\nuniform float height ;\nuniform sampler2D sampler ;\nvoid main(void) {\nvec3 offset = vec3(0.0625, 0.5, 0.5);\nvec3 ycoeff = vec3(0.256816, 0.504154, 0.0979137);\nvec3 ucoeff = vec3(-0.148246, -0.29102, 0.439266);\nvec3 vcoeff = vec3(0.439271, -0.367833, -0.071438);\nvec2 curTexPos = texcoord;\nvec2 size = vec2(width, height);\nfloat lines = 0.0625 * height;    // 0.0625 = 1/16\nfloat lineInt = float(int(lines));\nvec2 uvPosOffset = vec2(lines-lineInt, lineInt/height);\nvec2 uMaxPos = uvPosOffset + vec2(0,0.25);\nvec2 vMaxPos = uvPosOffset + uMaxPos;\nvec2 yScale = vec2(4,4);\nvec2 uvScale = vec2(8,8);\nif (curTexPos.y < 0.25) {\nvec2 basePos = curTexPos * yScale * size;\nfloat addY = float(int((basePos.x / width)));\nbasePos.x -= addY * width;\nbasePos.y += addY;\nfloat y1,y2,y3,y4;\nvec2 sampleCoord = basePos / size;\nvec4 texel = texture2D(sampler, sampleCoord);\ny1 = dot(texel.rgb, ycoeff);\ny1 += offset.x;\nbasePos.x+=1.0;\nsampleCoord = basePos/size;\ntexel = texture2D(sampler, sampleCoord);\ny2 = dot(texel.rgb, ycoeff);\ny2 += offset.x;\nbasePos.x+=1.0;\nsampleCoord = basePos/size;\ntexel = texture2D(sampler, sampleCoord);\ny3 = dot(texel.rgb, ycoeff);\ny3 += offset.x;\nbasePos.x+=1.0;\nsampleCoord = basePos/size;\ntexel = texture2D(sampler, sampleCoord);\ny4 = dot(texel.rgb, ycoeff);\ny4 += offset.x;\ngl_FragColor = vec4(y1, y2, y3, y4);\n} else if(curTexPos.y<uMaxPos.y || (curTexPos.y == uMaxPos.y && curTexPos.x<uMaxPos.x)) {\ncurTexPos.y -= 0.25;\nvec2 basePos = curTexPos * uvScale * size;\nfloat addY = float(int(basePos.x / width));\nbasePos.x -= addY * width;\nbasePos.y += addY;\nbasePos.y *= 2.0;\nbasePos -= clamp(uvScale * 0.5 - 2.0, vec2(0.0), uvScale);\nbasePos.y -= 2.0;\nvec4 texel = texture2D(sampler, basePos/ size).rgba;\nfloat u1 = dot(texel.rgb, ucoeff);\nu1 += offset.y;\nbasePos.x += 2.0;\ntexel = texture2D(sampler, basePos/ size).rgba;\nfloat u2 = dot(texel.rgb, ucoeff);\nu2 += offset.y;\nbasePos.x+=2.0;\ntexel = texture2D(sampler, basePos / size).rgba;\nfloat u3 = dot(texel.rgb, ucoeff);\nu3 += offset.y;\nbasePos.x+=2.0;\ntexel = texture2D(sampler, basePos / size).rgba;\nfloat u4 = dot(texel.rgb, ucoeff);\nu4 += offset.y;\ngl_FragColor = vec4(u1, u2, u3, u4);\n} else if(curTexPos.y<vMaxPos.y || (curTexPos.y == vMaxPos.y && curTexPos.x<vMaxPos.x)) {\ncurTexPos -= uMaxPos;\nvec2 basePos = curTexPos * uvScale * size;\nfloat addY = float(int(basePos.x / width));\nbasePos.x -= addY * width;\nbasePos.y += addY;\nbasePos.y *= 2.0;\nbasePos -= clamp(uvScale * 0.5 - 2.0, vec2(0.0), uvScale);\nbasePos.y -= 2.0;\nvec4 texel = texture2D(sampler, basePos / size).rgba;\nfloat v1 = dot(texel.rgb, vcoeff);\nv1 += offset.z;\nbasePos.x+=2.0;\ntexel = texture2D(sampler, basePos / size).rgba;\nfloat v2 = dot(texel.rgb, vcoeff);\nv2 += offset.z;\nbasePos.x+=2.0;\ntexel = texture2D(sampler, basePos / size).rgba;\nfloat v3 = dot(texel.rgb, vcoeff);\nv3 += offset.z;\nbasePos.x+=2.0;\ntexel = texture2D(sampler, basePos / size).rgba;\nfloat v4 = dot(texel.rgb, vcoeff);\nv4 += offset.z;\ngl_FragColor = vec4(v1, v2, v3, v4);\n}\n}"

    new-array v8, v3, [I

    const v9, 0x8b31

    .line 1148
    invoke-static {v6, v9}, Lcom/yysdk/mobile/vpsdk/u;->a(Ljava/lang/String;I)I

    move-result v6

    const/4 v9, -0x1

    if-ne v9, v6, :cond_6d

    const-string v6, "RgbaToYuv"

    const-string v7, "Vertex Shader program failed"

    .line 1150
    invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_bd

    :cond_6d
    const v10, 0x8b30

    .line 1154
    invoke-static {v7, v10}, Lcom/yysdk/mobile/vpsdk/u;->a(Ljava/lang/String;I)I

    move-result v7

    if-ne v9, v7, :cond_81

    const-string v7, "RgbaToYuv"

    const-string v8, "Fragment Shader program failed"

    .line 1156
    invoke-static {v7, v8}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 1157
    invoke-static {v6}, Landroid/opengl/GLES20;->glDeleteShader(I)V

    goto :goto_bd

    .line 1161
    :cond_81
    invoke-static {}, Landroid/opengl/GLES20;->glCreateProgram()I

    move-result v10

    .line 1162
    invoke-static {v10, v6}, Landroid/opengl/GLES20;->glAttachShader(II)V

    .line 1163
    invoke-static {v10, v7}, Landroid/opengl/GLES20;->glAttachShader(II)V

    .line 1164
    invoke-static {v10}, Landroid/opengl/GLES20;->glLinkProgram(I)V

    const v11, 0x8b82

    .line 1166
    invoke-static {v10, v11, v8, v4}, Landroid/opengl/GLES20;->glGetProgramiv(II[II)V

    .line 1167
    aget v8, v8, v4

    if-gtz v8, :cond_b6

    const-string v8, "RgbaToYuv"

    .line 1168
    new-instance v11, Ljava/lang/StringBuilder;

    const-string v12, "Shader program link error: "

    invoke-direct {v11, v12}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-static {v10}, Landroid/opengl/GLES20;->glGetProgramInfoLog(I)Ljava/lang/String;

    move-result-object v10

    invoke-virtual {v11, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v10

    invoke-static {v8, v10}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 1169
    invoke-static {v6}, Landroid/opengl/GLES20;->glDeleteShader(I)V

    .line 1170
    invoke-static {v7}, Landroid/opengl/GLES20;->glDeleteShader(I)V

    goto :goto_bd

    .line 1174
    :cond_b6
    invoke-static {v6}, Landroid/opengl/GLES20;->glDeleteShader(I)V

    .line 1175
    invoke-static {v7}, Landroid/opengl/GLES20;->glDeleteShader(I)V

    move v9, v10

    .line 1059
    :goto_bd
    iput v9, v5, Lcom/yysdk/mobile/vpsdk/u;->e:I

    .line 1060
    iget v6, v5, Lcom/yysdk/mobile/vpsdk/u;->e:I

    if-gtz v6, :cond_cc

    const-string v2, "RgbaToYuv"

    const-string v5, "RgbaToYuv built Fail"

    .line 1061
    invoke-static {v2, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    const/4 v2, 0x0

    goto :goto_143

    .line 1065
    :cond_cc
    iget v6, v5, Lcom/yysdk/mobile/vpsdk/u;->e:I

    const-string v7, "attPosition"

    invoke-static {v6, v7}, Landroid/opengl/GLES20;->glGetAttribLocation(ILjava/lang/String;)I

    move-result v6

    iput v6, v5, Lcom/yysdk/mobile/vpsdk/u;->f:I

    .line 1066
    iget v6, v5, Lcom/yysdk/mobile/vpsdk/u;->e:I

    const-string v7, "attTexCoord"

    invoke-static {v6, v7}, Landroid/opengl/GLES20;->glGetAttribLocation(ILjava/lang/String;)I

    move-result v6

    iput v6, v5, Lcom/yysdk/mobile/vpsdk/u;->g:I

    .line 1067
    iget v6, v5, Lcom/yysdk/mobile/vpsdk/u;->e:I

    const-string v7, "sampler"

    invoke-static {v6, v7}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I

    move-result v6

    iput v6, v5, Lcom/yysdk/mobile/vpsdk/u;->h:I

    .line 1069
    iget v6, v5, Lcom/yysdk/mobile/vpsdk/u;->e:I

    const-string v7, "width"

    invoke-static {v6, v7}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I

    move-result v6

    iput v6, v5, Lcom/yysdk/mobile/vpsdk/u;->i:I

    .line 1070
    iget v6, v5, Lcom/yysdk/mobile/vpsdk/u;->e:I

    const-string v7, "height"

    invoke-static {v6, v7}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I

    move-result v6

    iput v6, v5, Lcom/yysdk/mobile/vpsdk/u;->j:I

    .line 1072
    sget-object v6, Lcom/yysdk/mobile/vpsdk/u;->a:[F

    array-length v6, v6

    mul-int/lit8 v6, v6, 0x4

    invoke-static {v6}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;

    move-result-object v6

    .line 1073
    invoke-static {}, Ljava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder;

    move-result-object v7

    invoke-virtual {v6, v7}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;

    move-result-object v6

    invoke-virtual {v6}, Ljava/nio/ByteBuffer;->asFloatBuffer()Ljava/nio/FloatBuffer;

    move-result-object v6

    iput-object v6, v5, Lcom/yysdk/mobile/vpsdk/u;->c:Ljava/nio/FloatBuffer;

    .line 1074
    iget-object v6, v5, Lcom/yysdk/mobile/vpsdk/u;->c:Ljava/nio/FloatBuffer;

    sget-object v7, Lcom/yysdk/mobile/vpsdk/u;->a:[F

    invoke-virtual {v6, v7}, Ljava/nio/FloatBuffer;->put([F)Ljava/nio/FloatBuffer;

    move-result-object v6

    invoke-virtual {v6, v4}, Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;

    .line 1076
    sget-object v6, Lcom/yysdk/mobile/vpsdk/u;->b:[F

    array-length v6, v6

    mul-int/lit8 v6, v6, 0x4

    invoke-static {v6}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;

    move-result-object v2

    .line 1077
    invoke-static {}, Ljava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder;

    move-result-object v6

    invoke-virtual {v2, v6}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;

    move-result-object v2

    invoke-virtual {v2}, Ljava/nio/ByteBuffer;->asFloatBuffer()Ljava/nio/FloatBuffer;

    move-result-object v2

    iput-object v2, v5, Lcom/yysdk/mobile/vpsdk/u;->d:Ljava/nio/FloatBuffer;

    .line 1078
    iget-object v2, v5, Lcom/yysdk/mobile/vpsdk/u;->d:Ljava/nio/FloatBuffer;

    sget-object v5, Lcom/yysdk/mobile/vpsdk/u;->b:[F

    invoke-virtual {v2, v5}, Ljava/nio/FloatBuffer;->put([F)Ljava/nio/FloatBuffer;

    move-result-object v2

    invoke-virtual {v2, v4}, Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;

    :cond_142
    const/4 v2, 0x1

    :goto_143
    if-eqz v2, :cond_15b

    const-string v2, "AsyncGLReadPixelThread"

    const-string v5, "[run] rgba2yuv.setupProgram done "

    .line 229
    invoke-static {v2, v5}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
    :try_end_14c
    .catch Ljava/lang/RuntimeException; {:try_start_5 .. :try_end_14c} :catch_1af
    .catchall {:try_start_5 .. :try_end_14c} :catchall_1ad

    .line 252
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    monitor-enter v0

    .line 253
    :try_start_14f
    iput-boolean v3, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->d:Z

    .line 254
    iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    invoke-virtual {v1}, Ljava/lang/Object;->notifyAll()V

    .line 255
    monitor-exit v0

    return v3

    :catchall_158
    move-exception v1

    monitor-exit v0
    :try_end_15a
    .catchall {:try_start_14f .. :try_end_15a} :catchall_158

    throw v1

    .line 225
    :cond_15b
    :try_start_15b
    new-instance v2, Ljava/lang/RuntimeException;

    new-instance v5, Ljava/lang/StringBuilder;

    const-string v6, "[run] rgba2yuv.setupProgram fail "

    invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    .line 226
    invoke-static {}, Landroid/opengl/GLES20;->glGetError()I

    move-result v6

    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v5

    invoke-direct {v2, v5}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 216
    :cond_173
    new-instance v2, Ljava/lang/RuntimeException;

    new-instance v5, Ljava/lang/StringBuilder;

    const-string v6, "[run] fbo create fail "

    invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    iget v6, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v6, ","

    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 217
    invoke-static {}, Landroid/opengl/GLES20;->glGetError()I

    move-result v6

    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v5

    invoke-direct {v2, v5}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 206
    :cond_195
    new-instance v2, Ljava/lang/RuntimeException;

    const-string v6, "[run] make context fail with "

    invoke-static {v5}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

    move-result-object v5

    invoke-virtual {v6, v5}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v5

    invoke-direct {v2, v5}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 201
    :cond_1a5
    new-instance v2, Ljava/lang/RuntimeException;

    const-string v5, "[run] create context fail "

    invoke-direct {v2, v5}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v2
    :try_end_1ad
    .catch Ljava/lang/RuntimeException; {:try_start_15b .. :try_end_1ad} :catch_1af
    .catchall {:try_start_15b .. :try_end_1ad} :catchall_1ad

    :catchall_1ad
    move-exception v0

    goto :goto_1f0

    :catch_1af
    move-exception v2

    :try_start_1b0
    const-string v5, "AsyncGLReadPixelThread"

    .line 235
    new-instance v6, Ljava/lang/StringBuilder;

    const-string v7, "[run] exception "

    invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v2}, Ljava/lang/RuntimeException;->getMessage()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v5, v2}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 237
    iget v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    if-lez v2, :cond_1d6

    new-array v2, v3, [I

    .line 238
    iget v5, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    aput v5, v2, v4

    invoke-static {v3, v2, v4}, Landroid/opengl/GLES20;->glDeleteFramebuffers(I[II)V

    .line 239
    iput v4, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    .line 242
    :cond_1d6
    iget-wide v5, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->b:J

    .line 243
    iput-wide v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->b:J

    cmp-long v2, v5, v0

    if-eqz v2, :cond_1e1

    .line 245
    invoke-static {v5, v6}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->a(J)Z
    :try_end_1e1
    .catchall {:try_start_1b0 .. :try_end_1e1} :catchall_1ad

    .line 252
    :cond_1e1
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    monitor-enter v0

    .line 253
    :try_start_1e4
    iput-boolean v3, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->d:Z

    .line 254
    iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    invoke-virtual {v1}, Ljava/lang/Object;->notifyAll()V

    .line 255
    monitor-exit v0

    return v4

    :catchall_1ed
    move-exception v1

    monitor-exit v0
    :try_end_1ef
    .catchall {:try_start_1e4 .. :try_end_1ef} :catchall_1ed

    throw v1

    .line 252
    :goto_1f0
    iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    monitor-enter v1

    .line 253
    :try_start_1f3
    iput-boolean v3, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->d:Z

    .line 254
    iget-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    invoke-virtual {v2}, Ljava/lang/Object;->notifyAll()V

    .line 255
    monitor-exit v1
    :try_end_1fb
    .catchall {:try_start_1f3 .. :try_end_1fb} :catchall_1fc

    throw v0

    :catchall_1fc
    move-exception v0

    :try_start_1fd
    monitor-exit v1
    :try_end_1fe
    .catchall {:try_start_1fd .. :try_end_1fe} :catchall_1fc

    throw v0
.end method

.method private d()V
    .registers 7

    const-string v0, "AsyncGLReadPixelThread"

    const-string v1, "[releaseContext] entry"

    .line 261
    invoke-static {v0, v1}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 263
    iget v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    const/4 v1, 0x1

    const/4 v2, 0x0

    if-eqz v0, :cond_16

    new-array v3, v1, [I

    aput v0, v3, v2

    .line 264
    invoke-static {v1, v3, v2}, Landroid/opengl/GLES20;->glDeleteFramebuffers(I[II)V

    .line 265
    iput v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    .line 268
    :cond_16
    iget v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->l:I

    if-eqz v0, :cond_23

    new-array v3, v1, [I

    aput v0, v3, v2

    .line 269
    invoke-static {v1, v3, v2}, Landroid/opengl/GLES20;->glDeleteTextures(I[II)V

    .line 270
    iput v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->l:I

    .line 273
    :cond_23
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->n:Lcom/yysdk/mobile/vpsdk/u;

    if-eqz v0, :cond_3a

    .line 1181
    iget v2, v0, Lcom/yysdk/mobile/vpsdk/u;->e:I

    if-lez v2, :cond_33

    .line 1182
    iget v2, v0, Lcom/yysdk/mobile/vpsdk/u;->e:I

    invoke-static {v2}, Landroid/opengl/GLES20;->glDeleteProgram(I)V

    const/4 v2, -0x1

    .line 1183
    iput v2, v0, Lcom/yysdk/mobile/vpsdk/u;->e:I

    :cond_33
    const/4 v2, 0x0

    .line 1185
    iput-object v2, v0, Lcom/yysdk/mobile/vpsdk/u;->c:Ljava/nio/FloatBuffer;

    .line 1186
    iput-object v2, v0, Lcom/yysdk/mobile/vpsdk/u;->d:Ljava/nio/FloatBuffer;

    .line 275
    iput-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->n:Lcom/yysdk/mobile/vpsdk/u;

    .line 278
    :cond_3a
    iget-wide v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->b:J

    const-wide/16 v4, 0x0

    .line 279
    iput-wide v4, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->b:J

    cmp-long v0, v2, v4

    if-eqz v0, :cond_47

    .line 281
    invoke-static {v2, v3}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->a(J)Z

    :cond_47
    const-string v0, "AsyncGLReadPixelThread"

    const-string v2, "[releaseContext] done"

    .line 284
    invoke-static {v0, v2}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 286
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    monitor-enter v0

    .line 287
    :try_start_51
    iput-boolean v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->e:Z

    .line 288
    iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    invoke-virtual {v1}, Ljava/lang/Object;->notifyAll()V

    .line 289
    monitor-exit v0

    return-void

    :catchall_5a
    move-exception v1

    monitor-exit v0
    :try_end_5c
    .catchall {:try_start_51 .. :try_end_5c} :catchall_5a

    throw v1
.end method


# virtual methods
.method public final a()Z
    .registers 7

    .line 446
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    monitor-enter v0

    const/4 v1, 0x3

    .line 447
    :goto_4
    :try_start_4
    iget-boolean v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->d:Z
    :try_end_6
    .catchall {:try_start_4 .. :try_end_6} :catchall_2a

    if-nez v2, :cond_1d

    add-int/lit8 v2, v1, -0x1

    if-lez v1, :cond_1d

    .line 449
    :try_start_c
    iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    const-wide/16 v3, 0x1f4

    invoke-virtual {v1, v3, v4}, Ljava/lang/Object;->wait(J)V
    :try_end_13
    .catch Ljava/lang/InterruptedException; {:try_start_c .. :try_end_13} :catch_14
    .catchall {:try_start_c .. :try_end_13} :catchall_2a

    goto :goto_1b

    .line 452
    :catch_14
    :try_start_14
    invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/Thread;->interrupt()V

    :goto_1b
    move v1, v2

    goto :goto_4

    .line 455
    :cond_1d
    iget-wide v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->b:J

    const-wide/16 v3, 0x0

    cmp-long v5, v1, v3

    if-eqz v5, :cond_27

    const/4 v1, 0x1

    goto :goto_28

    :cond_27
    const/4 v1, 0x0

    :goto_28
    monitor-exit v0

    return v1

    :catchall_2a
    move-exception v1

    .line 456
    monitor-exit v0
    :try_end_2c
    .catchall {:try_start_14 .. :try_end_2c} :catchall_2a

    goto :goto_2e

    :goto_2d
    throw v1

    :goto_2e
    goto :goto_2d
.end method

.method public final b()V
    .registers 8

    const-string v0, "AsyncGLReadPixelThread"

    const-string v1, "[waitForEnd] begin "

    .line 464
    invoke-static {v0, v1}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 465
    new-instance v0, Lcom/yysdk/mobile/vpsdk/p/b/c;

    invoke-direct {v0}, Lcom/yysdk/mobile/vpsdk/p/b/c;-><init>()V

    const/4 v1, 0x1

    .line 466
    iput-boolean v1, v0, Lcom/yysdk/mobile/vpsdk/p/b/c;->j:Z

    .line 467
    iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->c:Lcom/yysdk/mobile/vpsdk/p/b;

    invoke-interface {v1, v0}, Lcom/yysdk/mobile/vpsdk/p/b;->c(Ljava/lang/Object;)V

    .line 470
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    monitor-enter v0

    .line 471
    :try_start_17
    iget-boolean v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->d:Z

    if-nez v1, :cond_24

    const-string v1, "AsyncGLReadPixelThread"

    const-string v2, "[waitForEnd] not setup before"

    .line 472
    invoke-static {v1, v2}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 473
    monitor-exit v0

    return-void

    :cond_24
    const/4 v1, 0x3

    .line 476
    :goto_25
    iget-boolean v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->e:Z
    :try_end_27
    .catchall {:try_start_17 .. :try_end_27} :catchall_b4

    if-nez v2, :cond_45

    add-int/lit8 v1, v1, -0x1

    if-ltz v1, :cond_45

    .line 478
    :try_start_2d
    iget-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->f:Ljava/lang/Object;

    const-wide/16 v3, 0x1f4

    invoke-virtual {v2, v3, v4}, Ljava/lang/Object;->wait(J)V
    :try_end_34
    .catch Ljava/lang/InterruptedException; {:try_start_2d .. :try_end_34} :catch_35
    .catchall {:try_start_2d .. :try_end_34} :catchall_b4

    goto :goto_25

    :catch_35
    move-exception v2

    :try_start_36
    const-string v3, "AsyncGLReadPixelThread"

    const-string v4, "[waitForEnd] exception "

    .line 480
    invoke-static {v3, v4, v2}, Lcom/yysdk/mobile/vpsdk/p;->b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    .line 482
    invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/Thread;->interrupt()V

    goto :goto_25

    .line 486
    :cond_45
    iget-boolean v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->e:Z

    if-nez v2, :cond_53

    if-gez v1, :cond_53

    const-string v1, "AsyncGLReadPixelThread"

    const-string v2, "[waitForEnd] timeout to wait for end "

    .line 487
    invoke-static {v1, v2}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_b2

    :cond_53
    const-string v1, "AsyncGLReadPixelThread"

    const-string v2, "[waitForEnd] done "

    .line 489
    invoke-static {v1, v2}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 491
    :goto_5a
    iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->c:Lcom/yysdk/mobile/vpsdk/p/b;

    const-wide/16 v2, 0x0

    invoke-interface {v1, v2, v3}, Lcom/yysdk/mobile/vpsdk/p/b;->b(J)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/yysdk/mobile/vpsdk/p/b/c;

    if-eqz v1, :cond_87

    .line 492
    iget-object v4, v1, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    if-eqz v4, :cond_87

    const-string v2, "AsyncGLReadPixelThread"

    .line 495
    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "[waitForEnd] input FBO release "

    invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    iget-object v4, v1, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    .line 5299
    iget v4, v4, Lcom/yysdk/mobile/vpsdk/i/c;->b:I

    .line 496
    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    .line 495
    invoke-static {v2, v3}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 497
    iget-object v1, v1, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    invoke-virtual {v1}, Lcom/yysdk/mobile/vpsdk/i/c;->a()V

    goto :goto_5a

    .line 501
    :cond_87
    :goto_87
    iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->c:Lcom/yysdk/mobile/vpsdk/p/b;

    invoke-interface {v1, v2, v3}, Lcom/yysdk/mobile/vpsdk/p/b;->a(J)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/yysdk/mobile/vpsdk/p/b/c;

    if-eqz v1, :cond_b2

    .line 502
    iget-object v4, v1, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    if-eqz v4, :cond_b2

    const-string v4, "AsyncGLReadPixelThread"

    .line 505
    new-instance v5, Ljava/lang/StringBuilder;

    const-string v6, "[waitForEnd] output FBO release "

    invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    iget-object v6, v1, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    .line 6299
    iget v6, v6, Lcom/yysdk/mobile/vpsdk/i/c;->b:I

    .line 506
    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v5

    .line 505
    invoke-static {v4, v5}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 507
    iget-object v1, v1, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    invoke-virtual {v1}, Lcom/yysdk/mobile/vpsdk/i/c;->a()V

    goto :goto_87

    .line 511
    :cond_b2
    :goto_b2
    monitor-exit v0

    return-void

    :catchall_b4
    move-exception v1

    monitor-exit v0
    :try_end_b6
    .catchall {:try_start_36 .. :try_end_b6} :catchall_b4

    goto :goto_b8

    :goto_b7
    throw v1

    :goto_b8
    goto :goto_b7
.end method

.method public final run()V
    .registers 26

    move-object/from16 v1, p0

    .line 296
    invoke-direct/range {p0 .. p0}, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->c()Z

    move-result v0

    const-string v2, "AsyncGLReadPixelThread"

    if-nez v0, :cond_15

    const-string v0, "[run] setupContext fail"

    .line 299
    invoke-static {v2, v0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 300
    sget-object v0, Lcom/yysdk/mobile/vpsdk/report/a;->ASYNC_GLES20_SETUP:Lcom/yysdk/mobile/vpsdk/report/a;

    invoke-static {v0}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V

    return-void

    :cond_15
    const/4 v0, 0x0

    .line 305
    new-instance v3, Ljava/util/LinkedList;

    invoke-direct {v3}, Ljava/util/LinkedList;-><init>()V

    move-object v4, v0

    .line 308
    :goto_1c
    :try_start_1c
    invoke-virtual {v3}, Ljava/util/LinkedList;->isEmpty()Z

    move-result v0

    const/4 v5, 0x3

    if-nez v0, :cond_2d

    invoke-virtual {v3}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/yysdk/mobile/vpsdk/p/b/c;

    iget-boolean v0, v0, Lcom/yysdk/mobile/vpsdk/p/b/c;->g:Z

    if-nez v0, :cond_48

    .line 309
    :cond_2d
    iget-object v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->c:Lcom/yysdk/mobile/vpsdk/p/b;

    const-wide/16 v6, 0x2710

    invoke-interface {v0, v6, v7}, Lcom/yysdk/mobile/vpsdk/p/b;->a(J)Ljava/lang/Object;

    move-result-object v0

    move-object v6, v0

    check-cast v6, Lcom/yysdk/mobile/vpsdk/p/b/c;
    :try_end_38
    .catch Ljava/lang/Exception; {:try_start_1c .. :try_end_38} :catch_26c
    .catchall {:try_start_1c .. :try_end_38} :catchall_26a

    if-eqz v6, :cond_267

    .line 314
    :try_start_3a
    iget-boolean v0, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->j:Z

    if-nez v0, :cond_260

    .line 318
    invoke-virtual {v3, v6}, Ljava/util/LinkedList;->addLast(Ljava/lang/Object;)V

    .line 319
    invoke-virtual {v3}, Ljava/util/LinkedList;->size()I

    move-result v0
    :try_end_45
    .catch Ljava/lang/Exception; {:try_start_3a .. :try_end_45} :catch_264
    .catchall {:try_start_3a .. :try_end_45} :catchall_26a

    if-lt v0, v5, :cond_267

    move-object v4, v6

    .line 324
    :cond_48
    :try_start_48
    invoke-virtual {v3}, Ljava/util/LinkedList;->removeFirst()Ljava/lang/Object;

    move-result-object v0

    move-object v6, v0

    check-cast v6, Lcom/yysdk/mobile/vpsdk/p/b/c;
    :try_end_4f
    .catch Ljava/lang/Exception; {:try_start_48 .. :try_end_4f} :catch_26c
    .catchall {:try_start_48 .. :try_end_4f} :catchall_26a

    .line 325
    :try_start_4f
    iget-boolean v0, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->g:Z

    if-eqz v0, :cond_5a

    .line 326
    iget-object v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->c:Lcom/yysdk/mobile/vpsdk/p/b;

    invoke-interface {v0, v6}, Lcom/yysdk/mobile/vpsdk/p/b;->b(Ljava/lang/Object;)V

    goto/16 :goto_267

    .line 333
    :cond_5a
    iget v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->h:I

    iget-object v4, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    .line 1190
    iget v4, v4, Lcom/yysdk/mobile/vpsdk/i/c;->c:I

    const/4 v7, 0x1

    const/4 v8, 0x0

    if-ne v0, v4, :cond_6f

    .line 333
    iget v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->i:I

    iget-object v4, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    .line 1194
    iget v4, v4, Lcom/yysdk/mobile/vpsdk/i/c;->d:I

    if-eq v0, v4, :cond_6d

    goto :goto_6f

    :cond_6d
    const/4 v0, 0x0

    goto :goto_70

    :cond_6f
    :goto_6f
    const/4 v0, 0x1

    .line 334
    :goto_70
    iput-boolean v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->j:Z

    const/4 v4, 0x2

    const/4 v9, 0x4

    if-eqz v0, :cond_a7

    .line 337
    sget-object v0, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale;

    const-string v10, "[run] sizeChange %d,%d -> %d,%d"

    new-array v11, v9, [Ljava/lang/Object;

    iget v12, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->h:I

    .line 339
    invoke-static {v12}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v12

    aput-object v12, v11, v8

    iget v12, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->i:I

    invoke-static {v12}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v12

    aput-object v12, v11, v7

    iget-object v12, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    .line 2190
    iget v12, v12, Lcom/yysdk/mobile/vpsdk/i/c;->c:I

    .line 340
    invoke-static {v12}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v12

    aput-object v12, v11, v4

    iget-object v12, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    .line 2194
    iget v12, v12, Lcom/yysdk/mobile/vpsdk/i/c;->d:I

    .line 340
    invoke-static {v12}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v12

    aput-object v12, v11, v5

    .line 337
    invoke-static {v0, v10, v11}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v0

    invoke-static {v2, v0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 343
    :cond_a7
    iget-object v0, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    .line 3190
    iget v0, v0, Lcom/yysdk/mobile/vpsdk/i/c;->c:I

    .line 343
    iput v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->h:I

    .line 344
    iget-object v0, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    .line 3194
    iget v0, v0, Lcom/yysdk/mobile/vpsdk/i/c;->d:I

    .line 344
    iput v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->i:I

    .line 347
    iget v10, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->h:I

    mul-int v10, v10, v0

    mul-int/lit8 v10, v10, 0x3

    div-int/2addr v10, v4

    iput v10, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->m:I

    .line 352
    iget-object v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->g:[B

    if-eqz v0, :cond_c5

    iget-object v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->g:[B

    array-length v0, v0

    if-eq v0, v10, :cond_cb

    .line 353
    :cond_c5
    iget v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->m:I

    new-array v0, v0, [B

    iput-object v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->g:[B

    .line 359
    :cond_cb
    iget v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->l:I

    const/16 v4, 0x2803

    const/16 v10, 0x2802

    const/16 v11, 0x2801

    const/16 v12, 0x2800

    const v13, 0x47012f00    # 33071.0f

    const v14, 0x46180400    # 9729.0f

    const/16 v9, 0xde1

    if-eqz v0, :cond_e3

    iget-boolean v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->j:Z

    if-eqz v0, :cond_15b

    .line 361
    :cond_e3
    iget v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->l:I

    if-eqz v0, :cond_f7

    const-string v0, "[run] resize "

    .line 362
    invoke-static {v2, v0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    new-array v0, v7, [I

    .line 363
    iget v15, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->l:I

    aput v15, v0, v8

    invoke-static {v7, v0, v8}, Landroid/opengl/GLES20;->glDeleteTextures(I[II)V

    .line 364
    iput v8, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->l:I

    :cond_f7
    new-array v0, v7, [I

    .line 368
    invoke-static {v7, v0, v8}, Landroid/opengl/GLES20;->glGenTextures(I[II)V

    .line 369
    aget v0, v0, v8

    iput v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->l:I

    .line 370
    invoke-static {v9, v0}, Landroid/opengl/GLES20;->glBindTexture(II)V

    .line 371
    invoke-static {v9, v12, v14}, Landroid/opengl/GLES20;->glTexParameterf(IIF)V

    .line 372
    invoke-static {v9, v11, v14}, Landroid/opengl/GLES20;->glTexParameterf(IIF)V

    .line 373
    invoke-static {v9, v10, v13}, Landroid/opengl/GLES20;->glTexParameterf(IIF)V

    .line 374
    invoke-static {v9, v4, v13}, Landroid/opengl/GLES20;->glTexParameterf(IIF)V

    const/16 v16, 0xde1

    const/16 v17, 0x0

    const/16 v18, 0x1908

    .line 375
    iget v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->h:I

    iget v7, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->i:I

    mul-int/lit8 v7, v7, 0x3

    div-int/lit8 v20, v7, 0x8

    const/16 v21, 0x0

    const/16 v22, 0x1908

    const/16 v23, 0x1401

    const/16 v24, 0x0

    move/from16 v19, v0

    invoke-static/range {v16 .. v24}, Landroid/opengl/GLES20;->glTexImage2D(IIIIIIIILjava/nio/Buffer;)V

    .line 378
    iget v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    const v7, 0x8d40

    invoke-static {v7, v0}, Landroid/opengl/GLES20;->glBindFramebuffer(II)V

    const v0, 0x8ce0

    .line 379
    iget v15, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->l:I

    invoke-static {v7, v0, v9, v15, v8}, Landroid/opengl/GLES20;->glFramebufferTexture2D(IIIII)V

    .line 381
    invoke-static {v7}, Landroid/opengl/GLES20;->glCheckFramebufferStatus(I)I

    move-result v0

    const v7, 0x8cd5

    if-ne v0, v7, :cond_233

    .line 388
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v7, "[run] create tex "

    invoke-direct {v0, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    iget v7, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->l:I

    invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v7, " ok"

    invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v2, v0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 391
    :cond_15b
    iget v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    const v7, 0x8d40

    invoke-static {v7, v0}, Landroid/opengl/GLES20;->glBindFramebuffer(II)V

    .line 393
    iget-object v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->n:Lcom/yysdk/mobile/vpsdk/u;

    iget-object v7, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    .line 3299
    iget v7, v7, Lcom/yysdk/mobile/vpsdk/i/c;->b:I

    .line 393
    iget v15, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->h:I

    iget v5, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->i:I

    .line 4087
    iget v4, v0, Lcom/yysdk/mobile/vpsdk/u;->e:I

    if-ltz v4, :cond_200

    .line 4091
    iget v4, v0, Lcom/yysdk/mobile/vpsdk/u;->e:I

    invoke-static {v4}, Landroid/opengl/GLES20;->glUseProgram(I)V

    const/high16 v4, 0x3f800000    # 1.0f

    const/4 v10, 0x0

    .line 4092
    invoke-static {v10, v4, v10, v4}, Landroid/opengl/GLES20;->glClearColor(FFFF)V

    const/16 v4, 0x4000

    .line 4093
    invoke-static {v4}, Landroid/opengl/GLES20;->glClear(I)V

    const/16 v4, 0xbe2

    .line 4094
    invoke-static {v4}, Landroid/opengl/GLES20;->glDisable(I)V

    .line 4097
    iget-object v4, v0, Lcom/yysdk/mobile/vpsdk/u;->c:Ljava/nio/FloatBuffer;

    invoke-virtual {v4, v8}, Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;

    .line 4098
    iget v4, v0, Lcom/yysdk/mobile/vpsdk/u;->f:I

    const/16 v19, 0x2

    const/16 v20, 0x1406

    const/16 v21, 0x0

    const/16 v22, 0x0

    iget-object v10, v0, Lcom/yysdk/mobile/vpsdk/u;->c:Ljava/nio/FloatBuffer;

    move/from16 v18, v4

    move-object/from16 v23, v10

    invoke-static/range {v18 .. v23}, Landroid/opengl/GLES20;->glVertexAttribPointer(IIIZILjava/nio/Buffer;)V

    .line 4099
    iget v4, v0, Lcom/yysdk/mobile/vpsdk/u;->f:I

    invoke-static {v4}, Landroid/opengl/GLES20;->glEnableVertexAttribArray(I)V

    .line 4100
    iget-object v4, v0, Lcom/yysdk/mobile/vpsdk/u;->d:Ljava/nio/FloatBuffer;

    invoke-virtual {v4, v8}, Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;

    .line 4101
    iget v4, v0, Lcom/yysdk/mobile/vpsdk/u;->g:I

    const/16 v19, 0x2

    const/16 v20, 0x1406

    const/16 v21, 0x0

    const/16 v22, 0x0

    iget-object v10, v0, Lcom/yysdk/mobile/vpsdk/u;->d:Ljava/nio/FloatBuffer;

    move/from16 v18, v4

    move-object/from16 v23, v10

    invoke-static/range {v18 .. v23}, Landroid/opengl/GLES20;->glVertexAttribPointer(IIIZILjava/nio/Buffer;)V

    .line 4102
    iget v4, v0, Lcom/yysdk/mobile/vpsdk/u;->g:I

    invoke-static {v4}, Landroid/opengl/GLES20;->glEnableVertexAttribArray(I)V

    .line 4104
    iget v4, v0, Lcom/yysdk/mobile/vpsdk/u;->i:I

    int-to-float v10, v15

    invoke-static {v4, v10}, Landroid/opengl/GLES20;->glUniform1f(IF)V

    .line 4105
    iget v4, v0, Lcom/yysdk/mobile/vpsdk/u;->j:I

    int-to-float v10, v5

    invoke-static {v4, v10}, Landroid/opengl/GLES20;->glUniform1f(IF)V

    const v4, 0x84c0

    .line 4107
    invoke-static {v4}, Landroid/opengl/GLES20;->glActiveTexture(I)V

    .line 4108
    invoke-static {v9, v7}, Landroid/opengl/GLES20;->glBindTexture(II)V

    .line 4109
    invoke-static {v9, v12, v14}, Landroid/opengl/GLES20;->glTexParameterf(IIF)V

    .line 4110
    invoke-static {v9, v11, v14}, Landroid/opengl/GLES20;->glTexParameterf(IIF)V

    const/16 v4, 0x2802

    .line 4111
    invoke-static {v9, v4, v13}, Landroid/opengl/GLES20;->glTexParameterf(IIF)V

    const/16 v4, 0x2803

    .line 4112
    invoke-static {v9, v4, v13}, Landroid/opengl/GLES20;->glTexParameterf(IIF)V

    .line 4115
    iget v4, v0, Lcom/yysdk/mobile/vpsdk/u;->h:I

    invoke-static {v4, v8}, Landroid/opengl/GLES20;->glUniform1i(II)V

    mul-int/lit8 v5, v5, 0x3

    .line 4116
    div-int/lit8 v5, v5, 0x8

    invoke-static {v8, v8, v15, v5}, Landroid/opengl/GLES20;->glViewport(IIII)V

    const/4 v4, 0x5

    const/4 v5, 0x4

    .line 4117
    invoke-static {v4, v8, v5}, Landroid/opengl/GLES20;->glDrawArrays(III)V

    .line 4120
    iget v4, v0, Lcom/yysdk/mobile/vpsdk/u;->g:I

    invoke-static {v4}, Landroid/opengl/GLES20;->glDisableVertexAttribArray(I)V

    .line 4121
    iget v0, v0, Lcom/yysdk/mobile/vpsdk/u;->f:I

    invoke-static {v0}, Landroid/opengl/GLES20;->glDisableVertexAttribArray(I)V

    :cond_200
    const/4 v7, 0x0

    const/4 v8, 0x0

    .line 395
    iget v9, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->h:I

    iget v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->i:I

    const/4 v4, 0x3

    mul-int/lit8 v0, v0, 0x3

    div-int/lit8 v10, v0, 0x8

    const/16 v11, 0x1908

    const/16 v12, 0x1401

    iget-object v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->g:[B

    .line 398
    invoke-static {v0}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;

    move-result-object v13

    .line 395
    invoke-static/range {v7 .. v13}, Landroid/opengl/GLES20;->glReadPixels(IIIIIILjava/nio/Buffer;)V

    .line 423
    iget-object v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->g:[B

    iput-object v0, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->b:[B

    .line 424
    iget-object v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->g:[B

    array-length v0, v0

    iput v0, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->c:I

    .line 425
    sget-object v0, Lcom/yysdk/mobile/vpsdk/p/b/c$a;->YUV420:Lcom/yysdk/mobile/vpsdk/p/b/c$a;

    iput-object v0, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->k:Lcom/yysdk/mobile/vpsdk/p/b/c$a;

    .line 426
    iget v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->h:I

    iput v0, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->e:I

    .line 427
    iget v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->i:I

    iput v0, v6, Lcom/yysdk/mobile/vpsdk/p/b/c;->f:I

    .line 428
    iget-object v0, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->c:Lcom/yysdk/mobile/vpsdk/p/b;

    invoke-interface {v0, v6}, Lcom/yysdk/mobile/vpsdk/p/b;->b(Ljava/lang/Object;)V

    goto :goto_267

    .line 384
    :cond_233
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v3, "glCheckFramebufferStatus Error fbo="

    invoke-direct {v0, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    iget v3, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->k:I

    invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v3, ", tex="

    invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v3, v1, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->l:I

    invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    const-string v3, "[run] "

    .line 385
    invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v3, v4}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v3

    invoke-static {v2, v3}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 386
    new-instance v3, Ljava/lang/RuntimeException;

    invoke-direct {v3, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v3
    :try_end_260
    .catch Ljava/lang/Exception; {:try_start_4f .. :try_end_260} :catch_264
    .catchall {:try_start_4f .. :try_end_260} :catchall_26a

    .line 440
    :cond_260
    invoke-direct/range {p0 .. p0}, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->d()V

    return-void

    :catch_264
    move-exception v0

    move-object v4, v6

    goto :goto_26d

    :cond_267
    :goto_267
    move-object v4, v6

    goto/16 :goto_1c

    :catchall_26a
    move-exception v0

    goto :goto_2a3

    :catch_26c
    move-exception v0

    :goto_26d
    :try_start_26d
    const-string v3, "[run] loop exception "

    .line 433
    invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v5

    invoke-virtual {v3, v5}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v3

    invoke-static {v2, v3, v0}, Lcom/yysdk/mobile/vpsdk/p;->b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    .line 434
    sget-object v0, Lcom/yysdk/mobile/vpsdk/report/a;->ASYNC_GLES20_RUNTIME:Lcom/yysdk/mobile/vpsdk/report/a;

    invoke-static {v0}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V

    if-eqz v4, :cond_29f

    .line 435
    iget-object v0, v4, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    if-eqz v0, :cond_29f

    .line 436
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v3, "[run] loop exception free ainfo "

    invoke-direct {v0, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    iget-object v3, v4, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    .line 4299
    iget v3, v3, Lcom/yysdk/mobile/vpsdk/i/c;->b:I

    .line 436
    invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v2, v0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    .line 437
    iget-object v0, v4, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;

    invoke-virtual {v0}, Lcom/yysdk/mobile/vpsdk/i/c;->a()V
    :try_end_29f
    .catchall {:try_start_26d .. :try_end_29f} :catchall_26a

    .line 440
    :cond_29f
    invoke-direct/range {p0 .. p0}, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->d()V

    return-void

    :goto_2a3
    invoke-direct/range {p0 .. p0}, Lcom/yysdk/mobile/vpsdk/p/b/a$a;->d()V

    goto :goto_2a8

    :goto_2a7
    throw v0

    :goto_2a8
    goto :goto_2a7
.end method