MediaVideoDecoder21$1.smali
.class Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;
.super Ljava/lang/Object;
.source "MediaVideoDecoder21.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->init(Ljava/io/FileDescriptor;JJ)Z
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
.field final synthetic val$fd:Ljava/io/FileDescriptor;
.field final synthetic val$len:J
.field final synthetic val$offset:J
# direct methods
.method constructor <init>(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;Ljava/io/FileDescriptor;JJ)V
.registers 7
.line 1
iput-object p1, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
iput-object p2, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->val$fd:Ljava/io/FileDescriptor;
iput-wide p3, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->val$offset:J
iput-wide p5, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->val$len:J
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.registers 9
const-string v0, "MediaVideoDecoder21"
.line 1
:try_start_2
iget-object v1, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
new-instance v2, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$ConsumeThread;
iget-object v3, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
const-string v4, "ConsumeThread"
invoke-direct {v2, v3, v4}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$ConsumeThread;-><init>(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;Ljava/lang/String;)V
# setter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mConsumeThread:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$ConsumeThread;
invoke-static {v1, v2}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$002(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$ConsumeThread;)Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$ConsumeThread;
.line 2
iget-object v1, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
new-instance v2, Landroid/media/MediaExtractor;
invoke-direct {v2}, Landroid/media/MediaExtractor;-><init>()V
# setter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoExtractor:Landroid/media/MediaExtractor;
invoke-static {v1, v2}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$102(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;Landroid/media/MediaExtractor;)Landroid/media/MediaExtractor;
.line 3
iget-object v1, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoExtractor:Landroid/media/MediaExtractor;
invoke-static {v1}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$100(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaExtractor;
move-result-object v2
iget-object v3, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->val$fd:Ljava/io/FileDescriptor;
iget-wide v4, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->val$offset:J
iget-wide v6, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->val$len:J
invoke-virtual/range {v2 .. v7}, Landroid/media/MediaExtractor;->setDataSource(Ljava/io/FileDescriptor;JJ)V
.line 4
iget-object v1, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
iget-object v2, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoExtractor:Landroid/media/MediaExtractor;
invoke-static {v2}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$100(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaExtractor;
move-result-object v2
invoke-virtual {v1, v2}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder;->selectVideoTrack(Landroid/media/MediaExtractor;)I
move-result v1
:try_end_35
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_35} :catch_e3
if-gez v1, :cond_5a
.line 5
:try_start_37
iget-object v2, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoExtractor:Landroid/media/MediaExtractor;
invoke-static {v2}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$100(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaExtractor;
move-result-object v2
invoke-virtual {v2}, Landroid/media/MediaExtractor;->release()V
:try_end_40
.catch Ljava/lang/Exception; {:try_start_37 .. :try_end_40} :catch_41
goto :goto_45
:catch_41
move-exception v2
.line 6
:try_start_42
invoke-virtual {v2}, Ljava/lang/Exception;->printStackTrace()V
.line 7
:goto_45
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Video track not found, index="
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
.line 8
:cond_5a
iget-object v2, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
iget-object v3, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoExtractor:Landroid/media/MediaExtractor;
invoke-static {v3}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$100(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaExtractor;
move-result-object v3
invoke-virtual {v3, v1}, Landroid/media/MediaExtractor;->getTrackFormat(I)Landroid/media/MediaFormat;
move-result-object v1
# setter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoFormat:Landroid/media/MediaFormat;
invoke-static {v2, v1}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$202(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;Landroid/media/MediaFormat;)Landroid/media/MediaFormat;
.line 9
iget-object v1, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
iget-object v2, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoFormat:Landroid/media/MediaFormat;
invoke-static {v2}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$200(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaFormat;
move-result-object v2
const-string/jumbo v3, "width"
invoke-virtual {v2, v3}, Landroid/media/MediaFormat;->getInteger(Ljava/lang/String;)I
move-result v2
# setter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->width:I
invoke-static {v1, v2}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$302(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;I)I
.line 10
iget-object v1, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
iget-object v2, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoFormat:Landroid/media/MediaFormat;
invoke-static {v2}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$200(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaFormat;
move-result-object v2
const-string v3, "height"
invoke-virtual {v2, v3}, Landroid/media/MediaFormat;->getInteger(Ljava/lang/String;)I
move-result v2
# setter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->height:I
invoke-static {v1, v2}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$402(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;I)I
.line 11
iget-object v1, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoFormat:Landroid/media/MediaFormat;
invoke-static {v1}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$200(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaFormat;
move-result-object v1
const-string v2, "mime"
invoke-virtual {v1, v2}, Landroid/media/MediaFormat;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 12
iget-object v2, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# invokes: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->findDecoder(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v2, v1}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$500(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
if-nez v2, :cond_b5
.line 13
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Video decoder not found, mime="
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
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 {v0, v1}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
.line 14
:cond_b5
iget-object v1, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
invoke-static {v2}, Landroid/media/MediaCodec;->createByCodecName(Ljava/lang/String;)Landroid/media/MediaCodec;
move-result-object v2
# setter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoDecoder:Landroid/media/MediaCodec;
invoke-static {v1, v2}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$602(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;Landroid/media/MediaCodec;)Landroid/media/MediaCodec;
.line 15
iget-object v1, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoFormat:Landroid/media/MediaFormat;
invoke-static {v1}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$200(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaFormat;
move-result-object v1
const-string v2, "color-format"
const v3, 0x7f420888
invoke-virtual {v1, v2, v3}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
.line 16
iget-object v1, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoDecoder:Landroid/media/MediaCodec;
invoke-static {v1}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$600(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaCodec;
move-result-object v1
iget-object v2, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoFormat:Landroid/media/MediaFormat;
invoke-static {v2}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$200(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaFormat;
move-result-object v2
const/4 v3, 0x0
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 17
iget-object v1, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# invokes: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->setVideoDecoderCallback()V
invoke-static {v1}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$700(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)V
:try_end_e2
.catch Ljava/io/IOException; {:try_start_42 .. :try_end_e2} :catch_e3
goto :goto_128
:catch_e3
move-exception v1
.line 18
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Init failed: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
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 {v0, v1}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 19
iget-object v0, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoDecoder:Landroid/media/MediaCodec;
invoke-static {v0}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$600(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaCodec;
move-result-object v0
if-eqz v0, :cond_112
.line 20
:try_start_104
iget-object v0, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoDecoder:Landroid/media/MediaCodec;
invoke-static {v0}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$600(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaCodec;
move-result-object v0
invoke-virtual {v0}, Landroid/media/MediaCodec;->release()V
:try_end_10d
.catch Ljava/lang/Exception; {:try_start_104 .. :try_end_10d} :catch_10e
goto :goto_112
:catch_10e
move-exception v0
.line 21
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
.line 22
:cond_112
:goto_112
iget-object v0, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoExtractor:Landroid/media/MediaExtractor;
invoke-static {v0}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$100(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaExtractor;
move-result-object v0
if-eqz v0, :cond_128
.line 23
:try_start_11a
iget-object v0, p0, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21$1;->this$0:Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;
# getter for: Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->mVideoExtractor:Landroid/media/MediaExtractor;
invoke-static {v0}, Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;->access$100(Lcn/rongcloud/rtc/custom/MediaVideoDecoder21;)Landroid/media/MediaExtractor;
move-result-object v0
invoke-virtual {v0}, Landroid/media/MediaExtractor;->release()V
:try_end_123
.catch Ljava/lang/Exception; {:try_start_11a .. :try_end_123} :catch_124
goto :goto_128
:catch_124
move-exception v0
.line 24
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:cond