B.smali

.class public final Lcom/google/android/exoplayer2/audio/B;
.super Ljava/lang/Object;
.source "DtsUtil.java"


# static fields
.field private static final a:[I

.field private static final b:[I

.field private static final c:[I


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

    const/16 v0, 0x10

    .line 1
    new-array v1, v0, [I

    fill-array-data v1, :array_1a

    sput-object v1, Lcom/google/android/exoplayer2/audio/B;->a:[I

    .line 2
    new-array v0, v0, [I

    fill-array-data v0, :array_3e

    sput-object v0, Lcom/google/android/exoplayer2/audio/B;->b:[I

    const/16 v0, 0x1d

    .line 3
    new-array v0, v0, [I

    fill-array-data v0, :array_62

    sput-object v0, Lcom/google/android/exoplayer2/audio/B;->c:[I

    return-void

    :array_1a
    .array-data 4
        0x1
        0x2
        0x2
        0x2
        0x2
        0x3
        0x3
        0x4
        0x4
        0x5
        0x6
        0x6
        0x6
        0x7
        0x8
        0x8
    .end array-data

    :array_3e
    .array-data 4
        -0x1
        0x1f40
        0x3e80
        0x7d00
        -0x1
        -0x1
        0x2b11
        0x5622
        0xac44
        -0x1
        -0x1
        0x2ee0
        0x5dc0
        0xbb80
        -0x1
        -0x1
    .end array-data

    :array_62
    .array-data 4
        0x40
        0x70
        0x80
        0xc0
        0xe0
        0x100
        0x180
        0x1c0
        0x200
        0x280
        0x300
        0x380
        0x400
        0x480
        0x500
        0x600
        0x780
        0x800
        0x900
        0xa00
        0xa80
        0xb00
        0xb07
        0xb80
        0xc00
        0xf00
        0x1000
        0x1800
        0x1e00
    .end array-data
.end method

.method public static a(Ljava/nio/ByteBuffer;)I
    .registers 4

    .line 21
    invoke-virtual {p0}, Ljava/nio/ByteBuffer;->position()I

    move-result v0

    .line 22
    invoke-virtual {p0, v0}, Ljava/nio/ByteBuffer;->get(I)B

    move-result v1

    const/4 v2, -0x2

    if-eq v1, v2, :cond_4c

    const/4 v2, -0x1

    if-eq v1, v2, :cond_39

    const/16 v2, 0x1f

    if-eq v1, v2, :cond_28

    add-int/lit8 v1, v0, 0x4

    .line 23
    invoke-virtual {p0, v1}, Ljava/nio/ByteBuffer;->get(I)B

    move-result v1

    and-int/lit8 v1, v1, 0x1

    shl-int/lit8 v1, v1, 0x6

    add-int/lit8 v0, v0, 0x5

    invoke-virtual {p0, v0}, Ljava/nio/ByteBuffer;->get(I)B

    move-result p0

    :goto_22
    and-int/lit16 p0, p0, 0xfc

    :goto_24
    shr-int/lit8 p0, p0, 0x2

    or-int/2addr p0, v1

    goto :goto_5d

    :cond_28
    add-int/lit8 v1, v0, 0x5

    .line 24
    invoke-virtual {p0, v1}, Ljava/nio/ByteBuffer;->get(I)B

    move-result v1

    and-int/lit8 v1, v1, 0x7

    shl-int/lit8 v1, v1, 0x4

    add-int/lit8 v0, v0, 0x6

    invoke-virtual {p0, v0}, Ljava/nio/ByteBuffer;->get(I)B

    move-result p0

    goto :goto_49

    :cond_39
    add-int/lit8 v1, v0, 0x4

    .line 25
    invoke-virtual {p0, v1}, Ljava/nio/ByteBuffer;->get(I)B

    move-result v1

    and-int/lit8 v1, v1, 0x7

    shl-int/lit8 v1, v1, 0x4

    add-int/lit8 v0, v0, 0x7

    invoke-virtual {p0, v0}, Ljava/nio/ByteBuffer;->get(I)B

    move-result p0

    :goto_49
    and-int/lit8 p0, p0, 0x3c

    goto :goto_24

    :cond_4c
    add-int/lit8 v1, v0, 0x5

    .line 26
    invoke-virtual {p0, v1}, Ljava/nio/ByteBuffer;->get(I)B

    move-result v1

    and-int/lit8 v1, v1, 0x1

    shl-int/lit8 v1, v1, 0x6

    add-int/lit8 v0, v0, 0x4

    invoke-virtual {p0, v0}, Ljava/nio/ByteBuffer;->get(I)B

    move-result p0

    goto :goto_22

    :goto_5d
    add-int/lit8 p0, p0, 0x1

    mul-int/lit8 p0, p0, 0x20

    return p0
.end method

.method public static a([B)I
    .registers 8

    const/4 v0, 0x0

    .line 27
    aget-byte v1, p0, v0

    const/4 v2, -0x2

    const/4 v3, 0x7

    const/4 v4, 0x6

    const/4 v5, 0x1

    const/4 v6, 0x4

    if-eq v1, v2, :cond_4f

    const/4 v2, -0x1

    if-eq v1, v2, :cond_37

    const/16 v2, 0x1f

    if-eq v1, v2, :cond_26

    const/4 v1, 0x5

    .line 28
    aget-byte v1, p0, v1

    and-int/lit8 v1, v1, 0x3

    shl-int/lit8 v1, v1, 0xc

    aget-byte v2, p0, v4

    and-int/lit16 v2, v2, 0xff

    shl-int/2addr v2, v6

    or-int/2addr v1, v2

    aget-byte p0, p0, v3

    :goto_20
    and-int/lit16 p0, p0, 0xf0

    shr-int/2addr p0, v6

    or-int/2addr p0, v1

    add-int/2addr p0, v5

    goto :goto_5e

    .line 29
    :cond_26
    aget-byte v0, p0, v4

    and-int/lit8 v0, v0, 0x3

    shl-int/lit8 v0, v0, 0xc

    aget-byte v1, p0, v3

    and-int/lit16 v1, v1, 0xff

    shl-int/2addr v1, v6

    or-int/2addr v0, v1

    const/16 v1, 0x8

    aget-byte p0, p0, v1

    goto :goto_47

    .line 30
    :cond_37
    aget-byte v0, p0, v3

    and-int/lit8 v0, v0, 0x3

    shl-int/lit8 v0, v0, 0xc

    aget-byte v1, p0, v4

    and-int/lit16 v1, v1, 0xff

    shl-int/2addr v1, v6

    or-int/2addr v0, v1

    const/16 v1, 0x9

    aget-byte p0, p0, v1

    :goto_47
    and-int/lit8 p0, p0, 0x3c

    shr-int/lit8 p0, p0, 0x2

    or-int/2addr p0, v0

    add-int/2addr p0, v5

    const/4 v0, 0x1

    goto :goto_5e

    .line 31
    :cond_4f
    aget-byte v1, p0, v6

    and-int/lit8 v1, v1, 0x3

    shl-int/lit8 v1, v1, 0xc

    aget-byte v2, p0, v3

    and-int/lit16 v2, v2, 0xff

    shl-int/2addr v2, v6

    or-int/2addr v1, v2

    aget-byte p0, p0, v4

    goto :goto_20

    :goto_5e
    if-eqz v0, :cond_64

    mul-int/lit8 p0, p0, 0x10

    .line 32
    div-int/lit8 p0, p0, 0xe

    :cond_64
    return p0
.end method

.method public static a([BLjava/lang/String;Ljava/lang/String;Lcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
    .registers 10

    .line 1
    invoke-static {p0}, Lcom/google/android/exoplayer2/audio/B;->c([B)Lcom/google/android/exoplayer2/util/w;

    move-result-object p0

    const/16 v0, 0x3c

    .line 2
    invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/w;->d(I)V

    const/4 v0, 0x6

    .line 3
    invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/w;->a(I)I

    move-result v0

    .line 4
    sget-object v1, Lcom/google/android/exoplayer2/audio/B;->a:[I

    aget v0, v1, v0

    const/4 v1, 0x4

    .line 5
    invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/w;->a(I)I

    move-result v1

    .line 6
    sget-object v2, Lcom/google/android/exoplayer2/audio/B;->b:[I

    aget v1, v2, v1

    const/4 v2, 0x5

    .line 7
    invoke-virtual {p0, v2}, Lcom/google/android/exoplayer2/util/w;->a(I)I

    move-result v2

    .line 8
    sget-object v3, Lcom/google/android/exoplayer2/audio/B;->c:[I

    array-length v4, v3

    const/4 v5, 0x2

    if-lt v2, v4, :cond_28

    const/4 v2, -0x1

    goto :goto_2d

    .line 9
    :cond_28
    aget v2, v3, v2

    mul-int/lit16 v2, v2, 0x3e8

    div-int/2addr v2, v5

    :goto_2d
    const/16 v3, 0xa

    .line 10
    invoke-virtual {p0, v3}, Lcom/google/android/exoplayer2/util/w;->d(I)V

    .line 11
    invoke-virtual {p0, v5}, Lcom/google/android/exoplayer2/util/w;->a(I)I

    move-result p0

    if-lez p0, :cond_3a

    const/4 p0, 0x1

    goto :goto_3b

    :cond_3a
    const/4 p0, 0x0

    :goto_3b
    add-int/2addr v0, p0

    .line 12
    new-instance p0, Lcom/google/android/exoplayer2/Format$a;

    invoke-direct {p0}, Lcom/google/android/exoplayer2/Format$a;-><init>()V

    .line 13
    invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/Format$a;->c(Ljava/lang/String;)Lcom/google/android/exoplayer2/Format$a;

    const-string p1, "audio/vnd.dts"

    .line 14
    invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/Format$a;->f(Ljava/lang/String;)Lcom/google/android/exoplayer2/Format$a;

    .line 15
    invoke-virtual {p0, v2}, Lcom/google/android/exoplayer2/Format$a;->b(I)Lcom/google/android/exoplayer2/Format$a;

    .line 16
    invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/Format$a;->c(I)Lcom/google/android/exoplayer2/Format$a;

    .line 17
    invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/Format$a;->m(I)Lcom/google/android/exoplayer2/Format$a;

    .line 18
    invoke-virtual {p0, p3}, Lcom/google/android/exoplayer2/Format$a;->a(Lcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format$a;

    .line 19
    invoke-virtual {p0, p2}, Lcom/google/android/exoplayer2/Format$a;->e(Ljava/lang/String;)Lcom/google/android/exoplayer2/Format$a;

    .line 20
    invoke-virtual {p0}, Lcom/google/android/exoplayer2/Format$a;->a()Lcom/google/android/exoplayer2/Format;

    move-result-object p0

    return-object p0
.end method

.method public static a(I)Z
    .registers 2

    const v0, 0x7ffe8001

    if-eq p0, v0, :cond_17

    const v0, -0x180fe80

    if-eq p0, v0, :cond_17

    const v0, 0x1fffe800

    if-eq p0, v0, :cond_17

    const v0, -0xe0ff18

    if-ne p0, v0, :cond_15

    goto :goto_17

    :cond_15
    const/4 p0, 0x0

    goto :goto_18

    :cond_17
    :goto_17
    const/4 p0, 0x1

    :goto_18
    return p0
.end method

.method public static b([B)I
    .registers 7

    const/4 v0, 0x0

    .line 1
    aget-byte v0, p0, v0

    const/4 v1, -0x2

    const/4 v2, 0x5

    const/4 v3, 0x6

    const/4 v4, 0x4

    if-eq v0, v1, :cond_2e

    const/4 v1, -0x1

    const/4 v5, 0x7

    if-eq v0, v1, :cond_25

    const/16 v1, 0x1f

    if-eq v0, v1, :cond_1e

    .line 2
    aget-byte v0, p0, v4

    and-int/lit8 v0, v0, 0x1

    shl-int/2addr v0, v3

    aget-byte p0, p0, v2

    :goto_18
    and-int/lit16 p0, p0, 0xfc

    :goto_1a
    shr-int/lit8 p0, p0, 0x2

    or-int/2addr p0, v0

    goto :goto_36

    .line 3
    :cond_1e
    aget-byte v0, p0, v2

    and-int/2addr v0, v5

    shl-int/2addr v0, v4

    aget-byte p0, p0, v3

    goto :goto_2b

    .line 4
    :cond_25
    aget-byte v0, p0, v4

    and-int/2addr v0, v5

    shl-int/2addr v0, v4

    aget-byte p0, p0, v5

    :goto_2b
    and-int/lit8 p0, p0, 0x3c

    goto :goto_1a

    .line 5
    :cond_2e
    aget-byte v0, p0, v2

    and-int/lit8 v0, v0, 0x1

    shl-int/2addr v0, v3

    aget-byte p0, p0, v4

    goto :goto_18

    :goto_36
    add-int/lit8 p0, p0, 0x1

    mul-int/lit8 p0, p0, 0x20

    return p0
.end method

.method private static c([B)Lcom/google/android/exoplayer2/util/w;
    .registers 6

    const/4 v0, 0x0

    .line 1
    aget-byte v1, p0, v0

    const/16 v2, 0x7f

    if-ne v1, v2, :cond_d

    .line 2
    new-instance v0, Lcom/google/android/exoplayer2/util/w;

    invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/util/w;-><init>([B)V

    return-object v0

    .line 3
    :cond_d
    array-length v1, p0

    invoke-static {p0, v1}, Ljava/util/Arrays;->copyOf([BI)[B

    move-result-object p0

    .line 4
    invoke-static {p0}, Lcom/google/android/exoplayer2/audio/B;->d([B)Z

    move-result v1

    if-eqz v1, :cond_2b

    const/4 v1, 0x0

    .line 5
    :goto_19
    array-length v2, p0

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

    if-ge v1, v2, :cond_2b

    .line 6
    aget-byte v2, p0, v1

    add-int/lit8 v3, v1, 0x1

    .line 7
    aget-byte v4, p0, v3

    aput-byte v4, p0, v1

    .line 8
    aput-byte v2, p0, v3

    add-int/lit8 v1, v1, 0x2

    goto :goto_19

    .line 9
    :cond_2b
    new-instance v1, Lcom/google/android/exoplayer2/util/w;

    invoke-direct {v1, p0}, Lcom/google/android/exoplayer2/util/w;-><init>([B)V

    .line 10
    aget-byte v0, p0, v0

    const/16 v2, 0x1f

    if-ne v0, v2, :cond_51

    .line 11
    new-instance v0, Lcom/google/android/exoplayer2/util/w;

    invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/util/w;-><init>([B)V

    .line 12
    :goto_3b
    invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/w;->a()I

    move-result v2

    const/16 v3, 0x10

    if-lt v2, v3, :cond_51

    const/4 v2, 0x2

    .line 13
    invoke-virtual {v0, v2}, Lcom/google/android/exoplayer2/util/w;->d(I)V

    const/16 v2, 0xe

    .line 14
    invoke-virtual {v0, v2}, Lcom/google/android/exoplayer2/util/w;->a(I)I

    move-result v3

    invoke-virtual {v1, v3, v2}, Lcom/google/android/exoplayer2/util/w;->a(II)V

    goto :goto_3b

    .line 15
    :cond_51
    invoke-virtual {v1, p0}, Lcom/google/android/exoplayer2/util/w;->a([B)V

    return-object v1
.end method

.method private static d([B)Z
    .registers 4

    const/4 v0, 0x0

    .line 1
    aget-byte v1, p0, v0

    const/4 v2, -0x2

    if-eq v1, v2, :cond_b

    aget-byte p0, p0, v0

    const/4 v1, -0x1

    if-ne p0, v1, :cond_c

    :cond_b
    const/4 v0, 0x1

    :cond_c
    return v0
.end method