f$a.smali
.class final Lcom/yysdk/mobile/vpsdk/p/b/f$a;
.super Ljava/lang/Thread;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/yysdk/mobile/vpsdk/p/b/f;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = "a"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/yysdk/mobile/vpsdk/p/b/f$a$a;
}
.end annotation
# instance fields
.field final a:Ljava/lang/Object;
.field volatile b:Z
.field c:Ljava/util/concurrent/atomic/AtomicBoolean;
.field d:Ljava/util/LinkedList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/LinkedList<",
"Lcom/yysdk/mobile/vpsdk/p/b/c;",
">;"
}
.end annotation
.end field
.field private e:Z
.field private f:Landroid/media/MediaCodec;
.field private g:Landroid/media/MediaCodec$BufferInfo;
.field private h:Landroid/view/Surface;
.field private i:Landroid/opengl/EGLSurface;
.field private j:Landroid/opengl/EGLDisplay;
.field private k:J
.field private l:Landroid/media/MediaFormat;
.field private m:I
.field private n:I
.field private o:Lcom/yysdk/mobile/vpsdk/p/b/f$a$a;
.field private p:Lcom/yysdk/mobile/vpsdk/h/f;
.field private q:J
.field private r: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 s:J
.field private t:I
.field private u:Z
.field private v:Z
.field private w:[B
# direct methods
.method public constructor <init>(Lcom/yysdk/mobile/vpsdk/p/b;II)V
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/yysdk/mobile/vpsdk/p/b<",
"Lcom/yysdk/mobile/vpsdk/p/b/c;",
">;II)V"
}
.end annotation
.line 291
invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
const/4 v0, 0x0
.line 261
iput-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->e:Z
const/4 v1, 0x0
.line 274
iput-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->p:Lcom/yysdk/mobile/vpsdk/h/f;
const-wide/16 v2, 0x0
.line 275
iput-wide v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->q:J
.line 277
new-instance v4, Ljava/lang/Object;
invoke-direct {v4}, Ljava/lang/Object;-><init>()V
iput-object v4, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->a:Ljava/lang/Object;
.line 278
iput-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->b:Z
.line 279
new-instance v4, Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-direct {v4, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>(Z)V
iput-object v4, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->c:Ljava/util/concurrent/atomic/AtomicBoolean;
.line 281
iput-wide v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->s:J
.line 282
iput v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->t:I
const/4 v2, 0x1
.line 284
iput-boolean v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->u:Z
.line 285
iput-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->v:Z
.line 287
iput-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->w:[B
.line 288
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
iput-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->d:Ljava/util/LinkedList;
.line 292
new-instance v0, Landroid/media/MediaCodec$BufferInfo;
invoke-direct {v0}, Landroid/media/MediaCodec$BufferInfo;-><init>()V
iput-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
.line 293
iput-object p1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->r:Lcom/yysdk/mobile/vpsdk/p/b;
.line 294
iput p2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->m:I
.line 295
iput p3, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->n:I
return-void
.end method
.method static synthetic a(Lcom/yysdk/mobile/vpsdk/p/b/f$a;II)V
.registers 9
const-string v0, "MediaCodecReader"
.line 2626
:try_start_2
iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
invoke-virtual {v1}, Landroid/media/MediaCodec;->reset()V
.line 2627
iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->l:Landroid/media/MediaFormat;
const-string v2, "width"
invoke-virtual {v1, v2, p1}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
.line 2628
iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->l:Landroid/media/MediaFormat;
const-string v2, "height"
invoke-virtual {v1, v2, p2}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
.line 2629
iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
iget-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->l:Landroid/media/MediaFormat;
const/4 v3, 0x1
const/4 v4, 0x0
invoke-virtual {v1, v2, v4, v4, v3}, Landroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V
.line 2630
iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->h:Landroid/view/Surface;
invoke-virtual {v1}, Landroid/view/Surface;->release()V
.line 2631
iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
invoke-virtual {v1}, Landroid/media/MediaCodec;->createInputSurface()Landroid/view/Surface;
move-result-object v1
iput-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->h:Landroid/view/Surface;
:try_end_2b
.catch Ljava/lang/IllegalStateException; {:try_start_2 .. :try_end_2b} :catch_b1
.catch Ljava/lang/IllegalArgumentException; {:try_start_2 .. :try_end_2b} :catch_95
.line 2644
iget-wide v4, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->k:J
invoke-static {v4, v5, v1}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->createEGLSurface(JLjava/lang/Object;)I
move-result v1
const/16 v2, 0x3000
if-eq v1, v2, :cond_48
.line 2646
invoke-static {v1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object p0
const-string p1, "[configure] createEGLSurface failed : "
invoke-virtual {p1, p0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
invoke-static {v0, p0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 2647
sget-object p0, Lcom/yysdk/mobile/vpsdk/report/a;->MEDIACODEC_CREATE_EGLSURFACE_FAILED:Lcom/yysdk/mobile/vpsdk/report/a;
invoke-static {p0}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V
return-void
.line 2651
:cond_48
iget-wide v4, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->k:J
invoke-static {v4, v5}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->b(J)I
move-result v1
if-eq v1, v2, :cond_63
.line 2653
invoke-static {v1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object p0
const-string p1, "[configure] makeCurrent failed : "
invoke-virtual {p1, p0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
invoke-static {v0, p0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 2654
sget-object p0, Lcom/yysdk/mobile/vpsdk/report/a;->MEDIACODEC_MAKECURRENT_FAILED:Lcom/yysdk/mobile/vpsdk/report/a;
invoke-static {p0}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V
return-void
:cond_63
const/16 v1, 0x3059
.line 2659
invoke-static {v1}, Landroid/opengl/EGL14;->eglGetCurrentSurface(I)Landroid/opengl/EGLSurface;
move-result-object v1
iput-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->i:Landroid/opengl/EGLSurface;
.line 2660
invoke-static {}, Landroid/opengl/EGL14;->eglGetCurrentDisplay()Landroid/opengl/EGLDisplay;
move-result-object v1
iput-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->j:Landroid/opengl/EGLDisplay;
.line 2661
iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
invoke-virtual {v1}, Landroid/media/MediaCodec;->start()V
.line 2662
iget-object p0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->c:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {p0, v3}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V
.line 2663
new-instance p0, Ljava/lang/StringBuilder;
const-string v1, "configure success, width : "
invoke-direct {p0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p1, ", height : "
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v0, p0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
return-void
:catch_95
move-exception p0
.line 2638
new-instance p1, Ljava/lang/StringBuilder;
const-string p2, "[configure] configure failed"
invoke-direct {p1, p2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p0}, Ljava/lang/IllegalArgumentException;->getMessage()Ljava/lang/String;
move-result-object p0
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v0, p0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 2639
sget-object p0, Lcom/yysdk/mobile/vpsdk/report/a;->MEDIACODEC_CONFIGURE_FAIELD:Lcom/yysdk/mobile/vpsdk/report/a;
invoke-static {p0}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V
return-void
:catch_b1
move-exception p0
.line 2633
new-instance p1, Ljava/lang/StringBuilder;
const-string p2, "[configure] reset failed"
invoke-direct {p1, p2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p0}, Ljava/lang/IllegalStateException;->getMessage()Ljava/lang/String;
move-result-object p0
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v0, p0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 2634
sget-object p0, Lcom/yysdk/mobile/vpsdk/report/a;->MEDIACODEC_INVALID_STATE:Lcom/yysdk/mobile/vpsdk/report/a;
invoke-static {p0}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V
return-void
.end method
.method static synthetic a(Lcom/yysdk/mobile/vpsdk/p/b/f$a;Lcom/yysdk/mobile/vpsdk/p/b/c;)V
.registers 3
.line 2459
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->d:Ljava/util/LinkedList;
invoke-virtual {v0, p1}, Ljava/util/LinkedList;->addLast(Ljava/lang/Object;)V
.line 2460
iget-object p1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->d:Ljava/util/LinkedList;
invoke-virtual {p1}, Ljava/util/LinkedList;->size()I
move-result p1
const/4 v0, 0x3
if-lt p1, v0, :cond_11
.line 2463
invoke-direct {p0}, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->d()V
:cond_11
return-void
.end method
.method static synthetic a(Lcom/yysdk/mobile/vpsdk/p/b/f$a;Z)V
.registers 15
if-eqz p1, :cond_e
.line 2468
:goto_2
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->d:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->isEmpty()Z
move-result v0
if-nez v0, :cond_e
.line 2469
invoke-direct {p0}, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->d()V
goto :goto_2
:cond_e
if-eqz p1, :cond_16
.line 2474
iget-wide v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->q:J
const-wide/16 v2, 0x3
div-long/2addr v0, v2
goto :goto_18
:cond_16
const-wide/16 v0, -0x1
:goto_18
const/4 v2, 0x1
const-string v3, "MediaCodecReader"
const/4 v4, 0x0
if-eqz p1, :cond_3c
.line 2477
iput v4, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->t:I
.line 2478
iget-wide v5, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->s:J
cmp-long v7, v5, v0
if-nez v7, :cond_3c
const-string p1, "encode already reached end of stream"
.line 2479
invoke-static {v3, p1}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 2480
iput-boolean v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->u:Z
.line 2481
iput-boolean v4, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->v:Z
.line 2482
new-instance p1, Lcom/yysdk/mobile/vpsdk/p/b/c;
invoke-direct {p1}, Lcom/yysdk/mobile/vpsdk/p/b/c;-><init>()V
.line 2483
iput-boolean v2, p1, Lcom/yysdk/mobile/vpsdk/p/b/c;->g:Z
.line 2484
iget-object p0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->r:Lcom/yysdk/mobile/vpsdk/p/b;
invoke-interface {p0, p1}, Lcom/yysdk/mobile/vpsdk/p/b;->b(Ljava/lang/Object;)V
return-void
.line 2489
:cond_3c
iget-object v5, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
invoke-virtual {v5}, Landroid/media/MediaCodec;->getOutputBuffers()[Ljava/nio/ByteBuffer;
move-result-object v5
.line 2491
:cond_42
:goto_42
iget-object v6, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
iget-object v7, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
const-wide/16 v8, 0x0
invoke-virtual {v6, v7, v8, v9}, Landroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I
move-result v6
const/4 v7, -0x1
if-ne v6, v7, :cond_94
if-eqz p1, :cond_1f6
.line 2499
iget v6, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->t:I
add-int/2addr v6, v2
iput v6, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->t:I
.line 2500
new-instance v6, Ljava/lang/StringBuilder;
const-string v7, "waiting for the EOS flag buffer : "
invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v7, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->t: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 {v3, v6}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 2502
iget v6, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->t:I
const/16 v7, 0xa
if-le v6, v7, :cond_86
.line 2503
iput-boolean v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->v:Z
.line 2504
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "waiting for EOS time out : "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->t:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v3, v0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_1f6
:cond_86
const-wide/16 v6, 0x32
.line 2509
:try_start_88
invoke-static {v6, v7}, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->sleep(J)V
:try_end_8b
.catch Ljava/lang/InterruptedException; {:try_start_88 .. :try_end_8b} :catch_8c
goto :goto_42
.line 2512
:catch_8c
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/Thread;->interrupt()V
goto :goto_42
:cond_94
const/4 v7, -0x3
if-ne v6, v7, :cond_9e
.line 2517
iget-object v5, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
invoke-virtual {v5}, Landroid/media/MediaCodec;->getOutputBuffers()[Ljava/nio/ByteBuffer;
move-result-object v5
goto :goto_42
:cond_9e
const/4 v7, -0x2
if-ne v6, v7, :cond_b2
.line 2520
iget-object v6, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
invoke-virtual {v6}, Landroid/media/MediaCodec;->getOutputFormat()Landroid/media/MediaFormat;
move-result-object v6
.line 2521
new-instance v7, Ljava/lang/StringBuilder;
const-string v8, "encoder output format changed: "
invoke-direct {v7, v8}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
goto :goto_42
:cond_b2
if-gez v6, :cond_c2
.line 2523
invoke-static {v6}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v6
const-string v7, "unexpected result from encoder.dequeueOutputBuffer: "
invoke-virtual {v7, v6}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
invoke-static {v3, v6}, Lcom/yysdk/mobile/vpsdk/p;->b(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_42
.line 2526
:cond_c2
aget-object v7, v5, v6
if-eqz v7, :cond_207
.line 2532
iget-object v10, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
iget v10, v10, Landroid/media/MediaCodec$BufferInfo;->flags:I
and-int/lit8 v10, v10, 0x2
if-eqz v10, :cond_dd
.line 2535
iget-object v10, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
iget v10, v10, Landroid/media/MediaCodec$BufferInfo;->size:I
new-array v10, v10, [B
iput-object v10, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->w:[B
.line 2536
invoke-virtual {v7, v10}, Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;
.line 2537
iget-object v10, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
iput v4, v10, Landroid/media/MediaCodec$BufferInfo;->size:I
.line 2540
:cond_dd
iget-object v10, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
iget v10, v10, Landroid/media/MediaCodec$BufferInfo;->size:I
if-eqz v10, :cond_1c7
.line 2542
iget-object v10, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
iget v10, v10, Landroid/media/MediaCodec$BufferInfo;->flags:I
and-int/2addr v10, v2
if-eqz v10, :cond_ec
const/4 v10, 0x1
goto :goto_ed
:cond_ec
const/4 v10, 0x0
:goto_ed
if-eqz v10, :cond_fe
.line 2546
iget-object v11, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->w:[B
if-nez v11, :cond_107
const-string v11, "no head info"
.line 2547
invoke-static {v3, v11}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 2548
sget-object v11, Lcom/yysdk/mobile/vpsdk/report/a;->MEDIACODEC_NO_HEADINFO:Lcom/yysdk/mobile/vpsdk/report/a;
invoke-static {v11}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V
goto :goto_11d
.line 2553
:cond_fe
iget-boolean v11, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->u:Z
if-nez v11, :cond_109
iget-boolean v11, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->v:Z
if-eqz v11, :cond_107
goto :goto_109
:cond_107
const/4 v11, 0x1
goto :goto_11e
:cond_109
:goto_109
const-string v11, "drop the P frame"
.line 2554
invoke-static {v3, v11}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 2555
iget-object v11, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->r:Lcom/yysdk/mobile/vpsdk/p/b;
invoke-interface {v11, v8, v9}, Lcom/yysdk/mobile/vpsdk/p/b;->a(J)Ljava/lang/Object;
move-result-object v11
check-cast v11, Lcom/yysdk/mobile/vpsdk/p/b/c;
if-eqz v11, :cond_11d
.line 2557
iget-object v12, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->r:Lcom/yysdk/mobile/vpsdk/p/b;
invoke-interface {v12, v11}, Lcom/yysdk/mobile/vpsdk/p/b;->a(Ljava/lang/Object;)V
:cond_11d
:goto_11d
const/4 v11, 0x0
:goto_11e
if-eqz v11, :cond_1c7
.line 2564
iget-object v11, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->r:Lcom/yysdk/mobile/vpsdk/p/b;
invoke-interface {v11, v8, v9}, Lcom/yysdk/mobile/vpsdk/p/b;->a(J)Ljava/lang/Object;
move-result-object v8
check-cast v8, Lcom/yysdk/mobile/vpsdk/p/b/c;
if-eqz v8, :cond_1c2
if-eqz v10, :cond_16c
.line 2567
sget-object v9, Lcom/yysdk/mobile/vpsdk/p/b/c$a;->H264I:Lcom/yysdk/mobile/vpsdk/p/b/c$a;
iput-object v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->k:Lcom/yysdk/mobile/vpsdk/p/b/c$a;
.line 2568
iget-object v9, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
iget v9, v9, Landroid/media/MediaCodec$BufferInfo;->size:I
iget-object v10, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->w:[B
array-length v10, v10
add-int/2addr v9, v10
iput v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->c:I
.line 2569
iget-object v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->b:[B
if-eqz v9, :cond_145
iget-object v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->b:[B
array-length v9, v9
iget v10, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->c:I
if-ge v9, v10, :cond_155
.line 2570
:cond_145
iget v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->e:I
iget v10, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->f:I
mul-int v9, v9, v10
mul-int/lit8 v9, v9, 0x4
iget-object v10, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->w:[B
array-length v10, v10
add-int/2addr v9, v10
new-array v9, v9, [B
iput-object v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->b:[B
.line 2572
:cond_155
iget-object v9, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->w:[B
iget-object v10, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->b:[B
iget-object v11, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->w:[B
array-length v11, v11
invoke-static {v9, v4, v10, v4, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 2573
iget-object v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->b:[B
iget-object v10, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->w:[B
array-length v10, v10
iget-object v11, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
iget v11, v11, Landroid/media/MediaCodec$BufferInfo;->size:I
invoke-virtual {v7, v9, v10, v11}, Ljava/nio/ByteBuffer;->get([BII)Ljava/nio/ByteBuffer;
goto :goto_196
.line 2575
:cond_16c
sget-object v9, Lcom/yysdk/mobile/vpsdk/p/b/c$a;->H264P:Lcom/yysdk/mobile/vpsdk/p/b/c$a;
iput-object v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->k:Lcom/yysdk/mobile/vpsdk/p/b/c$a;
.line 2576
iget-object v9, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
iget v9, v9, Landroid/media/MediaCodec$BufferInfo;->size:I
iput v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->c:I
.line 2577
iget-object v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->b:[B
if-eqz v9, :cond_181
iget-object v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->b:[B
array-length v9, v9
iget v10, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->c:I
if-ge v9, v10, :cond_18d
.line 2578
:cond_181
iget v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->e:I
iget v10, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->f:I
mul-int v9, v9, v10
mul-int/lit8 v9, v9, 0x4
new-array v9, v9, [B
iput-object v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->b:[B
.line 2580
:cond_18d
iget-object v9, v8, Lcom/yysdk/mobile/vpsdk/p/b/c;->b:[B
iget-object v10, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
iget v10, v10, Landroid/media/MediaCodec$BufferInfo;->size:I
invoke-virtual {v7, v9, v4, v10}, Ljava/nio/ByteBuffer;->get([BII)Ljava/nio/ByteBuffer;
.line 2583
:goto_196
iget-boolean v7, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->u:Z
if-eqz v7, :cond_19c
.line 2584
iput-boolean v4, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->u:Z
.line 2586
:cond_19c
iget-object v7, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->r:Lcom/yysdk/mobile/vpsdk/p/b;
invoke-interface {v7, v8}, Lcom/yysdk/mobile/vpsdk/p/b;->b(Ljava/lang/Object;)V
.line 2588
iget-object v7, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
iget-wide v7, v7, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J
iput-wide v7, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->s:J
.line 2589
new-instance v7, Ljava/lang/StringBuilder;
const-string v8, "cache "
invoke-direct {v7, v8}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v8, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
iget v8, v8, Landroid/media/MediaCodec$BufferInfo;->size:I
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v8, " bytes to vpsdk, ts="
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v8, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->g:Landroid/media/MediaCodec$BufferInfo;
iget-wide v8, v8, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J
invoke-virtual {v7, v8, v9}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
goto :goto_1c7
:cond_1c2
const-string v7, "try get encode capture but the encode queue is null"
.line 2592
invoke-static {v3, v7}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 2597
:cond_1c7
:goto_1c7
iget-object v7, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
invoke-virtual {v7, v6, v4}, Landroid/media/MediaCodec;->releaseOutputBuffer(IZ)V
if-eqz p1, :cond_1e9
.line 2600
new-instance v6, Ljava/lang/StringBuilder;
const-string v7, "end of stream, receive frame : "
invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-wide v7, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->s:J
invoke-virtual {v6, v7, v8}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string v7, ", end frame : "
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-static {v3, v6}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 2603
:cond_1e9
iget-wide v6, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->s:J
cmp-long v8, v6, v0
if-nez v8, :cond_42
.line 2604
iput-boolean v4, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->v:Z
const-string v0, "encode reached end of stream"
.line 2605
invoke-static {v3, v0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
:cond_1f6
:goto_1f6
if-eqz p1, :cond_206
.line 2612
iput-boolean v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->u:Z
.line 2613
new-instance p1, Lcom/yysdk/mobile/vpsdk/p/b/c;
invoke-direct {p1}, Lcom/yysdk/mobile/vpsdk/p/b/c;-><init>()V
.line 2614
iput-boolean v2, p1, Lcom/yysdk/mobile/vpsdk/p/b/c;->g:Z
.line 2615
iget-object p0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->r:Lcom/yysdk/mobile/vpsdk/p/b;
invoke-interface {p0, p1}, Lcom/yysdk/mobile/vpsdk/p/b;->b(Ljava/lang/Object;)V
:cond_206
return-void
.line 2528
:cond_207
new-instance p0, Ljava/lang/RuntimeException;
new-instance p1, Ljava/lang/StringBuilder;
const-string v0, "encoderOutputBuffer "
invoke-direct {p1, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v0, " was null"
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
goto :goto_221
:goto_220
throw p0
:goto_221
goto :goto_220
.end method
.method static synthetic b()V
.registers 2
const-string v0, "MediaCodecReader"
const-string v1, "shutdown"
.line 3620
invoke-static {v0, v1}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 3621
invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
move-result-object v0
invoke-virtual {v0}, Landroid/os/Looper;->quit()V
return-void
.end method
.method private c()Z
.registers 9
.line 353
iget v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->m:I
iget v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->n:I
const-string v2, "video/avc"
invoke-static {v2, v0, v1}, Landroid/media/MediaFormat;->createVideoFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;
move-result-object v0
iput-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->l:Landroid/media/MediaFormat;
const-string v1, "color-format"
const v3, 0x7f000789
.line 354
invoke-virtual {v0, v1, v3}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
.line 357
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->l:Landroid/media/MediaFormat;
const-string v1, "bitrate"
const v3, 0x186a00
invoke-virtual {v0, v1, v3}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
.line 358
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->l:Landroid/media/MediaFormat;
const-string v1, "frame-rate"
const/4 v3, 0x3
invoke-virtual {v0, v1, v3}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
.line 359
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->l:Landroid/media/MediaFormat;
const/4 v1, 0x1
const-string v3, "i-frame-interval"
invoke-virtual {v0, v3, v1}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
.line 360
new-instance v0, Ljava/lang/StringBuilder;
const-string v3, "[createMediaCodecIfNeed] format: "
invoke-direct {v0, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v3, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->l:Landroid/media/MediaFormat;
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v3, "MediaCodecReader"
invoke-static {v3, v0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
const-wide/16 v4, 0x0
.line 361
iput-wide v4, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->q:J
const/4 v0, 0x0
.line 364
:try_start_48
invoke-static {v2}, Landroid/media/MediaCodec;->createEncoderByType(Ljava/lang/String;)Landroid/media/MediaCodec;
move-result-object v2
iput-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
.line 365
iget-object v6, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->l:Landroid/media/MediaFormat;
const/4 v7, 0x0
invoke-virtual {v2, v6, v7, v7, v1}, Landroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V
.line 366
iget-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
invoke-virtual {v2}, Landroid/media/MediaCodec;->createInputSurface()Landroid/view/Surface;
move-result-object v2
iput-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->h:Landroid/view/Surface;
.line 367
invoke-static {v2}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->a(Ljava/lang/Object;)J
move-result-wide v6
iput-wide v6, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->k:J
cmp-long v2, v6, v4
if-nez v2, :cond_71
const-string v1, "create share context failed"
.line 369
invoke-static {v3, v1}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 370
sget-object v1, Lcom/yysdk/mobile/vpsdk/report/a;->MEDIACODEC_CREATE_SHARECONTEXT_FAILED:Lcom/yysdk/mobile/vpsdk/report/a;
invoke-static {v1}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V
return v0
.line 374
:cond_71
invoke-static {v6, v7}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->b(J)I
move-result v2
const/16 v4, 0x3000
if-eq v2, v4, :cond_8c
const-string v1, "makeCurrent failed : "
.line 376
invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-static {v3, v1}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 377
sget-object v1, Lcom/yysdk/mobile/vpsdk/report/a;->MEDIACODEC_MAKECURRENT_FAILED:Lcom/yysdk/mobile/vpsdk/report/a;
invoke-static {v1}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V
return v0
:cond_8c
const/16 v2, 0x3059
.line 381
invoke-static {v2}, Landroid/opengl/EGL14;->eglGetCurrentSurface(I)Landroid/opengl/EGLSurface;
move-result-object v2
iput-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->i:Landroid/opengl/EGLSurface;
.line 382
invoke-static {}, Landroid/opengl/EGL14;->eglGetCurrentDisplay()Landroid/opengl/EGLDisplay;
move-result-object v2
iput-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->j:Landroid/opengl/EGLDisplay;
.line 384
iget-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->p:Lcom/yysdk/mobile/vpsdk/h/f;
if-nez v2, :cond_ad
.line 385
new-instance v2, Lcom/yysdk/mobile/vpsdk/h/f;
invoke-direct {v2, v0}, Lcom/yysdk/mobile/vpsdk/h/f;-><init>(Z)V
iput-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->p:Lcom/yysdk/mobile/vpsdk/h/f;
.line 386
invoke-virtual {v2}, Lcom/yysdk/mobile/vpsdk/h/f;->a()V
.line 387
iget-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->p:Lcom/yysdk/mobile/vpsdk/h/f;
invoke-virtual {v2}, Lcom/yysdk/mobile/vpsdk/h/f;->f()V
.line 390
:cond_ad
iget-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
invoke-virtual {v2}, Landroid/media/MediaCodec;->start()V
:try_end_b2
.catch Ljava/io/IOException; {:try_start_48 .. :try_end_b2} :catch_b7
.catch Ljava/lang/IllegalArgumentException; {:try_start_48 .. :try_end_b2} :catch_b5
.catch Ljava/lang/IllegalStateException; {:try_start_48 .. :try_end_b2} :catch_b3
return v1
:catch_b3
move-exception v1
goto :goto_b9
:catch_b5
move-exception v1
goto :goto_d4
:catch_b7
move-exception v1
goto :goto_ef
.line 402
:goto_b9
new-instance v2, Ljava/lang/StringBuilder;
const-string v4, "[createMediaCodecIfNeed] invalid state"
invoke-direct {v2, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1}, Ljava/lang/IllegalStateException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v3, v1}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 403
sget-object v1, Lcom/yysdk/mobile/vpsdk/report/a;->MEDIACODEC_INVALID_STATE:Lcom/yysdk/mobile/vpsdk/report/a;
invoke-static {v1}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V
return v0
.line 397
:goto_d4
new-instance v2, Ljava/lang/StringBuilder;
const-string v4, "[createMediaCodecIfNeed] configure failed"
invoke-direct {v2, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1}, Ljava/lang/IllegalArgumentException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v3, v1}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 398
sget-object v1, Lcom/yysdk/mobile/vpsdk/report/a;->MEDIACODEC_CONFIGURE_FAIELD:Lcom/yysdk/mobile/vpsdk/report/a;
invoke-static {v1}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V
return v0
.line 392
:goto_ef
new-instance v2, Ljava/lang/StringBuilder;
const-string v4, "[createMediaCodecIfNeed] create Encoder failed"
invoke-direct {v2, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v3, v1}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 393
sget-object v1, Lcom/yysdk/mobile/vpsdk/report/a;->MEDIACODEC_CREATE_FAIL:Lcom/yysdk/mobile/vpsdk/report/a;
invoke-static {v1}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V
return v0
.end method
.method private d()V
.registers 7
.line 437
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->d:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->isEmpty()Z
move-result v0
if-eqz v0, :cond_9
return-void
.line 441
:cond_9
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->d:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->removeFirst()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/yysdk/mobile/vpsdk/p/b/c;
.line 443
iget v1, v0, Lcom/yysdk/mobile/vpsdk/p/b/c;->e:I
iget v2, v0, Lcom/yysdk/mobile/vpsdk/p/b/c;->f:I
const/4 v3, 0x0
invoke-static {v3, v3, v1, v2}, Landroid/opengl/GLES20;->glViewport(IIII)V
.line 444
iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->p:Lcom/yysdk/mobile/vpsdk/h/f;
iget-object v2, v0, Lcom/yysdk/mobile/vpsdk/p/b/c;->a:Lcom/yysdk/mobile/vpsdk/i/c;
.line 2299
iget v2, v2, Lcom/yysdk/mobile/vpsdk/i/c;->b:I
.line 444
invoke-virtual {v1, v2}, Lcom/yysdk/mobile/vpsdk/h/f;->a(I)V
.line 446
iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->r:Lcom/yysdk/mobile/vpsdk/p/b;
invoke-interface {v1, v0}, Lcom/yysdk/mobile/vpsdk/p/b;->c(Ljava/lang/Object;)V
.line 449
iget-wide v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->q:J
const-wide/32 v2, 0xf4240
add-long/2addr v0, v2
iput-wide v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->q:J
.line 450
iget-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->j:Landroid/opengl/EGLDisplay;
iget-object v3, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->i:Landroid/opengl/EGLSurface;
const-wide/16 v4, 0x3e8
mul-long v0, v0, v4
const-wide/16 v4, 0x3
div-long/2addr v0, v4
invoke-static {v2, v3, v0, v1}, Landroid/opengl/EGLExt;->eglPresentationTimeANDROID(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;J)Z
.line 451
iget-wide v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->k:J
invoke-static {v0, v1}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->swapBuffer(J)I
move-result v0
const/16 v1, 0x3000
if-eq v0, v1, :cond_5b
.line 453
invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v0
const-string v1, "swap buffer failed : "
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "MediaCodecReader"
invoke-static {v1, v0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 454
sget-object v0, Lcom/yysdk/mobile/vpsdk/report/a;->MEDIACODEC_SWAP_BUFFER_FAILED:Lcom/yysdk/mobile/vpsdk/report/a;
invoke-static {v0}, Lcom/yysdk/mobile/vpsdk/report/ErrorReport;->report(Lcom/yysdk/mobile/vpsdk/report/a;)V
:cond_5b
return-void
.end method
# virtual methods
.method public final a()Lcom/yysdk/mobile/vpsdk/p/b/f$a$a;
.registers 4
.line 334
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->a:Ljava/lang/Object;
monitor-enter v0
.line 336
:try_start_3
iget-boolean v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->b:Z
if-eqz v1, :cond_b
.line 339
monitor-exit v0
:try_end_8
.catchall {:try_start_3 .. :try_end_8} :catchall_13
.line 340
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->o:Lcom/yysdk/mobile/vpsdk/p/b/f$a$a;
return-object v0
.line 337
:cond_b
:try_start_b
new-instance v1, Ljava/lang/RuntimeException;
const-string v2, "not ready"
invoke-direct {v1, v2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v1
:catchall_13
move-exception v1
.line 339
monitor-exit v0
:try_end_15
.catchall {:try_start_b .. :try_end_15} :catchall_13
throw v1
.end method
.method public final run()V
.registers 8
.line 300
invoke-static {}, Landroid/os/Looper;->prepare()V
.line 301
new-instance v0, Lcom/yysdk/mobile/vpsdk/p/b/f$a$a;
invoke-direct {v0, p0}, Lcom/yysdk/mobile/vpsdk/p/b/f$a$a;-><init>(Lcom/yysdk/mobile/vpsdk/p/b/f$a;)V
iput-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->o:Lcom/yysdk/mobile/vpsdk/p/b/f$a$a;
const-string v0, "MediaCodecReader"
const-string v1, "encoder thread ready"
.line 302
invoke-static {v0, v1}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 303
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->a:Ljava/lang/Object;
monitor-enter v0
const/4 v1, 0x1
.line 304
:try_start_15
iput-boolean v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->b:Z
.line 305
iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->a:Ljava/lang/Object;
invoke-virtual {v1}, Ljava/lang/Object;->notifyAll()V
.line 306
monitor-exit v0
:try_end_1d
.catchall {:try_start_15 .. :try_end_1d} :catchall_86
.line 307
invoke-direct {p0}, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->c()Z
move-result v0
iput-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->e:Z
.line 308
iget-object v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->c:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v1, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V
.line 310
invoke-static {}, Landroid/os/Looper;->loop()V
.line 1411
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
const/4 v1, 0x0
const/4 v2, 0x0
if-eqz v0, :cond_58
.line 1413
:try_start_31
invoke-virtual {v0}, Landroid/media/MediaCodec;->stop()V
:try_end_34
.catch Ljava/lang/IllegalStateException; {:try_start_31 .. :try_end_34} :catch_35
goto :goto_4d
:catch_35
move-exception v0
.line 1416
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "mediacodec stop error : "
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/lang/IllegalStateException;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v3, "MediaCodecReader"
invoke-static {v3, v0}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 1418
:goto_4d
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
invoke-virtual {v0}, Landroid/media/MediaCodec;->release()V
.line 1419
iput-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->f:Landroid/media/MediaCodec;
.line 1420
iput v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->m:I
.line 1421
iput v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->n:I
.line 1424
:cond_58
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->p:Lcom/yysdk/mobile/vpsdk/h/f;
if-eqz v0, :cond_66
.line 1425
invoke-virtual {v0}, Lcom/yysdk/mobile/vpsdk/h/f;->g()V
.line 1426
iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->p:Lcom/yysdk/mobile/vpsdk/h/f;
invoke-virtual {v0}, Lcom/yysdk/mobile/vpsdk/h/f;->d()V
.line 1427
iput-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->p:Lcom/yysdk/mobile/vpsdk/h/f;
.line 1430
:cond_66
iget-wide v3, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->k:J
const-wide/16 v5, 0x0
cmp-long v0, v3, v5
if-eqz v0, :cond_73
.line 1431
invoke-static {v3, v4}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->a(J)Z
.line 1432
iput-wide v5, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->k:J
.line 313
:cond_73
iget-object v3, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->a:Ljava/lang/Object;
monitor-enter v3
.line 314
:try_start_76
iput-boolean v1, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->b:Z
.line 315
iput-object v2, p0, Lcom/yysdk/mobile/vpsdk/p/b/f$a;->o:Lcom/yysdk/mobile/vpsdk/p/b/f$a$a;
.line 316
monitor-exit v3
:try_end_7b
.catchall {:try_start_76 .. :try_end_7b} :catchall_83
const-string v0, "MediaCodecReader"
const-string v1, "quit encoder thread"
.line 317
invoke-static {v0, v1}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I
return-void
:catchall_83
move-exception v0
.line 316
:try_start_84
monitor-exit v3
:try_end_85
.catchall {:try_start_84 .. :try_end_85} :catchall_83
throw v0
:catchall_86
move-exception v1
.line 306
:try_start_87
monitor-exit v0
:try_end_88
.catchall {:try_start_87 .. :try_end_88} :catchall_86
throw v1
.end method