MatroskaExtractor.smali
.class public final Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;
.super Ljava/lang/Object;
.source "MatroskaExtractor.java"
# interfaces
.implements Lcom/google/android/exoplayer2/extractor/Extractor;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;,
Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$TrueHdSampleRechunker;,
Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$InnerEbmlReaderOutput;,
Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Flags;
}
.end annotation
# static fields
.field private static final BLOCK_STATE_DATA:I = 0x2
.field private static final BLOCK_STATE_HEADER:I = 0x1
.field private static final BLOCK_STATE_START:I = 0x0
.field private static final CODEC_ID_AAC:Ljava/lang/String; = "A_AAC"
.field private static final CODEC_ID_AC3:Ljava/lang/String; = "A_AC3"
.field private static final CODEC_ID_ACM:Ljava/lang/String; = "A_MS/ACM"
.field private static final CODEC_ID_ASS:Ljava/lang/String; = "S_TEXT/ASS"
.field private static final CODEC_ID_DTS:Ljava/lang/String; = "A_DTS"
.field private static final CODEC_ID_DTS_EXPRESS:Ljava/lang/String; = "A_DTS/EXPRESS"
.field private static final CODEC_ID_DTS_LOSSLESS:Ljava/lang/String; = "A_DTS/LOSSLESS"
.field private static final CODEC_ID_DVBSUB:Ljava/lang/String; = "S_DVBSUB"
.field private static final CODEC_ID_E_AC3:Ljava/lang/String; = "A_EAC3"
.field private static final CODEC_ID_FLAC:Ljava/lang/String; = "A_FLAC"
.field private static final CODEC_ID_FOURCC:Ljava/lang/String; = "V_MS/VFW/FOURCC"
.field private static final CODEC_ID_H264:Ljava/lang/String; = "V_MPEG4/ISO/AVC"
.field private static final CODEC_ID_H265:Ljava/lang/String; = "V_MPEGH/ISO/HEVC"
.field private static final CODEC_ID_MP2:Ljava/lang/String; = "A_MPEG/L2"
.field private static final CODEC_ID_MP3:Ljava/lang/String; = "A_MPEG/L3"
.field private static final CODEC_ID_MPEG2:Ljava/lang/String; = "V_MPEG2"
.field private static final CODEC_ID_MPEG4_AP:Ljava/lang/String; = "V_MPEG4/ISO/AP"
.field private static final CODEC_ID_MPEG4_ASP:Ljava/lang/String; = "V_MPEG4/ISO/ASP"
.field private static final CODEC_ID_MPEG4_SP:Ljava/lang/String; = "V_MPEG4/ISO/SP"
.field private static final CODEC_ID_OPUS:Ljava/lang/String; = "A_OPUS"
.field private static final CODEC_ID_PCM_INT_LIT:Ljava/lang/String; = "A_PCM/INT/LIT"
.field private static final CODEC_ID_PGS:Ljava/lang/String; = "S_HDMV/PGS"
.field private static final CODEC_ID_SUBRIP:Ljava/lang/String; = "S_TEXT/UTF8"
.field private static final CODEC_ID_THEORA:Ljava/lang/String; = "V_THEORA"
.field private static final CODEC_ID_TRUEHD:Ljava/lang/String; = "A_TRUEHD"
.field private static final CODEC_ID_VOBSUB:Ljava/lang/String; = "S_VOBSUB"
.field private static final CODEC_ID_VORBIS:Ljava/lang/String; = "A_VORBIS"
.field private static final CODEC_ID_VP8:Ljava/lang/String; = "V_VP8"
.field private static final CODEC_ID_VP9:Ljava/lang/String; = "V_VP9"
.field private static final DOC_TYPE_MATROSKA:Ljava/lang/String; = "matroska"
.field private static final DOC_TYPE_WEBM:Ljava/lang/String; = "webm"
.field private static final ENCRYPTION_IV_SIZE:I = 0x8
.field public static final FACTORY:Lcom/google/android/exoplayer2/extractor/ExtractorsFactory;
.field public static final FLAG_DISABLE_SEEK_FOR_CUES:I = 0x1
.field private static final FOURCC_COMPRESSION_DIVX:I = 0x58564944
.field private static final FOURCC_COMPRESSION_VC1:I = 0x31435657
.field private static final ID_AUDIO:I = 0xe1
.field private static final ID_AUDIO_BIT_DEPTH:I = 0x6264
.field private static final ID_BLOCK:I = 0xa1
.field private static final ID_BLOCK_DURATION:I = 0x9b
.field private static final ID_BLOCK_GROUP:I = 0xa0
.field private static final ID_CHANNELS:I = 0x9f
.field private static final ID_CLUSTER:I = 0x1f43b675
.field private static final ID_CODEC_DELAY:I = 0x56aa
.field private static final ID_CODEC_ID:I = 0x86
.field private static final ID_CODEC_PRIVATE:I = 0x63a2
.field private static final ID_COLOUR:I = 0x55b0
.field private static final ID_COLOUR_PRIMARIES:I = 0x55bb
.field private static final ID_COLOUR_RANGE:I = 0x55b9
.field private static final ID_COLOUR_TRANSFER:I = 0x55ba
.field private static final ID_CONTENT_COMPRESSION:I = 0x5034
.field private static final ID_CONTENT_COMPRESSION_ALGORITHM:I = 0x4254
.field private static final ID_CONTENT_COMPRESSION_SETTINGS:I = 0x4255
.field private static final ID_CONTENT_ENCODING:I = 0x6240
.field private static final ID_CONTENT_ENCODINGS:I = 0x6d80
.field private static final ID_CONTENT_ENCODING_ORDER:I = 0x5031
.field private static final ID_CONTENT_ENCODING_SCOPE:I = 0x5032
.field private static final ID_CONTENT_ENCRYPTION:I = 0x5035
.field private static final ID_CONTENT_ENCRYPTION_AES_SETTINGS:I = 0x47e7
.field private static final ID_CONTENT_ENCRYPTION_AES_SETTINGS_CIPHER_MODE:I = 0x47e8
.field private static final ID_CONTENT_ENCRYPTION_ALGORITHM:I = 0x47e1
.field private static final ID_CONTENT_ENCRYPTION_KEY_ID:I = 0x47e2
.field private static final ID_CUES:I = 0x1c53bb6b
.field private static final ID_CUE_CLUSTER_POSITION:I = 0xf1
.field private static final ID_CUE_POINT:I = 0xbb
.field private static final ID_CUE_TIME:I = 0xb3
.field private static final ID_CUE_TRACK_POSITIONS:I = 0xb7
.field private static final ID_DEFAULT_DURATION:I = 0x23e383
.field private static final ID_DISPLAY_HEIGHT:I = 0x54ba
.field private static final ID_DISPLAY_UNIT:I = 0x54b2
.field private static final ID_DISPLAY_WIDTH:I = 0x54b0
.field private static final ID_DOC_TYPE:I = 0x4282
.field private static final ID_DOC_TYPE_READ_VERSION:I = 0x4285
.field private static final ID_DURATION:I = 0x4489
.field private static final ID_EBML:I = 0x1a45dfa3
.field private static final ID_EBML_READ_VERSION:I = 0x42f7
.field private static final ID_FLAG_DEFAULT:I = 0x88
.field private static final ID_FLAG_FORCED:I = 0x55aa
.field private static final ID_INFO:I = 0x1549a966
.field private static final ID_LANGUAGE:I = 0x22b59c
.field private static final ID_LUMNINANCE_MAX:I = 0x55d9
.field private static final ID_LUMNINANCE_MIN:I = 0x55da
.field private static final ID_MASTERING_METADATA:I = 0x55d0
.field private static final ID_MAX_CLL:I = 0x55bc
.field private static final ID_MAX_FALL:I = 0x55bd
.field private static final ID_NAME:I = 0x536e
.field private static final ID_PIXEL_HEIGHT:I = 0xba
.field private static final ID_PIXEL_WIDTH:I = 0xb0
.field private static final ID_PRIMARY_B_CHROMATICITY_X:I = 0x55d5
.field private static final ID_PRIMARY_B_CHROMATICITY_Y:I = 0x55d6
.field private static final ID_PRIMARY_G_CHROMATICITY_X:I = 0x55d3
.field private static final ID_PRIMARY_G_CHROMATICITY_Y:I = 0x55d4
.field private static final ID_PRIMARY_R_CHROMATICITY_X:I = 0x55d1
.field private static final ID_PRIMARY_R_CHROMATICITY_Y:I = 0x55d2
.field private static final ID_PROJECTION:I = 0x7670
.field private static final ID_PROJECTION_POSE_PITCH:I = 0x7674
.field private static final ID_PROJECTION_POSE_ROLL:I = 0x7675
.field private static final ID_PROJECTION_POSE_YAW:I = 0x7673
.field private static final ID_PROJECTION_PRIVATE:I = 0x7672
.field private static final ID_PROJECTION_TYPE:I = 0x7671
.field private static final ID_REFERENCE_BLOCK:I = 0xfb
.field private static final ID_SAMPLING_FREQUENCY:I = 0xb5
.field private static final ID_SEEK:I = 0x4dbb
.field private static final ID_SEEK_HEAD:I = 0x114d9b74
.field private static final ID_SEEK_ID:I = 0x53ab
.field private static final ID_SEEK_POSITION:I = 0x53ac
.field private static final ID_SEEK_PRE_ROLL:I = 0x56bb
.field private static final ID_SEGMENT:I = 0x18538067
.field private static final ID_SEGMENT_INFO:I = 0x1549a966
.field private static final ID_SIMPLE_BLOCK:I = 0xa3
.field private static final ID_STEREO_MODE:I = 0x53b8
.field private static final ID_TIMECODE_SCALE:I = 0x2ad7b1
.field private static final ID_TIME_CODE:I = 0xe7
.field private static final ID_TRACKS:I = 0x1654ae6b
.field private static final ID_TRACK_ENTRY:I = 0xae
.field private static final ID_TRACK_NUMBER:I = 0xd7
.field private static final ID_TRACK_TYPE:I = 0x83
.field private static final ID_VIDEO:I = 0xe0
.field private static final ID_WHITE_POINT_CHROMATICITY_X:I = 0x55d7
.field private static final ID_WHITE_POINT_CHROMATICITY_Y:I = 0x55d8
.field private static final LACING_EBML:I = 0x3
.field private static final LACING_FIXED_SIZE:I = 0x2
.field private static final LACING_NONE:I = 0x0
.field private static final LACING_XIPH:I = 0x1
.field private static final OPUS_MAX_INPUT_SIZE:I = 0x1680
.field private static final SSA_DIALOGUE_FORMAT:[B
.field private static final SSA_PREFIX:[B
.field private static final SSA_PREFIX_END_TIMECODE_OFFSET:I = 0x15
.field private static final SSA_TIMECODE_EMPTY:[B
.field private static final SSA_TIMECODE_FORMAT:Ljava/lang/String; = "%01d:%02d:%02d:%02d"
.field private static final SSA_TIMECODE_LAST_VALUE_SCALING_FACTOR:J = 0x2710L
.field private static final SUBRIP_PREFIX:[B
.field private static final SUBRIP_PREFIX_END_TIMECODE_OFFSET:I = 0x13
.field private static final SUBRIP_TIMECODE_EMPTY:[B
.field private static final SUBRIP_TIMECODE_FORMAT:Ljava/lang/String; = "%02d:%02d:%02d,%03d"
.field private static final SUBRIP_TIMECODE_LAST_VALUE_SCALING_FACTOR:J = 0x3e8L
.field private static final TAG:Ljava/lang/String; = "MatroskaExtractor"
.field private static final TRACK_TYPE_AUDIO:I = 0x2
.field private static final UNSET_ENTRY_ID:I = -0x1
.field private static final VORBIS_MAX_INPUT_SIZE:I = 0x2000
.field private static final WAVE_FORMAT_EXTENSIBLE:I = 0xfffe
.field private static final WAVE_FORMAT_PCM:I = 0x1
.field private static final WAVE_FORMAT_SIZE:I = 0x12
.field private static final WAVE_SUBFORMAT_PCM:Ljava/util/UUID;
# instance fields
.field private blockDurationUs:J
.field private blockFlags:I
.field private blockLacingSampleCount:I
.field private blockLacingSampleIndex:I
.field private blockLacingSampleSizes:[I
.field private blockState:I
.field private blockTimeUs:J
.field private blockTrackNumber:I
.field private blockTrackNumberLength:I
.field private clusterTimecodeUs:J
.field private cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
.field private cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
.field private cuesContentPosition:J
.field private currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
.field private durationTimecode:J
.field private durationUs:J
.field private final encryptionInitializationVector:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.field private final encryptionSubsampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.field private encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
.field private extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
.field private final nalLength:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.field private final nalStartCode:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.field private final reader:Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;
.field private sampleBytesRead:I
.field private sampleBytesWritten:I
.field private sampleCurrentNalBytesRemaining:I
.field private sampleEncodingHandled:Z
.field private sampleInitializationVectorRead:Z
.field private samplePartitionCount:I
.field private samplePartitionCountRead:Z
.field private sampleRead:Z
.field private sampleSeenReferenceBlock:Z
.field private sampleSignalByte:B
.field private sampleSignalByteRead:Z
.field private final sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.field private final scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.field private seekEntryId:I
.field private final seekEntryIdBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.field private seekEntryPosition:J
.field private seekForCues:Z
.field private final seekForCuesEnabled:Z
.field private seekPositionAfterBuildingCues:J
.field private seenClusterPositionForCurrentCuePoint:Z
.field private segmentContentPosition:J
.field private segmentContentSize:J
.field private sentSeekMap:Z
.field private final subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.field private timecodeScale:J
.field private final tracks:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;",
">;"
}
.end annotation
.end field
.field private final varintReader:Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;
.field private final vorbisNumPageSamples:Lcom/google/android/exoplayer2/util/ParsableByteArray;
# direct methods
.method static constructor <clinit>()V
.registers 5
.line 66
sget-object v0, Lcom/google/android/exoplayer2/extractor/mkv/-$$Lambda$MatroskaExtractor$jNXW0tyYIOPE6N2jicocV6rRvBs;->INSTANCE:Lcom/google/android/exoplayer2/extractor/mkv/-$$Lambda$MatroskaExtractor$jNXW0tyYIOPE6N2jicocV6rRvBs;
sput-object v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->FACTORY:Lcom/google/android/exoplayer2/extractor/ExtractorsFactory;
.line 233
const/16 v0, 0x20
new-array v1, v0, [B
fill-array-data v1, :array_40
sput-object v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SUBRIP_PREFIX:[B
.line 245
const/16 v1, 0xc
new-array v1, v1, [B
fill-array-data v1, :array_54
sput-object v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SUBRIP_TIMECODE_EMPTY:[B
.line 260
const-string v1, "Format: Start, End, ReadOrder, Layer, Style, Name, MarginL, MarginR, MarginV, Effect, Text"
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Util;->getUtf8Bytes(Ljava/lang/String;)[B
move-result-object v1
sput-object v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SSA_DIALOGUE_FORMAT:[B
.line 269
new-array v0, v0, [B
fill-array-data v0, :array_5e
sput-object v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SSA_PREFIX:[B
.line 286
const/16 v0, 0xa
new-array v0, v0, [B
fill-array-data v0, :array_72
sput-object v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SSA_TIMECODE_EMPTY:[B
.line 308
new-instance v0, Ljava/util/UUID;
const-wide v1, 0x100000000001000L
const-wide v3, -0x7fffff55ffc7648fL # -3.607411173533E-312
invoke-direct {v0, v1, v2, v3, v4}, Ljava/util/UUID;-><init>(JJ)V
sput-object v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->WAVE_SUBFORMAT_PCM:Ljava/util/UUID;
return-void
:array_40
.array-data 1
0x31t
0xat
0x30t
0x30t
0x3at
0x30t
0x30t
0x3at
0x30t
0x30t
0x2ct
0x30t
0x30t
0x30t
0x20t
0x2dt
0x2dt
0x3et
0x20t
0x30t
0x30t
0x3at
0x30t
0x30t
0x3at
0x30t
0x30t
0x2ct
0x30t
0x30t
0x30t
0xat
.end array-data
:array_54
.array-data 1
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
.end array-data
:array_5e
.array-data 1
0x44t
0x69t
0x61t
0x6ct
0x6ft
0x67t
0x75t
0x65t
0x3at
0x20t
0x30t
0x3at
0x30t
0x30t
0x3at
0x30t
0x30t
0x3at
0x30t
0x30t
0x2ct
0x30t
0x3at
0x30t
0x30t
0x3at
0x30t
0x30t
0x3at
0x30t
0x30t
0x2ct
.end array-data
:array_72
.array-data 1
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
.end array-data
.end method
.method public constructor <init>()V
.registers 2
.line 381
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;-><init>(I)V
.line 382
return-void
.end method
.method public constructor <init>(I)V
.registers 3
.param p1, "flags" # I
.line 385
new-instance v0, Lcom/google/android/exoplayer2/extractor/mkv/DefaultEbmlReader;
invoke-direct {v0}, Lcom/google/android/exoplayer2/extractor/mkv/DefaultEbmlReader;-><init>()V
invoke-direct {p0, v0, p1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;-><init>(Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;I)V
.line 386
return-void
.end method
.method constructor <init>(Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;I)V
.registers 7
.param p1, "reader" # Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;
.param p2, "flags" # I
.line 388
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 328
const-wide/16 v0, -0x1
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
.line 329
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->timecodeScale:J
.line 330
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationTimecode:J
.line 331
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationUs:J
.line 345
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cuesContentPosition:J
.line 346
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekPositionAfterBuildingCues:J
.line 347
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->clusterTimecodeUs:J
.line 389
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->reader:Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;
.line 390
new-instance v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$InnerEbmlReaderOutput;
const/4 v1, 0x0
invoke-direct {v0, p0, v1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$InnerEbmlReaderOutput;-><init>(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$1;)V
invoke-interface {p1, v0}, Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;->init(Lcom/google/android/exoplayer2/extractor/mkv/EbmlReaderOutput;)V
.line 391
and-int/lit8 v0, p2, 0x1
if-nez v0, :cond_29
const/4 v0, 0x1
goto :goto_2a
:cond_29
const/4 v0, 0x0
:goto_2a
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekForCuesEnabled:Z
.line 392
new-instance v0, Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;
invoke-direct {v0}, Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->varintReader:Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;
.line 393
new-instance v0, Landroid/util/SparseArray;
invoke-direct {v0}, Landroid/util/SparseArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
.line 394
new-instance v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/4 v1, 0x4
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>(I)V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 395
new-instance v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-static {v1}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v2
const/4 v3, -0x1
invoke-virtual {v2, v3}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
move-result-object v2
invoke-virtual {v2}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v2
invoke-direct {v0, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>([B)V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->vorbisNumPageSamples:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 396
new-instance v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>(I)V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryIdBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 397
new-instance v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;
sget-object v2, Lcom/google/android/exoplayer2/util/NalUnitUtil;->NAL_START_CODE:[B
invoke-direct {v0, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>([B)V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalStartCode:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 398
new-instance v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>(I)V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalLength:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 399
new-instance v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 400
new-instance v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 401
new-instance v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/16 v1, 0x8
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>(I)V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionInitializationVector:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 402
new-instance v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 403
return-void
.end method
.method static synthetic access$300()[B
.registers 1
.line 63
sget-object v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SSA_DIALOGUE_FORMAT:[B
return-object v0
.end method
.method static synthetic access$400()Ljava/util/UUID;
.registers 1
.line 63
sget-object v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->WAVE_SUBFORMAT_PCM:Ljava/util/UUID;
return-object v0
.end method
.method private buildSeekMap()Lcom/google/android/exoplayer2/extractor/SeekMap;
.registers 12
.line 1325
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
const/4 v2, 0x0
const-wide/16 v3, -0x1
cmp-long v5, v0, v3
if-eqz v5, :cond_95
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationUs:J
const-wide v3, -0x7fffffffffffffffL # -4.9E-324
cmp-long v5, v0, v3
if-eqz v5, :cond_95
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
if-eqz v0, :cond_95
.line 1326
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/LongArray;->size()I
move-result v0
if-eqz v0, :cond_95
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
if-eqz v0, :cond_95
.line 1327
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/LongArray;->size()I
move-result v0
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/LongArray;->size()I
move-result v1
if-eq v0, v1, :cond_2f
goto :goto_95
.line 1333
:cond_2f
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/LongArray;->size()I
move-result v0
.line 1334
.local v0, "cuePointsSize":I
new-array v1, v0, [I
.line 1335
.local v1, "sizes":[I
new-array v3, v0, [J
.line 1336
.local v3, "offsets":[J
new-array v4, v0, [J
.line 1337
.local v4, "durationsUs":[J
new-array v5, v0, [J
.line 1338
.local v5, "timesUs":[J
const/4 v6, 0x0
.local v6, "i":I
:goto_3e
if-ge v6, v0, :cond_56
.line 1339
iget-object v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
invoke-virtual {v7, v6}, Lcom/google/android/exoplayer2/util/LongArray;->get(I)J
move-result-wide v7
aput-wide v7, v5, v6
.line 1340
iget-wide v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
iget-object v9, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
invoke-virtual {v9, v6}, Lcom/google/android/exoplayer2/util/LongArray;->get(I)J
move-result-wide v9
add-long/2addr v7, v9
aput-wide v7, v3, v6
.line 1338
add-int/lit8 v6, v6, 0x1
goto :goto_3e
.line 1342
.end local v6 # "i":I
:cond_56
const/4 v6, 0x0
.restart local v6 # "i":I
:goto_57
add-int/lit8 v7, v0, -0x1
if-ge v6, v7, :cond_71
.line 1343
add-int/lit8 v7, v6, 0x1
aget-wide v7, v3, v7
aget-wide v9, v3, v6
sub-long/2addr v7, v9
long-to-int v8, v7
aput v8, v1, v6
.line 1344
add-int/lit8 v7, v6, 0x1
aget-wide v7, v5, v7
aget-wide v9, v5, v6
sub-long/2addr v7, v9
aput-wide v7, v4, v6
.line 1342
add-int/lit8 v6, v6, 0x1
goto :goto_57
.line 1346
.end local v6 # "i":I
:cond_71
add-int/lit8 v6, v0, -0x1
iget-wide v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
iget-wide v9, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentSize:J
add-long/2addr v7, v9
add-int/lit8 v9, v0, -0x1
aget-wide v9, v3, v9
sub-long/2addr v7, v9
long-to-int v8, v7
aput v8, v1, v6
.line 1348
add-int/lit8 v6, v0, -0x1
iget-wide v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationUs:J
add-int/lit8 v9, v0, -0x1
aget-wide v9, v5, v9
sub-long/2addr v7, v9
aput-wide v7, v4, v6
.line 1349
iput-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
.line 1350
iput-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
.line 1351
new-instance v2, Lcom/google/android/exoplayer2/extractor/ChunkIndex;
invoke-direct {v2, v1, v3, v4, v5}, Lcom/google/android/exoplayer2/extractor/ChunkIndex;-><init>([I[J[J[J)V
return-object v2
.line 1329
.end local v0 # "cuePointsSize":I
.end local v1 # "sizes":[I
.end local v3 # "offsets":[J
.end local v4 # "durationsUs":[J
.end local v5 # "timesUs":[J
:cond_95
:goto_95
iput-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
.line 1330
iput-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
.line 1331
new-instance v0, Lcom/google/android/exoplayer2/extractor/SeekMap$Unseekable;
iget-wide v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationUs:J
invoke-direct {v0, v1, v2}, Lcom/google/android/exoplayer2/extractor/SeekMap$Unseekable;-><init>(J)V
return-object v0
.end method
.method private commitSampleToOutput(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;J)V
.registers 20
.param p1, "track" # Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
.param p2, "timeUs" # J
.line 1031
move-object/from16 v7, p0
move-object/from16 v8, p1
iget-object v0, v8, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->trueHdSampleRechunker:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$TrueHdSampleRechunker;
if-eqz v0, :cond_10
.line 1032
iget-object v0, v8, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->trueHdSampleRechunker:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$TrueHdSampleRechunker;
move-wide/from16 v14, p2
invoke-virtual {v0, v8, v14, v15}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$TrueHdSampleRechunker;->sampleMetadata(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;J)V
goto :goto_55
.line 1034
:cond_10
move-wide/from16 v14, p2
iget-object v0, v8, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
const-string v1, "S_TEXT/UTF8"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_2c
.line 1035
const/16 v3, 0x13
const-wide/16 v4, 0x3e8
sget-object v6, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SUBRIP_TIMECODE_EMPTY:[B
const-string v2, "%02d:%02d:%02d,%03d"
move-object/from16 v0, p0
move-object/from16 v1, p1
invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->commitSubtitleSample(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;Ljava/lang/String;IJ[B)V
goto :goto_45
.line 1041
:cond_2c
iget-object v0, v8, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
const-string v1, "S_TEXT/ASS"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_45
.line 1042
const/16 v3, 0x15
const-wide/16 v4, 0x2710
sget-object v6, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SSA_TIMECODE_EMPTY:[B
const-string v2, "%01d:%02d:%02d:%02d"
move-object/from16 v0, p0
move-object/from16 v1, p1
invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->commitSubtitleSample(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;Ljava/lang/String;IJ[B)V
.line 1049
:cond_45
:goto_45
iget-object v9, v8, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->output:Lcom/google/android/exoplayer2/extractor/TrackOutput;
iget v12, v7, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
iget v13, v7, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
const/4 v0, 0x0
iget-object v1, v8, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->cryptoData:Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;
move-wide/from16 v10, p2
move v14, v0
move-object v15, v1
invoke-interface/range {v9 .. v15}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleMetadata(JIIILcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;)V
.line 1051
:goto_55
const/4 v0, 0x1
iput-boolean v0, v7, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleRead:Z
.line 1052
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->resetSample()V
.line 1053
return-void
.end method
.method private commitSubtitleSample(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;Ljava/lang/String;IJ[B)V
.registers 16
.param p1, "track" # Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
.param p2, "timecodeFormat" # Ljava/lang/String;
.param p3, "endTimecodeOffset" # I
.param p4, "lastTimecodeValueScalingFactor" # J
.param p6, "emptyTimecode" # [B
.line 1257
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v1, v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
iget-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockDurationUs:J
move-object v4, p2
move v5, p3
move-wide v6, p4
move-object v8, p6
invoke-static/range {v1 .. v8}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->setSampleDuration([BJLjava/lang/String;IJ[B)V
.line 1261
iget-object v0, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->output:Lcom/google/android/exoplayer2/extractor/TrackOutput;
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result v2
invoke-interface {v0, v1, v2}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 1262
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result v1
add-int/2addr v0, v1
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
.line 1263
return-void
.end method
.method private static ensureArrayCapacity([II)[I
.registers 3
.param p0, "array" # [I
.param p1, "length" # I
.line 1424
if-nez p0, :cond_5
.line 1425
new-array v0, p1, [I
return-object v0
.line 1426
:cond_5
array-length v0, p0
if-lt v0, p1, :cond_9
.line 1427
return-object p0
.line 1430
:cond_9
array-length v0, p0
mul-int/lit8 v0, v0, 0x2
invoke-static {v0, p1}, Ljava/lang/Math;->max(II)I
move-result v0
new-array v0, v0, [I
return-object v0
.end method
.method private static isCodecSupported(Ljava/lang/String;)Z
.registers 2
.param p0, "codecId" # Ljava/lang/String;
.line 1388
const-string v0, "V_VP8"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1389
const-string v0, "V_VP9"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1390
const-string v0, "V_MPEG2"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1391
const-string v0, "V_MPEG4/ISO/SP"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1392
const-string v0, "V_MPEG4/ISO/ASP"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1393
const-string v0, "V_MPEG4/ISO/AP"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1394
const-string v0, "V_MPEG4/ISO/AVC"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1395
const-string v0, "V_MPEGH/ISO/HEVC"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1396
const-string v0, "V_MS/VFW/FOURCC"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1397
const-string v0, "V_THEORA"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1398
const-string v0, "A_OPUS"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1399
const-string v0, "A_VORBIS"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1400
const-string v0, "A_AAC"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1401
const-string v0, "A_MPEG/L2"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1402
const-string v0, "A_MPEG/L3"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1403
const-string v0, "A_AC3"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1404
const-string v0, "A_EAC3"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1405
const-string v0, "A_TRUEHD"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1406
const-string v0, "A_DTS"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1407
const-string v0, "A_DTS/EXPRESS"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1408
const-string v0, "A_DTS/LOSSLESS"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1409
const-string v0, "A_FLAC"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1410
const-string v0, "A_MS/ACM"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1411
const-string v0, "A_PCM/INT/LIT"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1412
const-string v0, "S_TEXT/UTF8"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1413
const-string v0, "S_TEXT/ASS"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1414
const-string v0, "S_VOBSUB"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1415
const-string v0, "S_HDMV/PGS"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
.line 1416
const-string v0, "S_DVBSUB"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_e9
goto :goto_eb
:cond_e9
const/4 v0, 0x0
goto :goto_ec
:cond_eb
:goto_eb
const/4 v0, 0x1
.line 1388
:goto_ec
return v0
.end method
.method static synthetic lambda$static$0()[Lcom/google/android/exoplayer2/extractor/Extractor;
.registers 3
.line 66
const/4 v0, 0x1
new-array v0, v0, [Lcom/google/android/exoplayer2/extractor/Extractor;
new-instance v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;
invoke-direct {v1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;-><init>()V
const/4 v2, 0x0
aput-object v1, v0, v2
return-object v0
.end method
.method private maybeSeekForCues(Lcom/google/android/exoplayer2/extractor/PositionHolder;J)Z
.registers 11
.param p1, "seekPosition" # Lcom/google/android/exoplayer2/extractor/PositionHolder;
.param p2, "currentPosition" # J
.line 1364
iget-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekForCues:Z
const/4 v1, 0x1
const/4 v2, 0x0
if-eqz v0, :cond_f
.line 1365
iput-wide p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekPositionAfterBuildingCues:J
.line 1366
iget-wide v3, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cuesContentPosition:J
iput-wide v3, p1, Lcom/google/android/exoplayer2/extractor/PositionHolder;->position:J
.line 1367
iput-boolean v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekForCues:Z
.line 1368
return v1
.line 1372
:cond_f
iget-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sentSeekMap:Z
if-eqz v0, :cond_20
iget-wide v3, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekPositionAfterBuildingCues:J
const-wide/16 v5, -0x1
cmp-long v0, v3, v5
if-eqz v0, :cond_20
.line 1373
iput-wide v3, p1, Lcom/google/android/exoplayer2/extractor/PositionHolder;->position:J
.line 1374
iput-wide v5, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekPositionAfterBuildingCues:J
.line 1375
return v1
.line 1377
:cond_20
return v2
.end method
.method private readScratch(Lcom/google/android/exoplayer2/extractor/ExtractorInput;I)V
.registers 6
.param p1, "input" # Lcom/google/android/exoplayer2/extractor/ExtractorInput;
.param p2, "requiredLength" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 1074
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result v0
if-lt v0, p2, :cond_9
.line 1075
return-void
.line 1077
:cond_9
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->capacity()I
move-result v0
if-ge v0, p2, :cond_2d
.line 1078
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v1, v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v2, v2, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
array-length v2, v2
mul-int/lit8 v2, v2, 0x2
invoke-static {v2, p2}, Ljava/lang/Math;->max(II)I
move-result v2
invoke-static {v1, v2}, Ljava/util/Arrays;->copyOf([BI)[B
move-result-object v1
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 1079
invoke-virtual {v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result v2
.line 1078
invoke-virtual {v0, v1, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset([BI)V
.line 1081
:cond_2d
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v0, v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result v1
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result v2
sub-int v2, p2, v2
invoke-interface {p1, v0, v1, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 1082
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v0, p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setLimit(I)V
.line 1083
return-void
.end method
.method private readToOutput(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/TrackOutput;I)I
.registers 7
.param p1, "input" # Lcom/google/android/exoplayer2/extractor/ExtractorInput;
.param p2, "output" # Lcom/google/android/exoplayer2/extractor/TrackOutput;
.param p3, "length" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 1306
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v0
.line 1307
.local v0, "strippedBytesLeft":I
if-lez v0, :cond_12
.line 1308
invoke-static {p3, v0}, Ljava/lang/Math;->min(II)I
move-result v1
.line 1309
.local v1, "bytesRead":I
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-interface {p2, v2, v1}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
goto :goto_17
.line 1311
.end local v1 # "bytesRead":I
:cond_12
const/4 v1, 0x0
invoke-interface {p2, p1, p3, v1}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;IZ)I
move-result v1
.line 1313
.restart local v1 # "bytesRead":I
:goto_17
iget v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
add-int/2addr v2, v1
iput v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1314
iget v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
add-int/2addr v2, v1
iput v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
.line 1315
return v1
.end method
.method private readToTarget(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[BII)V
.registers 8
.param p1, "input" # Lcom/google/android/exoplayer2/extractor/ExtractorInput;
.param p2, "target" # [B
.param p3, "offset" # I
.param p4, "length" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 1291
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v0
invoke-static {p4, v0}, Ljava/lang/Math;->min(II)I
move-result v0
.line 1292
.local v0, "pendingStrippedBytes":I
add-int v1, p3, v0
sub-int v2, p4, v0
invoke-interface {p1, p2, v1, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 1293
if-lez v0, :cond_18
.line 1294
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v1, p2, p3, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
.line 1296
:cond_18
iget v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
add-int/2addr v1, p4
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1297
return-void
.end method
.method private resetSample()V
.registers 2
.line 1056
const/4 v0, 0x0
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1057
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
.line 1058
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleCurrentNalBytesRemaining:I
.line 1059
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleEncodingHandled:Z
.line 1060
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByteRead:Z
.line 1061
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCountRead:Z
.line 1062
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCount:I
.line 1063
iput-byte v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByte:B
.line 1064
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleInitializationVectorRead:Z
.line 1065
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset()V
.line 1066
return-void
.end method
.method private scaleTimecodeToUs(J)J
.registers 9
.param p1, "unscaledTimecode" # J
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 1381
iget-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->timecodeScale:J
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
cmp-long v4, v2, v0
if-eqz v4, :cond_13
.line 1384
const-wide/16 v4, 0x3e8
move-wide v0, p1
invoke-static/range {v0 .. v5}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v0
return-wide v0
.line 1382
:cond_13
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
const-string v1, "Can\'t scale timecode prior to timecodeScale being set."
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private static setSampleDuration([BJLjava/lang/String;IJ[B)V
.registers 19
.param p0, "subripSampleData" # [B
.param p1, "durationUs" # J
.param p3, "timecodeFormat" # Ljava/lang/String;
.param p4, "endTimecodeOffset" # I
.param p5, "lastTimecodeValueScalingFactor" # J
.param p7, "emptyTimecode" # [B
.line 1269
const/4 v0, 0x0
const-wide v1, -0x7fffffffffffffffL # -4.9E-324
cmp-long v3, p1, v1
if-nez v3, :cond_f
.line 1270
move-object/from16 v1, p7
move-wide v3, p1
move-object v9, p3
.local v1, "timeCodeData":[B
goto :goto_61
.line 1272
.end local v1 # "timeCodeData":[B
:cond_f
const-wide v1, 0xd693a400L
div-long v1, p1, v1
long-to-int v2, v1
.line 1273
.local v2, "hours":I
mul-int/lit16 v1, v2, 0xe10
int-to-long v3, v1
const-wide/32 v5, 0xf4240
mul-long v3, v3, v5
sub-long v3, p1, v3
.line 1274
.end local p1 # "durationUs":J
.local v3, "durationUs":J
const-wide/32 v7, 0x3938700
div-long v7, v3, v7
long-to-int v1, v7
.line 1275
.local v1, "minutes":I
mul-int/lit8 v7, v1, 0x3c
int-to-long v7, v7
mul-long v7, v7, v5
sub-long/2addr v3, v7
.line 1276
div-long v7, v3, v5
long-to-int v8, v7
.line 1277
.local v8, "seconds":I
int-to-long v9, v8
mul-long v9, v9, v5
sub-long/2addr v3, v9
.line 1278
div-long v5, v3, p5
long-to-int v6, v5
.line 1279
.local v6, "lastValue":I
sget-object v5, Ljava/util/Locale;->US:Ljava/util/Locale;
const/4 v7, 0x4
new-array v7, v7, [Ljava/lang/Object;
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v9
aput-object v9, v7, v0
const/4 v9, 0x1
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v7, v9
const/4 v9, 0x2
.line 1280
invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v7, v9
const/4 v9, 0x3
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v7, v9
.line 1279
move-object v9, p3
invoke-static {v5, p3, v7}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
invoke-static {v5}, Lcom/google/android/exoplayer2/util/Util;->getUtf8Bytes(Ljava/lang/String;)[B
move-result-object v5
move-object v1, v5
.line 1282
.end local v2 # "hours":I
.end local v6 # "lastValue":I
.end local v8 # "seconds":I
.local v1, "timeCodeData":[B
:goto_61
move-object/from16 v2, p7
array-length v5, v2
move-object v6, p0
move v7, p4
invoke-static {v1, v0, p0, p4, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1283
return-void
.end method
.method private writeSampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;I)V
.registers 20
.param p1, "input" # Lcom/google/android/exoplayer2/extractor/ExtractorInput;
.param p2, "track" # Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
.param p3, "size" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 1087
move-object/from16 v0, p0
move-object/from16 v1, p1
move-object/from16 v2, p2
move/from16 v3, p3
iget-object v4, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
const-string v5, "S_TEXT/UTF8"
invoke-virtual {v5, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_18
.line 1088
sget-object v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SUBRIP_PREFIX:[B
invoke-direct {v0, v1, v4, v3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->writeSubtitleSampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[BI)V
.line 1089
return-void
.line 1090
:cond_18
iget-object v4, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
const-string v5, "S_TEXT/ASS"
invoke-virtual {v5, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_28
.line 1091
sget-object v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SSA_PREFIX:[B
invoke-direct {v0, v1, v4, v3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->writeSubtitleSampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[BI)V
.line 1092
return-void
.line 1095
:cond_28
iget-object v4, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->output:Lcom/google/android/exoplayer2/extractor/TrackOutput;
.line 1096
.local v4, "output":Lcom/google/android/exoplayer2/extractor/TrackOutput;
iget-boolean v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleEncodingHandled:Z
const/4 v6, 0x4
const/4 v7, 0x2
const/4 v8, 0x1
const/4 v9, 0x0
if-nez v5, :cond_186
.line 1097
iget-boolean v5, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->hasContentEncryption:Z
if-eqz v5, :cond_173
.line 1100
iget v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
const v10, -0x40000001 # -1.9999999f
and-int/2addr v5, v10
iput v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
.line 1101
iget-boolean v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByteRead:Z
const/16 v10, 0x80
if-nez v5, :cond_6c
.line 1102
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v5, v5, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
invoke-interface {v1, v5, v9, v8}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 1103
iget v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
add-int/2addr v5, v8
iput v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1104
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v5, v5, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
aget-byte v5, v5, v9
and-int/2addr v5, v10
if-eq v5, v10, :cond_64
.line 1107
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v5, v5, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
aget-byte v5, v5, v9
iput-byte v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByte:B
.line 1108
iput-boolean v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByteRead:Z
goto :goto_6c
.line 1105
:cond_64
new-instance v5, Lcom/google/android/exoplayer2/ParserException;
const-string v6, "Extension bit is set in signal byte"
invoke-direct {v5, v6}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v5
.line 1110
:cond_6c
:goto_6c
iget-byte v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByte:B
and-int/2addr v5, v8
if-ne v5, v8, :cond_73
const/4 v5, 0x1
goto :goto_74
:cond_73
const/4 v5, 0x0
.line 1111
.local v5, "isEncrypted":Z
:goto_74
if-eqz v5, :cond_182
.line 1112
iget-byte v11, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByte:B
and-int/2addr v11, v7
if-ne v11, v7, :cond_7d
const/4 v11, 0x1
goto :goto_7e
:cond_7d
const/4 v11, 0x0
.line 1113
.local v11, "hasSubsampleEncryption":Z
:goto_7e
iget v12, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
const/high16 v13, 0x40000000 # 2.0f
or-int/2addr v12, v13
iput v12, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
.line 1114
iget-boolean v12, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleInitializationVectorRead:Z
if-nez v12, :cond_c3
.line 1115
iget-object v12, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionInitializationVector:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v12, v12, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
const/16 v13, 0x8
invoke-interface {v1, v12, v9, v13}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 1116
iget v12, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
add-int/2addr v12, v13
iput v12, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1117
iput-boolean v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleInitializationVectorRead:Z
.line 1119
iget-object v12, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v12, v12, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
if-eqz v11, :cond_a0
goto :goto_a1
:cond_a0
const/4 v10, 0x0
:goto_a1
or-int/2addr v10, v13
int-to-byte v10, v10
aput-byte v10, v12, v9
.line 1120
iget-object v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v10, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1121
iget-object v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-interface {v4, v10, v8}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 1122
iget v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
add-int/2addr v10, v8
iput v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
.line 1124
iget-object v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionInitializationVector:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v10, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1125
iget-object v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionInitializationVector:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-interface {v4, v10, v13}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 1126
iget v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
add-int/2addr v10, v13
iput v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
.line 1128
:cond_c3
if-eqz v11, :cond_182
.line 1129
iget-boolean v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCountRead:Z
if-nez v10, :cond_e4
.line 1130
iget-object v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v10, v10, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
invoke-interface {v1, v10, v9, v8}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 1131
iget v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
add-int/2addr v10, v8
iput v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1132
iget-object v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v10, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1133
iget-object v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v10}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v10
iput v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCount:I
.line 1134
iput-boolean v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCountRead:Z
.line 1136
:cond_e4
iget v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCount:I
mul-int/lit8 v10, v10, 0x4
.line 1137
.local v10, "samplePartitionDataSize":I
iget-object v12, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v12, v10}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset(I)V
.line 1138
iget-object v12, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v12, v12, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
invoke-interface {v1, v12, v9, v10}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 1139
iget v12, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
add-int/2addr v12, v10
iput v12, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1140
iget v12, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCount:I
div-int/2addr v12, v7
add-int/2addr v12, v8
int-to-short v12, v12
.line 1141
.local v12, "subsampleCount":S
mul-int/lit8 v13, v12, 0x6
add-int/2addr v13, v7
.line 1142
.local v13, "subsampleDataSize":I
iget-object v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
if-eqz v14, :cond_10b
.line 1143
invoke-virtual {v14}, Ljava/nio/ByteBuffer;->capacity()I
move-result v14
if-ge v14, v13, :cond_111
.line 1144
:cond_10b
invoke-static {v13}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v14
iput-object v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
.line 1146
:cond_111
iget-object v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
invoke-virtual {v14, v9}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 1147
iget-object v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
invoke-virtual {v14, v12}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;
.line 1154
const/4 v14, 0x0
.line 1155
.local v14, "partitionOffset":I
const/4 v15, 0x0
.local v15, "i":I
:goto_11d
iget v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCount:I
if-ge v15, v6, :cond_142
.line 1156
move v6, v14
.line 1157
.local v6, "previousPartitionOffset":I
iget-object v9, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v14
.line 1158
rem-int/lit8 v9, v15, 0x2
if-nez v9, :cond_135
.line 1159
iget-object v9, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
sub-int v8, v14, v6
int-to-short v8, v8
invoke-virtual {v9, v8}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;
goto :goto_13c
.line 1162
:cond_135
iget-object v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
sub-int v9, v14, v6
invoke-virtual {v8, v9}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
.line 1155
.end local v6 # "previousPartitionOffset":I
:goto_13c
add-int/lit8 v15, v15, 0x1
const/4 v6, 0x4
const/4 v8, 0x1
const/4 v9, 0x0
goto :goto_11d
.line 1165
.end local v15 # "i":I
:cond_142
iget v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
sub-int v8, v3, v8
sub-int/2addr v8, v14
.line 1166
.local v8, "finalPartitionSize":I
rem-int/2addr v6, v7
const/4 v9, 0x1
if-ne v6, v9, :cond_151
.line 1167
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
invoke-virtual {v6, v8}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
goto :goto_15d
.line 1169
:cond_151
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
int-to-short v9, v8
invoke-virtual {v6, v9}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;
.line 1170
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
const/4 v9, 0x0
invoke-virtual {v6, v9}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
.line 1172
:goto_15d
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v9, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
invoke-virtual {v9}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v9
invoke-virtual {v6, v9, v13}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset([BI)V
.line 1173
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-interface {v4, v6, v13}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 1174
iget v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
add-int/2addr v6, v13
iput v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
goto :goto_182
.line 1177
.end local v5 # "isEncrypted":Z
.end local v8 # "finalPartitionSize":I
.end local v10 # "samplePartitionDataSize":I
.end local v11 # "hasSubsampleEncryption":Z
.end local v12 # "subsampleCount":S
.end local v13 # "subsampleDataSize":I
.end local v14 # "partitionOffset":I
:cond_173
iget-object v5, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleStrippedBytes:[B
if-eqz v5, :cond_182
.line 1179
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v6, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleStrippedBytes:[B
iget-object v8, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleStrippedBytes:[B
array-length v8, v8
invoke-virtual {v5, v6, v8}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset([BI)V
goto :goto_183
.line 1177
:cond_182
:goto_182
nop
.line 1181
:goto_183
const/4 v5, 0x1
iput-boolean v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleEncodingHandled:Z
.line 1183
:cond_186
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result v5
add-int/2addr v3, v5
.line 1185
.end local p3 # "size":I
.local v3, "size":I
iget-object v5, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
const-string v6, "V_MPEG4/ISO/AVC"
invoke-virtual {v6, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_1c5
iget-object v5, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
const-string v6, "V_MPEGH/ISO/HEVC"
invoke-virtual {v6, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_1a2
goto :goto_1c5
.line 1217
:cond_1a2
iget-object v5, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->trueHdSampleRechunker:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$TrueHdSampleRechunker;
if-eqz v5, :cond_1bb
.line 1218
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result v5
if-nez v5, :cond_1b0
const/4 v8, 0x1
goto :goto_1b1
:cond_1b0
const/4 v8, 0x0
:goto_1b1
invoke-static {v8}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 1219
iget-object v5, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->trueHdSampleRechunker:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$TrueHdSampleRechunker;
iget v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
invoke-virtual {v5, v1, v6, v3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$TrueHdSampleRechunker;->startSample(Lcom/google/android/exoplayer2/extractor/ExtractorInput;II)V
.line 1221
:cond_1bb
:goto_1bb
iget v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
if-ge v5, v3, :cond_20c
.line 1222
sub-int v5, v3, v5
invoke-direct {v0, v1, v4, v5}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readToOutput(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/TrackOutput;I)I
goto :goto_1bb
.line 1190
:cond_1c5
:goto_1c5
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalLength:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v5, v5, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
.line 1191
.local v5, "nalLengthData":[B
const/4 v6, 0x0
aput-byte v6, v5, v6
.line 1192
const/4 v8, 0x1
aput-byte v6, v5, v8
.line 1193
aput-byte v6, v5, v7
.line 1194
iget v6, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->nalUnitLengthFieldLength:I
.line 1195
.local v6, "nalUnitLengthFieldLength":I
iget v7, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->nalUnitLengthFieldLength:I
const/4 v8, 0x4
rsub-int/lit8 v7, v7, 0x4
.line 1199
.local v7, "nalUnitLengthFieldLengthDiff":I
:goto_1d8
iget v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
if-ge v8, v3, :cond_20b
.line 1200
iget v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleCurrentNalBytesRemaining:I
if-nez v8, :cond_202
.line 1202
invoke-direct {v0, v1, v5, v7, v6}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readToTarget(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[BII)V
.line 1204
iget-object v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalLength:Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/4 v9, 0x0
invoke-virtual {v8, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1205
iget-object v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalLength:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v8}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v8
iput v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleCurrentNalBytesRemaining:I
.line 1207
iget-object v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalStartCode:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v8, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1208
iget-object v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalStartCode:Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/4 v9, 0x4
invoke-interface {v4, v8, v9}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 1209
iget v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
add-int/2addr v8, v9
iput v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
goto :goto_1d8
.line 1212
:cond_202
nop
.line 1213
invoke-direct {v0, v1, v4, v8}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readToOutput(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/TrackOutput;I)I
move-result v9
sub-int/2addr v8, v9
iput v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleCurrentNalBytesRemaining:I
goto :goto_1d8
.line 1216
.end local v5 # "nalLengthData":[B
.end local v6 # "nalUnitLengthFieldLength":I
.end local v7 # "nalUnitLengthFieldLengthDiff":I
:cond_20b
nop
.line 1226
:cond_20c
iget-object v5, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
const-string v6, "A_VORBIS"
invoke-virtual {v6, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_227
.line 1233
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->vorbisNumPageSamples:Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/4 v6, 0x0
invoke-virtual {v5, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1234
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->vorbisNumPageSamples:Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/4 v6, 0x4
invoke-interface {v4, v5, v6}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 1235
iget v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
add-int/2addr v5, v6
iput v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
.line 1237
:cond_227
return-void
.end method
.method private writeSubtitleSampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[BI)V
.registers 8
.param p1, "input" # Lcom/google/android/exoplayer2/extractor/ExtractorInput;
.param p2, "samplePrefix" # [B
.param p3, "size" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 1241
array-length v0, p2
add-int/2addr v0, p3
.line 1242
.local v0, "sizeWithPrefix":I
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->capacity()I
move-result v1
if-ge v1, v0, :cond_15
.line 1245
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
add-int v2, v0, p3
invoke-static {p2, v2}, Ljava/util/Arrays;->copyOf([BI)[B
move-result-object v2
iput-object v2, v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
goto :goto_1e
.line 1247
:cond_15
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v1, v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
array-length v2, p2
const/4 v3, 0x0
invoke-static {p2, v3, v1, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1249
:goto_1e
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v1, v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
array-length v2, p2
invoke-interface {p1, v1, v2, p3}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 1250
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v1, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset(I)V
.line 1253
return-void
.end method
# virtual methods
.method binaryElement(IILcom/google/android/exoplayer2/extractor/ExtractorInput;)V
.registers 26
.param p1, "id" # I
.param p2, "contentSize" # I
.param p3, "input" # Lcom/google/android/exoplayer2/extractor/ExtractorInput;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 866
move-object/from16 v0, p0
move/from16 v1, p1
move/from16 v2, p2
move-object/from16 v3, p3
const/16 v4, 0xa1
const/4 v5, 0x4
const/16 v6, 0xa3
const/4 v7, 0x0
const/4 v8, 0x1
if-eq v1, v4, :cond_9a
if-eq v1, v6, :cond_9a
const/16 v4, 0x4255
if-eq v1, v4, :cond_8b
const/16 v4, 0x47e2
if-eq v1, v4, :cond_7b
const/16 v4, 0x53ab
if-eq v1, v4, :cond_5c
const/16 v4, 0x63a2
if-eq v1, v4, :cond_4d
const/16 v4, 0x7672
if-ne v1, v4, :cond_36
.line 878
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
new-array v5, v2, [B
iput-object v5, v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionData:[B
.line 879
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v4, v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionData:[B
invoke-interface {v3, v4, v7, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 880
goto/16 :goto_2bc
.line 1026
:cond_36
new-instance v4, Lcom/google/android/exoplayer2/ParserException;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Unexpected id: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-direct {v4, v5}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v4
.line 874
:cond_4d
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
new-array v5, v2, [B
iput-object v5, v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
.line 875
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v4, v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
invoke-interface {v3, v4, v7, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 876
goto/16 :goto_2bc
.line 868
:cond_5c
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryIdBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v4, v4, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
invoke-static {v4, v7}, Ljava/util/Arrays;->fill([BB)V
.line 869
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryIdBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v4, v4, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
sub-int/2addr v5, v2
invoke-interface {v3, v4, v5, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 870
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryIdBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v4, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 871
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryIdBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedInt()J
move-result-wide v4
long-to-int v5, v4
iput v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryId:I
.line 872
goto/16 :goto_2bc
.line 887
:cond_7b
new-array v4, v2, [B
.line 888
.local v4, "encryptionKey":[B
invoke-interface {v3, v4, v7, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 889
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
new-instance v6, Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;
invoke-direct {v6, v8, v4, v7, v7}, Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;-><init>(I[BII)V
iput-object v6, v5, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->cryptoData:Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;
.line 891
goto/16 :goto_2bc
.line 883
.end local v4 # "encryptionKey":[B
:cond_8b
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
new-array v5, v2, [B
iput-object v5, v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleStrippedBytes:[B
.line 884
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v4, v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleStrippedBytes:[B
invoke-interface {v3, v4, v7, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 885
goto/16 :goto_2bc
.line 899
:cond_9a
iget v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
const/16 v9, 0x8
if-nez v4, :cond_bf
.line 900
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->varintReader:Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;
invoke-virtual {v4, v3, v7, v8, v9}, Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;->readUnsignedVarint(Lcom/google/android/exoplayer2/extractor/ExtractorInput;ZZI)J
move-result-wide v10
long-to-int v4, v10
iput v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumber:I
.line 901
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->varintReader:Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;
invoke-virtual {v4}, Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;->getLastLength()I
move-result v4
iput v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumberLength:I
.line 902
const-wide v10, -0x7fffffffffffffffL # -4.9E-324
iput-wide v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockDurationUs:J
.line 903
iput v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
.line 904
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset()V
.line 907
:cond_bf
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
iget v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumber:I
invoke-virtual {v4, v10}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
.line 910
.local v4, "track":Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
if-nez v4, :cond_d5
.line 911
iget v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumberLength:I
sub-int v5, v2, v5
invoke-interface {v3, v5}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->skipFully(I)V
.line 912
iput v7, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
.line 913
return-void
.line 916
:cond_d5
iget v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
if-ne v10, v8, :cond_288
.line 918
const/4 v10, 0x3
invoke-direct {v0, v3, v10}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readScratch(Lcom/google/android/exoplayer2/extractor/ExtractorInput;I)V
.line 919
iget-object v11, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v11, v11, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
const/4 v12, 0x2
aget-byte v11, v11, v12
and-int/lit8 v11, v11, 0x6
shr-int/2addr v11, v8
.line 920
.local v11, "lacing":I
const/16 v13, 0xff
if-nez v11, :cond_fe
.line 921
iput v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleCount:I
.line 922
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
invoke-static {v5, v8}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->ensureArrayCapacity([II)[I
move-result-object v5
iput-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
.line 923
iget v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumberLength:I
sub-int v14, v2, v14
sub-int/2addr v14, v10
aput v14, v5, v7
goto/16 :goto_215
.line 925
:cond_fe
if-ne v1, v6, :cond_280
.line 930
invoke-direct {v0, v3, v5}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readScratch(Lcom/google/android/exoplayer2/extractor/ExtractorInput;I)V
.line 931
iget-object v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v14, v14, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
aget-byte v14, v14, v10
and-int/2addr v14, v13
add-int/2addr v14, v8
iput v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleCount:I
.line 932
iget-object v15, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
.line 933
invoke-static {v15, v14}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->ensureArrayCapacity([II)[I
move-result-object v14
iput-object v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
.line 934
if-ne v11, v12, :cond_124
.line 935
iget v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumberLength:I
sub-int v10, v2, v10
sub-int/2addr v10, v5
iget v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleCount:I
div-int/2addr v10, v5
.line 937
.local v10, "blockLacingSampleSize":I
invoke-static {v14, v7, v5, v10}, Ljava/util/Arrays;->fill([IIII)V
.line 938
.end local v10 # "blockLacingSampleSize":I
goto/16 :goto_215
:cond_124
if-ne v11, v8, :cond_15f
.line 939
const/4 v5, 0x0
.line 940
.local v5, "totalSamplesSize":I
const/4 v10, 0x4
.line 941
.local v10, "headerSize":I
const/4 v14, 0x0
.local v14, "sampleIndex":I
:goto_129
iget v15, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleCount:I
add-int/lit8 v6, v15, -0x1
if-ge v14, v6, :cond_152
.line 942
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
aput v7, v6, v14
.line 945
:cond_133
add-int/2addr v10, v8
invoke-direct {v0, v3, v10}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readScratch(Lcom/google/android/exoplayer2/extractor/ExtractorInput;I)V
.line 946
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v6, v6, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
add-int/lit8 v15, v10, -0x1
aget-byte v6, v6, v15
and-int/2addr v6, v13
.line 947
.local v6, "byteValue":I
iget-object v15, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
aget v16, v15, v14
add-int v16, v16, v6
aput v16, v15, v14
.line 948
if-eq v6, v13, :cond_133
.line 949
aget v15, v15, v14
add-int/2addr v5, v15
.line 941
.end local v6 # "byteValue":I
add-int/lit8 v14, v14, 0x1
const/16 v6, 0xa3
goto :goto_129
.line 951
.end local v14 # "sampleIndex":I
:cond_152
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
sub-int/2addr v15, v8
iget v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumberLength:I
sub-int v14, v2, v14
sub-int/2addr v14, v10
sub-int/2addr v14, v5
aput v14, v6, v15
.line 953
.end local v5 # "totalSamplesSize":I
.end local v10 # "headerSize":I
goto/16 :goto_215
:cond_15f
if-ne v11, v10, :cond_269
.line 954
const/4 v5, 0x0
.line 955
.restart local v5 # "totalSamplesSize":I
const/4 v6, 0x4
.line 956
.local v6, "headerSize":I
const/4 v10, 0x0
.local v10, "sampleIndex":I
:goto_164
iget v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleCount:I
add-int/lit8 v15, v14, -0x1
if-ge v10, v15, :cond_208
.line 957
iget-object v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
aput v7, v14, v10
.line 958
add-int/lit8 v6, v6, 0x1
invoke-direct {v0, v3, v6}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readScratch(Lcom/google/android/exoplayer2/extractor/ExtractorInput;I)V
.line 959
iget-object v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v14, v14, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
add-int/lit8 v15, v6, -0x1
aget-byte v14, v14, v15
if-eqz v14, :cond_200
.line 962
const-wide/16 v14, 0x0
.line 963
.local v14, "readValue":J
const/16 v16, 0x0
move/from16 v12, v16
.local v12, "i":I
:goto_183
if-ge v12, v9, :cond_1d0
.line 964
rsub-int/lit8 v16, v12, 0x7
shl-int v16, v8, v16
.line 965
.local v16, "lengthMask":I
iget-object v7, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v7, v7, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
add-int/lit8 v17, v6, -0x1
aget-byte v7, v7, v17
and-int v7, v7, v16
if-eqz v7, :cond_1cb
.line 966
add-int/lit8 v7, v6, -0x1
.line 967
.local v7, "readPosition":I
add-int/2addr v6, v12
.line 968
invoke-direct {v0, v3, v6}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readScratch(Lcom/google/android/exoplayer2/extractor/ExtractorInput;I)V
.line 969
iget-object v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v8, v8, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
add-int/lit8 v18, v7, 0x1
.end local v7 # "readPosition":I
.local v18, "readPosition":I
aget-byte v7, v8, v7
and-int/2addr v7, v13
xor-int/lit8 v8, v16, -0x1
and-int/2addr v7, v8
int-to-long v7, v7
move-wide v14, v7
move/from16 v7, v18
.line 970
.end local v18 # "readPosition":I
.restart local v7 # "readPosition":I
:goto_1ab
if-ge v7, v6, :cond_1bc
.line 971
shl-long/2addr v14, v9
.line 972
iget-object v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v8, v8, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
add-int/lit8 v18, v7, 0x1
.end local v7 # "readPosition":I
.restart local v18 # "readPosition":I
aget-byte v7, v8, v7
and-int/2addr v7, v13
int-to-long v7, v7
or-long/2addr v14, v7
move/from16 v7, v18
goto :goto_1ab
.line 975
.end local v18 # "readPosition":I
.restart local v7 # "readPosition":I
:cond_1bc
if-lez v10, :cond_1d0
.line 976
mul-int/lit8 v8, v12, 0x7
add-int/lit8 v8, v8, 0x6
const-wide/16 v18, 0x1
shl-long v20, v18, v8
sub-long v20, v20, v18
sub-long v14, v14, v20
goto :goto_1d0
.line 963
.end local v7 # "readPosition":I
.end local v16 # "lengthMask":I
:cond_1cb
add-int/lit8 v12, v12, 0x1
const/4 v7, 0x0
const/4 v8, 0x1
goto :goto_183
.line 981
.end local v12 # "i":I
:cond_1d0
:goto_1d0
const-wide/32 v7, -0x80000000
cmp-long v12, v14, v7
if-ltz v12, :cond_1f8
const-wide/32 v7, 0x7fffffff
cmp-long v12, v14, v7
if-gtz v12, :cond_1f8
.line 984
long-to-int v7, v14
.line 985
.local v7, "intReadValue":I
iget-object v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
if-nez v10, :cond_1e5
move v12, v7
goto :goto_1ea
:cond_1e5
add-int/lit8 v12, v10, -0x1
aget v12, v8, v12
add-int/2addr v12, v7
:goto_1ea
aput v12, v8, v10
.line 987
iget-object v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
aget v8, v8, v10
add-int/2addr v5, v8
.line 956
.end local v7 # "intReadValue":I
.end local v14 # "readValue":J
add-int/lit8 v10, v10, 0x1
const/4 v7, 0x0
const/4 v8, 0x1
const/4 v12, 0x2
goto/16 :goto_164
.line 982
.restart local v14 # "readValue":J
:cond_1f8
new-instance v7, Lcom/google/android/exoplayer2/ParserException;
const-string v8, "EBML lacing sample size out of range."
invoke-direct {v7, v8}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v7
.line 960
.end local v14 # "readValue":J
:cond_200
new-instance v7, Lcom/google/android/exoplayer2/ParserException;
const-string v8, "No valid varint length mask found"
invoke-direct {v7, v8}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v7
.line 989
.end local v10 # "sampleIndex":I
:cond_208
iget-object v7, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
const/4 v8, 0x1
sub-int/2addr v14, v8
iget v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumberLength:I
sub-int v8, v2, v8
sub-int/2addr v8, v6
sub-int/2addr v8, v5
aput v8, v7, v14
.line 991
.end local v5 # "totalSamplesSize":I
.end local v6 # "headerSize":I
nop
.line 997
:goto_215
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v5, v5, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
const/4 v6, 0x0
aget-byte v5, v5, v6
shl-int/2addr v5, v9
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v6, v6, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
const/4 v7, 0x1
aget-byte v6, v6, v7
and-int/2addr v6, v13
or-int/2addr v5, v6
.line 998
.local v5, "timecode":I
iget-wide v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->clusterTimecodeUs:J
int-to-long v12, v5
invoke-direct {v0, v12, v13}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scaleTimecodeToUs(J)J
move-result-wide v12
add-long/2addr v6, v12
iput-wide v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTimeUs:J
.line 999
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v6, v6, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
const/4 v7, 0x2
aget-byte v6, v6, v7
and-int/2addr v6, v9
if-ne v6, v9, :cond_23c
const/4 v6, 0x1
goto :goto_23d
:cond_23c
const/4 v6, 0x0
.line 1000
.local v6, "isInvisible":Z
:goto_23d
iget v8, v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->type:I
if-eq v8, v7, :cond_253
const/16 v8, 0xa3
if-ne v1, v8, :cond_251
iget-object v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v8, v8, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
aget-byte v8, v8, v7
const/16 v7, 0x80
and-int/2addr v8, v7
if-ne v8, v7, :cond_251
goto :goto_253
:cond_251
const/4 v7, 0x0
goto :goto_254
:cond_253
:goto_253
const/4 v7, 0x1
.line 1002
.local v7, "isKeyframe":Z
:goto_254
if-eqz v7, :cond_258
const/4 v8, 0x1
goto :goto_259
:cond_258
const/4 v8, 0x0
:goto_259
if-eqz v6, :cond_25e
const/high16 v9, -0x80000000
goto :goto_25f
:cond_25e
const/4 v9, 0x0
:goto_25f
or-int/2addr v8, v9
iput v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
.line 1004
const/4 v8, 0x2
iput v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
.line 1005
const/4 v8, 0x0
iput v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleIndex:I
goto :goto_288
.line 993
.end local v5 # "timecode":I
.end local v6 # "isInvisible":Z
.end local v7 # "isKeyframe":Z
:cond_269
new-instance v5, Lcom/google/android/exoplayer2/ParserException;
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "Unexpected lacing value: "
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-direct {v5, v6}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v5
.line 926
:cond_280
new-instance v5, Lcom/google/android/exoplayer2/ParserException;
const-string v6, "Lacing only supported in SimpleBlocks."
invoke-direct {v5, v6}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v5
.line 1008
.end local v11 # "lacing":I
:cond_288
:goto_288
const/16 v5, 0xa3
if-ne v1, v5, :cond_2b3
.line 1010
:goto_28c
iget v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleIndex:I
iget v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleCount:I
if-ge v5, v6, :cond_2af
.line 1011
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
aget v5, v6, v5
invoke-direct {v0, v3, v4, v5}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->writeSampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;I)V
.line 1012
iget-wide v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTimeUs:J
iget v7, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleIndex:I
iget v8, v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->defaultSampleDurationNs:I
mul-int v7, v7, v8
div-int/lit16 v7, v7, 0x3e8
int-to-long v7, v7
add-long/2addr v5, v7
.line 1014
.local v5, "sampleTimeUs":J
invoke-direct {v0, v4, v5, v6}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->commitSampleToOutput(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;J)V
.line 1015
iget v7, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleIndex:I
const/4 v8, 0x1
add-int/2addr v7, v8
iput v7, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleIndex:I
.line 1016
.end local v5 # "sampleTimeUs":J
goto :goto_28c
.line 1017
:cond_2af
const/4 v5, 0x0
iput v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
goto :goto_2bc
.line 1021
:cond_2b3
const/4 v5, 0x0
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
aget v5, v6, v5
invoke-direct {v0, v3, v4, v5}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->writeSampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;I)V
.line 1024
nop
.line 1028
.end local v4 # "track":Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
:goto_2bc
return-void
.end method
.method endMasterElement(I)V
.registers 10
.param p1, "id" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 509
const/16 v0, 0xa0
const/4 v1, 0x0
const/4 v2, 0x1
if-eq p1, v0, :cond_f1
const/16 v0, 0xae
if-eq p1, v0, :cond_cf
const/16 v0, 0x4dbb
const v3, 0x1c53bb6b
if-eq p1, v0, :cond_b5
const/16 v0, 0x6240
if-eq p1, v0, :cond_83
const/16 v0, 0x6d80
if-eq p1, v0, :cond_6d
const v0, 0x1549a966
if-eq p1, v0, :cond_4f
const v0, 0x1654ae6b
if-eq p1, v0, :cond_38
if-eq p1, v3, :cond_27
goto/16 :goto_112
.line 528
:cond_27
iget-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sentSeekMap:Z
if-nez v0, :cond_112
.line 529
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
invoke-direct {p0}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->buildSeekMap()Lcom/google/android/exoplayer2/extractor/SeekMap;
move-result-object v1
invoke-interface {v0, v1}, Lcom/google/android/exoplayer2/extractor/ExtractorOutput;->seekMap(Lcom/google/android/exoplayer2/extractor/SeekMap;)V
.line 530
iput-boolean v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sentSeekMap:Z
goto/16 :goto_112
.line 569
:cond_38
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
invoke-virtual {v0}, Landroid/util/SparseArray;->size()I
move-result v0
if-eqz v0, :cond_47
.line 572
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
invoke-interface {v0}, Lcom/google/android/exoplayer2/extractor/ExtractorOutput;->endTracks()V
.line 573
goto/16 :goto_112
.line 570
:cond_47
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
const-string v1, "No valid tracks were found"
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.line 511
:cond_4f
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->timecodeScale:J
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
cmp-long v4, v0, v2
if-nez v4, :cond_5f
.line 513
const-wide/32 v0, 0xf4240
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->timecodeScale:J
.line 515
:cond_5f
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationTimecode:J
cmp-long v4, v0, v2
if-eqz v4, :cond_112
.line 516
invoke-direct {p0, v0, v1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scaleTimecodeToUs(J)J
move-result-wide v0
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationUs:J
goto/16 :goto_112
.line 557
:cond_6d
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->hasContentEncryption:Z
if-eqz v0, :cond_112
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v0, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleStrippedBytes:[B
if-nez v0, :cond_7b
goto/16 :goto_112
.line 558
:cond_7b
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
const-string v1, "Combining encryption and compression is not supported"
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.line 548
:cond_83
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->hasContentEncryption:Z
if-eqz v0, :cond_112
.line 549
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v0, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->cryptoData:Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;
if-eqz v0, :cond_ad
.line 552
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
new-instance v3, Lcom/google/android/exoplayer2/drm/DrmInitData;
new-array v2, v2, [Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
new-instance v4, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
sget-object v5, Lcom/google/android/exoplayer2/C;->UUID_NIL:Ljava/util/UUID;
iget-object v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v6, v6, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->cryptoData:Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;
iget-object v6, v6, Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;->encryptionKey:[B
const-string/jumbo v7, "video/webm"
invoke-direct {v4, v5, v7, v6}, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;-><init>(Ljava/util/UUID;Ljava/lang/String;[B)V
aput-object v4, v2, v1
invoke-direct {v3, v2}, Lcom/google/android/exoplayer2/drm/DrmInitData;-><init>([Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;)V
iput-object v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->drmInitData:Lcom/google/android/exoplayer2/drm/DrmInitData;
goto :goto_112
.line 550
:cond_ad
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
const-string v1, "Encrypted Track found but ContentEncKeyID was not found"
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.line 520
:cond_b5
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryId:I
const/4 v1, -0x1
if-eq v0, v1, :cond_c7
iget-wide v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryPosition:J
const-wide/16 v4, -0x1
cmp-long v6, v1, v4
if-eqz v6, :cond_c7
.line 523
if-ne v0, v3, :cond_112
.line 524
iput-wide v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cuesContentPosition:J
goto :goto_112
.line 521
:cond_c7
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
const-string v1, "Mandatory element SeekID or SeekPosition not found"
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.line 562
:cond_cf
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v0, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
invoke-static {v0}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->isCodecSupported(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_ed
.line 563
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->number:I
invoke-virtual {v0, v1, v2}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->initializeOutput(Lcom/google/android/exoplayer2/extractor/ExtractorOutput;I)V
.line 564
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget v1, v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->number:I
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
invoke-virtual {v0, v1, v2}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
.line 566
:cond_ed
const/4 v0, 0x0
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
.line 567
goto :goto_112
.line 536
:cond_f1
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
const/4 v3, 0x2
if-eq v0, v3, :cond_f7
.line 538
return-void
.line 541
:cond_f7
iget-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSeenReferenceBlock:Z
if-nez v0, :cond_100
.line 542
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
or-int/2addr v0, v2
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
.line 544
:cond_100
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
iget v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumber:I
invoke-virtual {v0, v2}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTimeUs:J
invoke-direct {p0, v0, v2, v3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->commitSampleToOutput(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;J)V
.line 545
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
.line 546
nop
.line 577
:cond_112
:goto_112
return-void
.end method
.method floatElement(ID)V
.registers 6
.param p1, "id" # I
.param p2, "value" # D
.line 791
const/16 v0, 0xb5
if-eq p1, v0, :cond_61
const/16 v0, 0x4489
if-eq p1, v0, :cond_5d
packed-switch p1, :pswitch_data_68
packed-switch p1, :pswitch_data_80
goto :goto_67
.line 835
:pswitch_f
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionPoseRoll:F
.line 836
goto :goto_67
.line 832
:pswitch_15
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionPosePitch:F
.line 833
goto :goto_67
.line 829
:pswitch_1b
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionPoseYaw:F
.line 830
goto :goto_67
.line 826
:pswitch_21
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->minMasteringLuminance:F
.line 827
goto :goto_67
.line 823
:pswitch_27
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->maxMasteringLuminance:F
.line 824
goto :goto_67
.line 820
:pswitch_2d
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->whitePointChromaticityY:F
.line 821
goto :goto_67
.line 817
:pswitch_33
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->whitePointChromaticityX:F
.line 818
goto :goto_67
.line 814
:pswitch_39
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->primaryBChromaticityY:F
.line 815
goto :goto_67
.line 811
:pswitch_3f
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->primaryBChromaticityX:F
.line 812
goto :goto_67
.line 808
:pswitch_45
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->primaryGChromaticityY:F
.line 809
goto :goto_67
.line 805
:pswitch_4b
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->primaryGChromaticityX:F
.line 806
goto :goto_67
.line 802
:pswitch_51
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->primaryRChromaticityY:F
.line 803
goto :goto_67
.line 799
:pswitch_57
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->primaryRChromaticityX:F
.line 800
goto :goto_67
.line 793
:cond_5d
double-to-long v0, p2
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationTimecode:J
.line 794
goto :goto_67
.line 796
:cond_61
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleRate:I
.line 797
nop
.line 840
:goto_67
return-void
:pswitch_data_68
.packed-switch 0x55d1
:pswitch_57
:pswitch_51
:pswitch_4b
:pswitch_45
:pswitch_3f
:pswitch_39
:pswitch_33
:pswitch_2d
:pswitch_27
:pswitch_21
.end packed-switch
:pswitch_data_80
.packed-switch 0x7673
:pswitch_1b
:pswitch_15
:pswitch_f
.end packed-switch
.end method
.method public init(Lcom/google/android/exoplayer2/extractor/ExtractorOutput;)V
.registers 2
.param p1, "output" # Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
.line 412
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
.line 413
return-void
.end method
.method integerElement(IJ)V
.registers 11
.param p1, "id" # I
.param p2, "value" # J
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 580
const/16 v0, 0x5031
const-string v1, " not supported"
if-eq p1, v0, :cond_22d
const/16 v0, 0x5032
const-wide/16 v2, 0x1
if-eq p1, v0, :cond_20e
const/4 v0, 0x0
const/4 v4, 0x3
const/4 v5, 0x2
const/4 v6, 0x1
sparse-switch p1, :sswitch_data_24e
const/4 v0, 0x7
const/4 v1, 0x6
packed-switch p1, :pswitch_data_2c0
goto/16 :goto_233
.line 765
:pswitch_1a
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->maxFrameAverageLuminance:I
.line 766
goto/16 :goto_233
.line 762
:pswitch_21
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->maxContentLuminance:I
.line 763
goto/16 :goto_233
.line 714
:pswitch_28
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-boolean v6, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->hasColorInfo:Z
.line 715
long-to-int v2, p2
if-eq v2, v6, :cond_4b
const/16 v3, 0x9
if-eq v2, v3, :cond_45
const/4 v3, 0x4
if-eq v2, v3, :cond_3f
const/4 v3, 0x5
if-eq v2, v3, :cond_3f
if-eq v2, v1, :cond_3f
if-eq v2, v0, :cond_3f
.line 729
goto/16 :goto_233
.line 723
:cond_3f
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorSpace:I
.line 724
goto/16 :goto_233
.line 726
:cond_45
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorSpace:I
.line 727
goto/16 :goto_233
.line 717
:cond_4b
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorSpace:I
.line 718
goto/16 :goto_233
.line 733
:pswitch_51
long-to-int v2, p2
if-eq v2, v6, :cond_6e
const/16 v3, 0x10
if-eq v2, v3, :cond_68
const/16 v3, 0x12
if-eq v2, v3, :cond_62
if-eq v2, v1, :cond_6e
if-eq v2, v0, :cond_6e
.line 746
goto/16 :goto_233
.line 743
:cond_62
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v0, v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorTransfer:I
.line 744
goto/16 :goto_233
.line 740
:cond_68
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorTransfer:I
.line 741
goto/16 :goto_233
.line 737
:cond_6e
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorTransfer:I
.line 738
goto/16 :goto_233
.line 750
:pswitch_74
long-to-int v0, p2
if-eq v0, v6, :cond_81
if-eq v0, v5, :cond_7b
.line 758
goto/16 :goto_233
.line 755
:cond_7b
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorRange:I
.line 756
goto/16 :goto_233
.line 752
:cond_81
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorRange:I
.line 753
goto/16 :goto_233
.line 599
:sswitch_87
iput-wide p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->timecodeScale:J
.line 600
goto/16 :goto_233
.line 629
:sswitch_8b
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->defaultSampleDurationNs:I
.line 630
goto/16 :goto_233
.line 768
:sswitch_92
long-to-int v1, p2
if-eqz v1, :cond_af
if-eq v1, v6, :cond_a9
if-eq v1, v5, :cond_a3
if-eq v1, v4, :cond_9d
.line 782
goto/16 :goto_233
.line 779
:cond_9d
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionType:I
.line 780
goto/16 :goto_233
.line 776
:cond_a3
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionType:I
.line 777
goto/16 :goto_233
.line 773
:cond_a9
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionType:I
.line 774
goto/16 :goto_233
.line 770
:cond_af
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v0, v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionType:I
.line 771
goto/16 :goto_233
.line 641
:sswitch_b5
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->audioBitDepth:I
.line 642
goto/16 :goto_233
.line 635
:sswitch_bc
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-wide p2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->seekPreRollNs:J
.line 636
goto/16 :goto_233
.line 632
:sswitch_c2
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-wide p2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecDelayNs:J
.line 633
goto/16 :goto_233
.line 623
:sswitch_c8
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
cmp-long v4, p2, v2
if-nez v4, :cond_cf
const/4 v0, 0x1
:cond_cf
iput-boolean v0, v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->flagForced:Z
.line 624
goto/16 :goto_233
.line 611
:sswitch_d3
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayHeight:I
.line 612
goto/16 :goto_233
.line 614
:sswitch_da
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayUnit:I
.line 615
goto/16 :goto_233
.line 608
:sswitch_e1
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayWidth:I
.line 609
goto/16 :goto_233
.line 695
:sswitch_e8
long-to-int v1, p2
.line 696
.local v1, "layout":I
if-eqz v1, :cond_107
if-eq v1, v6, :cond_101
if-eq v1, v4, :cond_fb
const/16 v0, 0xf
if-eq v1, v0, :cond_f5
.line 710
goto/16 :goto_233
.line 707
:cond_f5
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->stereoMode:I
.line 708
goto/16 :goto_233
.line 704
:cond_fb
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->stereoMode:I
.line 705
goto/16 :goto_233
.line 701
:cond_101
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->stereoMode:I
.line 702
goto/16 :goto_233
.line 698
:cond_107
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v0, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->stereoMode:I
.line 699
goto/16 :goto_233
.line 596
.end local v1 # "layout":I
:sswitch_10d
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
add-long/2addr v0, p2
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryPosition:J
.line 597
goto/16 :goto_233
.line 672
:sswitch_114
cmp-long v0, p2, v2
if-nez v0, :cond_11a
goto/16 :goto_233
.line 673
:cond_11a
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "AESSettingsCipherMode "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.line 666
:sswitch_134
const-wide/16 v2, 0x5
cmp-long v0, p2, v2
if-nez v0, :cond_13c
goto/16 :goto_233
.line 667
:cond_13c
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "ContentEncAlgo "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.line 583
:sswitch_156
cmp-long v0, p2, v2
if-nez v0, :cond_15c
goto/16 :goto_233
.line 584
:cond_15c
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "EBMLReadVersion "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.line 589
:sswitch_176
cmp-long v0, p2, v2
if-ltz v0, :cond_182
const-wide/16 v2, 0x2
cmp-long v0, p2, v2
if-gtz v0, :cond_182
goto/16 :goto_233
.line 590
:cond_182
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "DocTypeReadVersion "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.line 660
:sswitch_19c
const-wide/16 v2, 0x3
cmp-long v0, p2, v2
if-nez v0, :cond_1a4
goto/16 :goto_233
.line 661
:cond_1a4
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "ContentCompAlgo "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.line 644
:sswitch_1be
iput-boolean v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSeenReferenceBlock:Z
.line 645
goto/16 :goto_233
.line 680
:sswitch_1c2
iget-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seenClusterPositionForCurrentCuePoint:Z
if-nez v0, :cond_233
.line 684
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
invoke-virtual {v0, p2, p3}, Lcom/google/android/exoplayer2/util/LongArray;->add(J)V
.line 685
iput-boolean v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seenClusterPositionForCurrentCuePoint:Z
goto :goto_233
.line 689
:sswitch_1ce
invoke-direct {p0, p2, p3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scaleTimecodeToUs(J)J
move-result-wide v0
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->clusterTimecodeUs:J
.line 690
goto :goto_233
.line 617
:sswitch_1d5
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->number:I
.line 618
goto :goto_233
.line 605
:sswitch_1db
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->height:I
.line 606
goto :goto_233
.line 677
:sswitch_1e1
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
invoke-direct {p0, p2, p3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scaleTimecodeToUs(J)J
move-result-wide v1
invoke-virtual {v0, v1, v2}, Lcom/google/android/exoplayer2/util/LongArray;->add(J)V
.line 678
goto :goto_233
.line 602
:sswitch_1eb
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->width:I
.line 603
goto :goto_233
.line 638
:sswitch_1f1
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->channelCount:I
.line 639
goto :goto_233
.line 692
:sswitch_1f7
invoke-direct {p0, p2, p3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scaleTimecodeToUs(J)J
move-result-wide v0
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockDurationUs:J
.line 693
goto :goto_233
.line 620
:sswitch_1fe
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
cmp-long v4, p2, v2
if-nez v4, :cond_205
const/4 v0, 0x1
:cond_205
iput-boolean v0, v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->flagDefault:Z
.line 621
goto :goto_233
.line 626
:sswitch_208
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int v1, p2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->type:I
.line 627
goto :goto_233
.line 654
:cond_20e
cmp-long v0, p2, v2
if-nez v0, :cond_213
goto :goto_233
.line 655
:cond_213
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "ContentEncodingScope "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.line 648
:cond_22d
const-wide/16 v2, 0x0
cmp-long v0, p2, v2
if-nez v0, :cond_234
.line 788
:cond_233
:goto_233
return-void
.line 649
:cond_234
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "ContentEncodingOrder "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
:sswitch_data_24e
.sparse-switch
0x83 -> :sswitch_208
0x88 -> :sswitch_1fe
0x9b -> :sswitch_1f7
0x9f -> :sswitch_1f1
0xb0 -> :sswitch_1eb
0xb3 -> :sswitch_1e1
0xba -> :sswitch_1db
0xd7 -> :sswitch_1d5
0xe7 -> :sswitch_1ce
0xf1 -> :sswitch_1c2
0xfb -> :sswitch_1be
0x4254 -> :sswitch_19c
0x4285 -> :sswitch_176
0x42f7 -> :sswitch_156
0x47e1 -> :sswitch_134
0x47e8 -> :sswitch_114
0x53ac -> :sswitch_10d
0x53b8 -> :sswitch_e8
0x54b0 -> :sswitch_e1
0x54b2 -> :sswitch_da
0x54ba -> :sswitch_d3
0x55aa -> :sswitch_c8
0x56aa -> :sswitch_c2
0x56bb -> :sswitch_bc
0x6264 -> :sswitch_b5
0x7671 -> :sswitch_92
0x23e383 -> :sswitch_8b
0x2ad7b1 -> :sswitch_87
.end sparse-switch
:pswitch_data_2c0
.packed-switch 0x55b9
:pswitch_74
:pswitch_51
:pswitch_28
:pswitch_21
:pswitch_1a
.end packed-switch
.end method
.method public read(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/PositionHolder;)I
.registers 7
.param p1, "input" # Lcom/google/android/exoplayer2/extractor/ExtractorInput;
.param p2, "seekPosition" # Lcom/google/android/exoplayer2/extractor/PositionHolder;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 435
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleRead:Z
.line 436
const/4 v1, 0x1
.line 437
.local v1, "continueReading":Z
:cond_4
if-eqz v1, :cond_1e
iget-boolean v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleRead:Z
if-nez v2, :cond_1e
.line 438
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->reader:Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;
invoke-interface {v2, p1}, Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;->read(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)Z
move-result v1
.line 439
if-eqz v1, :cond_4
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v2
invoke-direct {p0, p2, v2, v3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->maybeSeekForCues(Lcom/google/android/exoplayer2/extractor/PositionHolder;J)Z
move-result v2
if-eqz v2, :cond_4
.line 440
const/4 v0, 0x1
return v0
.line 443
:cond_1e
if-nez v1, :cond_39
.line 444
const/4 v0, 0x0
.local v0, "i":I
:goto_21
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
invoke-virtual {v2}, Landroid/util/SparseArray;->size()I
move-result v2
if-ge v0, v2, :cond_37
.line 445
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
invoke-virtual {v2, v0}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
invoke-virtual {v2}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->outputPendingSampleMetadata()V
.line 444
add-int/lit8 v0, v0, 0x1
goto :goto_21
.line 447
.end local v0 # "i":I
:cond_37
const/4 v0, -0x1
return v0
.line 449
:cond_39
return v0
.end method
.method public release()V
.registers 1
.line 430
return-void
.end method
.method public seek(JJ)V
.registers 7
.param p1, "position" # J
.param p3, "timeUs" # J
.line 417
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->clusterTimecodeUs:J
.line 418
const/4 v0, 0x0
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
.line 419
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->reader:Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;
invoke-interface {v0}, Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;->reset()V
.line 420
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->varintReader:Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;->reset()V
.line 421
invoke-direct {p0}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->resetSample()V
.line 422
const/4 v0, 0x0
.local v0, "i":I
:goto_18
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
invoke-virtual {v1}, Landroid/util/SparseArray;->size()I
move-result v1
if-ge v0, v1, :cond_2e
.line 423
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
invoke-virtual {v1, v0}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->reset()V
.line 422
add-int/lit8 v0, v0, 0x1
goto :goto_18
.line 425
.end local v0 # "i":I
:cond_2e
return-void
.end method
.method public sniff(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)Z
.registers 3
.param p1, "input" # Lcom/google/android/exoplayer2/extractor/ExtractorInput;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 407
new-instance v0, Lcom/google/android/exoplayer2/extractor/mkv/Sniffer;
invoke-direct {v0}, Lcom/google/android/exoplayer2/extractor/mkv/Sniffer;-><init>()V
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/extractor/mkv/Sniffer;->sniff(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)Z
move-result v0
return v0
.end method
.method startMasterElement(IJJ)V
.registers 12
.param p1, "id" # I
.param p2, "contentPosition" # J
.param p4, "contentSize" # J
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 454
const/16 v0, 0xa0
const/4 v1, 0x0
if-eq p1, v0, :cond_90
const/16 v0, 0xae
if-eq p1, v0, :cond_87
const/16 v0, 0xbb
if-eq p1, v0, :cond_84
const/16 v0, 0x4dbb
const-wide/16 v1, -0x1
if-eq p1, v0, :cond_7e
const/16 v0, 0x5035
const/4 v3, 0x1
if-eq p1, v0, :cond_79
const/16 v0, 0x55d0
if-eq p1, v0, :cond_74
const v0, 0x18538067
if-eq p1, v0, :cond_5c
const v0, 0x1c53bb6b
if-eq p1, v0, :cond_4d
const v0, 0x1f43b675
if-eq p1, v0, :cond_2d
goto/16 :goto_93
.line 475
:cond_2d
iget-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sentSeekMap:Z
if-nez v0, :cond_93
.line 477
iget-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekForCuesEnabled:Z
if-eqz v0, :cond_3e
iget-wide v4, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cuesContentPosition:J
cmp-long v0, v4, v1
if-eqz v0, :cond_3e
.line 479
iput-boolean v3, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekForCues:Z
goto :goto_93
.line 483
:cond_3e
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
new-instance v1, Lcom/google/android/exoplayer2/extractor/SeekMap$Unseekable;
iget-wide v4, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationUs:J
invoke-direct {v1, v4, v5}, Lcom/google/android/exoplayer2/extractor/SeekMap$Unseekable;-><init>(J)V
invoke-interface {v0, v1}, Lcom/google/android/exoplayer2/extractor/ExtractorOutput;->seekMap(Lcom/google/android/exoplayer2/extractor/SeekMap;)V
.line 484
iput-boolean v3, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sentSeekMap:Z
goto :goto_93
.line 468
:cond_4d
new-instance v0, Lcom/google/android/exoplayer2/util/LongArray;
invoke-direct {v0}, Lcom/google/android/exoplayer2/util/LongArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
.line 469
new-instance v0, Lcom/google/android/exoplayer2/util/LongArray;
invoke-direct {v0}, Lcom/google/android/exoplayer2/util/LongArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
.line 470
goto :goto_93
.line 456
:cond_5c
iget-wide v3, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
cmp-long v0, v3, v1
if-eqz v0, :cond_6f
cmp-long v0, v3, p2
if-nez v0, :cond_67
goto :goto_6f
.line 458
:cond_67
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
const-string v1, "Multiple Segment elements not supported"
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.line 460
:cond_6f
:goto_6f
iput-wide p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
.line 461
iput-wide p4, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentSize:J
.line 462
goto :goto_93
.line 501
:cond_74
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-boolean v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->hasColorInfo:Z
.line 502
goto :goto_93
.line 495
:cond_79
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-boolean v3, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->hasContentEncryption:Z
.line 496
goto :goto_93
.line 464
:cond_7e
const/4 v0, -0x1
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryId:I
.line 465
iput-wide v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryPosition:J
.line 466
goto :goto_93
.line 472
:cond_84
iput-boolean v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seenClusterPositionForCurrentCuePoint:Z
.line 473
goto :goto_93
.line 498
:cond_87
new-instance v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;-><init>(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$1;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
.line 499
goto :goto_93
.line 489
:cond_90
iput-boolean v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSeenReferenceBlock:Z
.line 490
nop
.line 506
:cond_93
:goto_93
return-void
.end method
.method stringElement(ILjava/lang/String;)V
.registers 6
.param p1, "id" # I
.param p2, "value" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 843
const/16 v0, 0x86
if-eq p1, v0, :cond_4b
const/16 v0, 0x4282
if-eq p1, v0, :cond_1d
const/16 v0, 0x536e
if-eq p1, v0, :cond_18
const v0, 0x22b59c
if-eq p1, v0, :cond_12
goto :goto_50
.line 857
:cond_12
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
invoke-static {v0, p2}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->access$202(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;Ljava/lang/String;)Ljava/lang/String;
.line 858
goto :goto_50
.line 851
:cond_18
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-object p2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->name:Ljava/lang/String;
.line 852
goto :goto_50
.line 846
:cond_1d
const-string/jumbo v0, "webm"
invoke-virtual {v0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_50
const-string v0, "matroska"
invoke-virtual {v0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_2f
goto :goto_50
.line 847
:cond_2f
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "DocType "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, " not supported"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.line 854
:cond_4b
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-object p2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
.line 855
nop
.line 862
:cond_50
:goto_50
return-void
.end method