VideoSlimEncoder.smali

.class public Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;
.super Ljava/lang/Object;
.source "VideoSlimEncoder.java"


# static fields
.field private static FRAME_RATE:I = 0x19

.field private static IFRAME_INTERVAL:I = 0xa

.field private static final MEDIATYPE_NOT_AUDIO_VIDEO:I = -0xe9

.field private static final MIME_TYPE:Ljava/lang/String; = "video/avc"

.field private static final TAG:Ljava/lang/String; = "VideoSlimEncoder"

.field private static final VERBOSE:Z = true


# instance fields
.field private final TIMEOUT_USEC:I

.field private mBitRate:I

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

.field private mDecoder:Landroid/media/MediaCodec;

.field private mEncoder:Landroid/media/MediaCodec;

.field private mHeight:I

.field private mInputSurface:Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;

.field private mMuxer:Landroid/media/MediaMuxer;

.field private mTrackIndex:I

.field private mWidth:I

.field private outputPath:Ljava/lang/String;

.field private path:Ljava/lang/String;


# 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 v0, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mWidth:I

    .line 3
    iput v0, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mHeight:I

    .line 4
    iput v0, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBitRate:I

    const/16 v0, 0x9c4

    .line 5
    iput v0, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->TIMEOUT_USEC:I

    return-void
.end method

.method private checkParmsError(III)Z
    .registers 4

    if-lez p1, :cond_9

    if-lez p2, :cond_9

    if-gtz p3, :cond_7

    goto :goto_9

    :cond_7
    const/4 p1, 0x0

    return p1

    :cond_9
    :goto_9
    const/4 p1, 0x1

    return p1
.end method

.method private prepareEncoder(Landroid/media/MediaFormat;)V
    .registers 8

    const-string v0, "prepareEncoder:"

    .line 1
    new-instance v1, Landroid/media/MediaCodec$BufferInfo;

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

    iput-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

    .line 2
    iget v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mWidth:I

    iget v2, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mHeight:I

    const-string v3, "video/avc"

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

    move-result-object v1

    const-string v2, "color-format"

    const v4, 0x7f000789

    .line 3
    invoke-virtual {v1, v2, v4}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V

    .line 4
    iget v2, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBitRate:I

    const-string v4, "bitrate"

    invoke-virtual {v1, v4, v2}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V

    .line 5
    sget v2, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->FRAME_RATE:I

    const-string v4, "frame-rate"

    invoke-virtual {v1, v4, v2}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V

    .line 6
    sget v2, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->IFRAME_INTERVAL:I

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

    invoke-virtual {v1, v4, v2}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V

    .line 7
    new-instance v2, Ljava/lang/StringBuilder;

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

    const-string v4, "format: "

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

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

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

    move-result-object v2

    const-string v4, "VideoSlimEncoder"

    invoke-static {v4, v2}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I

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

    move-result-object v2

    iput-object v2, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;
    :try_end_4c
    .catch Ljava/io/IOException; {:try_start_46 .. :try_end_4c} :catch_4d

    goto :goto_60

    :catch_4d
    move-exception v2

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

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

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

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

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

    move-result-object v2

    invoke-static {v4, v2}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 10
    :goto_60
    iget-object v2, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

    const/4 v3, 0x1

    const/4 v5, 0x0

    invoke-virtual {v2, v1, v5, v5, v3}, Landroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V

    .line 11
    new-instance v1, Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;

    iget-object v2, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

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

    move-result-object v2

    invoke-direct {v1, v2}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;-><init>(Landroid/view/Surface;)V

    iput-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mInputSurface:Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;

    .line 12
    iget-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mInputSurface:Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;

    invoke-virtual {v1}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;->makeCurrent()V

    .line 13
    iget-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

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

    :try_start_7e
    const-string v1, "mime"

    .line 14
    invoke-virtual {p1, v1}, Landroid/media/MediaFormat;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v1

    invoke-static {v1}, Landroid/media/MediaCodec;->createDecoderByType(Ljava/lang/String;)Landroid/media/MediaCodec;

    move-result-object v1

    iput-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;
    :try_end_8a
    .catch Ljava/io/IOException; {:try_start_7e .. :try_end_8a} :catch_8b

    goto :goto_9e

    :catch_8b
    move-exception v1

    .line 15
    new-instance v2, Ljava/lang/StringBuilder;

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

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

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

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

    move-result-object v0

    invoke-static {v4, v0}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 16
    :goto_9e
    iget-object v0, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mInputSurface:Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;

    invoke-virtual {v0}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;->createRender()V

    .line 17
    iget-object v0, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

    iget-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mInputSurface:Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;

    invoke-virtual {v1}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;->getSurface()Landroid/view/Surface;

    move-result-object v1

    const/4 v2, 0x0

    invoke-virtual {v0, p1, v1, v5, v2}, Landroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V

    .line 18
    iget-object p1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

    invoke-virtual {p1}, Landroid/media/MediaCodec;->start()V

    const/4 p1, -0x1

    .line 19
    iput p1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mTrackIndex:I

    return-void
.end method

.method private releaseCoder()Z
    .registers 4

    const-string v0, "VideoSlimEncoder"

    const-string v1, "releasing encoder objects"

    .line 1
    invoke-static {v0, v1}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 2
    iget-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

    const/4 v2, 0x0

    if-eqz v1, :cond_16

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

    .line 4
    iget-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

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

    .line 5
    iput-object v2, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

    .line 6
    :cond_16
    iget-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

    if-eqz v1, :cond_24

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

    .line 8
    iget-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

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

    .line 9
    iput-object v2, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

    .line 10
    :cond_24
    iget-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mInputSurface:Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;

    if-eqz v1, :cond_2d

    .line 11
    invoke-virtual {v1}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;->release()V

    .line 12
    iput-object v2, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mInputSurface:Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;

    .line 13
    :cond_2d
    iget-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

    if-eqz v1, :cond_4a

    .line 14
    :try_start_31
    invoke-virtual {v1}, Landroid/media/MediaMuxer;->stop()V

    .line 15
    iget-object v1, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

    invoke-virtual {v1}, Landroid/media/MediaMuxer;->release()V
    :try_end_39
    .catch Ljava/lang/Exception; {:try_start_31 .. :try_end_39} :catch_3e
    .catchall {:try_start_31 .. :try_end_39} :catchall_3c

    .line 16
    iput-object v2, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

    goto :goto_4a

    :catchall_3c
    move-exception v0

    goto :goto_47

    :catch_3e
    :try_start_3e
    const-string v1, "mMuxer fail"

    .line 17
    invoke-static {v0, v1}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
    :try_end_43
    .catchall {:try_start_3e .. :try_end_43} :catchall_3c

    const/4 v0, 0x0

    .line 18
    iput-object v2, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

    return v0

    :goto_47
    iput-object v2, p0, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

    throw v0

    :cond_4a
    :goto_4a
    const/4 v0, 0x1

    return v0
.end method

.method private selectTrack(Landroid/media/MediaExtractor;Z)I
    .registers 7

    .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/16 p1, -0xe9

    return p1
.end method

.method private simpleReadAndWriteTrack(Landroid/media/MediaExtractor;Landroid/media/MediaMuxer;Landroid/media/MediaCodec$BufferInfo;JJZ)J
    .registers 26
    .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, p8

    .line 1
    invoke-direct {v5, v0, v6}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->selectTrack(Landroid/media/MediaExtractor;Z)I

    move-result v7

    if-ltz v7, :cond_96

    .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}, Landroid/media/MediaMuxer;->addTrack(Landroid/media/MediaFormat;)I

    move-result v11

    if-nez v6, :cond_22

    .line 5
    invoke-virtual/range {p2 .. p2}, Landroid/media/MediaMuxer;->start()V

    :cond_22
    const-string v6, "max-input-size"

    .line 6
    invoke-virtual {v10, v6}, Landroid/media/MediaFormat;->getInteger(Ljava/lang/String;)I

    move-result v6

    const-wide/16 v12, 0x0

    const/4 v10, 0x0

    cmp-long v14, v3, v12

    if-lez v14, :cond_33

    .line 7
    invoke-virtual {v0, v3, v4, v10}, Landroid/media/MediaExtractor;->seekTo(JI)V

    goto :goto_36

    .line 8
    :cond_33
    invoke-virtual {v0, v12, v13, v10}, Landroid/media/MediaExtractor;->seekTo(JI)V

    .line 9
    :goto_36
    invoke-static {v6}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;

    move-result-object v6

    const/4 v14, 0x0

    const-wide/16 v15, -0x1

    :goto_3d
    if-nez v14, :cond_92

    .line 10
    invoke-virtual/range {p1 .. p1}, Landroid/media/MediaExtractor;->getSampleTrackIndex()I

    move-result v8

    if-ne v8, v7, :cond_86

    .line 11
    invoke-virtual {v0, v6, v10}, Landroid/media/MediaExtractor;->readSampleData(Ljava/nio/ByteBuffer;I)I

    move-result v8

    iput v8, v2, Landroid/media/MediaCodec$BufferInfo;->size:I

    .line 12
    iget v8, v2, Landroid/media/MediaCodec$BufferInfo;->size:I

    if-gez v8, :cond_52

    .line 13
    iput v10, v2, Landroid/media/MediaCodec$BufferInfo;->size:I

    goto :goto_89

    .line 14
    :cond_52
    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_65

    const-wide/16 v8, -0x1

    cmp-long v10, v15, v8

    if-nez v10, :cond_65

    .line 15
    iget-wide v8, v2, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J

    goto :goto_66

    :cond_65
    move-wide v8, v15

    :goto_66
    cmp-long v10, p6, v12

    if-ltz v10, :cond_75

    .line 16
    iget-wide v12, v2, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J

    cmp-long v10, v12, p6

    if-gez v10, :cond_71

    goto :goto_75

    :cond_71
    move-wide v15, v8

    const/4 v9, 0x1

    const/4 v10, 0x0

    goto :goto_8c

    :cond_75
    :goto_75
    const/4 v10, 0x0

    .line 17
    iput v10, v2, Landroid/media/MediaCodec$BufferInfo;->offset:I

    .line 18
    invoke-virtual/range {p1 .. p1}, Landroid/media/MediaExtractor;->getSampleFlags()I

    move-result v12

    iput v12, v2, Landroid/media/MediaCodec$BufferInfo;->flags:I

    .line 19
    invoke-virtual {v1, v11, v6, v2}, Landroid/media/MediaMuxer;->writeSampleData(ILjava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;)V

    .line 20
    invoke-virtual/range {p1 .. p1}, Landroid/media/MediaExtractor;->advance()Z

    move-wide v15, v8

    goto :goto_8b

    :cond_86
    const/4 v9, -0x1

    if-ne v8, v9, :cond_8b

    :goto_89
    const/4 v9, 0x1

    goto :goto_8c

    :cond_8b
    :goto_8b
    const/4 v9, 0x0

    :goto_8c
    if-eqz v9, :cond_8f

    const/4 v14, 0x1

    :cond_8f
    const-wide/16 v12, 0x0

    goto :goto_3d

    .line 21
    :cond_92
    invoke-virtual {v0, v7}, Landroid/media/MediaExtractor;->unselectTrack(I)V

    return-wide v15

    :cond_96
    const-wide/16 v0, -0x1

    return-wide v0
.end method

.method private writeAudioTrack(Landroid/media/MediaExtractor;Landroid/media/MediaMuxer;Landroid/media/MediaCodec$BufferInfo;JJLjava/io/File;I)J
    .registers 27
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    move-object/from16 v0, p1

    move-object/from16 v1, p3

    move-wide/from16 v2, p4

    const/4 v4, 0x1

    move-object/from16 v5, p0

    .line 1
    invoke-direct {v5, v0, v4}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->selectTrack(Landroid/media/MediaExtractor;Z)I

    move-result v6

    const-wide/16 v7, -0x1

    if-ltz v6, :cond_9a

    .line 2
    invoke-virtual {v0, v6}, Landroid/media/MediaExtractor;->selectTrack(I)V

    .line 3
    invoke-virtual {v0, v6}, Landroid/media/MediaExtractor;->getTrackFormat(I)Landroid/media/MediaFormat;

    move-result-object v9

    const-string v10, "max-input-size"

    .line 4
    invoke-virtual {v9, v10}, Landroid/media/MediaFormat;->getInteger(Ljava/lang/String;)I

    move-result v9

    const-wide/16 v10, 0x0

    const/4 v12, 0x0

    cmp-long v13, v2, v10

    if-lez v13, :cond_29

    .line 5
    invoke-virtual {v0, v2, v3, v12}, Landroid/media/MediaExtractor;->seekTo(JI)V

    goto :goto_2c

    .line 6
    :cond_29
    invoke-virtual {v0, v10, v11, v12}, Landroid/media/MediaExtractor;->seekTo(JI)V

    .line 7
    :goto_2c
    invoke-static {v9}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;

    move-result-object v9

    move-wide v14, v7

    const/4 v13, 0x0

    :goto_32
    if-nez v13, :cond_96

    .line 8
    invoke-virtual/range {p1 .. p1}, Landroid/media/MediaExtractor;->getSampleTrackIndex()I

    move-result v4

    if-ne v4, v6, :cond_82

    .line 9
    invoke-virtual {v0, v9, v12}, Landroid/media/MediaExtractor;->readSampleData(Ljava/nio/ByteBuffer;I)I

    move-result v4

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

    .line 10
    iget v4, v1, Landroid/media/MediaCodec$BufferInfo;->size:I

    if-gez v4, :cond_4c

    .line 11
    iput v12, v1, Landroid/media/MediaCodec$BufferInfo;->size:I

    move/from16 v16, v13

    const/4 v4, 0x1

    move-object/from16 v13, p2

    goto :goto_8c

    :cond_4c
    move/from16 v16, v13

    .line 12
    invoke-virtual/range {p1 .. p1}, Landroid/media/MediaExtractor;->getSampleTime()J

    move-result-wide v12

    iput-wide v12, v1, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J

    cmp-long v4, v2, v10

    if-lez v4, :cond_5e

    cmp-long v4, v14, v7

    if-nez v4, :cond_5e

    .line 13
    iget-wide v14, v1, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J

    :cond_5e
    cmp-long v4, p6, v10

    if-ltz v4, :cond_6e

    .line 14
    iget-wide v12, v1, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J

    cmp-long v4, v12, p6

    if-gez v4, :cond_69

    goto :goto_6e

    :cond_69
    move-object/from16 v13, p2

    const/4 v4, 0x1

    const/4 v12, 0x0

    goto :goto_8c

    :cond_6e
    :goto_6e
    const/4 v12, 0x0

    .line 15
    iput v12, v1, Landroid/media/MediaCodec$BufferInfo;->offset:I

    .line 16
    invoke-virtual/range {p1 .. p1}, Landroid/media/MediaExtractor;->getSampleFlags()I

    move-result v4

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

    move-object/from16 v13, p2

    move/from16 v4, p9

    .line 17
    invoke-virtual {v13, v4, v9, v1}, Landroid/media/MediaMuxer;->writeSampleData(ILjava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;)V

    .line 18
    invoke-virtual/range {p1 .. p1}, Landroid/media/MediaExtractor;->advance()Z

    goto :goto_8b

    :cond_82
    move/from16 v16, v13

    move-object/from16 v13, p2

    const/4 v10, -0x1

    if-ne v4, v10, :cond_8b

    const/4 v4, 0x1

    goto :goto_8c

    :cond_8b
    :goto_8b
    const/4 v4, 0x0

    :goto_8c
    if-eqz v4, :cond_90

    const/16 v16, 0x1

    :cond_90
    move/from16 v13, v16

    const/4 v4, 0x1

    const-wide/16 v10, 0x0

    goto :goto_32

    .line 19
    :cond_96
    invoke-virtual {v0, v6}, Landroid/media/MediaExtractor;->unselectTrack(I)V

    return-wide v14

    :cond_9a
    return-wide v7
.end method


# virtual methods
.method public convertVideo(Ljava/lang/String;Ljava/lang/String;IIILio/rong/imkit/utilities/videocompressor/videoslimmer/listner/SlimProgressListener;)Z
    .registers 37

    move-object/from16 v11, p0

    move-object/from16 v0, p2

    move/from16 v1, p3

    move/from16 v2, p4

    move/from16 v3, p5

    move-object/from16 v4, p6

    const-string v12, "VideoSlimEncoder"

    move-object/from16 v5, p1

    .line 1
    iput-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->path:Ljava/lang/String;

    .line 2
    iput-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->outputPath:Ljava/lang/String;

    .line 3
    invoke-direct {v11, v1, v2, v3}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->checkParmsError(III)Z

    move-result v5

    const/4 v13, 0x0

    if-eqz v5, :cond_1c

    return v13

    .line 4
    :cond_1c
    new-instance v5, Landroid/media/MediaMetadataRetriever;

    invoke-direct {v5}, Landroid/media/MediaMetadataRetriever;-><init>()V

    .line 5
    iget-object v6, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->path:Ljava/lang/String;

    invoke-virtual {v5, v6}, Landroid/media/MediaMetadataRetriever;->setDataSource(Ljava/lang/String;)V

    const/16 v6, 0x12

    .line 6
    invoke-virtual {v5, v6}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String;

    move-result-object v6

    const/16 v7, 0x13

    .line 7
    invoke-virtual {v5, v7}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String;

    move-result-object v7

    const/16 v8, 0x18

    .line 8
    invoke-virtual {v5, v8}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String;

    const/16 v8, 0x9

    .line 9
    invoke-virtual {v5, v8}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String;

    move-result-object v5

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

    move-result-object v5

    invoke-virtual {v5}, Ljava/lang/Long;->longValue()J

    move-result-wide v8

    const-wide/16 v14, 0x3e8

    mul-long v8, v8, v14

    .line 10
    invoke-static {v6}, 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 11
    invoke-static {v7}, 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 12
    iput v3, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBitRate:I

    .line 13
    iput v1, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mWidth:I

    .line 14
    iput v2, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mHeight:I

    .line 15
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    .line 16
    new-instance v10, Ljava/io/File;

    invoke-direct {v10, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V

    .line 17
    new-instance v0, Ljava/io/File;

    iget-object v3, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->path:Ljava/lang/String;

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

    .line 18
    invoke-virtual {v0}, Ljava/io/File;->canRead()Z

    move-result v3

    if-nez v3, :cond_75

    return v13

    :cond_75
    const/4 v7, 0x1

    .line 19
    :try_start_76
    new-instance v14, Landroid/media/MediaExtractor;

    invoke-direct {v14}, Landroid/media/MediaExtractor;-><init>()V
    :try_end_7b
    .catch Ljava/lang/Exception; {:try_start_76 .. :try_end_7b} :catch_3f8
    .catchall {:try_start_76 .. :try_end_7b} :catchall_3f4

    .line 20
    :try_start_7b
    invoke-virtual {v0}, Ljava/io/File;->toString()Ljava/lang/String;

    move-result-object v15

    invoke-virtual {v14, v15}, Landroid/media/MediaExtractor;->setDataSource(Ljava/lang/String;)V

    .line 21
    new-instance v15, Landroid/media/MediaExtractor;

    invoke-direct {v15}, Landroid/media/MediaExtractor;-><init>()V
    :try_end_87
    .catch Ljava/lang/Exception; {:try_start_7b .. :try_end_87} :catch_3ef
    .catchall {:try_start_7b .. :try_end_87} :catchall_3ec

    .line 22
    :try_start_87
    invoke-virtual {v0}, Ljava/io/File;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v15, v0}, Landroid/media/MediaExtractor;->setDataSource(Ljava/lang/String;)V
    :try_end_8e
    .catch Ljava/lang/Exception; {:try_start_87 .. :try_end_8e} :catch_3e7
    .catchall {:try_start_87 .. :try_end_8e} :catchall_3e4

    .line 23
    :try_start_8e
    new-instance v0, Landroid/media/MediaMuxer;

    iget-object v3, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->outputPath:Ljava/lang/String;

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

    iput-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;
    :try_end_97
    .catch Ljava/io/IOException; {:try_start_8e .. :try_end_97} :catch_3d5
    .catch Ljava/lang/Exception; {:try_start_8e .. :try_end_97} :catch_3e7
    .catchall {:try_start_8e .. :try_end_97} :catchall_3e4

    .line 24
    :try_start_97
    invoke-direct {v11, v15, v7}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->selectTrack(Landroid/media/MediaExtractor;Z)I

    move-result v0
    :try_end_9b
    .catch Ljava/lang/Exception; {:try_start_97 .. :try_end_9b} :catch_3e7
    .catchall {:try_start_97 .. :try_end_9b} :catchall_3e4

    move-wide/from16 v18, v8

    const-wide/16 v7, 0x0

    if-ltz v0, :cond_b9

    .line 25
    :try_start_a1
    invoke-virtual {v15, v0}, Landroid/media/MediaExtractor;->selectTrack(I)V

    .line 26
    invoke-virtual {v15, v7, v8, v13}, Landroid/media/MediaExtractor;->seekTo(JI)V

    .line 27
    invoke-virtual {v15, v0}, Landroid/media/MediaExtractor;->getTrackFormat(I)Landroid/media/MediaFormat;

    move-result-object v0

    .line 28
    iget-object v3, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

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

    move-result v0

    move/from16 v20, v0

    goto :goto_bb

    :catch_b4
    move-exception v0

    move-object v3, v14

    :goto_b6
    const/4 v14, 0x1

    goto/16 :goto_3fc

    :cond_b9
    const/16 v20, 0x0

    :goto_bb
    const-wide/16 v21, -0x1

    if-ne v1, v5, :cond_dd

    if-eq v2, v6, :cond_c2

    goto :goto_dd

    .line 29
    :cond_c2
    iget-object v3, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

    iget-object v4, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

    const/4 v9, 0x0

    const-wide/16 v5, -0x1

    const-wide/16 v7, -0x1

    move-object/from16 v1, p0

    move-object v2, v14

    invoke-direct/range {v1 .. v9}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->simpleReadAndWriteTrack(Landroid/media/MediaExtractor;Landroid/media/MediaMuxer;Landroid/media/MediaCodec$BufferInfo;JJZ)J

    move-result-wide v0
    :try_end_d2
    .catch Ljava/lang/Exception; {:try_start_a1 .. :try_end_d2} :catch_b4
    .catchall {:try_start_a1 .. :try_end_d2} :catchall_3e4

    cmp-long v2, v0, v21

    if-eqz v2, :cond_da

    move-wide v5, v0

    move-object v13, v14

    goto/16 :goto_3bb

    :cond_da
    move-object v13, v14

    goto/16 :goto_3b9

    .line 30
    :cond_dd
    :goto_dd
    :try_start_dd
    invoke-direct {v11, v14, v13}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->selectTrack(Landroid/media/MediaExtractor;Z)I

    move-result v3
    :try_end_e1
    .catch Ljava/lang/Exception; {:try_start_dd .. :try_end_e1} :catch_3e7
    .catchall {:try_start_dd .. :try_end_e1} :catchall_3e4

    if-ltz v3, :cond_3af

    .line 31
    :try_start_e3
    invoke-virtual {v14, v3}, Landroid/media/MediaExtractor;->selectTrack(I)V

    .line 32
    invoke-virtual {v14, v7, v8, v13}, Landroid/media/MediaExtractor;->seekTo(JI)V

    .line 33
    invoke-virtual {v14, v3}, Landroid/media/MediaExtractor;->getTrackFormat(I)Landroid/media/MediaFormat;

    move-result-object v0

    .line 34
    invoke-direct {v11, v0}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->prepareEncoder(Landroid/media/MediaFormat;)V

    .line 35
    iget-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

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

    move-result-object v5

    .line 36
    iget-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

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

    move-result-object v0
    :try_end_fc
    .catch Ljava/lang/Exception; {:try_start_e3 .. :try_end_fc} :catch_3b1
    .catchall {:try_start_e3 .. :try_end_fc} :catchall_3e4

    move-object v9, v0

    const/4 v0, 0x0

    const/4 v7, 0x0

    const/16 v8, -0xe9

    :goto_101
    if-nez v0, :cond_3af

    move-object/from16 p5, v14

    const-wide/16 v13, 0x9c4

    if-nez v7, :cond_199

    .line 37
    :try_start_109
    invoke-virtual/range {p5 .. p5}, Landroid/media/MediaExtractor;->getSampleTrackIndex()I

    move-result v6

    if-ne v6, v3, :cond_164

    .line 38
    iget-object v6, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

    invoke-virtual {v6, v13, v14}, Landroid/media/MediaCodec;->dequeueInputBuffer(J)I

    move-result v6

    if-ltz v6, :cond_15f

    .line 39
    sget v13, Landroid/os/Build$VERSION;->SDK_INT:I
    :try_end_119
    .catch Ljava/lang/Exception; {:try_start_109 .. :try_end_119} :catch_194
    .catchall {:try_start_109 .. :try_end_119} :catchall_18f

    const/16 v14, 0x15

    if-ge v13, v14, :cond_12a

    .line 40
    :try_start_11d
    aget-object v13, v5, v6
    :try_end_11f
    .catch Ljava/lang/Exception; {:try_start_11d .. :try_end_11f} :catch_126
    .catchall {:try_start_11d .. :try_end_11f} :catchall_18f

    :goto_11f
    move-object v14, v13

    move-object/from16 v13, p5

    move-object/from16 p5, v5

    const/4 v5, 0x0

    goto :goto_131

    :catch_126
    move-exception v0

    move-object/from16 v3, p5

    goto :goto_b6

    .line 41
    :cond_12a
    :try_start_12a
    iget-object v13, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

    invoke-virtual {v13, v6}, Landroid/media/MediaCodec;->getInputBuffer(I)Ljava/nio/ByteBuffer;

    move-result-object v13
    :try_end_130
    .catch Ljava/lang/Exception; {:try_start_12a .. :try_end_130} :catch_194
    .catchall {:try_start_12a .. :try_end_130} :catchall_18f

    goto :goto_11f

    .line 42
    :goto_131
    :try_start_131
    invoke-virtual {v13, v14, v5}, Landroid/media/MediaExtractor;->readSampleData(Ljava/nio/ByteBuffer;I)I

    move-result v26

    if-gez v26, :cond_14a

    .line 43
    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

    const/16 v25, 0x0

    const/16 v26, 0x0

    const-wide/16 v27, 0x0

    const/16 v29, 0x4

    move-object/from16 v23, v5

    move/from16 v24, v6

    invoke-virtual/range {v23 .. v29}, Landroid/media/MediaCodec;->queueInputBuffer(IIIJI)V

    const/4 v7, 0x1

    goto :goto_16d

    .line 44
    :cond_14a
    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

    const/16 v25, 0x0

    invoke-virtual {v13}, Landroid/media/MediaExtractor;->getSampleTime()J

    move-result-wide v27

    const/16 v29, 0x0

    move-object/from16 v23, v5

    move/from16 v24, v6

    invoke-virtual/range {v23 .. v29}, Landroid/media/MediaCodec;->queueInputBuffer(IIIJI)V

    .line 45
    invoke-virtual {v13}, Landroid/media/MediaExtractor;->advance()Z

    goto :goto_16d

    :cond_15f
    move-object/from16 v13, p5

    move-object/from16 p5, v5

    goto :goto_16d

    :cond_164
    move-object/from16 v13, p5

    move-object/from16 p5, v5

    const/4 v5, -0x1

    if-ne v6, v5, :cond_16d

    const/4 v5, 0x1

    goto :goto_16e

    :cond_16d
    :goto_16d
    const/4 v5, 0x0

    :goto_16e
    if-eqz v5, :cond_18c

    .line 46
    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

    move v14, v7

    const-wide/16 v6, 0x9c4

    invoke-virtual {v5, v6, v7}, Landroid/media/MediaCodec;->dequeueInputBuffer(J)I

    move-result v24

    if-ltz v24, :cond_18d

    .line 47
    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

    const/16 v25, 0x0

    const/16 v26, 0x0

    const-wide/16 v27, 0x0

    const/16 v29, 0x4

    move-object/from16 v23, v5

    invoke-virtual/range {v23 .. v29}, Landroid/media/MediaCodec;->queueInputBuffer(IIIJI)V

    const/4 v7, 0x1

    goto :goto_19d

    :cond_18c
    move v14, v7

    :cond_18d
    move v7, v14

    goto :goto_19d

    :catchall_18f
    move-exception v0

    move-object/from16 v13, p5

    goto/16 :goto_41b

    :catch_194
    move-exception v0

    move-object/from16 v13, p5

    goto/16 :goto_3b3

    :cond_199
    move-object/from16 v13, p5

    move-object/from16 p5, v5

    :goto_19d
    move v6, v0

    const/4 v0, 0x1

    const/4 v5, 0x1

    :goto_1a0
    if-nez v5, :cond_1ac

    if-eqz v0, :cond_1a5

    goto :goto_1ac

    :cond_1a5
    move-object/from16 v5, p5

    move v0, v6

    move-object v14, v13

    const/4 v13, 0x0

    goto/16 :goto_101

    .line 48
    :cond_1ac
    :goto_1ac
    iget-object v14, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

    move/from16 v23, v0

    iget-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

    move/from16 v24, v5

    move/from16 v25, v6

    const-wide/16 v5, 0x9c4

    invoke-virtual {v14, v0, v5, v6}, Landroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I

    move-result v0

    const/4 v5, -0x2

    const/4 v6, -0x3

    const/4 v14, -0x1

    if-ne v0, v14, :cond_1ca

    move/from16 v6, v25

    const/4 v5, -0x1

    const/16 v23, 0x0

    :goto_1c6
    move/from16 v25, v7

    goto/16 :goto_2ca

    :cond_1ca
    if-ne v0, v6, :cond_1dc

    .line 49
    sget v14, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v6, 0x15

    if-ge v14, v6, :cond_1d8

    .line 50
    iget-object v6, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

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

    move-result-object v9

    :cond_1d8
    :goto_1d8
    move/from16 v6, v25

    const/4 v5, -0x1

    goto :goto_1c6

    :cond_1dc
    if-ne v0, v5, :cond_1f6

    .line 51
    iget-object v6, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

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

    move-result-object v6

    const/16 v14, -0xe9

    if-ne v8, v14, :cond_1d8

    .line 52
    iget-object v8, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

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

    move-result v8

    .line 53
    iput v8, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mTrackIndex:I

    .line 54
    iget-object v6, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

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

    goto :goto_1d8

    :cond_1f6
    if-ltz v0, :cond_396

    .line 55
    sget v6, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v14, 0x15

    if-ge v6, v14, :cond_201

    .line 56
    aget-object v6, v9, v0

    goto :goto_207

    .line 57
    :cond_201
    iget-object v6, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

    invoke-virtual {v6, v0}, Landroid/media/MediaCodec;->getOutputBuffer(I)Ljava/nio/ByteBuffer;

    move-result-object v6

    :goto_207
    if-eqz v6, :cond_37a

    .line 58
    iget-object v14, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

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

    move/from16 v25, v7

    const/4 v7, 0x1

    if-le v14, v7, :cond_2b4

    .line 59
    iget-object v14, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

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

    and-int/lit8 v14, v14, 0x2

    if-nez v14, :cond_223

    .line 60
    iget-object v14, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

    invoke-virtual {v14, v8, v6, v5}, Landroid/media/MediaMuxer;->writeSampleData(ILjava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;)V

    goto/16 :goto_2b4

    :cond_223
    const/16 v5, -0xe9

    if-ne v8, v5, :cond_2b4

    .line 61
    iget-object v8, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

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

    new-array v8, v8, [B

    .line 62
    iget-object v14, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

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

    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

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

    add-int/2addr v14, v5

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

    .line 63
    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

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

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

    .line 64
    invoke-virtual {v6, v8}, Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;

    .line 65
    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

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

    sub-int/2addr v5, v7

    :goto_248
    if-ltz v5, :cond_28f

    const/4 v6, 0x3

    if-le v5, v6, :cond_28f

    .line 66
    aget-byte v6, v8, v5

    if-ne v6, v7, :cond_287

    add-int/lit8 v6, v5, -0x1

    aget-byte v6, v8, v6

    if-nez v6, :cond_287

    add-int/lit8 v6, v5, -0x2

    aget-byte v6, v8, v6

    if-nez v6, :cond_287

    add-int/lit8 v6, v5, -0x3

    aget-byte v14, v8, v6

    if-nez v14, :cond_287

    .line 67
    invoke-static {v6}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;

    move-result-object v5

    .line 68
    iget-object v14, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

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

    sub-int/2addr v14, v6

    invoke-static {v14}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;

    move-result-object v14

    move-object/from16 v28, v9

    const/4 v7, 0x0

    .line 69
    invoke-virtual {v5, v8, v7, v6}, Ljava/nio/ByteBuffer;->put([BII)Ljava/nio/ByteBuffer;

    move-result-object v9

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

    .line 70
    iget-object v9, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

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

    sub-int/2addr v9, v6

    invoke-virtual {v14, v8, v6, v9}, Ljava/nio/ByteBuffer;->put([BII)Ljava/nio/ByteBuffer;

    move-result-object v6

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

    goto :goto_293

    :cond_287
    move-object/from16 v28, v9

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

    move-object/from16 v9, v28

    const/4 v7, 0x1

    goto :goto_248

    :cond_28f
    move-object/from16 v28, v9

    const/4 v5, 0x0

    const/4 v14, 0x0

    :goto_293
    const-string v6, "video/avc"

    .line 71
    invoke-static {v6, v1, v2}, Landroid/media/MediaFormat;->createVideoFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;

    move-result-object v6

    if-eqz v5, :cond_2a7

    if-eqz v14, :cond_2a7

    const-string v7, "csd-0"

    .line 72
    invoke-virtual {v6, v7, v5}, Landroid/media/MediaFormat;->setByteBuffer(Ljava/lang/String;Ljava/nio/ByteBuffer;)V

    const-string v5, "csd-1"

    .line 73
    invoke-virtual {v6, v5, v14}, Landroid/media/MediaFormat;->setByteBuffer(Ljava/lang/String;Ljava/nio/ByteBuffer;)V

    .line 74
    :cond_2a7
    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

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

    move-result v5

    .line 75
    iget-object v6, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

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

    move v8, v5

    goto :goto_2b6

    :cond_2b4
    :goto_2b4
    move-object/from16 v28, v9

    .line 76
    :goto_2b6
    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

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

    and-int/lit8 v5, v5, 0x4

    if-eqz v5, :cond_2c0

    const/4 v6, 0x1

    goto :goto_2c1

    :cond_2c0
    const/4 v6, 0x0

    .line 77
    :goto_2c1
    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

    const/4 v7, 0x0

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

    move-object/from16 v9, v28

    const/4 v5, -0x1

    :goto_2ca
    if-eq v0, v5, :cond_2d4

    :goto_2cc
    move/from16 v0, v23

    move/from16 v5, v24

    move/from16 v7, v25

    goto/16 :goto_1a0

    .line 78
    :cond_2d4
    iget-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

    iget-object v7, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

    move v14, v6

    const-wide/16 v5, 0x9c4

    invoke-virtual {v0, v7, v5, v6}, Landroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I

    move-result v0

    const/4 v7, -0x1

    if-ne v0, v7, :cond_2ea

    move-wide/from16 v5, v18

    const-wide/16 v16, 0x3e8

    :goto_2e6
    const/16 v24, 0x0

    goto/16 :goto_35e

    :cond_2ea
    const/4 v5, -0x3

    if-ne v0, v5, :cond_2ee

    goto :goto_2f6

    :cond_2ee
    const/4 v5, -0x2

    if-ne v0, v5, :cond_2fb

    .line 79
    iget-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

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

    :goto_2f6
    move-wide/from16 v5, v18

    const-wide/16 v16, 0x3e8

    goto :goto_35e

    :cond_2fb
    if-ltz v0, :cond_363

    .line 80
    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

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

    if-eqz v5, :cond_305

    const/4 v5, 0x1

    goto :goto_306

    :cond_305
    const/4 v5, 0x0

    .line 81
    :goto_306
    iget-object v6, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mDecoder:Landroid/media/MediaCodec;

    invoke-virtual {v6, v0, v5}, Landroid/media/MediaCodec;->releaseOutputBuffer(IZ)V
    :try_end_30b
    .catch Ljava/lang/Exception; {:try_start_131 .. :try_end_30b} :catch_3ad
    .catchall {:try_start_131 .. :try_end_30b} :catchall_3e0

    if-eqz v5, :cond_34c

    .line 82
    :try_start_30d
    iget-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mInputSurface:Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;

    invoke-virtual {v0}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;->awaitNewImage()V
    :try_end_312
    .catch Ljava/lang/Exception; {:try_start_30d .. :try_end_312} :catch_314
    .catchall {:try_start_30d .. :try_end_312} :catchall_3e0

    const/4 v0, 0x0

    goto :goto_31d

    :catch_314
    move-exception v0

    .line 83
    :try_start_315
    invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object v0

    invoke-static {v12, v0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I

    const/4 v0, 0x1

    :goto_31d
    if-nez v0, :cond_34c

    .line 84
    iget-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mInputSurface:Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;

    invoke-virtual {v0}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;->drawImage()V

    .line 85
    iget-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mInputSurface:Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;

    iget-object v5, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

    iget-wide v5, v5, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J

    const-wide/16 v16, 0x3e8

    mul-long v5, v5, v16

    invoke-virtual {v0, v5, v6}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;->setPresentationTime(J)V

    if-eqz v4, :cond_344

    .line 86
    iget-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

    iget-wide v5, v0, Landroid/media/MediaCodec$BufferInfo;->presentationTimeUs:J

    long-to-float v0, v5

    move-wide/from16 v5, v18

    long-to-float v7, v5

    div-float/2addr v0, v7

    const/high16 v7, 0x42c80000    # 100.0f

    mul-float v0, v0, v7

    invoke-interface {v4, v0}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/listner/SlimProgressListener;->onProgress(F)V

    goto :goto_346

    :cond_344
    move-wide/from16 v5, v18

    .line 87
    :goto_346
    iget-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mInputSurface:Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;

    invoke-virtual {v0}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/muxer/CodecInputSurface;->swapBuffers()Z

    goto :goto_350

    :cond_34c
    move-wide/from16 v5, v18

    const-wide/16 v16, 0x3e8

    .line 88
    :goto_350
    iget-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;

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

    and-int/lit8 v0, v0, 0x4

    if-eqz v0, :cond_35e

    .line 89
    iget-object v0, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mEncoder:Landroid/media/MediaCodec;

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

    goto :goto_2e6

    :cond_35e
    :goto_35e
    move-wide/from16 v18, v5

    move v6, v14

    goto/16 :goto_2cc

    .line 90
    :cond_363
    new-instance v1, Ljava/lang/RuntimeException;

    new-instance v2, Ljava/lang/StringBuilder;

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

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

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

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

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

    move-result-object v0

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

    throw v1

    .line 91
    :cond_37a
    new-instance v1, Ljava/lang/RuntimeException;

    new-instance v2, Ljava/lang/StringBuilder;

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

    const-string v3, "encoderOutputBuffer "

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

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

    const-string v0, " was null"

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

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

    move-result-object v0

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

    throw v1

    .line 92
    :cond_396
    new-instance v1, Ljava/lang/RuntimeException;

    new-instance v2, Ljava/lang/StringBuilder;

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

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

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

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

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

    move-result-object v0

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

    throw v1
    :try_end_3ad
    .catch Ljava/lang/Exception; {:try_start_315 .. :try_end_3ad} :catch_3ad
    .catchall {:try_start_315 .. :try_end_3ad} :catchall_3e0

    :catch_3ad
    move-exception v0

    goto :goto_3b3

    :cond_3af
    move-object v13, v14

    goto :goto_3b6

    :catch_3b1
    move-exception v0

    move-object v13, v14

    :goto_3b3
    move-object v3, v13

    goto/16 :goto_b6

    .line 93
    :goto_3b6
    :try_start_3b6
    invoke-virtual {v13, v3}, Landroid/media/MediaExtractor;->unselectTrack(I)V

    :goto_3b9
    move-wide/from16 v5, v21

    .line 94
    :goto_3bb
    iget-object v3, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mMuxer:Landroid/media/MediaMuxer;

    iget-object v4, v11, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->mBufferInfo:Landroid/media/MediaCodec$BufferInfo;
    :try_end_3bf
    .catch Ljava/lang/Exception; {:try_start_3b6 .. :try_end_3bf} :catch_3d3
    .catchall {:try_start_3b6 .. :try_end_3bf} :catchall_3e0

    const-wide/16 v7, -0x1

    move-object/from16 v1, p0

    move-object v2, v15

    const/4 v14, 0x1

    move-object v9, v10

    move/from16 v10, v20

    :try_start_3c8
    invoke-direct/range {v1 .. v10}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->writeAudioTrack(Landroid/media/MediaExtractor;Landroid/media/MediaMuxer;Landroid/media/MediaCodec$BufferInfo;JJLjava/io/File;I)J
    :try_end_3cb
    .catch Ljava/lang/Exception; {:try_start_3c8 .. :try_end_3cb} :catch_3e2
    .catchall {:try_start_3c8 .. :try_end_3cb} :catchall_3e0

    .line 95
    invoke-virtual {v13}, Landroid/media/MediaExtractor;->release()V

    .line 96
    invoke-virtual {v15}, Landroid/media/MediaExtractor;->release()V

    const/4 v0, 0x0

    goto :goto_40e

    :catch_3d3
    move-exception v0

    goto :goto_3e9

    :catch_3d5
    move-exception v0

    move-object v13, v14

    const/4 v14, 0x1

    .line 97
    :try_start_3d8
    new-instance v1, Ljava/lang/RuntimeException;

    const-string v2, "MediaMuxer creation failed"

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

    throw v1
    :try_end_3e0
    .catch Ljava/lang/Exception; {:try_start_3d8 .. :try_end_3e0} :catch_3e2
    .catchall {:try_start_3d8 .. :try_end_3e0} :catchall_3e0

    :catchall_3e0
    move-exception v0

    goto :goto_41b

    :catch_3e2
    move-exception v0

    goto :goto_3ea

    :catchall_3e4
    move-exception v0

    move-object v13, v14

    goto :goto_41b

    :catch_3e7
    move-exception v0

    move-object v13, v14

    :goto_3e9
    const/4 v14, 0x1

    :goto_3ea
    move-object v3, v13

    goto :goto_3fc

    :catchall_3ec
    move-exception v0

    move-object v13, v14

    goto :goto_3f6

    :catch_3ef
    move-exception v0

    move-object v13, v14

    const/4 v14, 0x1

    move-object v3, v13

    goto :goto_3fb

    :catchall_3f4
    move-exception v0

    const/4 v13, 0x0

    :goto_3f6
    const/4 v15, 0x0

    goto :goto_41b

    :catch_3f8
    move-exception v0

    const/4 v14, 0x1

    const/4 v3, 0x0

    :goto_3fb
    const/4 v15, 0x0

    .line 98
    :goto_3fc
    :try_start_3fc
    invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object v0

    invoke-static {v12, v0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
    :try_end_403
    .catchall {:try_start_3fc .. :try_end_403} :catchall_419

    if-eqz v3, :cond_408

    .line 99
    invoke-virtual {v3}, Landroid/media/MediaExtractor;->release()V

    :cond_408
    if-eqz v15, :cond_40d

    .line 100
    invoke-virtual {v15}, Landroid/media/MediaExtractor;->release()V

    :cond_40d
    const/4 v0, 0x1

    .line 101
    :goto_40e
    invoke-direct/range {p0 .. p0}, Lio/rong/imkit/utilities/videocompressor/videoslimmer/VideoSlimEncoder;->releaseCoder()Z

    move-result v1

    if-eqz v0, :cond_418

    if-nez v1, :cond_418

    const/4 v1, 0x0

    return v1

    :cond_418
    return v14

    :catchall_419
    move-exception v0

    move-object v13, v3

    :goto_41b
    if-eqz v13, :cond_420

    .line 102
    invoke-virtual {v13}, Landroid/media/MediaExtractor;->release()V

    :cond_420
    if-eqz v15, :cond_425

    .line 103
    invoke-virtual {v15}, Landroid/media/MediaExtractor;->release()V

    .line 104
    :cond_425
    goto :goto_427

    :goto_426
    throw v0

    :goto_427
    goto :goto_426
.end method