a.smali

.class public final Lcom/imo/android/imoim/music/a;
.super Ljava/lang/Object;
.source "SourceFile"

# interfaces
.implements Lcom/google/android/exoplayer2/extractor/Extractor;


# static fields
.field public static final a:Lcom/google/android/exoplayer2/extractor/ExtractorsFactory;

.field private static final b:[I

.field private static final c:[I

.field private static final d:[B

.field private static final e:[B

.field private static final f:I


# instance fields
.field private final g:[B

.field private h:Z

.field private i:J

.field private j:I

.field private k:I

.field private l:Lcom/google/android/exoplayer2/extractor/TrackOutput;

.field private m:Z


# direct methods
.method static constructor <clinit>()V
    .registers 2

    .line 46
    new-instance v0, Lcom/imo/android/imoim/music/a$1;

    invoke-direct {v0}, Lcom/imo/android/imoim/music/a$1;-><init>()V

    sput-object v0, Lcom/imo/android/imoim/music/a;->a:Lcom/google/android/exoplayer2/extractor/ExtractorsFactory;

    const/16 v0, 0x10

    new-array v1, v0, [I

    .line 59
    fill-array-data v1, :array_30

    sput-object v1, Lcom/imo/android/imoim/music/a;->b:[I

    new-array v0, v0, [I

    .line 82
    fill-array-data v0, :array_54

    sput-object v0, Lcom/imo/android/imoim/music/a;->c:[I

    const-string v0, "#!AMR\n"

    .line 101
    invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getUtf8Bytes(Ljava/lang/String;)[B

    move-result-object v0

    sput-object v0, Lcom/imo/android/imoim/music/a;->d:[B

    const-string v0, "#!AMR-WB\n"

    .line 102
    invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getUtf8Bytes(Ljava/lang/String;)[B

    move-result-object v0

    sput-object v0, Lcom/imo/android/imoim/music/a;->e:[B

    .line 107
    sget-object v0, Lcom/imo/android/imoim/music/a;->c:[I

    const/16 v1, 0x8

    aget v0, v0, v1

    sput v0, Lcom/imo/android/imoim/music/a;->f:I

    return-void

    :array_30
    .array-data 4
        0xd
        0xe
        0x10
        0x12
        0x14
        0x15
        0x1b
        0x20
        0x6
        0x7
        0x6
        0x6
        0x1
        0x1
        0x1
        0x1
    .end array-data

    :array_54
    .array-data 4
        0x12
        0x18
        0x21
        0x25
        0x29
        0x2f
        0x33
        0x3b
        0x3d
        0x6
        0x1
        0x1
        0x1
        0x1
        0x1
        0x1
    .end array-data
.end method

.method public constructor <init>()V
    .registers 2

    .line 123
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    const/4 v0, 0x1

    new-array v0, v0, [B

    .line 124
    iput-object v0, p0, Lcom/imo/android/imoim/music/a;->g:[B

    return-void
.end method

.method private a(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)Z
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;,
            Ljava/lang/InterruptedException;
        }
    .end annotation

    .line 194
    sget-object v0, Lcom/imo/android/imoim/music/a;->d:[B

    invoke-static {p1, v0}, Lcom/imo/android/imoim/music/a;->a(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[B)Z

    move-result v0

    const/4 v1, 0x0

    const/4 v2, 0x1

    if-eqz v0, :cond_13

    .line 195
    iput-boolean v1, p0, Lcom/imo/android/imoim/music/a;->h:Z

    .line 196
    sget-object v0, Lcom/imo/android/imoim/music/a;->d:[B

    array-length v0, v0

    invoke-interface {p1, v0}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->skipFully(I)V

    return v2

    .line 198
    :cond_13
    sget-object v0, Lcom/imo/android/imoim/music/a;->e:[B

    invoke-static {p1, v0}, Lcom/imo/android/imoim/music/a;->a(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[B)Z

    move-result v0

    if-eqz v0, :cond_24

    .line 199
    iput-boolean v2, p0, Lcom/imo/android/imoim/music/a;->h:Z

    .line 200
    sget-object v0, Lcom/imo/android/imoim/music/a;->e:[B

    array-length v0, v0

    invoke-interface {p1, v0}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->skipFully(I)V

    return v2

    :cond_24
    return v1
.end method

.method private static a(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[B)Z
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;,
            Ljava/lang/InterruptedException;
        }
    .end annotation

    .line 211
    invoke-interface {p0}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->resetPeekPosition()V

    .line 212
    array-length v0, p1

    new-array v0, v0, [B

    .line 213
    array-length v1, p1

    const/4 v2, 0x0

    invoke-interface {p0, v0, v2, v1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->peekFully([BII)V

    .line 214
    invoke-static {v0, p1}, Ljava/util/Arrays;->equals([B[B)Z

    move-result p0

    return p0
.end method

.method private b(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)I
    .registers 13
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;,
            Ljava/lang/InterruptedException;
        }
    .end annotation

    .line 240
    iget v0, p0, Lcom/imo/android/imoim/music/a;->k:I

    const/4 v1, -0x1

    const/4 v2, 0x1

    const/4 v3, 0x0

    if-nez v0, :cond_8f

    .line 1272
    :try_start_7
    invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->resetPeekPosition()V

    .line 1273
    iget-object v0, p0, Lcom/imo/android/imoim/music/a;->g:[B

    invoke-interface {p1, v0, v3, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->peekFully([BII)V

    .line 1275
    iget-object v0, p0, Lcom/imo/android/imoim/music/a;->g:[B

    aget-byte v0, v0, v3

    and-int/lit16 v4, v0, 0x83

    if-gtz v4, :cond_7e

    shr-int/lit8 v0, v0, 0x3

    const/16 v4, 0xf

    and-int/2addr v0, v4

    if-ltz v0, :cond_44

    if-gt v0, v4, :cond_44

    .line 1303
    iget-boolean v4, p0, Lcom/imo/android/imoim/music/a;->h:Z

    if-eqz v4, :cond_2e

    const/16 v4, 0xa

    if-lt v0, v4, :cond_2c

    const/16 v4, 0xd

    if-le v0, v4, :cond_2e

    :cond_2c
    const/4 v4, 0x1

    goto :goto_2f

    :cond_2e
    const/4 v4, 0x0

    :goto_2f
    if-nez v4, :cond_42

    .line 1308
    iget-boolean v4, p0, Lcom/imo/android/imoim/music/a;->h:Z

    if-nez v4, :cond_3f

    const/16 v4, 0xc

    if-lt v0, v4, :cond_3d

    const/16 v4, 0xe

    if-le v0, v4, :cond_3f

    :cond_3d
    const/4 v4, 0x1

    goto :goto_40

    :cond_3f
    const/4 v4, 0x0

    :goto_40
    if-eqz v4, :cond_44

    :cond_42
    const/4 v4, 0x1

    goto :goto_45

    :cond_44
    const/4 v4, 0x0

    :goto_45
    if-nez v4, :cond_6c

    .line 1288
    new-instance p1, Lcom/google/android/exoplayer2/ParserException;

    new-instance v2, Ljava/lang/StringBuilder;

    const-string v3, "Illegal AMR "

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

    iget-boolean v3, p0, Lcom/imo/android/imoim/music/a;->h:Z

    if-eqz v3, :cond_57

    const-string v3, "WB"

    goto :goto_59

    :cond_57
    const-string v3, "NB"

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

    const-string v3, " frame type "

    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 {p1, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V

    throw p1

    .line 1292
    :cond_6c
    iget-boolean v4, p0, Lcom/imo/android/imoim/music/a;->h:Z

    if-eqz v4, :cond_75

    sget-object v4, Lcom/imo/android/imoim/music/a;->c:[I

    aget v0, v4, v0

    goto :goto_79

    :cond_75
    sget-object v4, Lcom/imo/android/imoim/music/a;->b:[I

    aget v0, v4, v0

    .line 242
    :goto_79
    iput v0, p0, Lcom/imo/android/imoim/music/a;->j:I
    :try_end_7b
    .catch Ljava/io/EOFException; {:try_start_7 .. :try_end_7b} :catch_8e

    .line 246
    iput v0, p0, Lcom/imo/android/imoim/music/a;->k:I

    goto :goto_8f

    .line 1279
    :cond_7e
    :try_start_7e
    new-instance p1, Lcom/google/android/exoplayer2/ParserException;

    const-string v2, "Invalid padding bits for frame header "

    invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

    move-result-object v0

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

    move-result-object v0

    invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V

    throw p1
    :try_end_8e
    .catch Ljava/io/EOFException; {:try_start_7e .. :try_end_8e} :catch_8e

    :catch_8e
    return v1

    .line 249
    :cond_8f
    :goto_8f
    iget-object v0, p0, Lcom/imo/android/imoim/music/a;->l:Lcom/google/android/exoplayer2/extractor/TrackOutput;

    iget v4, p0, Lcom/imo/android/imoim/music/a;->k:I

    .line 250
    invoke-interface {v0, p1, v4, v2}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;IZ)I

    move-result p1

    if-ne p1, v1, :cond_9a

    return v1

    .line 255
    :cond_9a
    iget v0, p0, Lcom/imo/android/imoim/music/a;->k:I

    sub-int/2addr v0, p1

    iput v0, p0, Lcom/imo/android/imoim/music/a;->k:I

    if-lez v0, :cond_a2

    return v3

    .line 260
    :cond_a2
    iget-object v4, p0, Lcom/imo/android/imoim/music/a;->l:Lcom/google/android/exoplayer2/extractor/TrackOutput;

    iget-wide v5, p0, Lcom/imo/android/imoim/music/a;->i:J

    const/4 v7, 0x1

    iget v8, p0, Lcom/imo/android/imoim/music/a;->j:I

    const/4 v9, 0x0

    const/4 v10, 0x0

    invoke-interface/range {v4 .. v10}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleMetadata(JIIILcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;)V

    .line 266
    iget-wide v0, p0, Lcom/imo/android/imoim/music/a;->i:J

    const-wide/16 v4, 0x4e20

    add-long/2addr v0, v4

    iput-wide v0, p0, Lcom/imo/android/imoim/music/a;->i:J

    return v3
.end method


# virtual methods
.method public final init(Lcom/google/android/exoplayer2/extractor/ExtractorOutput;)V
    .registers 5

    .line 136
    new-instance v0, Lcom/google/android/exoplayer2/extractor/SeekMap$Unseekable;

    const-wide v1, -0x7fffffffffffffffL    # -4.9E-324

    invoke-direct {v0, v1, v2}, Lcom/google/android/exoplayer2/extractor/SeekMap$Unseekable;-><init>(J)V

    invoke-interface {p1, v0}, Lcom/google/android/exoplayer2/extractor/ExtractorOutput;->seekMap(Lcom/google/android/exoplayer2/extractor/SeekMap;)V

    const/4 v0, 0x0

    const/4 v1, 0x1

    .line 137
    invoke-interface {p1, v0, v1}, Lcom/google/android/exoplayer2/extractor/ExtractorOutput;->track(II)Lcom/google/android/exoplayer2/extractor/TrackOutput;

    move-result-object v0

    iput-object v0, p0, Lcom/imo/android/imoim/music/a;->l:Lcom/google/android/exoplayer2/extractor/TrackOutput;

    .line 138
    invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/ExtractorOutput;->endTracks()V

    return-void
.end method

.method public final read(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/PositionHolder;)I
    .registers 15
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;,
            Ljava/lang/InterruptedException;
        }
    .end annotation

    .line 144
    invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J

    move-result-wide v0

    const-wide/16 v2, 0x0

    cmp-long p2, v0, v2

    if-nez p2, :cond_19

    .line 145
    invoke-direct {p0, p1}, Lcom/imo/android/imoim/music/a;->a(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)Z

    move-result p2

    if-eqz p2, :cond_11

    goto :goto_19

    .line 146
    :cond_11
    new-instance p1, Lcom/google/android/exoplayer2/ParserException;

    const-string p2, "Could not find AMR header."

    invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V

    throw p1

    .line 1218
    :cond_19
    :goto_19
    iget-boolean p2, p0, Lcom/imo/android/imoim/music/a;->m:Z

    if-nez p2, :cond_4b

    const/4 p2, 0x1

    .line 1219
    iput-boolean p2, p0, Lcom/imo/android/imoim/music/a;->m:Z

    .line 1220
    iget-boolean p2, p0, Lcom/imo/android/imoim/music/a;->h:Z

    if-eqz p2, :cond_27

    const-string p2, "audio/amr-wb"

    goto :goto_29

    :cond_27
    const-string p2, "audio/3gpp"

    :goto_29
    move-object v1, p2

    .line 1221
    iget-boolean p2, p0, Lcom/imo/android/imoim/music/a;->h:Z

    if-eqz p2, :cond_33

    const/16 p2, 0x3e80

    const/16 v6, 0x3e80

    goto :goto_37

    :cond_33
    const/16 p2, 0x1f40

    const/16 v6, 0x1f40

    .line 1222
    :goto_37
    iget-object p2, p0, Lcom/imo/android/imoim/music/a;->l:Lcom/google/android/exoplayer2/extractor/TrackOutput;

    const/4 v0, 0x0

    const/4 v2, 0x0

    const/4 v3, -0x1

    sget v4, Lcom/imo/android/imoim/music/a;->f:I

    const/4 v5, 0x1

    const/4 v7, -0x1

    const/4 v8, 0x0

    const/4 v9, 0x0

    const/4 v10, 0x0

    const/4 v11, 0x0

    .line 1223
    invoke-static/range {v0 .. v11}, Lcom/google/android/exoplayer2/Format;->createAudioSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIIILjava/util/List;Lcom/google/android/exoplayer2/drm/DrmInitData;ILjava/lang/String;)Lcom/google/android/exoplayer2/Format;

    move-result-object v0

    .line 1222
    invoke-interface {p2, v0}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->format(Lcom/google/android/exoplayer2/Format;)V

    .line 150
    :cond_4b
    invoke-direct {p0, p1}, Lcom/imo/android/imoim/music/a;->b(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)I

    move-result p1

    return p1
.end method

.method public final release()V
    .registers 1

    return-void
.end method

.method public final seek(JJ)V
    .registers 5

    const-wide/16 p1, 0x0

    .line 155
    iput-wide p1, p0, Lcom/imo/android/imoim/music/a;->i:J

    const/4 p1, 0x0

    .line 156
    iput p1, p0, Lcom/imo/android/imoim/music/a;->j:I

    .line 157
    iput p1, p0, Lcom/imo/android/imoim/music/a;->k:I

    return-void
.end method

.method public final sniff(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)Z
    .registers 2
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;,
            Ljava/lang/InterruptedException;
        }
    .end annotation

    .line 131
    invoke-direct {p0, p1}, Lcom/imo/android/imoim/music/a;->a(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)Z

    move-result p1

    return p1
.end method