AacEncode.smali 
.class public Lio/dcloud/feature/audio/aac/AacEncode;
.super Ljava/lang/Object;
# static fields
.field private static mInstance:Lio/dcloud/feature/audio/aac/AacEncode;
# instance fields
.field bufferInfo:Landroid/media/MediaCodec$BufferInfo;
.field private freqidxs:Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/HashMap<",
            "Ljava/lang/Integer;",
            "Ljava/lang/Integer;",
            ">;"
        }
    .end annotation
.end field
.field inputBuffers:[Ljava/nio/ByteBuffer;
.field private mChannelCount:I
.field private mSampleRate:I
.field private mediaCodec:Landroid/media/MediaCodec;
.field outputBuffers:[Ljava/nio/ByteBuffer;
.field outputStream:Ljava/io/ByteArrayOutputStream;
.field presentationTimeUs:J
# direct methods
.method public constructor <init>(II)V
    .registers 7
    const-string v0, "audio/mp4a-latm"
    .line 1
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    const/4 v1, 0x0
    .line 2
    iput-object v1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->inputBuffers:[Ljava/nio/ByteBuffer;
    .line 3
    iput-object v1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->outputBuffers:[Ljava/nio/ByteBuffer;
    const-wide/16 v2, 0x0
    .line 8
    iput-wide v2, p0, Lio/dcloud/feature/audio/aac/AacEncode;->presentationTimeUs:J
    .line 12
    new-instance v2, Ljava/io/ByteArrayOutputStream;
    invoke-direct {v2}, Ljava/io/ByteArrayOutputStream;-><init>()V
    iput-object v2, p0, Lio/dcloud/feature/audio/aac/AacEncode;->outputStream:Ljava/io/ByteArrayOutputStream;
    .line 17
    new-instance v2, Ljava/util/HashMap;
    invoke-direct {v2}, Ljava/util/HashMap;-><init>()V
    iput-object v2, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    .line 36
    :try_start_1c
    invoke-static {v0}, Landroid/media/MediaCodec;->createEncoderByType(Ljava/lang/String;)Landroid/media/MediaCodec;
    move-result-object v2
    iput-object v2, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mediaCodec:Landroid/media/MediaCodec;
    :try_end_22
    .catch Ljava/io/IOException; {:try_start_1c .. :try_end_22} :catch_23
    goto :goto_27
    :catch_23
    move-exception v2
    .line 38
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
    .line 40
    :goto_27
    iput p1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mSampleRate:I
    .line 41
    iput p2, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mChannelCount:I
    .line 42
    invoke-virtual {p0}, Lio/dcloud/feature/audio/aac/AacEncode;->initFreqidxs()V
    const/4 v2, 0x3
    new-array v2, v2, [I
    .line 46
    fill-array-data v2, :array_74
    .line 49
    invoke-static {v0, p1, p2}, Landroid/media/MediaFormat;->createAudioFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;
    move-result-object p1
    const-string p2, "mime"
    .line 52
    invoke-virtual {p1, p2, v0}, Landroid/media/MediaFormat;->setString(Ljava/lang/String;Ljava/lang/String;)V
    const/4 p2, 0x2
    const-string v0, "aac-profile"
    .line 53
    invoke-virtual {p1, v0, p2}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
    const/4 p2, 0x1
    .line 56
    aget v0, v2, p2
    const-string v2, "bitrate"
    invoke-virtual {p1, v2, v0}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
    const/high16 v0, 0x100000
    const-string v2, "max-input-size"
    .line 59
    invoke-virtual {p1, v2, v0}, Landroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
    .line 61
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mediaCodec:Landroid/media/MediaCodec;
    invoke-virtual {v0, p1, v1, v1, p2}, Landroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V
    .line 64
    iget-object p1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mediaCodec:Landroid/media/MediaCodec;
    invoke-virtual {p1}, Landroid/media/MediaCodec;->start()V
    .line 66
    iget-object p1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mediaCodec:Landroid/media/MediaCodec;
    invoke-virtual {p1}, Landroid/media/MediaCodec;->getInputBuffers()[Ljava/nio/ByteBuffer;
    move-result-object p1
    iput-object p1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->inputBuffers:[Ljava/nio/ByteBuffer;
    .line 67
    iget-object p1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mediaCodec:Landroid/media/MediaCodec;
    invoke-virtual {p1}, Landroid/media/MediaCodec;->getOutputBuffers()[Ljava/nio/ByteBuffer;
    move-result-object p1
    iput-object p1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->outputBuffers:[Ljava/nio/ByteBuffer;
    .line 68
    new-instance p1, Landroid/media/MediaCodec$BufferInfo;
    invoke-direct {p1}, Landroid/media/MediaCodec$BufferInfo;-><init>()V
    iput-object p1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->bufferInfo:Landroid/media/MediaCodec$BufferInfo;
    return-void
    :array_74
    .array-data 4
        0xfa00
        0x17700
        0x1f400
    .end array-data
.end method
.method private addADTStoPacket([BI)V
    .registers 7
    .line 1
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    iget v1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mSampleRate:I
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    invoke-virtual {v0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v0
    check-cast v0, Ljava/lang/Integer;
    invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
    move-result v0
    .line 2
    iget v1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mChannelCount:I
    const/4 v2, 0x0
    const/4 v3, -0x1
    .line 3
    aput-byte v3, p1, v2
    const/4 v2, 0x1
    const/4 v3, -0x7
    .line 4
    aput-byte v3, p1, v2
    const/4 v2, 0x2
    shl-int/2addr v0, v2
    add-int/lit8 v0, v0, 0x40
    shr-int/lit8 v3, v1, 0x2
    add-int/2addr v0, v3
    int-to-byte v0, v0
    .line 5
    aput-byte v0, p1, v2
    const/4 v0, 0x3
    and-int/2addr v1, v0
    const/4 v2, 0x6
    shl-int/2addr v1, v2
    shr-int/lit8 v3, p2, 0xb
    add-int/2addr v1, v3
    int-to-byte v1, v1
    .line 6
    aput-byte v1, p1, v0
    and-int/lit16 v1, p2, 0x7ff
    shr-int/lit8 v0, v1, 0x3
    int-to-byte v0, v0
    const/4 v1, 0x4
    .line 7
    aput-byte v0, p1, v1
    and-int/lit8 p2, p2, 0x7
    const/4 v0, 0x5
    shl-int/2addr p2, v0
    add-int/lit8 p2, p2, 0x1f
    int-to-byte p2, p2
    .line 8
    aput-byte p2, p1, v0
    const/4 p2, -0x4
    .line 9
    aput-byte p2, p1, v2
    return-void
.end method
.method private computePresentationTime(J)J
    .registers 5
    const-wide/32 v0, 0x15f90
    mul-long/2addr p1, v0
    const-wide/16 v0, 0x400
    mul-long/2addr p1, v0
    .line 1
    iget v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mSampleRate:I
    int-to-long v0, v0
    div-long/2addr p1, v0
    return-wide p1
.end method
.method public static getAacEncode()Lio/dcloud/feature/audio/aac/AacEncode;
    .registers 1
    .line 5
    sget-object v0, Lio/dcloud/feature/audio/aac/AacEncode;->mInstance:Lio/dcloud/feature/audio/aac/AacEncode;
    return-object v0
.end method
.method public static getAacEncode(II)Lio/dcloud/feature/audio/aac/AacEncode;
    .registers 3
    .line 1
    sget-object v0, Lio/dcloud/feature/audio/aac/AacEncode;->mInstance:Lio/dcloud/feature/audio/aac/AacEncode;
    if-nez v0, :cond_b
    .line 2
    new-instance v0, Lio/dcloud/feature/audio/aac/AacEncode;
    invoke-direct {v0, p0, p1}, Lio/dcloud/feature/audio/aac/AacEncode;-><init>(II)V
    sput-object v0, Lio/dcloud/feature/audio/aac/AacEncode;->mInstance:Lio/dcloud/feature/audio/aac/AacEncode;
    .line 4
    :cond_b
    sget-object p0, Lio/dcloud/feature/audio/aac/AacEncode;->mInstance:Lio/dcloud/feature/audio/aac/AacEncode;
    return-object p0
.end method
# virtual methods
.method public close()V
    .registers 2
    .line 1
    :try_start_0
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mediaCodec:Landroid/media/MediaCodec;
    invoke-virtual {v0}, Landroid/media/MediaCodec;->stop()V
    .line 2
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mediaCodec:Landroid/media/MediaCodec;
    invoke-virtual {v0}, Landroid/media/MediaCodec;->release()V
    .line 3
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->outputStream:Ljava/io/ByteArrayOutputStream;
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->flush()V
    .line 4
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->outputStream:Ljava/io/ByteArrayOutputStream;
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->close()V
    const/4 v0, 0x0
    .line 5
    sput-object v0, Lio/dcloud/feature/audio/aac/AacEncode;->mInstance:Lio/dcloud/feature/audio/aac/AacEncode;
    :try_end_17
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_17} :catch_18
    goto :goto_1c
    :catch_18
    move-exception v0
    .line 7
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
    :goto_1c
    return-void
.end method
.method public initFreqidxs()V
    .registers 4
    .line 1
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const v1, 0x17700
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/4 v2, 0x0
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 2
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const v1, 0x15888
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/4 v2, 0x1
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 3
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const v1, 0xfa00
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/4 v2, 0x2
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 4
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const v1, 0xbb80
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/4 v2, 0x3
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 5
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const v1, 0xac44
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/4 v2, 0x4
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 6
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const/16 v1, 0x7d00
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/4 v2, 0x5
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 7
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const/16 v1, 0x5dc0
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/4 v2, 0x6
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 8
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const/16 v1, 0x5622
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/4 v2, 0x7
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 9
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const/16 v1, 0x3e80
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/16 v2, 0x8
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 10
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const/16 v1, 0x2ee0
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/16 v2, 0x9
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 11
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const/16 v1, 0x2b11
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/16 v2, 0xa
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 12
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const/16 v1, 0x1f40
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/16 v2, 0xb
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 13
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->freqidxs:Ljava/util/HashMap;
    const/16 v1, 0x1cb6
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v1
    const/16 v2, 0xc
    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v2
    invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    return-void
.end method
.method public offerEncoder([B)[B
    .registers 12
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation
    .line 1
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mediaCodec:Landroid/media/MediaCodec;
    const-wide/16 v1, -0x1
    invoke-virtual {v0, v1, v2}, Landroid/media/MediaCodec;->dequeueInputBuffer(J)I
    move-result v4
    if-ltz v4, :cond_2d
    .line 3
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->inputBuffers:[Ljava/nio/ByteBuffer;
    aget-object v0, v0, v4
    .line 4
    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->clear()Ljava/nio/Buffer;
    .line 5
    invoke-virtual {v0, p1}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;
    .line 6
    array-length v1, p1
    invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;
    .line 9
    iget-wide v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->presentationTimeUs:J
    invoke-direct {p0, v0, v1}, Lio/dcloud/feature/audio/aac/AacEncode;->computePresentationTime(J)J
    move-result-wide v7
    .line 11
    iget-object v3, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mediaCodec:Landroid/media/MediaCodec;
    array-length v6, p1
    const/4 v5, 0x0
    const/4 v9, 0x0
    invoke-virtual/range {v3 .. v9}, Landroid/media/MediaCodec;->queueInputBuffer(IIIJI)V
    .line 12
    iget-wide v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->presentationTimeUs:J
    const-wide/16 v2, 0x1
    add-long/2addr v0, v2
    iput-wide v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->presentationTimeUs:J
    .line 16
    :cond_2d
    iget-object p1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mediaCodec:Landroid/media/MediaCodec;
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->bufferInfo:Landroid/media/MediaCodec$BufferInfo;
    const-wide/16 v1, 0x0
    invoke-virtual {p1, v0, v1, v2}, Landroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I
    move-result p1
    :goto_37
    if-ltz p1, :cond_74
    .line 19
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->bufferInfo:Landroid/media/MediaCodec$BufferInfo;
    iget v3, v0, Landroid/media/MediaCodec$BufferInfo;->size:I
    add-int/lit8 v4, v3, 0x7
    .line 21
    iget-object v5, p0, Lio/dcloud/feature/audio/aac/AacEncode;->outputBuffers:[Ljava/nio/ByteBuffer;
    aget-object v5, v5, p1
    .line 23
    iget v0, v0, Landroid/media/MediaCodec$BufferInfo;->offset:I
    invoke-virtual {v5, v0}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
    .line 24
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->bufferInfo:Landroid/media/MediaCodec$BufferInfo;
    iget v0, v0, Landroid/media/MediaCodec$BufferInfo;->offset:I
    add-int/2addr v0, v3
    invoke-virtual {v5, v0}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;
    .line 27
    new-array v0, v4, [B
    .line 28
    invoke-direct {p0, v0, v4}, Lio/dcloud/feature/audio/aac/AacEncode;->addADTStoPacket([BI)V
    const/4 v4, 0x7
    .line 30
    invoke-virtual {v5, v0, v4, v3}, Ljava/nio/ByteBuffer;->get([BII)Ljava/nio/ByteBuffer;
    .line 31
    iget-object v3, p0, Lio/dcloud/feature/audio/aac/AacEncode;->bufferInfo:Landroid/media/MediaCodec$BufferInfo;
    iget v3, v3, Landroid/media/MediaCodec$BufferInfo;->offset:I
    invoke-virtual {v5, v3}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
    .line 34
    iget-object v3, p0, Lio/dcloud/feature/audio/aac/AacEncode;->outputStream:Ljava/io/ByteArrayOutputStream;
    invoke-virtual {v3, v0}, Ljava/io/ByteArrayOutputStream;->write([B)V
    .line 35
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mediaCodec:Landroid/media/MediaCodec;
    const/4 v3, 0x0
    invoke-virtual {v0, p1, v3}, Landroid/media/MediaCodec;->releaseOutputBuffer(IZ)V
    .line 36
    iget-object p1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->mediaCodec:Landroid/media/MediaCodec;
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->bufferInfo:Landroid/media/MediaCodec$BufferInfo;
    invoke-virtual {p1, v0, v1, v2}, Landroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I
    move-result p1
    goto :goto_37
    .line 40
    :cond_74
    iget-object p1, p0, Lio/dcloud/feature/audio/aac/AacEncode;->outputStream:Ljava/io/ByteArrayOutputStream;
    invoke-virtual {p1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
    move-result-object p1
    .line 43
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->outputStream:Ljava/io/ByteArrayOutputStream;
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->flush()V
    .line 44
    iget-object v0, p0, Lio/dcloud/feature/audio/aac/AacEncode;->outputStream:Ljava/io/ByteArrayOutputStream;
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V
    return-object p1
.end method