a.smali

.class public final Lcom/imo/android/imoim/util/k/a;
.super Ljava/lang/Object;
.source "SourceFile"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/imo/android/imoim/util/k/a$a;,
        Lcom/imo/android/imoim/util/k/a$b;
    }
.end annotation


# static fields
.field private static final b:Ljava/io/File;


# instance fields
.field a:Ljava/util/Queue;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Queue<",
            "Ljava/lang/Integer;",
            ">;"
        }
    .end annotation
.end field

.field private final c:Lcom/imo/android/imoim/util/k/a$a;

.field private d:I

.field private e:Lcom/imo/android/imoim/util/k/m;

.field private f:I

.field private g:I

.field private final h:I

.field private i:I

.field private j:Landroid/media/MediaCodec;

.field private k:Lcom/imo/android/imoim/util/k/a$b;

.field private l:Landroid/media/MediaMuxer;

.field private m:I

.field private n:Z

.field private o:Landroid/media/MediaCodec$BufferInfo;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .line 79
    invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;

    move-result-object v0

    sput-object v0, Lcom/imo/android/imoim/util/k/a;->b:Ljava/io/File;

    return-void
.end method

.method public constructor <init>(Lcom/imo/android/imoim/util/k/a$a;)V
    .registers 4

    .line 117
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 96
    new-instance v0, Ljava/util/LinkedList;

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

    iput-object v0, p0, Lcom/imo/android/imoim/util/k/a;->a:Ljava/util/Queue;

    const/4 v0, 0x0

    .line 97
    iput v0, p0, Lcom/imo/android/imoim/util/k/a;->d:I

    const/4 v0, 0x0

    .line 98
    iput-object v0, p0, Lcom/imo/android/imoim/util/k/a;->e:Lcom/imo/android/imoim/util/k/m;

    const/4 v0, -0x1

    .line 101
    iput v0, p0, Lcom/imo/android/imoim/util/k/a;->f:I

    .line 102
    iput v0, p0, Lcom/imo/android/imoim/util/k/a;->g:I

    const/16 v1, 0x500

    .line 103
    iput v1, p0, Lcom/imo/android/imoim/util/k/a;->h:I

    .line 105
    iput v0, p0, Lcom/imo/android/imoim/util/k/a;->i:I

    .line 118
    iput-object p1, p0, Lcom/imo/android/imoim/util/k/a;->c:Lcom/imo/android/imoim/util/k/a$a;

    return-void
.end method

.method private a()V
    .registers 3

    .line 275
    iget-object v0, p0, Lcom/imo/android/imoim/util/k/a;->j:Landroid/media/MediaCodec;

    const/4 v1, 0x0

    if-eqz v0, :cond_f

    .line 276
    invoke-virtual {v0}, Landroid/media/MediaCodec;->stop()V

    .line 277
    iget-object v0, p0, Lcom/imo/android/imoim/util/k/a;->j:Landroid/media/MediaCodec;

    invoke-virtual {v0}, Landroid/media/MediaCodec;->release()V

    .line 278
    iput-object v1, p0, Lcom/imo/android/imoim/util/k/a;->j:Landroid/media/MediaCodec;

    .line 280
    :cond_f
    iget-object v0, p0, Lcom/imo/android/imoim/util/k/a;->k:Lcom/imo/android/imoim/util/k/a$b;

    if-eqz v0, :cond_18

    .line 281
    invoke-virtual {v0}, Lcom/imo/android/imoim/util/k/a$b;->a()V

    .line 282
    iput-object v1, p0, Lcom/imo/android/imoim/util/k/a;->k:Lcom/imo/android/imoim/util/k/a$b;

    .line 284
    :cond_18
    iget-object v0, p0, Lcom/imo/android/imoim/util/k/a;->l:Landroid/media/MediaMuxer;

    if-eqz v0, :cond_26

    .line 285
    invoke-virtual {v0}, Landroid/media/MediaMuxer;->stop()V

    .line 286
    iget-object v0, p0, Lcom/imo/android/imoim/util/k/a;->l:Landroid/media/MediaMuxer;

    invoke-virtual {v0}, Landroid/media/MediaMuxer;->release()V

    .line 287
    iput-object v1, p0, Lcom/imo/android/imoim/util/k/a;->l:Landroid/media/MediaMuxer;

    :cond_26
    return-void
.end method

.method private a(Z)V
    .registers 10

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

    const-string v1, "drainEncoder("

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

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

    const-string v1, ")"

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

    if-eqz p1, :cond_16

    .line 305
    iget-object v0, p0, Lcom/imo/android/imoim/util/k/a;->j:Landroid/media/MediaCodec;

    invoke-virtual {v0}, Landroid/media/MediaCodec;->signalEndOfInputStream()V

    .line 308
    :cond_16
    iget-object v0, p0, Lcom/imo/android/imoim/util/k/a;->j:Landroid/media/MediaCodec;

    invoke-virtual {v0}, Landroid/media/MediaCodec;->getOutputBuffers()[Ljava/nio/ByteBuffer;

    move-result-object v0

    .line 310
    :cond_1c
    :goto_1c
    iget-object v1, p0, Lcom/imo/android/imoim/util/k/a;->j:Landroid/media/MediaCodec;

    iget-object v2, p0, Lcom/imo/android/imoim/util/k/a;->o:Landroid/media/MediaCodec$BufferInfo;

    const-wide/16 v3, 0x2710

    invoke-virtual {v1, v2, v3, v4}, Landroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I

    move-result v1

    const/4 v2, -0x1

    if-ne v1, v2, :cond_2d

    if-eqz p1, :cond_2c

    goto :goto_1c

    :cond_2c
    return-void

    :cond_2d
    const/4 v2, -0x3

    if-eq v1, v2, :cond_16

    const/4 v2, -0x2

    if-ne v1, v2, :cond_56

    .line 323
    iget-boolean v1, p0, Lcom/imo/android/imoim/util/k/a;->n:Z

    if-nez v1, :cond_4e

    .line 326
    iget-object v1, p0, Lcom/imo/android/imoim/util/k/a;->j:Landroid/media/MediaCodec;

    invoke-virtual {v1}, Landroid/media/MediaCodec;->getOutputFormat()Landroid/media/MediaFormat;

    move-result-object v1

    .line 330
    iget-object v2, p0, Lcom/imo/android/imoim/util/k/a;->l:Landroid/media/MediaMuxer;

    invoke-virtual {v2, v1}, Landroid/media/MediaMuxer;->addTrack(Landroid/media/MediaFormat;)I

    move-result v1

    iput v1, p0, Lcom/imo/android/imoim/util/k/a;->m:I

    .line 331
    iget-object v1, p0, Lcom/imo/android/imoim/util/k/a;->l:Landroid/media/MediaMuxer;

    invoke-virtual {v1}, Landroid/media/MediaMuxer;->start()V

    const/4 v1, 0x1

    .line 332
    iput-boolean v1, p0, Lcom/imo/android/imoim/util/k/a;->n:Z

    goto :goto_1c

    .line 324
    :cond_4e
    new-instance p1, Ljava/lang/RuntimeException;

    const-string v0, "format changed twice"

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

    throw p1

    :cond_56
    const-string v2, "EncodeAndMuxTest"

    if-gez v1, :cond_68

    .line 334
    invoke-static {v1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

    move-result-object v1

    const-string v3, "unexpected result from encoder.dequeueOutputBuffer: "

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

    move-result-object v1

    invoke-static {v2, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_1c

    .line 338
    :cond_68
    aget-object v3, v0, v1

    if-eqz v3, :cond_d0

    .line 344
    iget-object v4, p0, Lcom/imo/android/imoim/util/k/a;->o:Landroid/media/MediaCodec$BufferInfo;

    iget v4, v4, Landroid/media/MediaCodec$BufferInfo;->flags:I

    and-int/lit8 v4, v4, 0x2

    const/4 v5, 0x0

    if-eqz v4, :cond_79

    .line 348
    iget-object v4, p0, Lcom/imo/android/imoim/util/k/a;->o:Landroid/media/MediaCodec$BufferInfo;

    iput v5, v4, Landroid/media/MediaCodec$BufferInfo;->size:I

    .line 351
    :cond_79
    iget-object v4, p0, Lcom/imo/android/imoim/util/k/a;->o:Landroid/media/MediaCodec$BufferInfo;

    iget v4, v4, Landroid/media/MediaCodec$BufferInfo;->size:I

    if-eqz v4, :cond_bb

    .line 352
    iget-boolean v4, p0, Lcom/imo/android/imoim/util/k/a;->n:Z

    if-eqz v4, :cond_b3

    .line 357
    iget-object v4, p0, Lcom/imo/android/imoim/util/k/a;->o:Landroid/media/MediaCodec$BufferInfo;

    iget v4, v4, Landroid/media/MediaCodec$BufferInfo;->offset:I

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

    .line 358
    iget-object v4, p0, Lcom/imo/android/imoim/util/k/a;->o:Landroid/media/MediaCodec$BufferInfo;

    iget v4, v4, Landroid/media/MediaCodec$BufferInfo;->offset:I

    iget-object v6, p0, Lcom/imo/android/imoim/util/k/a;->o:Landroid/media/MediaCodec$BufferInfo;

    iget v6, v6, Landroid/media/MediaCodec$BufferInfo;->size:I

    add-int/2addr v4, v6

    invoke-virtual {v3, v4}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;

    .line 360
    iget-object v4, p0, Lcom/imo/android/imoim/util/k/a;->l:Landroid/media/MediaMuxer;

    iget v6, p0, Lcom/imo/android/imoim/util/k/a;->m:I

    iget-object v7, p0, Lcom/imo/android/imoim/util/k/a;->o:Landroid/media/MediaCodec$BufferInfo;

    invoke-virtual {v4, v6, v3, v7}, Landroid/media/MediaMuxer;->writeSampleData(ILjava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;)V

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

    const-string v4, "sent "

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

    iget-object v4, p0, Lcom/imo/android/imoim/util/k/a;->o:Landroid/media/MediaCodec$BufferInfo;

    iget v4, v4, Landroid/media/MediaCodec$BufferInfo;->size:I

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

    const-string v4, " bytes to muxer"

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

    goto :goto_bb

    .line 353
    :cond_b3
    new-instance p1, Ljava/lang/RuntimeException;

    const-string v0, "muxer hasn\'t started"

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

    throw p1

    .line 364
    :cond_bb
    :goto_bb
    iget-object v3, p0, Lcom/imo/android/imoim/util/k/a;->j:Landroid/media/MediaCodec;

    invoke-virtual {v3, v1, v5}, Landroid/media/MediaCodec;->releaseOutputBuffer(IZ)V

    .line 366
    iget-object v1, p0, Lcom/imo/android/imoim/util/k/a;->o:Landroid/media/MediaCodec$BufferInfo;

    iget v1, v1, Landroid/media/MediaCodec$BufferInfo;->flags:I

    and-int/lit8 v1, v1, 0x4

    if-eqz v1, :cond_1c

    if-nez p1, :cond_cf

    const-string p1, "reached end of stream unexpectedly"

    .line 368
    invoke-static {v2, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

    :cond_cf
    return-void

    .line 340
    :cond_d0
    new-instance p1, Ljava/lang/RuntimeException;

    new-instance v0, Ljava/lang/StringBuilder;

    const-string v2, "encoderOutputBuffer "

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

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

    const-string v1, " was null"

    invoke-virtual {v0, v1}, 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-direct {p1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    goto :goto_ea

    :goto_e9
    throw p1

    :goto_ea
    goto :goto_e9
.end method

.method private static a(Ljava/io/File;)[B
    .registers 7

    const-string v0, "EncodeAndMuxTest"

    const/4 v1, 0x0

    .line 123
    :try_start_3
    new-instance v2, Ljava/io/FileInputStream;

    invoke-direct {v2, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
    :try_end_8
    .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_8} :catch_37

    .line 124
    :try_start_8
    invoke-virtual {p0}, Ljava/io/File;->length()J

    move-result-wide v3

    long-to-int v4, v3

    new-array v1, v4, [B

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

    const-string v4, "file size: "

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

    invoke-virtual {p0}, Ljava/io/File;->length()J

    move-result-wide v4

    invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

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

    move-result-object p0

    .line 1071
    invoke-static {v0, p0}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V

    .line 126
    invoke-virtual {v2, v1}, Ljava/io/FileInputStream;->read([B)I
    :try_end_27
    .catchall {:try_start_8 .. :try_end_27} :catchall_2b

    .line 127
    :try_start_27
    invoke-virtual {v2}, Ljava/io/FileInputStream;->close()V
    :try_end_2a
    .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_2a} :catch_37

    goto :goto_3f

    :catchall_2b
    move-exception p0

    .line 123
    :try_start_2c
    throw p0
    :try_end_2d
    .catchall {:try_start_2c .. :try_end_2d} :catchall_2d

    :catchall_2d
    move-exception v3

    .line 127
    :try_start_2e
    invoke-virtual {v2}, Ljava/io/FileInputStream;->close()V
    :try_end_31
    .catchall {:try_start_2e .. :try_end_31} :catchall_32

    goto :goto_36

    :catchall_32
    move-exception v2

    :try_start_33
    invoke-virtual {p0, v2}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V

    :goto_36
    throw v3
    :try_end_37
    .catch Ljava/lang/Exception; {:try_start_33 .. :try_end_37} :catch_37

    :catch_37
    move-exception p0

    .line 128
    invoke-virtual {p0}, Ljava/lang/Exception;->toString()Ljava/lang/String;

    move-result-object p0

    invoke-static {v0, p0}, Lcom/imo/android/imoim/util/bt;->c(Ljava/lang/String;Ljava/lang/String;)V

    :goto_3f
    return-object v1
.end method


# virtual methods
.method public final a(Ljava/lang/String;)Lcom/imo/android/imoim/util/k/d$b;
    .registers 27

    move-object/from16 v1, p0

    const-string v2, "glAttachShader"

    const-string v3, "video/avc"

    const-string v4, "EncodeAndMuxTest"

    .line 165
    sget-object v5, Lcom/imo/android/imoim/util/k/d$b;->ERROR:Lcom/imo/android/imoim/util/k/d$b;

    .line 167
    iget-object v6, v1, Lcom/imo/android/imoim/util/k/a;->c:Lcom/imo/android/imoim/util/k/a$a;

    iget v6, v6, Lcom/imo/android/imoim/util/k/a$a;->b:I

    iput v6, v1, Lcom/imo/android/imoim/util/k/a;->f:I

    .line 168
    iget-object v6, v1, Lcom/imo/android/imoim/util/k/a;->c:Lcom/imo/android/imoim/util/k/a$a;

    iget v6, v6, Lcom/imo/android/imoim/util/k/a$a;->a:I

    iput v6, v1, Lcom/imo/android/imoim/util/k/a;->g:I

    .line 1146
    iget v7, v1, Lcom/imo/android/imoim/util/k/a;->f:I

    const/16 v8, 0x500

    const-wide/high16 v9, 0x4094000000000000L    # 1280.0

    if-le v7, v6, :cond_2f

    int-to-double v11, v6

    int-to-double v6, v7

    .line 1147
    invoke-static {v6, v7}, Ljava/lang/Double;->isNaN(D)Z

    div-double/2addr v9, v6

    invoke-static {v11, v12}, Ljava/lang/Double;->isNaN(D)Z

    mul-double v11, v11, v9

    double-to-int v6, v11

    iput v6, v1, Lcom/imo/android/imoim/util/k/a;->g:I

    .line 1148
    iput v8, v1, Lcom/imo/android/imoim/util/k/a;->f:I

    goto :goto_3f

    :cond_2f
    int-to-double v11, v7

    int-to-double v6, v6

    .line 1150
    invoke-static {v6, v7}, Ljava/lang/Double;->isNaN(D)Z

    div-double/2addr v9, v6

    invoke-static {v11, v12}, Ljava/lang/Double;->isNaN(D)Z

    mul-double v11, v11, v9

    double-to-int v6, v11

    iput v6, v1, Lcom/imo/android/imoim/util/k/a;->f:I

    .line 1151
    iput v8, v1, Lcom/imo/android/imoim/util/k/a;->g:I

    :goto_3f
    const v6, 0x249f00

    .line 172
    iput v6, v1, Lcom/imo/android/imoim/util/k/a;->i:I

    const/4 v6, 0x0

    const/4 v7, 0x0

    :goto_46
    const/4 v8, 0x1

    if-gtz v7, :cond_76

    const/4 v9, 0x0

    .line 175
    :goto_4a
    iget-object v10, v1, Lcom/imo/android/imoim/util/k/a;->c:Lcom/imo/android/imoim/util/k/a$a;

    invoke-virtual {v10}, Lcom/imo/android/imoim/util/k/a$a;->a()I

    move-result v10

    if-ge v9, v10, :cond_5e

    .line 176
    iget-object v10, v1, Lcom/imo/android/imoim/util/k/a;->a:Ljava/util/Queue;

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

    move-result-object v11

    invoke-interface {v10, v11}, Ljava/util/Queue;->offer(Ljava/lang/Object;)Z

    add-int/lit8 v9, v9, 0x1

    goto :goto_4a

    .line 177
    :cond_5e
    iget-object v9, v1, Lcom/imo/android/imoim/util/k/a;->c:Lcom/imo/android/imoim/util/k/a$a;

    invoke-virtual {v9}, Lcom/imo/android/imoim/util/k/a$a;->a()I

    move-result v9

    sub-int/2addr v9, v8

    :goto_65
    if-ltz v9, :cond_73

    .line 178
    iget-object v8, v1, Lcom/imo/android/imoim/util/k/a;->a:Ljava/util/Queue;

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

    move-result-object v10

    invoke-interface {v8, v10}, Ljava/util/Queue;->offer(Ljava/lang/Object;)Z

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

    goto :goto_65

    :cond_73
    add-int/lit8 v7, v7, 0x1

    goto :goto_46

    .line 1220
    :cond_76
    :try_start_76
    new-instance v7, Landroid/media/MediaCodec$BufferInfo;

    invoke-direct {v7}, Landroid/media/MediaCodec$BufferInfo;-><init>()V

    iput-object v7, v1, Lcom/imo/android/imoim/util/k/a;->o:Landroid/media/MediaCodec$BufferInfo;

    .line 1222
    iget v7, v1, Lcom/imo/android/imoim/util/k/a;->f:I

    iget v9, v1, Lcom/imo/android/imoim/util/k/a;->g:I

    invoke-static {v3, v7, v9}, Landroid/media/MediaFormat;->createVideoFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;

    move-result-object v7

    const-string v9, "color-format"

    const v10, 0x7f000789

    .line 1226
    invoke-virtual {v7, v9, v10}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V

    const-string v9, "bitrate"

    .line 1228
    iget v10, v1, Lcom/imo/android/imoim/util/k/a;->i:I

    invoke-virtual {v7, v9, v10}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V

    const-string v9, "frame-rate"

    const/16 v10, 0x14

    .line 1229
    invoke-virtual {v7, v9, v10}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V

    const-string v9, "i-frame-interval"

    const/4 v10, 0x5

    .line 1230
    invoke-virtual {v7, v9, v10}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V

    .line 1231
    new-instance v9, Ljava/lang/StringBuilder;

    const-string v11, "format: "

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

    invoke-virtual {v9, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    :try_end_ab
    .catch Ljava/lang/Exception; {:try_start_76 .. :try_end_ab} :catch_3a3
    .catchall {:try_start_76 .. :try_end_ab} :catchall_3a0

    .line 1241
    :try_start_ab
    invoke-static {v3}, Landroid/media/MediaCodec;->createEncoderByType(Ljava/lang/String;)Landroid/media/MediaCodec;

    move-result-object v3

    iput-object v3, v1, Lcom/imo/android/imoim/util/k/a;->j:Landroid/media/MediaCodec;
    :try_end_b1
    .catch Ljava/lang/Exception; {:try_start_ab .. :try_end_b1} :catch_b1
    .catchall {:try_start_ab .. :try_end_b1} :catchall_3a0

    .line 1243
    :catch_b1
    :try_start_b1
    iget-object v3, v1, Lcom/imo/android/imoim/util/k/a;->j:Landroid/media/MediaCodec;

    const/4 v9, 0x0

    invoke-virtual {v3, v7, v9, v9, v8}, Landroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V

    .line 1244
    new-instance v3, Lcom/imo/android/imoim/util/k/a$b;

    iget-object v7, v1, Lcom/imo/android/imoim/util/k/a;->j:Landroid/media/MediaCodec;

    invoke-virtual {v7}, Landroid/media/MediaCodec;->createInputSurface()Landroid/view/Surface;

    move-result-object v7

    invoke-direct {v3, v7}, Lcom/imo/android/imoim/util/k/a$b;-><init>(Landroid/view/Surface;)V

    iput-object v3, v1, Lcom/imo/android/imoim/util/k/a;->k:Lcom/imo/android/imoim/util/k/a$b;

    .line 1245
    iget-object v3, v1, Lcom/imo/android/imoim/util/k/a;->j:Landroid/media/MediaCodec;

    invoke-virtual {v3}, Landroid/media/MediaCodec;->start()V
    :try_end_c9
    .catch Ljava/lang/Exception; {:try_start_b1 .. :try_end_c9} :catch_3a3
    .catchall {:try_start_b1 .. :try_end_c9} :catchall_3a0

    .line 1260
    :try_start_c9
    new-instance v3, Landroid/media/MediaMuxer;

    move-object/from16 v7, p1

    invoke-direct {v3, v7, v6}, Landroid/media/MediaMuxer;-><init>(Ljava/lang/String;I)V

    iput-object v3, v1, Lcom/imo/android/imoim/util/k/a;->l:Landroid/media/MediaMuxer;
    :try_end_d2
    .catch Ljava/io/IOException; {:try_start_c9 .. :try_end_d2} :catch_396
    .catch Ljava/lang/Exception; {:try_start_c9 .. :try_end_d2} :catch_3a3
    .catchall {:try_start_c9 .. :try_end_d2} :catchall_3a0

    const/4 v3, -0x1

    .line 1265
    :try_start_d3
    iput v3, v1, Lcom/imo/android/imoim/util/k/a;->m:I

    .line 1266
    iput-boolean v6, v1, Lcom/imo/android/imoim/util/k/a;->n:Z

    .line 183
    iget-object v7, v1, Lcom/imo/android/imoim/util/k/a;->k:Lcom/imo/android/imoim/util/k/a$b;

    .line 1524
    iget-object v9, v7, Lcom/imo/android/imoim/util/k/a$b;->a:Landroid/opengl/EGLDisplay;

    iget-object v11, v7, Lcom/imo/android/imoim/util/k/a$b;->c:Landroid/opengl/EGLSurface;

    iget-object v12, v7, Lcom/imo/android/imoim/util/k/a$b;->c:Landroid/opengl/EGLSurface;

    iget-object v7, v7, Lcom/imo/android/imoim/util/k/a$b;->b:Landroid/opengl/EGLContext;

    invoke-static {v9, v11, v12, v7}, Landroid/opengl/EGL14;->eglMakeCurrent(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;Landroid/opengl/EGLSurface;Landroid/opengl/EGLContext;)Z

    const-string v7, "eglMakeCurrent"

    .line 1525
    invoke-static {v7}, Lcom/imo/android/imoim/util/k/a$b;->a(Ljava/lang/String;)V

    .line 184
    new-instance v7, Lcom/imo/android/imoim/util/k/m;

    iget-object v9, v1, Lcom/imo/android/imoim/util/k/a;->c:Lcom/imo/android/imoim/util/k/a$a;

    iget v9, v9, Lcom/imo/android/imoim/util/k/a$a;->a:I

    iget-object v11, v1, Lcom/imo/android/imoim/util/k/a;->c:Lcom/imo/android/imoim/util/k/a$a;

    iget v11, v11, Lcom/imo/android/imoim/util/k/a$a;->b:I

    iget-object v12, v1, Lcom/imo/android/imoim/util/k/a;->c:Lcom/imo/android/imoim/util/k/a$a;

    iget-object v12, v12, Lcom/imo/android/imoim/util/k/a$a;->d:[F

    invoke-direct {v7, v9, v11, v12}, Lcom/imo/android/imoim/util/k/m;-><init>(II[F)V

    iput-object v7, v1, Lcom/imo/android/imoim/util/k/a;->e:Lcom/imo/android/imoim/util/k/m;

    const-string v9, "uniform mat4 uMVPMatrix;\nuniform mat4 uSTMatrix;\nattribute vec4 aPosition;\nattribute vec4 aTextureCoord;\nvarying vec2 vTextureCoord;\nvoid main() {\n gl_Position = uMVPMatrix * aPosition;\n vTextureCoord = (uSTMatrix * aTextureCoord).xy;\n}\n"

    const-string v11, "precision mediump float;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D y_tex;\nuniform sampler2D uv_tex;\n\nvoid main() {\n  float y = texture2D(y_tex, vTextureCoord).r;\n  float u = texture2D(uv_tex, vTextureCoord).a - .5;\n  float v = texture2D(uv_tex, vTextureCoord).r - .5;\n  gl_FragColor = vec4(y + 1.403 * v,                       y - 0.344 * u - 0.714 * v,                       y + 1.77 * u, 1);\n}\n"

    const v12, 0x8b31

    .line 2203
    invoke-static {v12, v9}, Lcom/imo/android/imoim/util/k/m;->a(ILjava/lang/String;)I

    move-result v9

    if-nez v9, :cond_10b

    :goto_109
    const/4 v12, 0x0

    goto :goto_152

    :cond_10b
    const v12, 0x8b30

    .line 2207
    invoke-static {v12, v11}, Lcom/imo/android/imoim/util/k/m;->a(ILjava/lang/String;)I

    move-result v11

    if-nez v11, :cond_115

    goto :goto_109

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

    move-result v12

    const-string v13, "glCreateProgram"

    .line 2212
    invoke-static {v13}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V
    :try_end_11e
    .catch Ljava/lang/Exception; {:try_start_d3 .. :try_end_11e} :catch_3a3
    .catchall {:try_start_d3 .. :try_end_11e} :catchall_3a0

    const-string v13, "TextureRender"

    if-nez v12, :cond_127

    :try_start_122
    const-string v14, "Could not create program"

    .line 2214
    invoke-static {v13, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 2216
    :cond_127
    invoke-static {v12, v9}, Landroid/opengl/GLES20;->glAttachShader(II)V

    .line 2217
    invoke-static {v2}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 2218
    invoke-static {v12, v11}, Landroid/opengl/GLES20;->glAttachShader(II)V

    .line 2219
    invoke-static {v2}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

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

    new-array v2, v8, [I

    const v9, 0x8b82

    .line 2222
    invoke-static {v12, v9, v2, v6}, Landroid/opengl/GLES20;->glGetProgramiv(II[II)V

    .line 2223
    aget v2, v2, v6

    if-eq v2, v8, :cond_152

    const-string v2, "Could not link program: "

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

    .line 2225
    invoke-static {v12}, Landroid/opengl/GLES20;->glGetProgramInfoLog(I)Ljava/lang/String;

    move-result-object v2

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

    .line 2226
    invoke-static {v12}, Landroid/opengl/GLES20;->glDeleteProgram(I)V

    goto :goto_109

    .line 2130
    :cond_152
    :goto_152
    iput v12, v7, Lcom/imo/android/imoim/util/k/m;->d:I

    .line 2131
    iget v2, v7, Lcom/imo/android/imoim/util/k/m;->d:I

    if-eqz v2, :cond_38e

    .line 2134
    iget v2, v7, Lcom/imo/android/imoim/util/k/m;->d:I

    const-string v9, "aPosition"

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

    move-result v2

    iput v2, v7, Lcom/imo/android/imoim/util/k/m;->h:I

    const-string v2, "glGetAttribLocation aPosition"

    .line 2135
    invoke-static {v2}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 2136
    iget v2, v7, Lcom/imo/android/imoim/util/k/m;->h:I

    if-eq v2, v3, :cond_386

    .line 2139
    iget v2, v7, Lcom/imo/android/imoim/util/k/m;->d:I

    const-string v9, "aTextureCoord"

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

    move-result v2

    iput v2, v7, Lcom/imo/android/imoim/util/k/m;->i:I

    const-string v2, "glGetAttribLocation aTextureCoord"

    .line 2140
    invoke-static {v2}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 2141
    iget v2, v7, Lcom/imo/android/imoim/util/k/m;->i:I

    if-eq v2, v3, :cond_37e

    .line 2144
    iget v2, v7, Lcom/imo/android/imoim/util/k/m;->d:I

    const-string v9, "uMVPMatrix"

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

    move-result v2

    iput v2, v7, Lcom/imo/android/imoim/util/k/m;->f:I

    const-string v2, "glGetUniformLocation uMVPMatrix"

    .line 2145
    invoke-static {v2}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 2146
    iget v2, v7, Lcom/imo/android/imoim/util/k/m;->f:I

    if-eq v2, v3, :cond_376

    .line 2149
    iget v2, v7, Lcom/imo/android/imoim/util/k/m;->d:I

    const-string v9, "uSTMatrix"

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

    move-result v2

    iput v2, v7, Lcom/imo/android/imoim/util/k/m;->g:I

    const-string v2, "glGetUniformLocation uSTMatrix"

    .line 2150
    invoke-static {v2}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 2151
    iget v2, v7, Lcom/imo/android/imoim/util/k/m;->g:I

    if-eq v2, v3, :cond_36e

    const/4 v2, 0x2

    new-array v3, v2, [I

    .line 2155
    invoke-static {v2, v3, v6}, Landroid/opengl/GLES20;->glGenTextures(I[II)V

    .line 2156
    iput-object v3, v7, Lcom/imo/android/imoim/util/k/m;->e:[I

    .line 2158
    iget-object v3, v7, Lcom/imo/android/imoim/util/k/m;->e:[I

    aget v3, v3, v6

    const/16 v9, 0xde1

    invoke-static {v9, v3}, Landroid/opengl/GLES20;->glBindTexture(II)V

    const/16 v3, 0x2801

    const/16 v11, 0x2601

    .line 2160
    invoke-static {v9, v3, v11}, Landroid/opengl/GLES20;->glTexParameteri(III)V

    const/16 v12, 0x2800

    .line 2162
    invoke-static {v9, v12, v11}, Landroid/opengl/GLES20;->glTexParameteri(III)V

    const/16 v13, 0x2802

    const v14, 0x812f

    .line 2163
    invoke-static {v9, v13, v14}, Landroid/opengl/GLES20;->glTexParameteri(III)V

    const/16 v15, 0x2803

    .line 2164
    invoke-static {v9, v15, v14}, Landroid/opengl/GLES20;->glTexParameteri(III)V

    .line 2167
    iget-object v10, v7, Lcom/imo/android/imoim/util/k/m;->e:[I

    aget v10, v10, v8

    invoke-static {v9, v10}, Landroid/opengl/GLES20;->glBindTexture(II)V

    .line 2169
    invoke-static {v9, v3, v11}, Landroid/opengl/GLES20;->glTexParameteri(III)V

    .line 2170
    invoke-static {v9, v12, v11}, Landroid/opengl/GLES20;->glTexParameteri(III)V

    .line 2171
    invoke-static {v9, v13, v14}, Landroid/opengl/GLES20;->glTexParameteri(III)V

    .line 2172
    invoke-static {v9, v15, v14}, Landroid/opengl/GLES20;->glTexParameteri(III)V

    const-string v3, "glBindTexture mTextureID"

    .line 2174
    invoke-static {v3}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 2176
    iget v3, v7, Lcom/imo/android/imoim/util/k/m;->d:I

    const-string v10, "y_tex"

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

    move-result v3

    .line 2177
    iget v10, v7, Lcom/imo/android/imoim/util/k/m;->d:I

    const-string v11, "uv_tex"

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

    move-result v10

    const-string v11, "glGetUniLocation"

    .line 2178
    invoke-static {v11}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 2179
    iget v7, v7, Lcom/imo/android/imoim/util/k/m;->d:I

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

    .line 2180
    invoke-static {v3, v6}, Landroid/opengl/GLES20;->glUniform1i(II)V

    .line 2181
    invoke-static {v10, v8}, Landroid/opengl/GLES20;->glUniform1i(II)V

    const-string v3, "glUniform"

    .line 2182
    invoke-static {v3}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 187
    :goto_20b
    iget-object v3, v1, Lcom/imo/android/imoim/util/k/a;->a:Ljava/util/Queue;

    invoke-interface {v3}, Ljava/util/Queue;->isEmpty()Z

    move-result v3

    if-nez v3, :cond_365

    .line 189
    invoke-direct {v1, v6}, Lcom/imo/android/imoim/util/k/a;->a(Z)V

    .line 3134
    iget-object v3, v1, Lcom/imo/android/imoim/util/k/a;->a:Ljava/util/Queue;

    invoke-interface {v3}, Ljava/util/Queue;->poll()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Ljava/lang/Integer;

    invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I

    move-result v3

    const-string v7, "drawFrame "

    .line 3135
    invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

    move-result-object v10

    invoke-virtual {v7, v10}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v7

    .line 4071
    invoke-static {v4, v7}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V

    .line 3136
    iget-object v7, v1, Lcom/imo/android/imoim/util/k/a;->c:Lcom/imo/android/imoim/util/k/a$a;

    iget-object v7, v7, Lcom/imo/android/imoim/util/k/a$a;->c:Ljava/util/List;

    invoke-interface {v7, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Ljava/io/File;

    invoke-static {v3}, Lcom/imo/android/imoim/util/k/a;->a(Ljava/io/File;)[B

    move-result-object v3

    .line 3137
    iget-object v7, v1, Lcom/imo/android/imoim/util/k/a;->e:Lcom/imo/android/imoim/util/k/m;

    const-string v10, "onDrawFrame start"

    .line 4099
    invoke-static {v10}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    const/high16 v10, 0x3f800000    # 1.0f

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

    const/16 v10, 0x4100

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

    .line 4102
    iget v10, v7, Lcom/imo/android/imoim/util/k/m;->d:I

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

    const-string v10, "glUseProgram"

    .line 4103
    invoke-static {v10}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 5084
    iget-object v10, v7, Lcom/imo/android/imoim/util/k/m;->l:Ljava/nio/ByteBuffer;

    iget v11, v7, Lcom/imo/android/imoim/util/k/m;->j:I

    iget v12, v7, Lcom/imo/android/imoim/util/k/m;->k:I

    mul-int v11, v11, v12

    invoke-virtual {v10, v3, v6, v11}, Ljava/nio/ByteBuffer;->put([BII)Ljava/nio/ByteBuffer;

    .line 5085
    iget-object v10, v7, Lcom/imo/android/imoim/util/k/m;->l:Ljava/nio/ByteBuffer;

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

    .line 5088
    iget-object v10, v7, Lcom/imo/android/imoim/util/k/m;->m:Ljava/nio/ByteBuffer;

    iget v11, v7, Lcom/imo/android/imoim/util/k/m;->j:I

    iget v12, v7, Lcom/imo/android/imoim/util/k/m;->k:I

    mul-int v11, v11, v12

    iget v12, v7, Lcom/imo/android/imoim/util/k/m;->j:I

    iget v13, v7, Lcom/imo/android/imoim/util/k/m;->k:I

    mul-int v12, v12, v13

    div-int/2addr v12, v2

    invoke-virtual {v10, v3, v11, v12}, Ljava/nio/ByteBuffer;->put([BII)Ljava/nio/ByteBuffer;

    .line 5089
    iget-object v3, v7, Lcom/imo/android/imoim/util/k/m;->m:Ljava/nio/ByteBuffer;

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

    const v3, 0x84c0

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

    .line 5091
    iget-object v3, v7, Lcom/imo/android/imoim/util/k/m;->e:[I

    aget v3, v3, v6

    invoke-static {v9, v3}, Landroid/opengl/GLES20;->glBindTexture(II)V

    const/16 v16, 0xde1

    const/16 v17, 0x0

    const/16 v18, 0x1909

    .line 5092
    iget v3, v7, Lcom/imo/android/imoim/util/k/m;->j:I

    iget v10, v7, Lcom/imo/android/imoim/util/k/m;->k:I

    const/16 v21, 0x0

    const/16 v22, 0x1909

    const/16 v23, 0x1401

    iget-object v11, v7, Lcom/imo/android/imoim/util/k/m;->l:Ljava/nio/ByteBuffer;

    move/from16 v19, v3

    move/from16 v20, v10

    move-object/from16 v24, v11

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

    const v3, 0x84c1

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

    .line 5094
    iget-object v3, v7, Lcom/imo/android/imoim/util/k/m;->e:[I

    aget v3, v3, v8

    invoke-static {v9, v3}, Landroid/opengl/GLES20;->glBindTexture(II)V

    const/16 v16, 0xde1

    const/16 v17, 0x0

    const/16 v18, 0x190a

    .line 5095
    iget v3, v7, Lcom/imo/android/imoim/util/k/m;->j:I

    div-int/lit8 v19, v3, 0x2

    iget v3, v7, Lcom/imo/android/imoim/util/k/m;->k:I

    div-int/lit8 v20, v3, 0x2

    const/16 v21, 0x0

    const/16 v22, 0x190a

    const/16 v23, 0x1401

    iget-object v3, v7, Lcom/imo/android/imoim/util/k/m;->m:Ljava/nio/ByteBuffer;

    move-object/from16 v24, v3

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

    .line 4105
    iget-object v3, v7, Lcom/imo/android/imoim/util/k/m;->a:Ljava/nio/FloatBuffer;

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

    .line 4106
    iget v10, v7, Lcom/imo/android/imoim/util/k/m;->h:I

    const/4 v11, 0x3

    const/16 v12, 0x1406

    const/4 v13, 0x0

    const/16 v14, 0x14

    iget-object v15, v7, Lcom/imo/android/imoim/util/k/m;->a:Ljava/nio/FloatBuffer;

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

    const-string v3, "glVertexAttribPointer maPosition"

    .line 4108
    invoke-static {v3}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 4109
    iget v3, v7, Lcom/imo/android/imoim/util/k/m;->h:I

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

    const-string v3, "glEnableVertexAttribArray maPositionHandle"

    .line 4110
    invoke-static {v3}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 4111
    iget-object v3, v7, Lcom/imo/android/imoim/util/k/m;->a:Ljava/nio/FloatBuffer;

    const/4 v10, 0x3

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

    .line 4112
    iget v3, v7, Lcom/imo/android/imoim/util/k/m;->i:I

    const/16 v17, 0x2

    const/16 v18, 0x1406

    const/16 v19, 0x0

    const/16 v20, 0x14

    iget-object v10, v7, Lcom/imo/android/imoim/util/k/m;->a:Ljava/nio/FloatBuffer;

    move/from16 v16, v3

    move-object/from16 v21, v10

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

    const-string v3, "glVertexAttribPointer maTextureHandle"

    .line 4114
    invoke-static {v3}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 4115
    iget v3, v7, Lcom/imo/android/imoim/util/k/m;->i:I

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

    const-string v3, "glEnableVertexAttribArray maTextureHandle"

    .line 4116
    invoke-static {v3}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 4117
    iget-object v3, v7, Lcom/imo/android/imoim/util/k/m;->b:[F

    invoke-static {v3, v6}, Landroid/opengl/Matrix;->setIdentityM([FI)V

    .line 4118
    iget v3, v7, Lcom/imo/android/imoim/util/k/m;->f:I

    iget-object v10, v7, Lcom/imo/android/imoim/util/k/m;->b:[F

    invoke-static {v3, v8, v6, v10, v6}, Landroid/opengl/GLES20;->glUniformMatrix4fv(IIZ[FI)V

    .line 4119
    iget v3, v7, Lcom/imo/android/imoim/util/k/m;->g:I

    iget-object v7, v7, Lcom/imo/android/imoim/util/k/m;->c:[F

    invoke-static {v3, v8, v6, v7, v6}, Landroid/opengl/GLES20;->glUniformMatrix4fv(IIZ[FI)V

    const/4 v3, 0x4

    const/4 v7, 0x5

    .line 4120
    invoke-static {v7, v6, v3}, Landroid/opengl/GLES20;->glDrawArrays(III)V

    const-string v3, "glDrawArrays"

    .line 4121
    invoke-static {v3}, Lcom/imo/android/imoim/util/k/m;->a(Ljava/lang/String;)V

    .line 4122
    invoke-static {}, Landroid/opengl/GLES20;->glFinish()V

    .line 3139
    iget-object v3, v1, Lcom/imo/android/imoim/util/k/a;->k:Lcom/imo/android/imoim/util/k/a$b;

    iget v10, v1, Lcom/imo/android/imoim/util/k/a;->d:I

    add-int/lit8 v11, v10, 0x1

    iput v11, v1, Lcom/imo/android/imoim/util/k/a;->d:I

    int-to-long v10, v10

    const-wide/32 v12, 0x3b9aca00

    mul-long v10, v10, v12

    const-wide/16 v12, 0x14

    .line 5415
    div-long/2addr v10, v12

    .line 5541
    iget-object v12, v3, Lcom/imo/android/imoim/util/k/a$b;->a:Landroid/opengl/EGLDisplay;

    iget-object v3, v3, Lcom/imo/android/imoim/util/k/a$b;->c:Landroid/opengl/EGLSurface;

    invoke-static {v12, v3, v10, v11}, Landroid/opengl/EGLExt;->eglPresentationTimeANDROID(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;J)Z

    const-string v3, "eglPresentationTimeANDROID"

    .line 5542
    invoke-static {v3}, Lcom/imo/android/imoim/util/k/a$b;->a(Ljava/lang/String;)V

    .line 3142
    iget-object v3, v1, Lcom/imo/android/imoim/util/k/a;->k:Lcom/imo/android/imoim/util/k/a$b;

    .line 6532
    iget-object v10, v3, Lcom/imo/android/imoim/util/k/a$b;->a:Landroid/opengl/EGLDisplay;

    iget-object v3, v3, Lcom/imo/android/imoim/util/k/a$b;->c:Landroid/opengl/EGLSurface;

    invoke-static {v10, v3}, Landroid/opengl/EGL14;->eglSwapBuffers(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;)Z

    const-string v3, "eglSwapBuffers"

    .line 6533
    invoke-static {v3}, Lcom/imo/android/imoim/util/k/a$b;->a(Ljava/lang/String;)V

    goto/16 :goto_20b

    .line 196
    :cond_365
    invoke-direct {v1, v8}, Lcom/imo/android/imoim/util/k/a;->a(Z)V

    .line 197
    sget-object v5, Lcom/imo/android/imoim/util/k/d$b;->OK:Lcom/imo/android/imoim/util/k/d$b;
    :try_end_36a
    .catch Ljava/lang/Exception; {:try_start_122 .. :try_end_36a} :catch_3a3
    .catchall {:try_start_122 .. :try_end_36a} :catchall_3a0

    .line 203
    :try_start_36a
    invoke-direct/range {p0 .. p0}, Lcom/imo/android/imoim/util/k/a;->a()V
    :try_end_36d
    .catch Ljava/lang/Exception; {:try_start_36a .. :try_end_36d} :catch_3b0

    goto :goto_3bb

    .line 2152
    :cond_36e
    :try_start_36e
    new-instance v2, Ljava/lang/RuntimeException;

    const-string v3, "Could not get attrib location for uSTMatrix"

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

    throw v2

    .line 2147
    :cond_376
    new-instance v2, Ljava/lang/RuntimeException;

    const-string v3, "Could not get attrib location for uMVPMatrix"

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

    throw v2

    .line 2142
    :cond_37e
    new-instance v2, Ljava/lang/RuntimeException;

    const-string v3, "Could not get attrib location for aTextureCoord"

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

    throw v2

    .line 2137
    :cond_386
    new-instance v2, Ljava/lang/RuntimeException;

    const-string v3, "Could not get attrib location for aPosition"

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

    throw v2

    .line 2132
    :cond_38e
    new-instance v2, Ljava/lang/RuntimeException;

    const-string v3, "failed creating program"

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

    throw v2

    :catch_396
    move-exception v0

    move-object v2, v0

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

    const-string v6, "MediaMuxer creation failed"

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

    throw v3
    :try_end_3a0
    .catch Ljava/lang/Exception; {:try_start_36e .. :try_end_3a0} :catch_3a3
    .catchall {:try_start_36e .. :try_end_3a0} :catchall_3a0

    :catchall_3a0
    move-exception v0

    move-object v2, v0

    goto :goto_3bc

    :catch_3a3
    move-exception v0

    move-object v2, v0

    .line 199
    :try_start_3a5
    invoke-virtual {v2}, Ljava/lang/Exception;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v4, v2}, Lcom/imo/android/imoim/util/bt;->c(Ljava/lang/String;Ljava/lang/String;)V
    :try_end_3ac
    .catchall {:try_start_3a5 .. :try_end_3ac} :catchall_3a0

    .line 203
    :try_start_3ac
    invoke-direct/range {p0 .. p0}, Lcom/imo/android/imoim/util/k/a;->a()V
    :try_end_3af
    .catch Ljava/lang/Exception; {:try_start_3ac .. :try_end_3af} :catch_3b0

    goto :goto_3bb

    :catch_3b0
    move-exception v0

    move-object v2, v0

    .line 205
    invoke-virtual {v2}, Ljava/lang/Exception;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v4, v2}, Lcom/imo/android/imoim/util/bt;->c(Ljava/lang/String;Ljava/lang/String;)V

    .line 206
    sget-object v5, Lcom/imo/android/imoim/util/k/d$b;->ERROR:Lcom/imo/android/imoim/util/k/d$b;

    :goto_3bb
    return-object v5

    .line 203
    :goto_3bc
    :try_start_3bc
    invoke-direct/range {p0 .. p0}, Lcom/imo/android/imoim/util/k/a;->a()V
    :try_end_3bf
    .catch Ljava/lang/Exception; {:try_start_3bc .. :try_end_3bf} :catch_3c0

    goto :goto_3cb

    :catch_3c0
    move-exception v0

    move-object v3, v0

    .line 205
    invoke-virtual {v3}, Ljava/lang/Exception;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-static {v4, v3}, Lcom/imo/android/imoim/util/bt;->c(Ljava/lang/String;Ljava/lang/String;)V

    .line 206
    sget-object v3, Lcom/imo/android/imoim/util/k/d$b;->ERROR:Lcom/imo/android/imoim/util/k/d$b;

    .line 207
    :goto_3cb
    goto :goto_3cd

    :goto_3cc
    throw v2

    :goto_3cd
    goto :goto_3cc
.end method