VideoController.smali
.class public Lio/rong/imkit/utilities/videocompressor/VideoController;
.super Ljava/lang/Object;
.source "VideoController.java"
# annotations
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/rong/imkit/utilities/videocompressor/VideoController$VideoConvertRunnable;,
Lio/rong/imkit/utilities/videocompressor/VideoController$CompressProgressListener;
}
.end annotation
# static fields
.field private static volatile Instance:Lio/rong/imkit/utilities/videocompressor/VideoController; = null
.field private static final MIME_TYPE:Ljava/lang/String; = "video/avc"
.field private static final PROCESSOR_TYPE_INTEL:I = 0x2
.field private static final PROCESSOR_TYPE_MTK:I = 0x3
.field private static final PROCESSOR_TYPE_OTHER:I = 0x0
.field private static final PROCESSOR_TYPE_QCOM:I = 0x1
.field private static final PROCESSOR_TYPE_SEC:I = 0x4
.field private static final PROCESSOR_TYPE_TI:I = 0x5
.field private static final TAG:Ljava/lang/String; = "VideoController"
# instance fields
.field public path:Ljava/lang/String;
.field private videoConvertFirstWrite:Z
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method public constructor <init>()V
.registers 2
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x1
.line 2
iput-boolean v0, p0, Lio/rong/imkit/utilities/videocompressor/VideoController;->videoConvertFirstWrite:Z
return-void
.end method
.method static synthetic access$200()Ljava/lang/String;
.registers 1
.line 1
sget-object v0, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
return-object v0
.end method
.method public static native convertVideoFrame(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;IIIII)I
.end method
.method public static copyFile(Ljava/io/File;Ljava/io/File;)V
.registers 15
const-string v0, "copyFile fileOutputStream close"
const-string v1, "copyFile fileInputStream close"
const-string v2, "copyFile outChannel close"
const-string v3, "copyFile inChannel close"
const/4 v4, 0x0
.line 1
:try_start_9
new-instance v5, Ljava/io/FileInputStream;
invoke-direct {v5, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
:try_end_e
.catch Ljava/lang/Exception; {:try_start_9 .. :try_end_e} :catch_6f
.catchall {:try_start_9 .. :try_end_e} :catchall_6a
.line 2
:try_start_e
new-instance p0, Ljava/io/FileOutputStream;
invoke-direct {p0, p1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_13
.catch Ljava/lang/Exception; {:try_start_e .. :try_end_13} :catch_66
.catchall {:try_start_e .. :try_end_13} :catchall_62
.line 3
:try_start_13
invoke-virtual {v5}, Ljava/io/FileInputStream;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object p1
:try_end_17
.catch Ljava/lang/Exception; {:try_start_13 .. :try_end_17} :catch_5e
.catchall {:try_start_13 .. :try_end_17} :catchall_5a
.line 4
:try_start_17
invoke-virtual {p0}, Ljava/io/FileOutputStream;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object v4
const-wide/16 v7, 0x1
.line 5
invoke-virtual {p1}, Ljava/nio/channels/FileChannel;->size()J
move-result-wide v9
move-object v6, p1
move-object v11, v4
invoke-virtual/range {v6 .. v11}, Ljava/nio/channels/FileChannel;->transferTo(JJLjava/nio/channels/WritableByteChannel;)J
:try_end_26
.catch Ljava/lang/Exception; {:try_start_17 .. :try_end_26} :catch_54
.catchall {:try_start_17 .. :try_end_26} :catchall_4d
if-eqz p1, :cond_32
.line 6
:try_start_28
invoke-virtual {p1}, Ljava/nio/channels/FileChannel;->close()V
:try_end_2b
.catch Ljava/io/IOException; {:try_start_28 .. :try_end_2b} :catch_2c
goto :goto_32
:catch_2c
move-exception p1
.line 7
sget-object v6, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-static {v6, v3, p1}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:cond_32
:goto_32
if-eqz v4, :cond_3e
.line 8
:try_start_34
invoke-virtual {v4}, Ljava/nio/channels/FileChannel;->close()V
:try_end_37
.catch Ljava/io/IOException; {:try_start_34 .. :try_end_37} :catch_38
goto :goto_3e
:catch_38
move-exception p1
.line 9
sget-object v3, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-static {v3, v2, p1}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 10
:cond_3e
:goto_3e
:try_start_3e
invoke-virtual {v5}, Ljava/io/FileInputStream;->close()V
:try_end_41
.catch Ljava/io/IOException; {:try_start_3e .. :try_end_41} :catch_42
goto :goto_48
:catch_42
move-exception p1
.line 11
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-static {v2, v1, p1}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 12
:goto_48
:try_start_48
invoke-virtual {p0}, Ljava/io/FileOutputStream;->close()V
:try_end_4b
.catch Ljava/io/IOException; {:try_start_48 .. :try_end_4b} :catch_a4
goto/16 :goto_aa
:catchall_4d
move-exception v6
move-object v12, p1
move-object p1, p0
move-object p0, v4
move-object v4, v12
goto/16 :goto_ac
:catch_54
move-exception v6
move-object v12, p1
move-object p1, p0
move-object p0, v4
move-object v4, v12
goto :goto_73
:catchall_5a
move-exception v6
move-object p1, p0
move-object p0, v4
goto :goto_ac
:catch_5e
move-exception v6
move-object p1, p0
move-object p0, v4
goto :goto_73
:catchall_62
move-exception v6
move-object p0, v4
move-object p1, p0
goto :goto_ac
:catch_66
move-exception v6
move-object p0, v4
move-object p1, p0
goto :goto_73
:catchall_6a
move-exception v6
move-object p0, v4
move-object p1, p0
move-object v5, p1
goto :goto_ac
:catch_6f
move-exception v6
move-object p0, v4
move-object p1, p0
move-object v5, p1
.line 13
:goto_73
:try_start_73
sget-object v7, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
const-string v8, "copyFile"
invoke-static {v7, v8, v6}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:try_end_7a
.catchall {:try_start_73 .. :try_end_7a} :catchall_ab
if-eqz v4, :cond_86
.line 14
:try_start_7c
invoke-virtual {v4}, Ljava/nio/channels/FileChannel;->close()V
:try_end_7f
.catch Ljava/io/IOException; {:try_start_7c .. :try_end_7f} :catch_80
goto :goto_86
:catch_80
move-exception v4
.line 15
sget-object v6, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-static {v6, v3, v4}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:cond_86
:goto_86
if-eqz p0, :cond_92
.line 16
:try_start_88
invoke-virtual {p0}, Ljava/nio/channels/FileChannel;->close()V
:try_end_8b
.catch Ljava/io/IOException; {:try_start_88 .. :try_end_8b} :catch_8c
goto :goto_92
:catch_8c
move-exception p0
.line 17
sget-object v3, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-static {v3, v2, p0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:cond_92
:goto_92
if-eqz v5, :cond_9e
.line 18
:try_start_94
invoke-virtual {v5}, Ljava/io/FileInputStream;->close()V
:try_end_97
.catch Ljava/io/IOException; {:try_start_94 .. :try_end_97} :catch_98
goto :goto_9e
:catch_98
move-exception p0
.line 19
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-static {v2, v1, p0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:cond_9e
:goto_9e
if-eqz p1, :cond_aa
.line 20
:try_start_a0
invoke-virtual {p1}, Ljava/io/FileOutputStream;->close()V
:try_end_a3
.catch Ljava/io/IOException; {:try_start_a0 .. :try_end_a3} :catch_a4
goto :goto_aa
:catch_a4
move-exception p0
.line 21
sget-object p1, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-static {p1, v0, p0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:cond_aa
:goto_aa
return-void
:catchall_ab
move-exception v6
:goto_ac
if-eqz v4, :cond_b8
.line 22
:try_start_ae
invoke-virtual {v4}, Ljava/nio/channels/FileChannel;->close()V
:try_end_b1
.catch Ljava/io/IOException; {:try_start_ae .. :try_end_b1} :catch_b2
goto :goto_b8
:catch_b2
move-exception v4
.line 23
sget-object v7, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-static {v7, v3, v4}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:cond_b8
:goto_b8
if-eqz p0, :cond_c4
.line 24
:try_start_ba
invoke-virtual {p0}, Ljava/nio/channels/FileChannel;->close()V
:try_end_bd
.catch Ljava/io/IOException; {:try_start_ba .. :try_end_bd} :catch_be
goto :goto_c4
:catch_be
move-exception p0
.line 25
sget-object v3, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-static {v3, v2, p0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:cond_c4
:goto_c4
if-eqz v5, :cond_d0
.line 26
:try_start_c6
invoke-virtual {v5}, Ljava/io/FileInputStream;->close()V
:try_end_c9
.catch Ljava/io/IOException; {:try_start_c6 .. :try_end_c9} :catch_ca
goto :goto_d0
:catch_ca
move-exception p0
.line 27
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-static {v2, v1, p0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:cond_d0
:goto_d0
if-eqz p1, :cond_dc
.line 28
:try_start_d2
invoke-virtual {p1}, Ljava/io/FileOutputStream;->close()V
:try_end_d5
.catch Ljava/io/IOException; {:try_start_d2 .. :try_end_d5} :catch_d6
goto :goto_dc
:catch_d6
move-exception p0
.line 29
sget-object p1, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-static {p1, v0, p0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 30
:cond_dc
:goto_dc
throw v6
.end method
.method private didWriteData(ZZ)V
.registers 3
.line 1
iget-boolean p1, p0, Lio/rong/imkit/utilities/videocompressor/VideoController;->videoConvertFirstWrite:Z
if-eqz p1, :cond_7
const/4 p1, 0x0
.line 2
iput-boolean p1, p0, Lio/rong/imkit/utilities/videocompressor/VideoController;->videoConvertFirstWrite:Z
:cond_7
return-void
.end method
.method public static getInstance()Lio/rong/imkit/utilities/videocompressor/VideoController;
.registers 2
.line 1
sget-object v0, Lio/rong/imkit/utilities/videocompressor/VideoController;->Instance:Lio/rong/imkit/utilities/videocompressor/VideoController;
if-nez v0, :cond_17
.line 2
const-class v1, Lio/rong/imkit/utilities/videocompressor/VideoController;
monitor-enter v1
.line 3
:try_start_7
sget-object v0, Lio/rong/imkit/utilities/videocompressor/VideoController;->Instance:Lio/rong/imkit/utilities/videocompressor/VideoController;
if-nez v0, :cond_12
.line 4
new-instance v0, Lio/rong/imkit/utilities/videocompressor/VideoController;
invoke-direct {v0}, Lio/rong/imkit/utilities/videocompressor/VideoController;-><init>()V
sput-object v0, Lio/rong/imkit/utilities/videocompressor/VideoController;->Instance:Lio/rong/imkit/utilities/videocompressor/VideoController;
.line 5
:cond_12
monitor-exit v1
goto :goto_17
:catchall_14
move-exception v0
monitor-exit v1
:try_end_16
.catchall {:try_start_7 .. :try_end_16} :catchall_14
throw v0
:cond_17
:goto_17
return-object v0
.end method
.method private static isRecognizedFormat(I)Z
.registers 2
const/16 v0, 0x27
if-eq p0, v0, :cond_e
const v0, 0x7f000100
if-eq p0, v0, :cond_e
packed-switch p0, :pswitch_data_10
const/4 p0, 0x0
return p0
:cond_e
:pswitch_e
const/4 p0, 0x1
return p0
:pswitch_data_10
.packed-switch 0x13
:pswitch_e
:pswitch_e
:pswitch_e
.end packed-switch
.end method
.method private readAndWriteTrack(Landroid/media/MediaExtractor;Lio/rong/imkit/utilities/videocompressor/MP4Builder;Landroid/media/MediaCodec$BufferInfo;JJLjava/io/File;Z)J
.registers 28
.annotation build Landroid/annotation/TargetApi;
value = 0x10
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
move-object/from16 v0, p1
move-object/from16 v1, p2
move-object/from16 v2, p3
move-wide/from16 v3, p4
move-object/from16 v5, p0
move/from16 v6, p9
.line 1
invoke-direct {v5, v0, v6}, Lio/rong/imkit/utilities/videocompressor/VideoController;->selectTrack(Landroid/media/MediaExtractor;Z)I
move-result v7
if-ltz v7, :cond_97
.line 2
invoke-virtual {v0, v7}, Landroid/media/MediaExtractor;->selectTrack(I)V
.line 3
invoke-virtual {v0, v7}, Landroid/media/MediaExtractor;->getTrackFormat(I)Landroid/media/MediaFormat;
move-result-object v10
.line 4
invoke-virtual {v1, v10, v6}, Lio/rong/imkit/utilities/videocompressor/MP4Builder;->addTrack(Landroid/media/MediaFormat;Z)I
move-result v11
const-string v12, "max-input-size"
.line 5
invoke-virtual {v10, v12}, Landroid/media/MediaFormat;->getInteger(Ljava/lang/String;)I
move-result v10
const-wide/16 v12, 0x0
const/4 v14, 0x0
cmp-long v15, v3, v12
if-lez v15, :cond_2e
.line 6
invoke-virtual {v0, v3, v4, v14}, Landroid/media/MediaExtractor;->seekTo(JI)V
goto :goto_31
.line 7
:cond_2e
invoke-virtual {v0, v12, v13, v14}, Landroid/media/MediaExtractor;->seekTo(JI)V
.line 8
:goto_31
invoke-static {v10}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;
move-result-object v10
const/4 v15, 0x0
const-wide/16 v16, -0x1
:goto_38
if-nez v15, :cond_93
.line 9
invoke-virtual/range {p1 .. p1}, Landroid/media/MediaExtractor;->getSampleTrackIndex()I
move-result v8
if-ne v8, v7, :cond_87
.line 10
invoke-virtual {v0, v10, v14}, Landroid/media/MediaExtractor;->readSampleData(Ljava/nio/ByteBuffer;I)I
move-result v8
iput v8, v2, Landroid/media/MediaCodec$BufferInfo;->size:I
.line 11
iget v8, v2, Landroid/media/MediaCodec$BufferInfo;->size:I
if-gez v8, :cond_4d
.line 12
iput v14, v2, Landroid/media/MediaCodec$BufferInfo;->size:I
goto :goto_8a
:cond_4d
move-object/from16 p8, v10
.line 13
invoke-virtual/range {p1 .. p1}, Landroid/media/MediaExtractor;->getSampleTime()J
move-result-wide v9
iput-wide v9, v2, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J
cmp-long v8, v3, v12
if-lez v8, :cond_62
const-wide/16 v8, -0x1
cmp-long v10, v16, v8
if-nez v10, :cond_62
.line 14
iget-wide v8, v2, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J
goto :goto_64
:cond_62
move-wide/from16 v8, v16
:goto_64
cmp-long v10, p6, v12
if-ltz v10, :cond_74
.line 15
iget-wide v12, v2, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J
cmp-long v10, v12, p6
if-gez v10, :cond_6f
goto :goto_74
:cond_6f
move-object/from16 v10, p8
move-wide/from16 v16, v8
goto :goto_8a
.line 16
:cond_74
:goto_74
iput v14, v2, Landroid/media/MediaCodec$BufferInfo;->offset:I
.line 17
invoke-virtual/range {p1 .. p1}, Landroid/media/MediaExtractor;->getSampleFlags()I
move-result v10
iput v10, v2, Landroid/media/MediaCodec$BufferInfo;->flags:I
move-object/from16 v10, p8
.line 18
invoke-virtual {v1, v11, v10, v2, v6}, Lio/rong/imkit/utilities/videocompressor/MP4Builder;->writeSampleData(ILjava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;Z)Z
.line 19
invoke-virtual/range {p1 .. p1}, Landroid/media/MediaExtractor;->advance()Z
move-wide/from16 v16, v8
goto :goto_8c
:cond_87
const/4 v9, -0x1
if-ne v8, v9, :cond_8c
:goto_8a
const/4 v9, 0x1
goto :goto_8d
:cond_8c
:goto_8c
const/4 v9, 0x0
:goto_8d
if-eqz v9, :cond_90
const/4 v15, 0x1
:cond_90
const-wide/16 v12, 0x0
goto :goto_38
.line 20
:cond_93
invoke-virtual {v0, v7}, Landroid/media/MediaExtractor;->unselectTrack(I)V
return-wide v16
:cond_97
const-wide/16 v0, -0x1
return-wide v0
.end method
.method private static selectCodec(Ljava/lang/String;)Landroid/media/MediaCodecInfo;
.registers 10
.line 1
invoke-static {}, Landroid/media/MediaCodecList;->getCodecCount()I
move-result v0
const/4 v1, 0x0
const/4 v2, 0x0
move-object v3, v2
const/4 v2, 0x0
:goto_8
if-ge v2, v0, :cond_48
.line 2
invoke-static {v2}, Landroid/media/MediaCodecList;->getCodecInfoAt(I)Landroid/media/MediaCodecInfo;
move-result-object v4
.line 3
invoke-virtual {v4}, Landroid/media/MediaCodecInfo;->isEncoder()Z
move-result v5
if-nez v5, :cond_15
goto :goto_45
.line 4
:cond_15
invoke-virtual {v4}, Landroid/media/MediaCodecInfo;->getSupportedTypes()[Ljava/lang/String;
move-result-object v5
.line 5
array-length v6, v5
move-object v7, v3
const/4 v3, 0x0
:goto_1c
if-ge v3, v6, :cond_44
aget-object v8, v5, v3
.line 6
invoke-virtual {v8, p0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v8
if-eqz v8, :cond_41
.line 7
invoke-virtual {v4}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
move-result-object v7
const-string v8, "OMX.SEC.avc.enc"
invoke-virtual {v7, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v7
if-nez v7, :cond_33
return-object v4
.line 8
:cond_33
invoke-virtual {v4}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
move-result-object v7
const-string v8, "OMX.SEC.AVC.Encoder"
invoke-virtual {v7, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v7
if-eqz v7, :cond_40
return-object v4
:cond_40
move-object v7, v4
:cond_41
add-int/lit8 v3, v3, 0x1
goto :goto_1c
:cond_44
move-object v3, v7
:goto_45
add-int/lit8 v2, v2, 0x1
goto :goto_8
:cond_48
return-object v3
.end method
.method private static selectColorFormat(Landroid/media/MediaCodecInfo;Ljava/lang/String;)I
.registers 6
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
.line 1
invoke-virtual {p0, p1}, Landroid/media/MediaCodecInfo;->getCapabilitiesForType(Ljava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;
move-result-object p1
const/4 v0, 0x0
const/4 v1, 0x0
.line 2
:goto_6
iget-object v2, p1, Landroid/media/MediaCodecInfo$CodecCapabilities;->colorFormats:[I
array-length v3, v2
if-ge v0, v3, :cond_2a
.line 3
aget v2, v2, v0
.line 4
invoke-static {v2}, Lio/rong/imkit/utilities/videocompressor/VideoController;->isRecognizedFormat(I)Z
move-result v3
if-eqz v3, :cond_27
.line 5
invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
move-result-object v1
const-string v3, "OMX.SEC.AVC.Encoder"
invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_26
const/16 v1, 0x13
if-eq v2, v1, :cond_24
goto :goto_26
:cond_24
move v1, v2
goto :goto_27
:cond_26
:goto_26
return v2
:cond_27
:goto_27
add-int/lit8 v0, v0, 0x1
goto :goto_6
:cond_2a
return v1
.end method
.method private selectTrack(Landroid/media/MediaExtractor;Z)I
.registers 7
.annotation build Landroid/annotation/TargetApi;
value = 0x10
.end annotation
.line 1
invoke-virtual {p1}, Landroid/media/MediaExtractor;->getTrackCount()I
move-result v0
const/4 v1, 0x0
:goto_5
if-ge v1, v0, :cond_28
.line 2
invoke-virtual {p1, v1}, Landroid/media/MediaExtractor;->getTrackFormat(I)Landroid/media/MediaFormat;
move-result-object v2
const-string v3, "mime"
.line 3
invoke-virtual {v2, v3}, Landroid/media/MediaFormat;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
if-eqz p2, :cond_1c
const-string v3, "audio/"
.line 4
invoke-virtual {v2, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_25
return v1
:cond_1c
const-string v3, "video/"
.line 5
invoke-virtual {v2, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_25
return v1
:cond_25
add-int/lit8 v1, v1, 0x1
goto :goto_5
:cond_28
const/4 p1, -0x5
return p1
.end method
.method private startVideoConvertFromQueue(Ljava/lang/String;Ljava/lang/String;)V
.registers 3
.line 1
# invokes: Lio/rong/imkit/utilities/videocompressor/VideoController$VideoConvertRunnable;->runConversion(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {p1, p2}, Lio/rong/imkit/utilities/videocompressor/VideoController$VideoConvertRunnable;->access$000(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
# virtual methods
.method public convertVideo(Ljava/lang/String;Ljava/lang/String;Lio/rong/imkit/utilities/videocompressor/VideoController$CompressProgressListener;)Z
.registers 58
.annotation build Landroid/annotation/TargetApi;
value = 0x10
.end annotation
move-object/from16 v11, p0
move-object/from16 v8, p1
move-object/from16 v9, p2
move-object/from16 v1, p3
const-string v2, "video/avc"
const-string v12, "time = "
.line 1
new-instance v3, Ljava/io/File;
invoke-direct {v3, v8}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v3}, Ljava/io/File;->exists()Z
move-result v3
const/4 v13, 0x0
if-nez v3, :cond_19
return v13
.line 2
:cond_19
iput-object v8, v11, Lio/rong/imkit/utilities/videocompressor/VideoController;->path:Ljava/lang/String;
.line 3
new-instance v3, Landroid/media/MediaMetadataRetriever;
invoke-direct {v3}, Landroid/media/MediaMetadataRetriever;-><init>()V
.line 4
:try_start_20
iget-object v4, v11, Lio/rong/imkit/utilities/videocompressor/VideoController;->path:Ljava/lang/String;
invoke-virtual {v3, v4}, Landroid/media/MediaMetadataRetriever;->setDataSource(Ljava/lang/String;)V
:try_end_25
.catch Ljava/lang/Exception; {:try_start_20 .. :try_end_25} :catch_b90
const/16 v4, 0x12
.line 5
invoke-virtual {v3, v4}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String;
move-result-object v5
const/16 v6, 0x13
.line 6
invoke-virtual {v3, v6}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String;
move-result-object v6
const/16 v7, 0x18
.line 7
invoke-virtual {v3, v7}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String;
move-result-object v7
.line 8
invoke-static {v5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v10
if-nez v10, :cond_b8d
invoke-static {v6}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v10
if-nez v10, :cond_b8d
invoke-static {v7}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v10
if-eqz v10, :cond_4b
goto/16 :goto_b8d
:cond_4b
const/16 v10, 0x9
.line 9
invoke-virtual {v3, v10}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Long;->valueOf(Ljava/lang/String;)Ljava/lang/Long;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/Long;->longValue()J
move-result-wide v14
const-wide/16 v16, 0x3e8
mul-long v14, v14, v16
const-wide/16 v16, -0x1
.line 10
invoke-static {v7}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
move-result v3
.line 11
invoke-static {v5}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
move-result v5
.line 12
invoke-static {v6}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I
move-result v6
.line 13
sget-object v7, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
const-string v13, "Resolution of origin width is "
invoke-virtual {v10, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v10
invoke-static {v7, v10}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 14
sget-object v7, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
const-string v13, "Resolution of origin height is "
invoke-virtual {v10, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v10
invoke-static {v7, v10}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 15
sget-object v7, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
const-string v13, "Origin rotation value is "
invoke-virtual {v10, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v10
invoke-static {v7, v10}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 16
rem-int/lit8 v7, v5, 0x10
const/16 v10, 0x10
if-eqz v7, :cond_c3
.line 17
div-int/lit8 v5, v5, 0x10
mul-int/lit8 v5, v5, 0x10
.line 18
:cond_c3
rem-int/lit8 v7, v6, 0x10
if-eqz v7, :cond_cb
.line 19
div-int/lit8 v6, v6, 0x10
mul-int/lit8 v6, v6, 0x10
:cond_cb
const/16 v7, 0x220
const/16 v13, 0x3c0
if-lt v6, v5, :cond_11c
if-gt v6, v13, :cond_e3
if-gt v5, v7, :cond_e3
if-ne v6, v13, :cond_122
if-ne v5, v7, :cond_122
.line 20
sget v7, Landroid/os/Build$VERSION;->SDK_INT:I
if-ge v7, v4, :cond_122
add-int/lit8 v7, v5, -0x10
add-int/lit8 v13, v6, -0x10
goto/16 :goto_15c
:cond_e3
if-gt v6, v13, :cond_106
if-le v5, v7, :cond_106
int-to-double v10, v6
int-to-double v7, v5
.line 21
invoke-static {v10, v11}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v10, v7
move/from16 v20, v5
const/16 v7, 0x220
int-to-double v4, v7
.line 22
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
mul-double v10, v10, v4
double-to-int v4, v10
const/16 v5, 0x10
div-int/2addr v4, v5
mul-int/lit8 v4, v4, 0x10
move v13, v4
move/from16 v5, v20
const/16 v7, 0x220
goto :goto_15c
:cond_106
int-to-double v10, v5
int-to-double v8, v6
.line 23
invoke-static {v10, v11}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v10, v8
int-to-double v7, v13
.line 24
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
mul-double v10, v10, v7
double-to-int v7, v10
const/16 v8, 0x10
div-int/2addr v7, v8
mul-int/lit8 v7, v7, 0x10
goto :goto_15c
:cond_11c
if-gt v5, v13, :cond_125
const/16 v7, 0x220
if-gt v6, v7, :cond_127
:cond_122
move v7, v5
move v13, v6
goto :goto_15c
:cond_125
const/16 v7, 0x220
:cond_127
if-gt v5, v13, :cond_144
if-le v6, v7, :cond_144
int-to-double v8, v5
int-to-double v10, v6
.line 25
invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v10, v11}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v8, v10
int-to-double v10, v7
.line 26
invoke-static {v10, v11}, Ljava/lang/Double;->isNaN(D)Z
mul-double v8, v8, v10
double-to-int v8, v8
const/16 v9, 0x10
div-int/2addr v8, v9
mul-int/lit8 v8, v8, 0x10
move v7, v8
const/16 v13, 0x220
goto :goto_15c
:cond_144
int-to-double v7, v6
int-to-double v9, v5
.line 27
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v9, v10}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v7, v9
int-to-double v9, v13
.line 28
invoke-static {v9, v10}, Ljava/lang/Double;->isNaN(D)Z
mul-double v7, v7, v9
double-to-int v7, v7
const/16 v8, 0x10
div-int/2addr v7, v8
mul-int/lit8 v7, v7, 0x10
move v13, v7
const/16 v7, 0x3c0
.line 29
:goto_15c
div-int/lit8 v8, v7, 0x2
div-int/lit8 v9, v13, 0x2
mul-int v8, v8, v9
mul-int/lit8 v9, v8, 0xa
.line 30
new-instance v11, Ljava/io/File;
move-object/from16 v10, p2
invoke-direct {v11, v10}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 31
sget v8, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0x12
if-ge v8, v4, :cond_17a
if-le v13, v7, :cond_17a
if-eq v7, v5, :cond_17a
if-eq v13, v6, :cond_17a
const/16 v3, 0x5a
goto :goto_187
.line 32
:cond_17a
sget v4, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v8, 0x14
if-le v4, v8, :cond_19e
const/16 v4, 0x5a
if-ne v3, v4, :cond_18a
const/16 v3, 0x10e
const/4 v3, 0x0
:goto_187
const/16 v4, 0x10e
goto :goto_1a4
:cond_18a
const/16 v4, 0xb4
if-ne v3, v4, :cond_194
const/16 v3, 0xb4
const/4 v3, 0x0
const/16 v4, 0xb4
goto :goto_19f
:cond_194
const/16 v4, 0x10e
if-ne v3, v4, :cond_19e
const/16 v3, 0x5a
const/4 v3, 0x0
const/16 v4, 0x5a
goto :goto_1a4
:cond_19e
const/4 v4, 0x0
:goto_19f
move/from16 v53, v13
move v13, v7
move/from16 v7, v53
.line 33
:goto_1a4
sget-object v8, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
move-wide/from16 v27, v14
new-instance v14, Ljava/lang/StringBuilder;
invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
const-string v15, "Resolution of result width is "
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14, v13}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v14
invoke-static {v8, v14}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 34
sget-object v8, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v14, Ljava/lang/StringBuilder;
invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
const-string v15, "Resolution of result height is "
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v14
invoke-static {v8, v14}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 35
sget-object v8, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v14, Ljava/lang/StringBuilder;
invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
const-string v15, "Result rotation value is "
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v14
invoke-static {v8, v14}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 36
sget-object v8, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v14, Ljava/lang/StringBuilder;
invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
const-string v15, "Result render value is "
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v14
invoke-static {v8, v14}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 37
new-instance v14, Ljava/io/File;
move-object/from16 v15, p0
iget-object v8, v15, Lio/rong/imkit/utilities/videocompressor/VideoController;->path:Ljava/lang/String;
invoke-direct {v14, v8}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 38
invoke-virtual {v14}, Ljava/io/File;->canRead()Z
move-result v8
move-object/from16 v29, v12
const/4 v12, 0x1
if-nez v8, :cond_215
.line 39
invoke-direct {v15, v12, v12}, Lio/rong/imkit/utilities/videocompressor/VideoController;->didWriteData(ZZ)V
:goto_213
const/4 v1, 0x0
return v1
.line 40
:cond_215
iput-boolean v12, v15, Lio/rong/imkit/utilities/videocompressor/VideoController;->videoConvertFirstWrite:Z
.line 41
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v30
if-eqz v13, :cond_286
if-eqz v7, :cond_286
.line 42
sget v8, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v12, 0x12
if-lt v8, v12, :cond_286
.line 43
:try_start_225
new-instance v1, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;
invoke-direct {v1}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;-><init>()V
const/4 v8, 0x0
move-object/from16 v2, p1
move-object/from16 v3, p2
move v4, v13
move v5, v7
move v6, v9
move v12, v7
move-object v7, v8
invoke-virtual/range {v1 .. v7}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->convertVideo(Ljava/lang/String;Ljava/lang/String;IIILio/rong/imkit/utilities/videocompressor/videoslimmer/listner/SlimProgressListener;)Z
move-result v1
if-nez v1, :cond_27b
.line 44
new-instance v1, Ljava/io/File;
invoke-direct {v1, v10}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 45
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_25f
.line 46
invoke-virtual {v1}, Ljava/io/File;->delete()Z
move-result v1
.line 47
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "delete:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
:cond_25f
const/16 v1, 0x10
add-int/lit8 v4, v13, 0x10
add-int/lit8 v5, v12, 0x10
.line 48
new-instance v1, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;
invoke-direct {v1}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;-><init>()V
div-int/lit8 v2, v4, 0x2
div-int/lit8 v3, v5, 0x2
mul-int v2, v2, v3
mul-int/lit8 v6, v2, 0xa
const/4 v7, 0x0
move-object/from16 v2, p1
move-object/from16 v3, p2
invoke-virtual/range {v1 .. v7}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->convertVideo(Ljava/lang/String;Ljava/lang/String;IIILio/rong/imkit/utilities/videocompressor/videoslimmer/listner/SlimProgressListener;)Z
move-result v1
:try_end_27b
.catch Ljava/lang/Exception; {:try_start_225 .. :try_end_27b} :catch_27c
:cond_27b
return v1
:catch_27c
move-exception v0
move-object v1, v0
.line 49
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
const-string v3, "compress fail"
invoke-static {v2, v3, v1}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_213
:cond_286
move v12, v7
if-eqz v13, :cond_b86
if-eqz v12, :cond_b86
.line 50
:try_start_28b
new-instance v10, Landroid/media/MediaCodec$BufferInfo;
invoke-direct {v10}, Landroid/media/MediaCodec$BufferInfo;-><init>()V
.line 51
new-instance v8, Lio/rong/imkit/utilities/videocompressor/Mp4Movie;
invoke-direct {v8}, Lio/rong/imkit/utilities/videocompressor/Mp4Movie;-><init>()V
.line 52
invoke-virtual {v8, v11}, Lio/rong/imkit/utilities/videocompressor/Mp4Movie;->setCacheFile(Ljava/io/File;)V
.line 53
invoke-virtual {v8, v3}, Lio/rong/imkit/utilities/videocompressor/Mp4Movie;->setRotation(I)V
.line 54
invoke-virtual {v8, v13, v12}, Lio/rong/imkit/utilities/videocompressor/Mp4Movie;->setSize(II)V
.line 55
new-instance v3, Lio/rong/imkit/utilities/videocompressor/MP4Builder;
invoke-direct {v3}, Lio/rong/imkit/utilities/videocompressor/MP4Builder;-><init>()V
invoke-virtual {v3, v8}, Lio/rong/imkit/utilities/videocompressor/MP4Builder;->createMovie(Lio/rong/imkit/utilities/videocompressor/Mp4Movie;)Lio/rong/imkit/utilities/videocompressor/MP4Builder;
move-result-object v8
:try_end_2a7
.catch Ljava/lang/Exception; {:try_start_28b .. :try_end_2a7} :catch_ab5
.catchall {:try_start_28b .. :try_end_2a7} :catchall_aaa
.line 56
:try_start_2a7
new-instance v3, Landroid/media/MediaExtractor;
invoke-direct {v3}, Landroid/media/MediaExtractor;-><init>()V
:try_end_2ac
.catch Ljava/lang/Exception; {:try_start_2a7 .. :try_end_2ac} :catch_a9f
.catchall {:try_start_2a7 .. :try_end_2ac} :catchall_a93
.line 57
:try_start_2ac
invoke-virtual {v14}, Ljava/io/File;->toString()Ljava/lang/String;
move-result-object v7
invoke-virtual {v3, v7}, Landroid/media/MediaExtractor;->setDataSource(Ljava/lang/String;)V
:try_end_2b3
.catch Ljava/lang/Exception; {:try_start_2ac .. :try_end_2b3} :catch_a86
.catchall {:try_start_2ac .. :try_end_2b3} :catchall_a79
if-ne v13, v5, :cond_2fa
if-eq v12, v6, :cond_2b8
goto :goto_2fa
:cond_2b8
const/4 v12, 0x0
const-wide/16 v5, -0x1
const-wide/16 v18, -0x1
move-object/from16 v1, p0
move-object v2, v3
move-object v13, v3
move-object v3, v8
move-object v4, v10
move-object v9, v8
move-wide/from16 v7, v18
move-object/from16 v32, v9
move-object v9, v11
move-object/from16 v33, v14
move-object v14, v10
move v10, v12
.line 58
:try_start_2cd
invoke-direct/range {v1 .. v10}, Lio/rong/imkit/utilities/videocompressor/VideoController;->readAndWriteTrack(Landroid/media/MediaExtractor;Lio/rong/imkit/utilities/videocompressor/MP4Builder;Landroid/media/MediaCodec$BufferInfo;JJLjava/io/File;Z)J
move-result-wide v1
:try_end_2d1
.catch Ljava/lang/Exception; {:try_start_2cd .. :try_end_2d1} :catch_2ef
.catchall {:try_start_2cd .. :try_end_2d1} :catchall_2e4
const-wide/16 v3, -0x1
cmp-long v5, v1, v3
if-eqz v5, :cond_2d9
move-wide/from16 v16, v1
:cond_2d9
move-object v10, v13
move-object v6, v14
move-object/from16 v34, v29
move-object/from16 v4, v32
const/4 v12, 0x0
move-object/from16 v32, v11
goto/16 :goto_a0b
:catchall_2e4
move-exception v0
move-object v2, v0
move-object/from16 v49, v13
move-object v1, v15
move-object/from16 v3, v29
move-object/from16 v4, v32
goto/16 :goto_b54
:catch_2ef
move-exception v0
move-object v1, v0
move-object v7, v13
move-object/from16 v3, v29
move-object/from16 v4, v32
move-object/from16 v32, v11
goto/16 :goto_abf
:cond_2fa
:goto_2fa
move-object/from16 v32, v8
move-object/from16 v33, v14
move-object v14, v10
move-object v10, v3
const/4 v3, 0x0
.line 59
:try_start_301
invoke-direct {v15, v10, v3}, Lio/rong/imkit/utilities/videocompressor/VideoController;->selectTrack(Landroid/media/MediaExtractor;Z)I
move-result v5
:try_end_305
.catch Ljava/lang/Exception; {:try_start_301 .. :try_end_305} :catch_a70
.catchall {:try_start_301 .. :try_end_305} :catchall_a69
if-ltz v5, :cond_9fe
.line 60
:try_start_307
sget-object v6, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
invoke-virtual {v6}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v6
.line 61
invoke-static {v2}, Lio/rong/imkit/utilities/videocompressor/VideoController;->selectCodec(Ljava/lang/String;)Landroid/media/MediaCodecInfo;
move-result-object v7
:try_end_311
.catch Ljava/lang/Exception; {:try_start_307 .. :try_end_311} :catch_9a9
.catchall {:try_start_307 .. :try_end_311} :catchall_99d
if-nez v7, :cond_36d
.line 62
:try_start_313
sget-object v1, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
const-string v2, "codecInfo is null "
invoke-static {v1, v2}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_31a
.catch Ljava/lang/Exception; {:try_start_313 .. :try_end_31a} :catch_359
.catchall {:try_start_313 .. :try_end_31a} :catchall_34f
.line 63
invoke-virtual {v10}, Landroid/media/MediaExtractor;->release()V
move-object/from16 v8, v32
if-eqz v8, :cond_331
const/4 v1, 0x0
.line 64
:try_start_322
invoke-virtual {v8, v1}, Lio/rong/imkit/utilities/videocompressor/MP4Builder;->finishMovie(Z)V
:try_end_325
.catch Ljava/lang/Exception; {:try_start_322 .. :try_end_325} :catch_326
goto :goto_331
:catch_326
move-exception v0
move-object v1, v0
.line 65
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 66
:cond_331
:goto_331
sget-object v1, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
move-object/from16 v3, v29
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v3
sub-long v3, v3, v30
invoke-virtual {v2, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_213
:catchall_34f
move-exception v0
move-object/from16 v8, v32
move-object v2, v0
move-object v4, v8
move-object/from16 v49, v10
move-object v1, v15
goto/16 :goto_9a5
:catch_359
move-exception v0
move-object v1, v0
move/from16 v48, v5
move-object/from16 v49, v10
move-object v6, v14
move-object/from16 v34, v29
move-object/from16 v4, v32
const/4 v7, 0x0
const/4 v14, 0x0
const/4 v15, 0x0
const/16 v45, 0x0
move-object/from16 v32, v11
goto/16 :goto_9bb
:cond_36d
move-object/from16 v34, v29
move-object/from16 v8, v32
.line 67
:try_start_371
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_373
.catch Ljava/lang/Exception; {:try_start_371 .. :try_end_373} :catch_993
.catchall {:try_start_371 .. :try_end_373} :catchall_98d
const/16 v16, 0x4
const/16 v29, 0x2
const/16 v8, 0x12
if-ge v3, v8, :cond_3ff
move-object/from16 v8, v32
.line 68
:try_start_37d
invoke-static {v7, v2}, Lio/rong/imkit/utilities/videocompressor/VideoController;->selectColorFormat(Landroid/media/MediaCodecInfo;Ljava/lang/String;)I
move-result v19
if-eqz v19, :cond_3df
.line 69
invoke-virtual {v7}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
move-result-object v3
:try_end_387
.catch Ljava/lang/Exception; {:try_start_37d .. :try_end_387} :catch_3f3
.catchall {:try_start_37d .. :try_end_387} :catchall_3eb
move-object/from16 v32, v11
:try_start_389
const-string v11, "OMX.qcom."
.line 70
invoke-virtual {v3, v11}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v11
if-eqz v11, :cond_3ad
.line 71
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v11, 0x10
if-ne v3, v11, :cond_3aa
const-string v3, "lge"
.line 72
invoke-virtual {v6, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_3a7
const-string v3, "nokia"
invoke-virtual {v6, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_3aa
:cond_3a7
const/4 v3, 0x1
:goto_3a8
const/4 v11, 0x1
goto :goto_3d7
:cond_3aa
const/4 v3, 0x1
:goto_3ab
const/4 v11, 0x0
goto :goto_3d7
:cond_3ad
const-string v11, "OMX.Intel."
.line 73
invoke-virtual {v3, v11}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v11
if-eqz v11, :cond_3b7
const/4 v3, 0x2
goto :goto_3ab
:cond_3b7
const-string v11, "OMX.MTK.VIDEO.ENCODER.AVC"
.line 74
invoke-virtual {v3, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_3c1
const/4 v3, 0x3
goto :goto_3ab
:cond_3c1
const-string v11, "OMX.SEC.AVC.Encoder"
.line 75
invoke-virtual {v3, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_3cb
const/4 v3, 0x4
goto :goto_3a8
:cond_3cb
const-string v11, "OMX.TI.DUCATI1.VIDEO.H264E"
.line 76
invoke-virtual {v3, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_3d5
const/4 v3, 0x5
goto :goto_3ab
:cond_3d5
const/4 v3, 0x0
goto :goto_3ab
:goto_3d7
move/from16 v53, v11
move v11, v3
move/from16 v3, v19
move/from16 v19, v53
goto :goto_409
:cond_3df
move-object/from16 v32, v11
.line 77
new-instance v1, Ljava/lang/RuntimeException;
const-string v2, "no supported color format"
invoke-direct {v1, v2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v1
:try_end_3e9
.catch Ljava/lang/Exception; {:try_start_389 .. :try_end_3e9} :catch_3e9
.catchall {:try_start_389 .. :try_end_3e9} :catchall_3eb
:catch_3e9
move-exception v0
goto :goto_3f6
:catchall_3eb
move-exception v0
move-object v2, v0
move-object v4, v8
move-object/from16 v49, v10
move-object v1, v15
goto/16 :goto_a28
:catch_3f3
move-exception v0
move-object/from16 v32, v11
:goto_3f6
move-object v1, v0
move/from16 v48, v5
move-object v4, v8
move-object/from16 v49, v10
move-object v6, v14
goto/16 :goto_9b6
:cond_3ff
move-object/from16 v8, v32
move-object/from16 v32, v11
const v3, 0x7f000789
const/4 v11, 0x0
const/16 v19, 0x0
.line 78
:goto_409
:try_start_409
sget-object v1, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v15, Ljava/lang/StringBuilder;
invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
:try_end_410
.catch Ljava/lang/Exception; {:try_start_409 .. :try_end_410} :catch_986
.catchall {:try_start_409 .. :try_end_410} :catchall_98d
move-object/from16 v35, v8
:try_start_412
const-string v8, "codec = "
invoke-virtual {v15, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
move-result-object v8
invoke-virtual {v15, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v8, " manufacturer = "
invoke-virtual {v15, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v15, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v8, "device = "
invoke-virtual {v15, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v8, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-virtual {v15, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
invoke-static {v1, v8}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 79
sget-object v1, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
const-string v15, "colorFormat = "
invoke-virtual {v8, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
invoke-static {v1, v8}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
mul-int v1, v13, v12
mul-int/lit8 v8, v1, 0x3
.line 80
div-int/lit8 v8, v8, 0x2
:try_end_453
.catch Ljava/lang/Exception; {:try_start_412 .. :try_end_453} :catch_97d
.catchall {:try_start_412 .. :try_end_453} :catchall_976
if-nez v11, :cond_480
.line 81
:try_start_455
rem-int/lit8 v1, v12, 0x10
if-eqz v1, :cond_4b5
.line 82
rem-int/lit8 v1, v12, 0x10
const/16 v6, 0x10
rsub-int/lit8 v1, v1, 0x10
add-int/2addr v1, v12
sub-int/2addr v1, v12
mul-int v1, v1, v13
mul-int/lit8 v6, v1, 0x5
.line 83
div-int/lit8 v6, v6, 0x4
:goto_467
add-int/2addr v8, v6
goto :goto_4b6
:catchall_469
move-exception v0
move-object/from16 v1, p0
move-object v2, v0
move-object/from16 v49, v10
move-object/from16 v3, v34
move-object/from16 v4, v35
goto/16 :goto_b54
:catch_475
move-exception v0
move-object v1, v0
move/from16 v48, v5
move-object/from16 v49, v10
move-object v6, v14
:goto_47c
move-object/from16 v4, v35
goto/16 :goto_9b6
:cond_480
const/4 v15, 0x1
if-ne v11, v15, :cond_497
.line 84
invoke-virtual {v6}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v6
const-string v11, "lge"
invoke-virtual {v6, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-nez v6, :cond_4b5
add-int/lit16 v6, v1, 0x7ff
and-int/lit16 v6, v6, -0x800
sub-int v1, v6, v1
add-int/2addr v8, v1
goto :goto_4b6
:cond_497
const/4 v1, 0x5
if-ne v11, v1, :cond_49b
goto :goto_4b5
:cond_49b
const/4 v1, 0x3
if-ne v11, v1, :cond_4b5
const-string v1, "baidu"
.line 85
invoke-virtual {v6, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_4b5
.line 86
rem-int/lit8 v1, v12, 0x10
const/16 v6, 0x10
rsub-int/lit8 v1, v1, 0x10
add-int/2addr v1, v12
sub-int/2addr v1, v12
mul-int v1, v1, v13
mul-int/lit8 v6, v1, 0x5
.line 87
div-int/lit8 v6, v6, 0x4
:try_end_4b4
.catch Ljava/lang/Exception; {:try_start_455 .. :try_end_4b4} :catch_475
.catchall {:try_start_455 .. :try_end_4b4} :catchall_469
goto :goto_467
:cond_4b5
:goto_4b5
const/4 v1, 0x0
.line 88
:goto_4b6
:try_start_4b6
invoke-virtual {v10, v5}, Landroid/media/MediaExtractor;->selectTrack(I)V
:try_end_4b9
.catch Ljava/lang/Exception; {:try_start_4b6 .. :try_end_4b9} :catch_97d
.catchall {:try_start_4b6 .. :try_end_4b9} :catchall_976
move-object v6, v14
const-wide/16 v14, 0x0
const/4 v11, 0x0
.line 89
:try_start_4bd
invoke-virtual {v10, v14, v15, v11}, Landroid/media/MediaExtractor;->seekTo(JI)V
.line 90
invoke-virtual {v10, v5}, Landroid/media/MediaExtractor;->getTrackFormat(I)Landroid/media/MediaFormat;
move-result-object v11
.line 91
invoke-static {v2, v13, v12}, Landroid/media/MediaFormat;->createVideoFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;
move-result-object v14
const-string v15, "color-format"
.line 92
invoke-virtual {v14, v15, v3}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
const-string v15, "bitrate"
.line 93
invoke-virtual {v14, v15, v9}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
const-string v9, "frame-rate"
const/16 v15, 0x19
.line 94
invoke-virtual {v14, v9, v15}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
const-string v9, "i-frame-interval"
const/16 v15, 0xa
.line 95
invoke-virtual {v14, v9, v15}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
.line 96
sget v9, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_4e2
.catch Ljava/lang/Exception; {:try_start_4bd .. :try_end_4e2} :catch_970
.catchall {:try_start_4bd .. :try_end_4e2} :catchall_976
const/16 v15, 0x12
if-ge v9, v15, :cond_4fa
:try_start_4e6
const-string v15, "stride"
add-int/lit8 v9, v13, 0x20
.line 97
invoke-virtual {v14, v15, v9}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
const-string v9, "slice-height"
.line 98
invoke-virtual {v14, v9, v12}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
:try_end_4f2
.catch Ljava/lang/Exception; {:try_start_4e6 .. :try_end_4f2} :catch_4f3
.catchall {:try_start_4e6 .. :try_end_4f2} :catchall_469
goto :goto_4fa
:catch_4f3
move-exception v0
move-object v1, v0
move/from16 v48, v5
move-object/from16 v49, v10
goto :goto_47c
.line 99
:cond_4fa
:goto_4fa
:try_start_4fa
invoke-virtual {v7}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
move-result-object v7
invoke-static {v7}, Landroid/media/MediaCodec;->createByCodecName(Ljava/lang/String;)Landroid/media/MediaCodec;
move-result-object v7
:try_end_502
.catch Ljava/lang/Exception; {:try_start_4fa .. :try_end_502} :catch_970
.catchall {:try_start_4fa .. :try_end_502} :catchall_976
const/4 v9, 0x0
const/4 v15, 0x1
.line 100
:try_start_504
invoke-virtual {v7, v14, v9, v9, v15}, Landroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V
.line 101
sget v9, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_509
.catch Ljava/lang/Exception; {:try_start_504 .. :try_end_509} :catch_967
.catchall {:try_start_504 .. :try_end_509} :catchall_976
const/16 v14, 0x12
if-lt v9, v14, :cond_52e
.line 102
:try_start_50d
new-instance v14, Lio/rong/imkit/utilities/videocompressor/InputSurface;
invoke-virtual {v7}, Landroid/media/MediaCodec;->createInputSurface()Landroid/view/Surface;
move-result-object v15
invoke-direct {v14, v15}, Lio/rong/imkit/utilities/videocompressor/InputSurface;-><init>(Landroid/view/Surface;)V
:try_end_516
.catch Ljava/lang/Exception; {:try_start_50d .. :try_end_516} :catch_524
.catchall {:try_start_50d .. :try_end_516} :catchall_469
.line 103
:try_start_516
invoke-virtual {v14}, Lio/rong/imkit/utilities/videocompressor/InputSurface;->makeCurrent()V
:try_end_519
.catch Ljava/lang/Exception; {:try_start_516 .. :try_end_519} :catch_51a
.catchall {:try_start_516 .. :try_end_519} :catchall_469
goto :goto_52f
:catch_51a
move-exception v0
move-object v1, v0
move/from16 v48, v5
move-object/from16 v49, v10
move-object/from16 v4, v35
goto/16 :goto_9b8
:catch_524
move-exception v0
move-object v1, v0
move/from16 v48, v5
move-object/from16 v49, v10
move-object/from16 v4, v35
goto/16 :goto_9b7
:cond_52e
const/4 v14, 0x0
.line 104
:goto_52f
:try_start_52f
invoke-virtual {v7}, Landroid/media/MediaCodec;->start()V
const-string v15, "mime"
.line 105
invoke-virtual {v11, v15}, Landroid/media/MediaFormat;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v15
invoke-static {v15}, Landroid/media/MediaCodec;->createDecoderByType(Ljava/lang/String;)Landroid/media/MediaCodec;
move-result-object v15
:try_end_53c
.catch Ljava/lang/Exception; {:try_start_52f .. :try_end_53c} :catch_95d
.catchall {:try_start_52f .. :try_end_53c} :catchall_976
.line 106
:try_start_53c
sget v9, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_53e
.catch Ljava/lang/Exception; {:try_start_53c .. :try_end_53e} :catch_953
.catchall {:try_start_53c .. :try_end_53e} :catchall_976
move/from16 v17, v8
const/16 v8, 0x12
if-lt v9, v8, :cond_554
.line 107
:try_start_544
new-instance v4, Lio/rong/imkit/utilities/videocompressor/OutputSurface;
invoke-direct {v4}, Lio/rong/imkit/utilities/videocompressor/OutputSurface;-><init>()V
:try_end_549
.catch Ljava/lang/Exception; {:try_start_544 .. :try_end_549} :catch_54a
.catchall {:try_start_544 .. :try_end_549} :catchall_469
goto :goto_55a
:catch_54a
move-exception v0
move-object v1, v0
move/from16 v48, v5
move-object/from16 v49, v10
move-object/from16 v4, v35
goto/16 :goto_9b9
.line 108
:cond_554
:try_start_554
new-instance v9, Lio/rong/imkit/utilities/videocompressor/OutputSurface;
invoke-direct {v9, v13, v12, v4}, Lio/rong/imkit/utilities/videocompressor/OutputSurface;-><init>(III)V
:try_end_559
.catch Ljava/lang/Exception; {:try_start_554 .. :try_end_559} :catch_953
.catchall {:try_start_554 .. :try_end_559} :catchall_976
move-object v4, v9
.line 109
:goto_55a
:try_start_55a
invoke-virtual {v4}, Lio/rong/imkit/utilities/videocompressor/OutputSurface;->getSurface()Landroid/view/Surface;
move-result-object v9
move/from16 p1, v1
const/4 v1, 0x0
const/4 v8, 0x0
invoke-virtual {v15, v11, v9, v8, v1}, Landroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V
.line 110
invoke-virtual {v15}, Landroid/media/MediaCodec;->start()V
.line 111
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_56a
.catch Ljava/lang/Exception; {:try_start_55a .. :try_end_56a} :catch_947
.catchall {:try_start_55a .. :try_end_56a} :catchall_976
const/16 v9, 0x15
if-ge v1, v9, :cond_59e
.line 112
:try_start_56e
invoke-virtual {v15}, Landroid/media/MediaCodec;->getInputBuffers()[Ljava/nio/ByteBuffer;
move-result-object v1
.line 113
invoke-virtual {v7}, Landroid/media/MediaCodec;->getOutputBuffers()[Ljava/nio/ByteBuffer;
move-result-object v9
.line 114
sget v11, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v8, 0x12
if-ge v11, v8, :cond_58a
.line 115
invoke-virtual {v7}, Landroid/media/MediaCodec;->getInputBuffers()[Ljava/nio/ByteBuffer;
move-result-object v11
:try_end_580
.catch Ljava/lang/Exception; {:try_start_56e .. :try_end_580} :catch_592
.catchall {:try_start_56e .. :try_end_580} :catchall_469
move-object/from16 v37, v9
move-object/from16 v43, v11
const/4 v9, 0x0
const/16 v36, -0x5
move-object v11, v1
const/4 v1, 0x0
goto :goto_5a7
:cond_58a
move-object v11, v1
move-object/from16 v37, v9
const/4 v1, 0x0
const/4 v9, 0x0
const/16 v36, -0x5
goto :goto_5a5
:catch_592
move-exception v0
move-object v1, v0
move-object/from16 v45, v4
:goto_596
move/from16 v48, v5
move-object/from16 v49, v10
move-object/from16 v4, v35
goto/16 :goto_9bb
:cond_59e
const/4 v1, 0x0
const/4 v9, 0x0
const/4 v11, 0x0
const/16 v36, -0x5
const/16 v37, 0x0
:goto_5a5
const/16 v43, 0x0
:goto_5a7
if-nez v1, :cond_938
move/from16 v44, v3
move-object/from16 v45, v4
const-wide/16 v3, 0x9c4
if-nez v9, :cond_618
.line 116
:try_start_5b1
invoke-virtual {v10}, Landroid/media/MediaExtractor;->getSampleTrackIndex()I
move-result v8
if-ne v8, v5, :cond_5f5
.line 117
invoke-virtual {v15, v3, v4}, Landroid/media/MediaCodec;->dequeueInputBuffer(J)I
move-result v8
if-ltz v8, :cond_5fa
.line 118
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0x15
if-ge v3, v4, :cond_5c6
.line 119
aget-object v3, v11, v8
goto :goto_5ca
.line 120
:cond_5c6
invoke-virtual {v15, v8}, Landroid/media/MediaCodec;->getInputBuffer(I)Ljava/nio/ByteBuffer;
move-result-object v3
:goto_5ca
const/4 v4, 0x0
.line 121
invoke-virtual {v10, v3, v4}, Landroid/media/MediaExtractor;->readSampleData(Ljava/nio/ByteBuffer;I)I
move-result v23
if-gez v23, :cond_5e2
const/16 v22, 0x0
const/16 v23, 0x0
const-wide/16 v24, 0x0
const/16 v26, 0x4
move-object/from16 v20, v15
move/from16 v21, v8
.line 122
invoke-virtual/range {v20 .. v26}, Landroid/media/MediaCodec;->queueInputBuffer(IIIJI)V
const/4 v9, 0x1
goto :goto_5fa
:cond_5e2
const/16 v22, 0x0
.line 123
invoke-virtual {v10}, Landroid/media/MediaExtractor;->getSampleTime()J
move-result-wide v24
const/16 v26, 0x0
move-object/from16 v20, v15
move/from16 v21, v8
invoke-virtual/range {v20 .. v26}, Landroid/media/MediaCodec;->queueInputBuffer(IIIJI)V
.line 124
invoke-virtual {v10}, Landroid/media/MediaExtractor;->advance()Z
goto :goto_5fa
:cond_5f5
const/4 v3, -0x1
if-ne v8, v3, :cond_5fa
const/4 v3, 0x1
goto :goto_5fb
:cond_5fa
:goto_5fa
const/4 v3, 0x0
:goto_5fb
if-eqz v3, :cond_618
const-wide/16 v3, 0x9c4
.line 125
invoke-virtual {v15, v3, v4}, Landroid/media/MediaCodec;->dequeueInputBuffer(J)I
move-result v21
if-ltz v21, :cond_618
const/16 v22, 0x0
const/16 v23, 0x0
const-wide/16 v24, 0x0
const/16 v26, 0x4
move-object/from16 v20, v15
.line 126
invoke-virtual/range {v20 .. v26}, Landroid/media/MediaCodec;->queueInputBuffer(IIIJI)V
:try_end_612
.catch Ljava/lang/Exception; {:try_start_5b1 .. :try_end_612} :catch_614
.catchall {:try_start_5b1 .. :try_end_612} :catchall_469
const/4 v9, 0x1
goto :goto_618
:catch_614
move-exception v0
move-object v1, v0
goto/16 :goto_596
:cond_618
:goto_618
move v4, v1
move/from16 v8, v36
const/4 v1, 0x1
const/4 v3, 0x1
:goto_61d
if-nez v1, :cond_62b
if-eqz v3, :cond_622
goto :goto_62b
:cond_622
move v1, v4
move/from16 v36, v8
move/from16 v3, v44
move-object/from16 v4, v45
goto/16 :goto_5a7
:cond_62b
:goto_62b
move/from16 v46, v1
move/from16 v20, v3
move/from16 v21, v4
const-wide/16 v3, 0x9c4
.line 127
:try_start_633
invoke-virtual {v7, v6, v3, v4}, Landroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I
move-result v1
:try_end_637
.catch Ljava/lang/Exception; {:try_start_633 .. :try_end_637} :catch_936
.catchall {:try_start_633 .. :try_end_637} :catchall_976
const/4 v3, -0x1
if-ne v1, v3, :cond_64c
move/from16 v48, v5
move-object/from16 v49, v10
move-object/from16 v47, v11
move/from16 v3, v21
move-object/from16 v4, v35
const/4 v5, 0x0
:goto_645
const/4 v10, -0x1
move/from16 v35, v9
move-object/from16 v9, v37
goto/16 :goto_777
:cond_64c
const/4 v3, -0x3
if-ne v1, v3, :cond_666
.line 128
:try_start_64f
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0x15
if-ge v3, v4, :cond_659
.line 129
invoke-virtual {v7}, Landroid/media/MediaCodec;->getOutputBuffers()[Ljava/nio/ByteBuffer;
move-result-object v37
:try_end_659
.catch Ljava/lang/Exception; {:try_start_64f .. :try_end_659} :catch_614
.catchall {:try_start_64f .. :try_end_659} :catchall_469
:cond_659
move/from16 v48, v5
move-object/from16 v49, v10
move-object/from16 v47, v11
move/from16 v5, v20
move/from16 v3, v21
move-object/from16 v4, v35
goto :goto_645
:cond_666
const/4 v3, -0x2
if-ne v1, v3, :cond_69e
.line 130
:try_start_669
invoke-virtual {v7}, Landroid/media/MediaCodec;->getOutputFormat()Landroid/media/MediaFormat;
move-result-object v3
:try_end_66d
.catch Ljava/lang/Exception; {:try_start_669 .. :try_end_66d} :catch_694
.catchall {:try_start_669 .. :try_end_66d} :catchall_68f
const/4 v4, -0x5
if-ne v8, v4, :cond_67c
move-object/from16 v4, v35
move/from16 v35, v9
const/4 v9, 0x0
.line 131
:try_start_675
invoke-virtual {v4, v3, v9}, Lio/rong/imkit/utilities/videocompressor/MP4Builder;->addTrack(Landroid/media/MediaFormat;Z)I
move-result v8
:try_end_679
.catch Ljava/lang/Exception; {:try_start_675 .. :try_end_679} :catch_67a
.catchall {:try_start_675 .. :try_end_679} :catchall_9e8
goto :goto_680
:catch_67a
move-exception v0
goto :goto_697
:cond_67c
move-object/from16 v4, v35
move/from16 v35, v9
:goto_680
move/from16 v48, v5
move-object/from16 v49, v10
move-object/from16 v47, v11
move/from16 v5, v20
move/from16 v3, v21
:goto_68a
move-object/from16 v9, v37
const/4 v10, -0x1
goto/16 :goto_777
:catchall_68f
move-exception v0
move-object/from16 v4, v35
goto/16 :goto_9e9
:catch_694
move-exception v0
move-object/from16 v4, v35
:goto_697
move-object v1, v0
move/from16 v48, v5
move-object/from16 v49, v10
goto/16 :goto_9bb
:cond_69e
move-object/from16 v4, v35
move/from16 v35, v9
if-ltz v1, :cond_916
.line 132
:try_start_6a4
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_6a6
.catch Ljava/lang/Exception; {:try_start_6a4 .. :try_end_6a6} :catch_910
.catchall {:try_start_6a4 .. :try_end_6a6} :catchall_90d
const/16 v9, 0x15
if-ge v3, v9, :cond_6ad
.line 133
:try_start_6aa
aget-object v3, v37, v1
:try_end_6ac
.catch Ljava/lang/Exception; {:try_start_6aa .. :try_end_6ac} :catch_67a
.catchall {:try_start_6aa .. :try_end_6ac} :catchall_9e8
goto :goto_6b1
.line 134
:cond_6ad
:try_start_6ad
invoke-virtual {v7, v1}, Landroid/media/MediaCodec;->getOutputBuffer(I)Ljava/nio/ByteBuffer;
move-result-object v3
:goto_6b1
if-eqz v3, :cond_8ed
.line 135
iget v9, v6, Landroid/media/MediaCodec$BufferInfo;->size:I
move-object/from16 v47, v11
const/4 v11, 0x1
if-le v9, v11, :cond_762
.line 136
iget v9, v6, Landroid/media/MediaCodec$BufferInfo;->flags:I
:try_end_6bc
.catch Ljava/lang/Exception; {:try_start_6ad .. :try_end_6bc} :catch_910
.catchall {:try_start_6ad .. :try_end_6bc} :catchall_90d
and-int/lit8 v9, v9, 0x2
if-nez v9, :cond_6dd
const/4 v9, 0x0
.line 137
:try_start_6c1
invoke-virtual {v4, v8, v3, v6, v9}, Lio/rong/imkit/utilities/videocompressor/MP4Builder;->writeSampleData(ILjava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;Z)Z
move-result v3
:try_end_6c5
.catch Ljava/lang/Exception; {:try_start_6c1 .. :try_end_6c5} :catch_6d9
.catchall {:try_start_6c1 .. :try_end_6c5} :catchall_9e8
if-eqz v3, :cond_6d5
move-object/from16 v11, p0
.line 138
:try_start_6c9
invoke-direct {v11, v9, v9}, Lio/rong/imkit/utilities/videocompressor/VideoController;->didWriteData(ZZ)V
:try_end_6cc
.catch Ljava/lang/Exception; {:try_start_6c9 .. :try_end_6cc} :catch_67a
.catchall {:try_start_6c9 .. :try_end_6cc} :catchall_6ce
goto/16 :goto_762
:catchall_6ce
move-exception v0
move-object v2, v0
move-object/from16 v49, v10
move-object v1, v11
goto/16 :goto_a28
:cond_6d5
move-object/from16 v11, p0
goto/16 :goto_762
:catch_6d9
move-exception v0
move-object/from16 v11, p0
goto :goto_697
:cond_6dd
move-object/from16 v11, p0
const/4 v9, -0x5
if-ne v8, v9, :cond_762
.line 139
:try_start_6e2
iget v8, v6, Landroid/media/MediaCodec$BufferInfo;->size:I
new-array v8, v8, [B
.line 140
iget v9, v6, Landroid/media/MediaCodec$BufferInfo;->offset:I
iget v11, v6, Landroid/media/MediaCodec$BufferInfo;->size:I
add-int/2addr v9, v11
invoke-virtual {v3, v9}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;
.line 141
iget v9, v6, Landroid/media/MediaCodec$BufferInfo;->offset:I
invoke-virtual {v3, v9}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 142
invoke-virtual {v3, v8}, Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;
.line 143
iget v3, v6, Landroid/media/MediaCodec$BufferInfo;->size:I
const/4 v9, 0x1
sub-int/2addr v3, v9
:goto_6fa
if-ltz v3, :cond_743
const/4 v11, 0x3
if-le v3, v11, :cond_743
.line 144
aget-byte v11, v8, v3
if-ne v11, v9, :cond_737
add-int/lit8 v9, v3, -0x1
aget-byte v9, v8, v9
if-nez v9, :cond_737
add-int/lit8 v9, v3, -0x2
aget-byte v9, v8, v9
if-nez v9, :cond_737
add-int/lit8 v9, v3, -0x3
aget-byte v11, v8, v9
if-nez v11, :cond_737
.line 145
invoke-static {v9}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v3
.line 146
iget v11, v6, Landroid/media/MediaCodec$BufferInfo;->size:I
sub-int/2addr v11, v9
invoke-static {v11}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v11
:try_end_720
.catch Ljava/lang/Exception; {:try_start_6e2 .. :try_end_720} :catch_910
.catchall {:try_start_6e2 .. :try_end_720} :catchall_90d
move/from16 v48, v5
move-object/from16 v49, v10
const/4 v5, 0x0
.line 147
:try_start_725
invoke-virtual {v3, v8, v5, v9}, Ljava/nio/ByteBuffer;->put([BII)Ljava/nio/ByteBuffer;
move-result-object v10
invoke-virtual {v10, v5}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 148
iget v10, v6, Landroid/media/MediaCodec$BufferInfo;->size:I
sub-int/2addr v10, v9
invoke-virtual {v11, v8, v9, v10}, Ljava/nio/ByteBuffer;->put([BII)Ljava/nio/ByteBuffer;
move-result-object v8
invoke-virtual {v8, v5}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
goto :goto_749
:cond_737
move/from16 v48, v5
move-object/from16 v49, v10
add-int/lit8 v3, v3, -0x1
move/from16 v5, v48
move-object/from16 v10, v49
const/4 v9, 0x1
goto :goto_6fa
:cond_743
move/from16 v48, v5
move-object/from16 v49, v10
const/4 v3, 0x0
const/4 v11, 0x0
.line 149
:goto_749
invoke-static {v2, v13, v12}, Landroid/media/MediaFormat;->createVideoFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;
move-result-object v5
if-eqz v3, :cond_75b
if-eqz v11, :cond_75b
const-string v8, "csd-0"
.line 150
invoke-virtual {v5, v8, v3}, Landroid/media/MediaFormat;->setByteBuffer(Ljava/lang/String;Ljava/nio/ByteBuffer;)V
const-string v3, "csd-1"
.line 151
invoke-virtual {v5, v3, v11}, Landroid/media/MediaFormat;->setByteBuffer(Ljava/lang/String;Ljava/nio/ByteBuffer;)V
:cond_75b
const/4 v3, 0x0
.line 152
invoke-virtual {v4, v5, v3}, Lio/rong/imkit/utilities/videocompressor/MP4Builder;->addTrack(Landroid/media/MediaFormat;Z)I
move-result v5
move v8, v5
goto :goto_766
:cond_762
:goto_762
move/from16 v48, v5
move-object/from16 v49, v10
.line 153
:goto_766
iget v3, v6, Landroid/media/MediaCodec$BufferInfo;->flags:I
and-int/lit8 v3, v3, 0x4
if-eqz v3, :cond_76e
const/4 v3, 0x1
goto :goto_76f
:cond_76e
const/4 v3, 0x0
:goto_76f
const/4 v5, 0x0
.line 154
invoke-virtual {v7, v1, v5}, Landroid/media/MediaCodec;->releaseOutputBuffer(IZ)V
move/from16 v5, v20
goto/16 :goto_68a
:goto_777
if-eq v1, v10, :cond_78b
move-object/from16 v37, v9
move/from16 v9, v35
move/from16 v1, v46
move-object/from16 v11, v47
move-object/from16 v10, v49
move-object/from16 v35, v4
move v4, v3
move v3, v5
move/from16 v5, v48
goto/16 :goto_61d
:cond_78b
const-wide/16 v10, 0x9c4
.line 155
invoke-virtual {v15, v6, v10, v11}, Landroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I
move-result v1
const/4 v10, -0x1
if-ne v1, v10, :cond_79d
move-object/from16 v10, p3
move-object/from16 v50, v2
move v11, v3
move-wide/from16 v51, v27
const/4 v1, 0x0
goto :goto_7c9
:cond_79d
const/4 v11, -0x3
if-ne v1, v11, :cond_7a3
move-object/from16 v50, v2
goto :goto_7c2
:cond_7a3
const/4 v11, -0x2
if-ne v1, v11, :cond_7cd
.line 156
invoke-virtual {v15}, Landroid/media/MediaCodec;->getOutputFormat()Landroid/media/MediaFormat;
move-result-object v1
.line 157
sget-object v11, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
move-object/from16 v50, v2
const-string v2, "newFormat = "
invoke-virtual {v10, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v11, v1}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
:goto_7c2
move-object/from16 v10, p3
move v11, v3
move-wide/from16 v51, v27
move/from16 v1, v46
:goto_7c9
move/from16 v27, v5
goto/16 :goto_8c1
:cond_7cd
move-object/from16 v50, v2
if-ltz v1, :cond_8d6
.line 158
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v10, 0x12
if-lt v2, v10, :cond_7df
.line 159
iget v10, v6, Landroid/media/MediaCodec$BufferInfo;->size:I
if-eqz v10, :cond_7dd
:cond_7db
:goto_7db
const/4 v10, 0x1
goto :goto_7ec
:cond_7dd
const/4 v10, 0x0
goto :goto_7ec
.line 160
:cond_7df
iget v10, v6, Landroid/media/MediaCodec$BufferInfo;->size:I
if-nez v10, :cond_7db
iget-wide v10, v6, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J
const-wide/16 v20, 0x0
cmp-long v22, v10, v20
if-eqz v22, :cond_7dd
goto :goto_7db
.line 161
:goto_7ec
invoke-virtual {v15, v1, v10}, Landroid/media/MediaCodec;->releaseOutputBuffer(IZ)V
:try_end_7ef
.catch Ljava/lang/Exception; {:try_start_725 .. :try_end_7ef} :catch_934
.catchall {:try_start_725 .. :try_end_7ef} :catchall_931
if-eqz v10, :cond_888
.line 162
:try_start_7f1
invoke-virtual/range {v45 .. v45}, Lio/rong/imkit/utilities/videocompressor/OutputSurface;->awaitNewImage()V
:try_end_7f4
.catch Ljava/lang/Exception; {:try_start_7f1 .. :try_end_7f4} :catch_7f6
.catchall {:try_start_7f1 .. :try_end_7f4} :catchall_931
const/4 v1, 0x0
goto :goto_802
:catch_7f6
move-exception v0
move-object v1, v0
.line 163
:try_start_7f8
sget-object v10, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-static {v10, v1}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
const/4 v1, 0x1
:goto_802
if-nez v1, :cond_888
.line 164
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_806
.catch Ljava/lang/Exception; {:try_start_7f8 .. :try_end_806} :catch_934
.catchall {:try_start_7f8 .. :try_end_806} :catchall_931
const/16 v2, 0x12
if-lt v1, v2, :cond_843
move-object/from16 v2, v45
const/4 v10, 0x0
.line 165
:try_start_80d
invoke-virtual {v2, v10}, Lio/rong/imkit/utilities/videocompressor/OutputSurface;->drawImage(Z)V
.line 166
iget-wide v10, v6, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J
const-wide/16 v20, 0x3e8
mul-long v10, v10, v20
invoke-virtual {v14, v10, v11}, Lio/rong/imkit/utilities/videocompressor/InputSurface;->setPresentationTime(J)V
:try_end_819
.catch Ljava/lang/Exception; {:try_start_80d .. :try_end_819} :catch_83e
.catchall {:try_start_80d .. :try_end_819} :catchall_931
move-object/from16 v10, p3
if-eqz v10, :cond_831
move-object/from16 v45, v2
.line 167
:try_start_81f
iget-wide v1, v6, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J
long-to-float v1, v1
move v11, v3
move-wide/from16 v2, v27
move/from16 v27, v5
long-to-float v5, v2
div-float/2addr v1, v5
const/high16 v5, 0x42c80000 # 100.0f
mul-float v1, v1, v5
invoke-interface {v10, v1}, Lio/rong/imkit/utilities/videocompressor/VideoController$CompressProgressListener;->onProgress(F)V
goto :goto_838
:cond_831
move-object/from16 v45, v2
move v11, v3
move-wide/from16 v2, v27
move/from16 v27, v5
.line 168
:goto_838
invoke-virtual {v14}, Lio/rong/imkit/utilities/videocompressor/InputSurface;->swapBuffers()Z
move-wide/from16 v51, v2
goto :goto_88f
:catch_83e
move-exception v0
move-object/from16 v45, v2
goto/16 :goto_950
:cond_843
move-object/from16 v10, p3
move v11, v3
move-wide/from16 v51, v27
const-wide/16 v1, 0x9c4
move/from16 v27, v5
.line 169
invoke-virtual {v7, v1, v2}, Landroid/media/MediaCodec;->dequeueInputBuffer(J)I
move-result v37
:try_end_850
.catch Ljava/lang/Exception; {:try_start_81f .. :try_end_850} :catch_934
.catchall {:try_start_81f .. :try_end_850} :catchall_931
if-ltz v37, :cond_880
move-object/from16 v2, v45
const/4 v1, 0x1
.line 170
:try_start_855
invoke-virtual {v2, v1}, Lio/rong/imkit/utilities/videocompressor/OutputSurface;->drawImage(Z)V
.line 171
invoke-virtual {v2}, Lio/rong/imkit/utilities/videocompressor/OutputSurface;->getFrame()Ljava/nio/ByteBuffer;
move-result-object v20
.line 172
aget-object v21, v43, v37
.line 173
invoke-virtual/range {v21 .. v21}, Ljava/nio/ByteBuffer;->clear()Ljava/nio/Buffer;
move/from16 v22, v44
move/from16 v23, v13
move/from16 v24, v12
move/from16 v25, p1
move/from16 v26, v19
.line 174
invoke-static/range {v20 .. v26}, Lio/rong/imkit/utilities/videocompressor/VideoController;->convertVideoFrame(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;IIIII)I
:try_end_86e
.catch Ljava/lang/Exception; {:try_start_855 .. :try_end_86e} :catch_83e
.catchall {:try_start_855 .. :try_end_86e} :catchall_931
const/16 v38, 0x0
move-object/from16 v45, v2
.line 175
:try_start_872
iget-wide v1, v6, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J
const/16 v42, 0x0
move-object/from16 v36, v7
move/from16 v39, v17
move-wide/from16 v40, v1
invoke-virtual/range {v36 .. v42}, Landroid/media/MediaCodec;->queueInputBuffer(IIIJI)V
goto :goto_88f
.line 176
:cond_880
sget-object v1, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
const-string v2, "input buffer not available"
invoke-static {v1, v2}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_88f
:cond_888
move-object/from16 v10, p3
move v11, v3
move-wide/from16 v51, v27
move/from16 v27, v5
.line 177
:goto_88f
iget v1, v6, Landroid/media/MediaCodec$BufferInfo;->flags:I
and-int/lit8 v1, v1, 0x4
if-eqz v1, :cond_8bf
.line 178
sget-object v1, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
const-string v2, "decoder stream end"
invoke-static {v1, v2}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 179
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x12
if-lt v1, v2, :cond_8a6
.line 180
invoke-virtual {v7}, Landroid/media/MediaCodec;->signalEndOfInputStream()V
goto :goto_8bd
:cond_8a6
const-wide/16 v2, 0x9c4
.line 181
invoke-virtual {v7, v2, v3}, Landroid/media/MediaCodec;->dequeueInputBuffer(J)I
move-result v37
if-ltz v37, :cond_8bd
const/16 v38, 0x0
const/16 v39, 0x1
.line 182
iget-wide v1, v6, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J
const/16 v42, 0x4
move-object/from16 v36, v7
move-wide/from16 v40, v1
invoke-virtual/range {v36 .. v42}, Landroid/media/MediaCodec;->queueInputBuffer(IIIJI)V
:cond_8bd
:goto_8bd
const/4 v1, 0x0
goto :goto_8c1
:cond_8bf
move/from16 v1, v46
:goto_8c1
move-object/from16 v37, v9
move/from16 v3, v27
move/from16 v9, v35
move/from16 v5, v48
move-object/from16 v10, v49
move-object/from16 v2, v50
move-wide/from16 v27, v51
move-object/from16 v35, v4
move v4, v11
move-object/from16 v11, v47
goto/16 :goto_61d
.line 183
:cond_8d6
new-instance v2, Ljava/lang/RuntimeException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "unexpected result from decoder.dequeueOutputBuffer: "
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v2, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v2
:cond_8ed
move/from16 v48, v5
move-object/from16 v49, v10
.line 184
new-instance v2, Ljava/lang/RuntimeException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "encoderOutputBuffer "
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " was null"
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v2, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v2
:catchall_90d
move-exception v0
goto/16 :goto_98f
:catch_910
move-exception v0
move/from16 v48, v5
move-object/from16 v49, v10
goto :goto_950
:cond_916
move/from16 v48, v5
move-object/from16 v49, v10
.line 185
new-instance v2, Ljava/lang/RuntimeException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "unexpected result from encoder.dequeueOutputBuffer: "
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v2, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v2
:try_end_931
.catch Ljava/lang/Exception; {:try_start_872 .. :try_end_931} :catch_934
.catchall {:try_start_872 .. :try_end_931} :catchall_931
:catchall_931
move-exception v0
goto/16 :goto_9f4
:catch_934
move-exception v0
goto :goto_950
:catch_936
move-exception v0
goto :goto_94a
:cond_938
move-object/from16 v45, v4
move/from16 v48, v5
move-object/from16 v49, v10
move-object/from16 v4, v35
move/from16 v1, v48
move-object/from16 v10, v49
const/4 v2, 0x0
goto/16 :goto_9c9
:catch_947
move-exception v0
move-object/from16 v45, v4
:goto_94a
move/from16 v48, v5
move-object/from16 v49, v10
move-object/from16 v4, v35
:goto_950
move-object v1, v0
goto/16 :goto_9bb
:catch_953
move-exception v0
move/from16 v48, v5
move-object/from16 v49, v10
move-object/from16 v4, v35
move-object v1, v0
goto/16 :goto_9b9
:catch_95d
move-exception v0
move/from16 v48, v5
move-object/from16 v49, v10
move-object/from16 v4, v35
move-object v1, v0
goto/16 :goto_9b8
:catch_967
move-exception v0
move/from16 v48, v5
move-object/from16 v49, v10
move-object/from16 v4, v35
move-object v1, v0
goto :goto_9b7
:catch_970
move-exception v0
move/from16 v48, v5
move-object/from16 v49, v10
goto :goto_983
:catchall_976
move-exception v0
move-object/from16 v49, v10
move-object/from16 v4, v35
goto/16 :goto_9f4
:catch_97d
move-exception v0
move/from16 v48, v5
move-object/from16 v49, v10
move-object v6, v14
:goto_983
move-object/from16 v4, v35
goto :goto_9b5
:catch_986
move-exception v0
move/from16 v48, v5
move-object v4, v8
move-object/from16 v49, v10
goto :goto_99b
:catchall_98d
move-exception v0
move-object v4, v8
:goto_98f
move-object/from16 v49, v10
goto/16 :goto_9f4
:catch_993
move-exception v0
move/from16 v48, v5
move-object v4, v8
move-object/from16 v49, v10
move-object/from16 v32, v11
:goto_99b
move-object v6, v14
goto :goto_9b5
:catchall_99d
move-exception v0
move-object/from16 v49, v10
move-object/from16 v4, v32
move-object/from16 v1, p0
move-object v2, v0
:goto_9a5
move-object/from16 v3, v29
goto/16 :goto_b54
:catch_9a9
move-exception v0
move/from16 v48, v5
move-object/from16 v49, v10
move-object v6, v14
move-object/from16 v34, v29
move-object/from16 v4, v32
move-object/from16 v32, v11
:goto_9b5
move-object v1, v0
:goto_9b6
const/4 v7, 0x0
:goto_9b7
const/4 v14, 0x0
:goto_9b8
const/4 v15, 0x0
:goto_9b9
const/16 v45, 0x0
.line 186
:goto_9bb
:try_start_9bb
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_9c4
.catch Ljava/lang/Exception; {:try_start_9bb .. :try_end_9c4} :catch_9f8
.catchall {:try_start_9bb .. :try_end_9c4} :catchall_9f1
move/from16 v1, v48
move-object/from16 v10, v49
const/4 v2, 0x1
.line 187
:goto_9c9
:try_start_9c9
invoke-virtual {v10, v1}, Landroid/media/MediaExtractor;->unselectTrack(I)V
if-eqz v45, :cond_9d1
.line 188
invoke-virtual/range {v45 .. v45}, Lio/rong/imkit/utilities/videocompressor/OutputSurface;->release()V
:cond_9d1
if-eqz v14, :cond_9d6
.line 189
invoke-virtual {v14}, Lio/rong/imkit/utilities/videocompressor/InputSurface;->release()V
:cond_9d6
if-eqz v15, :cond_9de
.line 190
invoke-virtual {v15}, Landroid/media/MediaCodec;->stop()V
.line 191
invoke-virtual {v15}, Landroid/media/MediaCodec;->release()V
:cond_9de
if-eqz v7, :cond_9e6
.line 192
invoke-virtual {v7}, Landroid/media/MediaCodec;->stop()V
.line 193
invoke-virtual {v7}, Landroid/media/MediaCodec;->release()V
:try_end_9e6
.catch Ljava/lang/Exception; {:try_start_9c9 .. :try_end_9e6} :catch_9ef
.catchall {:try_start_9c9 .. :try_end_9e6} :catchall_9e8
:cond_9e6
move v13, v2
goto :goto_a06
:catchall_9e8
move-exception v0
:goto_9e9
move-object/from16 v1, p0
move-object v2, v0
move-object/from16 v49, v10
goto :goto_a28
:catch_9ef
move-exception v0
goto :goto_9fb
:catchall_9f1
move-exception v0
move-object/from16 v10, v49
:goto_9f4
move-object/from16 v1, p0
move-object v2, v0
goto :goto_a28
:catch_9f8
move-exception v0
move-object/from16 v10, v49
:goto_9fb
move-object v1, v0
move-object v7, v10
goto :goto_a30
:cond_9fe
move-object v6, v14
move-object/from16 v34, v29
move-object/from16 v4, v32
move-object/from16 v32, v11
const/4 v13, 0x0
:goto_a06
const-wide/16 v1, -0x1
move-wide/from16 v16, v1
move v12, v13
:goto_a0b
if-nez v12, :cond_a34
const/4 v11, 0x1
const-wide/16 v7, -0x1
move-object/from16 v1, p0
move-object v2, v10
move-object v3, v4
move-object v9, v4
move-object v4, v6
move-wide/from16 v5, v16
move-object v13, v9
move-object/from16 v9, v32
move-object v14, v10
move v10, v11
.line 194
:try_start_a1d
invoke-direct/range {v1 .. v10}, Lio/rong/imkit/utilities/videocompressor/VideoController;->readAndWriteTrack(Landroid/media/MediaExtractor;Lio/rong/imkit/utilities/videocompressor/MP4Builder;Landroid/media/MediaCodec$BufferInfo;JJLjava/io/File;Z)J
:try_end_a20
.catch Ljava/lang/Exception; {:try_start_a1d .. :try_end_a20} :catch_a2c
.catchall {:try_start_a1d .. :try_end_a20} :catchall_a21
goto :goto_a36
:catchall_a21
move-exception v0
move-object/from16 v1, p0
move-object v2, v0
move-object v4, v13
move-object/from16 v49, v14
:goto_a28
move-object/from16 v3, v34
goto/16 :goto_b54
:catch_a2c
move-exception v0
move-object v1, v0
move-object v4, v13
move-object v7, v14
:goto_a30
move-object/from16 v3, v34
goto/16 :goto_abf
:cond_a34
move-object v13, v4
move-object v14, v10
.line 195
:goto_a36
invoke-virtual {v14}, Landroid/media/MediaExtractor;->release()V
if-eqz v13, :cond_a4b
const/4 v1, 0x0
.line 196
:try_start_a3c
invoke-virtual {v13, v1}, Lio/rong/imkit/utilities/videocompressor/MP4Builder;->finishMovie(Z)V
:try_end_a3f
.catch Ljava/lang/Exception; {:try_start_a3c .. :try_end_a3f} :catch_a40
goto :goto_a4b
:catch_a40
move-exception v0
move-object v1, v0
.line 197
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 198
:cond_a4b
:goto_a4b
sget-object v1, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
move-object/from16 v3, v34
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v3
sub-long v3, v3, v30
invoke-virtual {v2, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_afa
:catchall_a69
move-exception v0
move-object v14, v10
move-object/from16 v3, v29
move-object/from16 v13, v32
goto :goto_a7e
:catch_a70
move-exception v0
move-object v14, v10
move-object/from16 v3, v29
move-object/from16 v13, v32
move-object/from16 v32, v11
goto :goto_a8f
:catchall_a79
move-exception v0
move-object v14, v3
move-object v13, v8
move-object/from16 v3, v29
:goto_a7e
move-object/from16 v1, p0
move-object v2, v0
move-object v4, v13
move-object/from16 v49, v14
goto/16 :goto_b54
:catch_a86
move-exception v0
move-object v13, v8
move-object/from16 v32, v11
move-object/from16 v33, v14
move-object v14, v3
move-object/from16 v3, v29
:goto_a8f
move-object v1, v0
move-object v4, v13
move-object v7, v14
goto :goto_abf
:catchall_a93
move-exception v0
move-object v13, v8
move-object/from16 v3, v29
const/16 v49, 0x0
move-object/from16 v1, p0
move-object v2, v0
move-object v4, v13
goto/16 :goto_b54
:catch_a9f
move-exception v0
move-object v13, v8
move-object/from16 v32, v11
move-object/from16 v33, v14
move-object/from16 v3, v29
move-object v1, v0
move-object v4, v13
goto :goto_abe
:catchall_aaa
move-exception v0
move-object/from16 v3, v29
const/4 v4, 0x0
const/16 v49, 0x0
move-object/from16 v1, p0
move-object v2, v0
goto/16 :goto_b54
:catch_ab5
move-exception v0
move-object/from16 v32, v11
move-object/from16 v33, v14
move-object/from16 v3, v29
move-object v1, v0
const/4 v4, 0x0
:goto_abe
const/4 v7, 0x0
.line 199
:goto_abf
:try_start_abf
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_ac8
.catchall {:try_start_abf .. :try_end_ac8} :catchall_b4e
if-eqz v7, :cond_acd
.line 200
invoke-virtual {v7}, Landroid/media/MediaExtractor;->release()V
:cond_acd
if-eqz v4, :cond_adf
const/4 v1, 0x0
.line 201
:try_start_ad0
invoke-virtual {v4, v1}, Lio/rong/imkit/utilities/videocompressor/MP4Builder;->finishMovie(Z)V
:try_end_ad3
.catch Ljava/lang/Exception; {:try_start_ad0 .. :try_end_ad3} :catch_ad4
goto :goto_adf
:catch_ad4
move-exception v0
move-object v1, v0
.line 202
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 203
:cond_adf
:goto_adf
sget-object v1, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v3
sub-long v3, v3, v30
invoke-virtual {v2, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
const/4 v12, 0x1
:goto_afa
const/4 v2, 0x1
move-object/from16 v1, p0
.line 204
invoke-direct {v1, v2, v12}, Lio/rong/imkit/utilities/videocompressor/VideoController;->didWriteData(ZZ)V
.line 205
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "source path: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v4, v1, Lio/rong/imkit/utilities/videocompressor/VideoController;->path:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 206
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "cacheFile:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual/range {v32 .. v32}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 207
sget-object v2, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "inputFile:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual/range {v33 .. v33}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, 0x1
return v2
:catchall_b4e
move-exception v0
move-object/from16 v1, p0
move-object v2, v0
move-object/from16 v49, v7
:goto_b54
if-eqz v49, :cond_b59
.line 208
invoke-virtual/range {v49 .. v49}, Landroid/media/MediaExtractor;->release()V
:cond_b59
if-eqz v4, :cond_b6b
const/4 v5, 0x0
.line 209
:try_start_b5c
invoke-virtual {v4, v5}, Lio/rong/imkit/utilities/videocompressor/MP4Builder;->finishMovie(Z)V
:try_end_b5f
.catch Ljava/lang/Exception; {:try_start_b5c .. :try_end_b5f} :catch_b60
goto :goto_b6b
:catch_b60
move-exception v0
move-object v4, v0
.line 210
sget-object v5, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-virtual {v4}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v4
invoke-static {v5, v4}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 211
:cond_b6b
:goto_b6b
sget-object v4, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v6
sub-long v6, v6, v30
invoke-virtual {v5, v6, v7}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v4, v3}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
throw v2
:cond_b86
move-object v1, v15
const/4 v2, 0x1
.line 212
invoke-direct {v1, v2, v2}, Lio/rong/imkit/utilities/videocompressor/VideoController;->didWriteData(ZZ)V
const/4 v2, 0x0
return v2
:cond_b8d
:goto_b8d
move-object v1, v11
const/4 v2, 0x0
return v2
:catch_b90
move-exception v0
move-object v1, v11
const/4 v2, 0x0
move-object v3, v0
.line 213
sget-object v4, Lio/rong/imkit/utilities/videocompressor/VideoController;->TAG:Ljava/lang/String;
invoke-virtual {v3}, Ljava/lang/Exception;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v4, v3}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
return v2
.end method
.method public scheduleVideoConvert(Ljava/lang/String;Ljava/lang/String;)V
.registers 3
.line 1
invoke-direct {p0, p1, p2}, Lio/rong/imkit/utilities/videocompressor/VideoController;->startVideoConvertFromQueue(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method