MatroskaExtractor$Track.smali
.class final Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
.super Ljava/lang/Object;
.source "MatroskaExtractor.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1a
name = "Track"
.end annotation
# static fields
.field private static final DISPLAY_UNIT_PIXELS:I
# instance fields
.field public audioBitDepth:I
.field public channelCount:I
.field public codecDelayNs:J
.field public codecId:Ljava/lang/String;
.field public codecPrivate:[B
.field public defaultSampleDurationNs:I
.field public displayHeight:I
.field public displayUnit:I
.field public displayWidth:I
.field public drmInitData:Lcom/google/android/exoplayer2/drm/DrmInitData;
.field public encryptionKeyId:[B
.field public flagDefault:Z
.field public flagForced:Z
.field public hasContentEncryption:Z
.field public height:I
.field private language:Ljava/lang/String;
.field public nalUnitLengthFieldLength:I
.field public number:I
.field public output:Lcom/google/android/exoplayer2/extractor/TrackOutput;
.field public projectionData:[B
.field public sampleRate:I
.field public sampleStrippedBytes:[B
.field public seekPreRollNs:J
.field public stereoMode:I
.field public type:I
.field public width:I
# direct methods
.method private constructor <init>()V
.registers 5
.line 1300
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, -0x1
.line 1316
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->width:I
.line 1317
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->height:I
.line 1318
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayWidth:I
.line 1319
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayHeight:I
const/4 v1, 0x0
.line 1320
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayUnit:I
const/4 v1, 0x0
.line 1321
iput-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionData:[B
.line 1322
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->stereoMode:I
const/4 v1, 0x1
.line 1326
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->channelCount:I
.line 1327
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->audioBitDepth:I
const/16 v0, 0x1f40
.line 1328
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleRate:I
const-wide/16 v2, 0x0
.line 1329
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecDelayNs:J
.line 1330
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->seekPreRollNs:J
.line 1334
iput-boolean v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->flagDefault:Z
const-string v0, "eng"
.line 1335
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->language:Ljava/lang/String;
return-void
.end method
.method synthetic constructor <init>(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$1;)V
.registers 2
.line 1300
invoke-direct {p0}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;-><init>()V
return-void
.end method
.method static synthetic access$202(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;Ljava/lang/String;)Ljava/lang/String;
.registers 2
.line 1300
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->language:Ljava/lang/String;
return-object p1
.end method
.method private static parseFourCcVc1Private(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Ljava/util/List;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/util/ParsableByteArray;",
")",
"Ljava/util/List<",
"[B>;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
const/16 v0, 0x10
.line 1514
:try_start_2
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1515
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLittleEndianUnsignedInt()J
move-result-wide v0
const-wide/32 v2, 0x31435657
cmp-long v4, v0, v2
if-eqz v4, :cond_12
const/4 p0, 0x0
return-object p0
.line 1522
:cond_12
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v0
add-int/lit8 v0, v0, 0x14
.line 1523
iget-object p0, p0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
.line 1524
:goto_1a
array-length v1, p0
add-int/lit8 v1, v1, -0x4
if-ge v0, v1, :cond_45
.line 1525
aget-byte v1, p0, v0
if-nez v1, :cond_42
add-int/lit8 v1, v0, 0x1
aget-byte v1, p0, v1
if-nez v1, :cond_42
add-int/lit8 v1, v0, 0x2
aget-byte v1, p0, v1
const/4 v2, 0x1
if-ne v1, v2, :cond_42
add-int/lit8 v1, v0, 0x3
aget-byte v1, p0, v1
const/16 v2, 0xf
if-ne v1, v2, :cond_42
.line 1528
array-length v1, p0
invoke-static {p0, v0, v1}, Ljava/util/Arrays;->copyOfRange([BII)[B
move-result-object p0
.line 1529
invoke-static {p0}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object p0
return-object p0
:cond_42
add-int/lit8 v0, v0, 0x1
goto :goto_1a
.line 1533
:cond_45
new-instance p0, Lcom/google/android/exoplayer2/ParserException;
const-string v0, "Failed to find FourCC VC1 initialization data"
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p0
:try_end_4d
.catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_2 .. :try_end_4d} :catch_4d
.line 1535
:catch_4d
new-instance p0, Lcom/google/android/exoplayer2/ParserException;
const-string v0, "Error parsing FourCC VC1 codec private"
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method private static parseMsAcmCodecPrivate(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Z
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 1598
:try_start_0
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLittleEndianUnsignedShort()I
move-result v0
const/4 v1, 0x1
if-ne v0, v1, :cond_8
return v1
:cond_8
const v2, 0xfffe
const/4 v3, 0x0
if-ne v0, v2, :cond_36
const/16 v0, 0x18
.line 1602
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1603
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLong()J
move-result-wide v4
# getter for: Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->WAVE_SUBFORMAT_PCM:Ljava/util/UUID;
invoke-static {}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->access$300()Ljava/util/UUID;
move-result-object v0
invoke-virtual {v0}, Ljava/util/UUID;->getMostSignificantBits()J
move-result-wide v6
cmp-long v0, v4, v6
if-nez v0, :cond_34
.line 1604
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLong()J
move-result-wide v4
# getter for: Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->WAVE_SUBFORMAT_PCM:Ljava/util/UUID;
invoke-static {}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->access$300()Ljava/util/UUID;
move-result-object p0
invoke-virtual {p0}, Ljava/util/UUID;->getLeastSignificantBits()J
move-result-wide v6
:try_end_2f
.catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_0 .. :try_end_2f} :catch_37
cmp-long p0, v4, v6
if-nez p0, :cond_34
goto :goto_35
:cond_34
const/4 v1, 0x0
:goto_35
return v1
:cond_36
return v3
.line 1609
:catch_37
new-instance p0, Lcom/google/android/exoplayer2/ParserException;
const-string v0, "Error parsing MS/ACM codec private"
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method private static parseVorbisCodecPrivate([B)Ljava/util/List;
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"([B)",
"Ljava/util/List<",
"[B>;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
const-string v0, "Error parsing vorbis codec private"
const/4 v1, 0x0
.line 1548
:try_start_3
aget-byte v2, p0, v1
const/4 v3, 0x2
if-ne v2, v3, :cond_65
const/4 v2, 0x1
const/4 v4, 0x1
const/4 v5, 0x0
.line 1553
:goto_b
aget-byte v6, p0, v4
const/4 v7, -0x1
if-ne v6, v7, :cond_15
add-int/lit16 v5, v5, 0xff
add-int/lit8 v4, v4, 0x1
goto :goto_b
:cond_15
add-int/lit8 v6, v4, 0x1
.line 1557
aget-byte v4, p0, v4
add-int/2addr v5, v4
const/4 v4, 0x0
.line 1560
:goto_1b
aget-byte v8, p0, v6
if-ne v8, v7, :cond_24
add-int/lit16 v4, v4, 0xff
add-int/lit8 v6, v6, 0x1
goto :goto_1b
:cond_24
add-int/lit8 v7, v6, 0x1
.line 1564
aget-byte v6, p0, v6
add-int/2addr v4, v6
.line 1566
aget-byte v6, p0, v7
if-ne v6, v2, :cond_5f
.line 1569
new-array v2, v5, [B
.line 1570
invoke-static {p0, v7, v2, v1, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
add-int/2addr v7, v5
.line 1572
aget-byte v5, p0, v7
const/4 v6, 0x3
if-ne v5, v6, :cond_59
add-int/2addr v7, v4
.line 1576
aget-byte v4, p0, v7
const/4 v5, 0x5
if-ne v4, v5, :cond_53
.line 1579
array-length v4, p0
sub-int/2addr v4, v7
new-array v4, v4, [B
.line 1580
array-length v5, p0
sub-int/2addr v5, v7
invoke-static {p0, v7, v4, v1, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1581
new-instance p0, Ljava/util/ArrayList;
invoke-direct {p0, v3}, Ljava/util/ArrayList;-><init>(I)V
.line 1582
invoke-interface {p0, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1583
invoke-interface {p0, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-object p0
.line 1577
:cond_53
new-instance p0, Lcom/google/android/exoplayer2/ParserException;
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p0
.line 1573
:cond_59
new-instance p0, Lcom/google/android/exoplayer2/ParserException;
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p0
.line 1567
:cond_5f
new-instance p0, Lcom/google/android/exoplayer2/ParserException;
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p0
.line 1549
:cond_65
new-instance p0, Lcom/google/android/exoplayer2/ParserException;
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p0
:try_end_6b
.catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_3 .. :try_end_6b} :catch_6b
.line 1586
:catch_6b
new-instance p0, Lcom/google/android/exoplayer2/ParserException;
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p0
.end method
# virtual methods
.method public initializeOutput(Lcom/google/android/exoplayer2/extractor/ExtractorOutput;I)V
.registers 40
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
move-object/from16 v0, p0
.line 1349
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/String;->hashCode()I
move-result v2
const/4 v4, 0x3
const/4 v5, 0x0
const/16 v6, 0x8
const/4 v7, -0x1
sparse-switch v2, :sswitch_data_39a
goto/16 :goto_144
:sswitch_12
const-string v2, "A_OPUS"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0xb
goto/16 :goto_145
:sswitch_1e
const-string v2, "A_FLAC"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x15
goto/16 :goto_145
:sswitch_2a
const-string v2, "A_EAC3"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x10
goto/16 :goto_145
:sswitch_36
const-string v2, "V_MPEG2"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/4 v1, 0x2
goto/16 :goto_145
:sswitch_41
const-string v2, "S_TEXT/UTF8"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x18
goto/16 :goto_145
:sswitch_4d
const-string v2, "V_MPEGH/ISO/HEVC"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/4 v1, 0x7
goto/16 :goto_145
:sswitch_58
const-string v2, "A_PCM/INT/LIT"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x17
goto/16 :goto_145
:sswitch_64
const-string v2, "A_DTS/EXPRESS"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x13
goto/16 :goto_145
:sswitch_70
const-string v2, "V_THEORA"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x9
goto/16 :goto_145
:sswitch_7c
const-string v2, "S_HDMV/PGS"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x1a
goto/16 :goto_145
:sswitch_88
const-string v2, "V_VP9"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/4 v1, 0x1
goto/16 :goto_145
:sswitch_93
const-string v2, "V_VP8"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/4 v1, 0x0
goto/16 :goto_145
:sswitch_9e
const-string v2, "A_DTS"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x12
goto/16 :goto_145
:sswitch_aa
const-string v2, "A_AC3"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0xf
goto/16 :goto_145
:sswitch_b6
const-string v2, "A_AAC"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0xc
goto/16 :goto_145
:sswitch_c2
const-string v2, "A_DTS/LOSSLESS"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x14
goto/16 :goto_145
:sswitch_ce
const-string v2, "S_VOBSUB"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x19
goto/16 :goto_145
:sswitch_da
const-string v2, "V_MPEG4/ISO/AVC"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/4 v1, 0x6
goto :goto_145
:sswitch_e4
const-string v2, "V_MPEG4/ISO/ASP"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/4 v1, 0x4
goto :goto_145
:sswitch_ee
const-string v2, "V_MS/VFW/FOURCC"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x8
goto :goto_145
:sswitch_f9
const-string v2, "A_MPEG/L3"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0xe
goto :goto_145
:sswitch_104
const-string v2, "A_MPEG/L2"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0xd
goto :goto_145
:sswitch_10f
const-string v2, "A_VORBIS"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0xa
goto :goto_145
:sswitch_11a
const-string v2, "A_TRUEHD"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x11
goto :goto_145
:sswitch_125
const-string v2, "A_MS/ACM"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/16 v1, 0x16
goto :goto_145
:sswitch_130
const-string v2, "V_MPEG4/ISO/SP"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/4 v1, 0x3
goto :goto_145
:sswitch_13a
const-string v2, "V_MPEG4/ISO/AP"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_144
const/4 v1, 0x5
goto :goto_145
:cond_144
:goto_144
const/4 v1, -0x1
:goto_145
const-string v2, "Unsupported PCM bit depth: "
const-string v8, "application/pgs"
const-string v9, "application/vobsub"
const-string v10, "application/x-subrip"
const-string v11, "audio/raw"
const/16 v12, 0x1000
const-string/jumbo v13, "video/x-unknown"
const/4 v14, 0x0
packed-switch v1, :pswitch_data_408
.line 1462
new-instance v1, Lcom/google/android/exoplayer2/ParserException;
const-string v2, "Unrecognized codec identifier."
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v1
:pswitch_160
move-object v12, v8
goto/16 :goto_2b1
.line 1456
:pswitch_163
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
invoke-static {v1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v14
move-object v12, v9
goto/16 :goto_2b1
:pswitch_16c
move-object v12, v10
goto/16 :goto_2b1
.line 1446
:pswitch_16f
iget v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->audioBitDepth:I
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Util;->getPcmEncoding(I)I
move-result v1
if-eqz v1, :cond_17d
:goto_177
move/from16 v22, v1
move-object v12, v11
move-object v1, v14
goto/16 :goto_2b4
.line 1448
:cond_17d
new-instance v1, Lcom/google/android/exoplayer2/ParserException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->audioBitDepth:I
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v1
.line 1436
:pswitch_194
new-instance v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
invoke-direct {v1, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>([B)V
invoke-static {v1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->parseMsAcmCodecPrivate(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Z
move-result v1
if-eqz v1, :cond_1c1
.line 1439
iget v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->audioBitDepth:I
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Util;->getPcmEncoding(I)I
move-result v1
if-eqz v1, :cond_1aa
goto :goto_177
.line 1441
:cond_1aa
new-instance v1, Lcom/google/android/exoplayer2/ParserException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->audioBitDepth:I
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v1
.line 1437
:cond_1c1
new-instance v1, Lcom/google/android/exoplayer2/ParserException;
const-string v2, "Non-PCM MS/ACM is unsupported"
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v1
.line 1432
:pswitch_1c9
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
invoke-static {v1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v14
const-string v11, "audio/x-flac"
goto/16 :goto_2b0
:pswitch_1d3
const-string v11, "audio/vnd.dts.hd"
goto/16 :goto_2b0
:pswitch_1d7
const-string v11, "audio/vnd.dts"
goto/16 :goto_2b0
:pswitch_1db
const-string v11, "audio/true-hd"
goto/16 :goto_2b0
:pswitch_1df
const-string v11, "audio/eac3"
goto/16 :goto_2b0
:pswitch_1e3
const-string v11, "audio/ac3"
goto/16 :goto_2b0
:pswitch_1e7
const-string v11, "audio/mpeg"
goto :goto_1ec
:pswitch_1ea
const-string v11, "audio/mpeg-L2"
:goto_1ec
move-object v12, v11
move-object v1, v14
const/16 v22, -0x1
const/16 v27, 0x1000
goto/16 :goto_2b6
.line 1404
:pswitch_1f4
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
invoke-static {v1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v14
const-string v11, "audio/mp4a-latm"
goto/16 :goto_2b0
:pswitch_1fe
const/16 v12, 0x1680
.line 1395
new-instance v14, Ljava/util/ArrayList;
invoke-direct {v14, v4}, Ljava/util/ArrayList;-><init>(I)V
.line 1396
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
invoke-interface {v14, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1398
invoke-static {v6}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v1
invoke-static {}, Ljava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
move-result-object v1
iget-wide v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecDelayNs:J
invoke-virtual {v1, v3, v4}, Ljava/nio/ByteBuffer;->putLong(J)Ljava/nio/ByteBuffer;
move-result-object v1
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v1
.line 1397
invoke-interface {v14, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1400
invoke-static {v6}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v1
invoke-static {}, Ljava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder;
move-result-object v3
invoke-virtual {v1, v3}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
move-result-object v1
iget-wide v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->seekPreRollNs:J
invoke-virtual {v1, v3, v4}, Ljava/nio/ByteBuffer;->putLong(J)Ljava/nio/ByteBuffer;
move-result-object v1
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v1
.line 1399
invoke-interface {v14, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
const-string v11, "audio/opus"
move-object v12, v11
move-object v1, v14
const/16 v22, -0x1
const/16 v27, 0x1680
goto/16 :goto_2b6
:pswitch_246
const/16 v12, 0x2000
.line 1390
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
invoke-static {v1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->parseVorbisCodecPrivate([B)Ljava/util/List;
move-result-object v14
const-string v11, "audio/vorbis"
move-object v12, v11
move-object v1, v14
const/16 v22, -0x1
const/16 v27, 0x2000
goto :goto_2b6
:pswitch_257
move-object v12, v13
goto :goto_2b1
.line 1379
:pswitch_259
new-instance v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
invoke-direct {v1, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>([B)V
invoke-static {v1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->parseFourCcVc1Private(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Ljava/util/List;
move-result-object v14
if-nez v14, :cond_268
move-object v11, v13
goto :goto_2b0
:cond_268
const-string/jumbo v1, "video/wvc1"
move-object v11, v1
goto :goto_2b0
.line 1374
:pswitch_26d
new-instance v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
invoke-direct {v1, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>([B)V
invoke-static {v1}, Lcom/google/android/exoplayer2/video/HevcConfig;->parse(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/video/HevcConfig;
move-result-object v1
.line 1375
iget-object v14, v1, Lcom/google/android/exoplayer2/video/HevcConfig;->initializationData:Ljava/util/List;
.line 1376
iget v1, v1, Lcom/google/android/exoplayer2/video/HevcConfig;->nalUnitLengthFieldLength:I
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->nalUnitLengthFieldLength:I
const-string/jumbo v11, "video/hevc"
goto :goto_2b0
.line 1368
:pswitch_282
new-instance v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
invoke-direct {v1, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>([B)V
invoke-static {v1}, Lcom/google/android/exoplayer2/video/AvcConfig;->parse(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/video/AvcConfig;
move-result-object v1
.line 1369
iget-object v14, v1, Lcom/google/android/exoplayer2/video/AvcConfig;->initializationData:Ljava/util/List;
.line 1370
iget v1, v1, Lcom/google/android/exoplayer2/video/AvcConfig;->nalUnitLengthFieldLength:I
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->nalUnitLengthFieldLength:I
const-string/jumbo v11, "video/avc"
goto :goto_2b0
.line 1363
:pswitch_297
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
if-nez v1, :cond_29c
goto :goto_2a1
.line 1364
:cond_29c
invoke-static {v1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
move-object v14, v1
:goto_2a1
const-string/jumbo v11, "video/mp4v-es"
goto :goto_2b0
:pswitch_2a5
const-string/jumbo v11, "video/mpeg2"
goto :goto_2b0
:pswitch_2a9
const-string/jumbo v11, "video/x-vnd.on2.vp9"
goto :goto_2b0
:pswitch_2ad
const-string/jumbo v11, "video/x-vnd.on2.vp8"
:goto_2b0
move-object v12, v11
:goto_2b1
move-object v1, v14
const/16 v22, -0x1
:goto_2b4
const/16 v27, -0x1
.line 1467
:goto_2b6
iget-boolean v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->flagDefault:Z
or-int/2addr v3, v5
.line 1468
iget-boolean v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->flagForced:Z
if-eqz v4, :cond_2bf
const/4 v2, 0x2
goto :goto_2c0
:cond_2bf
const/4 v2, 0x0
:goto_2c0
or-int/2addr v2, v3
.line 1471
invoke-static {v12}, Lcom/google/android/exoplayer2/util/MimeTypes;->isAudio(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_2ed
.line 1472
invoke-static/range {p2 .. p2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v15
const/16 v17, 0x0
const/16 v18, -0x1
iget v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->channelCount:I
iget v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleRate:I
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->drmInitData:Lcom/google/android/exoplayer2/drm/DrmInitData;
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->language:Ljava/lang/String;
move-object/from16 v16, v12
move/from16 v19, v27
move/from16 v20, v3
move/from16 v21, v4
move-object/from16 v23, v1
move-object/from16 v24, v5
move/from16 v25, v2
move-object/from16 v26, v6
invoke-static/range {v15 .. v26}, 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 v1
goto/16 :goto_38c
.line 1475
:cond_2ed
invoke-static {v12}, Lcom/google/android/exoplayer2/util/MimeTypes;->isVideo(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_34a
.line 1476
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayUnit:I
if-nez v2, :cond_307
.line 1477
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayWidth:I
if-ne v2, v7, :cond_2fd
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->width:I
:cond_2fd
iput v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayWidth:I
.line 1478
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayHeight:I
if-ne v2, v7, :cond_305
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->height:I
:cond_305
iput v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayHeight:I
:cond_307
const/high16 v2, -0x40800000 # -1.0f
.line 1481
iget v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayWidth:I
if-eq v3, v7, :cond_31f
iget v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayHeight:I
if-eq v4, v7, :cond_31f
.line 1482
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->height:I
mul-int v2, v2, v3
int-to-float v2, v2
iget v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->width:I
mul-int v3, v3, v4
int-to-float v3, v3
div-float/2addr v2, v3
move/from16 v33, v2
goto :goto_321
:cond_31f
const/high16 v33, -0x40800000 # -1.0f
.line 1484
:goto_321
invoke-static/range {p2 .. p2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v23
const/16 v25, 0x0
const/16 v26, -0x1
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->width:I
iget v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->height:I
const/high16 v30, -0x40800000 # -1.0f
const/16 v32, -0x1
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionData:[B
iget v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->stereoMode:I
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->drmInitData:Lcom/google/android/exoplayer2/drm/DrmInitData;
move-object/from16 v24, v12
move/from16 v28, v2
move/from16 v29, v3
move-object/from16 v31, v1
move-object/from16 v34, v4
move/from16 v35, v5
move-object/from16 v36, v6
invoke-static/range {v23 .. v36}, Lcom/google/android/exoplayer2/Format;->createVideoSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIIFLjava/util/List;IF[BILcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
move-result-object v1
goto :goto_38c
.line 1487
:cond_34a
invoke-virtual {v10, v12}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_364
.line 1488
invoke-static/range {p2 .. p2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v11
const/4 v13, 0x0
const/4 v14, -0x1
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->language:Ljava/lang/String;
iget-object v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->drmInitData:Lcom/google/android/exoplayer2/drm/DrmInitData;
move v15, v2
move-object/from16 v16, v1
move-object/from16 v17, v3
invoke-static/range {v11 .. v17}, Lcom/google/android/exoplayer2/Format;->createTextSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Lcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
move-result-object v1
goto :goto_38c
.line 1490
:cond_364
invoke-virtual {v9, v12}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_379
.line 1491
invoke-virtual {v8, v12}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_371
goto :goto_379
.line 1495
:cond_371
new-instance v1, Lcom/google/android/exoplayer2/ParserException;
const-string v2, "Unexpected MIME type."
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v1
.line 1492
:cond_379
:goto_379
invoke-static/range {p2 .. p2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v11
const/4 v13, 0x0
const/4 v14, -0x1
iget-object v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->language:Ljava/lang/String;
iget-object v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->drmInitData:Lcom/google/android/exoplayer2/drm/DrmInitData;
move-object v15, v1
move-object/from16 v16, v2
move-object/from16 v17, v3
invoke-static/range {v11 .. v17}, Lcom/google/android/exoplayer2/Format;->createImageSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/util/List;Ljava/lang/String;Lcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
move-result-object v1
.line 1498
:goto_38c
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->number:I
move-object/from16 v3, p1
invoke-interface {v3, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorOutput;->track(I)Lcom/google/android/exoplayer2/extractor/TrackOutput;
move-result-object v2
iput-object v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->output:Lcom/google/android/exoplayer2/extractor/TrackOutput;
.line 1499
invoke-interface {v2, v1}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->format(Lcom/google/android/exoplayer2/Format;)V
return-void
:sswitch_data_39a
.sparse-switch
-0x7ce7f5de -> :sswitch_13a
-0x7ce7f3b0 -> :sswitch_130
-0x76567dc0 -> :sswitch_125
-0x6a615338 -> :sswitch_11a
-0x672350af -> :sswitch_10f
-0x585f4fce -> :sswitch_104
-0x585f4fcd -> :sswitch_f9
-0x51dc40b2 -> :sswitch_ee
-0x2016c535 -> :sswitch_e4
-0x2016c4e5 -> :sswitch_da
-0x19552dbd -> :sswitch_ce
-0x1538b2ba -> :sswitch_c2
0x3c02325 -> :sswitch_b6
0x3c02353 -> :sswitch_aa
0x3c030c5 -> :sswitch_9e
0x4e86155 -> :sswitch_93
0x4e86156 -> :sswitch_88
0x5e8da3e -> :sswitch_7c
0x1a8350d6 -> :sswitch_70
0x2056f406 -> :sswitch_64
0x2b453ce4 -> :sswitch_58
0x32fdf009 -> :sswitch_4d
0x54c61e47 -> :sswitch_41
0x6bd6c624 -> :sswitch_36
0x7446132a -> :sswitch_2a
0x7446b0a6 -> :sswitch_1e
0x744ad97d -> :sswitch_12
.end sparse-switch
:pswitch_data_408
.packed-switch 0x0
:pswitch_2ad
:pswitch_2a9
:pswitch_2a5
:pswitch_297
:pswitch_297
:pswitch_297
:pswitch_282
:pswitch_26d
:pswitch_259
:pswitch_257
:pswitch_246
:pswitch_1fe
:pswitch_1f4
:pswitch_1ea
:pswitch_1e7
:pswitch_1e3
:pswitch_1df
:pswitch_1db
:pswitch_1d7
:pswitch_1d7
:pswitch_1d3
:pswitch_1c9
:pswitch_194
:pswitch_16f
:pswitch_16c
:pswitch_163
:pswitch_160
.end packed-switch
.end method