MatroskaExtractor.smali
.class public final Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;
.super Ljava/lang/Object;
.source "SourceFile"
# 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$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_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_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_PRIVATE:I = 0x7672
.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 63
new-instance v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$1;
invoke-direct {v0}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$1;-><init>()V
sput-object v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->FACTORY:Lcom/google/android/exoplayer2/extractor/ExtractorsFactory;
const/16 v0, 0x20
new-array v1, v0, [B
.line 227
fill-array-data v1, :array_44
sput-object v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SUBRIP_PREFIX:[B
const/16 v1, 0xc
new-array v1, v1, [B
.line 239
fill-array-data v1, :array_58
sput-object v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SUBRIP_TIMECODE_EMPTY:[B
const-string v1, "Format: Start, End, ReadOrder, Layer, Style, Name, MarginL, MarginR, MarginV, Effect, Text"
.line 254
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
new-array v0, v0, [B
.line 263
fill-array-data v0, :array_62
sput-object v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SSA_PREFIX:[B
const/16 v0, 0xa
new-array v0, v0, [B
.line 280
fill-array-data v0, :array_76
sput-object v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SSA_TIMECODE_EMPTY:[B
.line 302
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
nop
:array_44
.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_58
.array-data 1
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
0x20t
.end array-data
:array_62
.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_76
.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
const/4 v0, 0x0
.line 375
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;-><init>(I)V
return-void
.end method
.method public constructor <init>(I)V
.registers 3
.line 379
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
return-void
.end method
.method constructor <init>(Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;I)V
.registers 7
.line 382
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-wide/16 v0, -0x1
.line 322
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
.line 323
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->timecodeScale:J
.line 324
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationTimecode:J
.line 325
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationUs:J
.line 339
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cuesContentPosition:J
.line 340
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekPositionAfterBuildingCues:J
.line 341
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->clusterTimecodeUs:J
.line 383
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->reader:Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;
.line 384
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
const/4 p1, 0x1
and-int/2addr p2, p1
if-nez p2, :cond_28
goto :goto_29
:cond_28
const/4 p1, 0x0
.line 385
:goto_29
iput-boolean p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekForCuesEnabled:Z
.line 386
new-instance p1, Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;
invoke-direct {p1}, Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->varintReader:Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;
.line 387
new-instance p1, Landroid/util/SparseArray;
invoke-direct {p1}, Landroid/util/SparseArray;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
.line 388
new-instance p1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/4 p2, 0x4
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>(I)V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 389
new-instance p1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-static {p2}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v0
const/4 v1, -0x1
invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v0
invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>([B)V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->vorbisNumPageSamples:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 390
new-instance p1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>(I)V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryIdBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 391
new-instance p1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
sget-object v0, Lcom/google/android/exoplayer2/util/NalUnitUtil;->NAL_START_CODE:[B
invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>([B)V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalStartCode:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 392
new-instance p1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>(I)V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalLength:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 393
new-instance p1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 394
new-instance p1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 395
new-instance p1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/16 p2, 0x8
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>(I)V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionInitializationVector:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 396
new-instance p1, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
return-void
.end method
.method static synthetic access$300()[B
.registers 1
.line 58
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 58
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 13
.line 1358
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_8a
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_8a
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
if-eqz v0, :cond_8a
.line 1359
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/LongArray;->size()I
move-result v0
if-eqz v0, :cond_8a
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
if-eqz v0, :cond_8a
.line 1360
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_8a
.line 1366
: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 1367
new-array v1, v0, [I
.line 1368
new-array v3, v0, [J
.line 1369
new-array v4, v0, [J
.line 1370
new-array v5, v0, [J
const/4 v6, 0x0
const/4 v7, 0x0
:goto_3f
if-ge v7, v0, :cond_57
.line 1372
iget-object v8, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
invoke-virtual {v8, v7}, Lcom/google/android/exoplayer2/util/LongArray;->get(I)J
move-result-wide v8
aput-wide v8, v5, v7
.line 1373
iget-wide v8, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
iget-object v10, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
invoke-virtual {v10, v7}, Lcom/google/android/exoplayer2/util/LongArray;->get(I)J
move-result-wide v10
add-long/2addr v8, v10
aput-wide v8, v3, v7
add-int/lit8 v7, v7, 0x1
goto :goto_3f
:cond_57
:goto_57
add-int/lit8 v7, v0, -0x1
if-ge v6, v7, :cond_6e
add-int/lit8 v7, v6, 0x1
.line 1376
aget-wide v8, v3, v7
aget-wide v10, v3, v6
sub-long/2addr v8, v10
long-to-int v9, v8
aput v9, v1, v6
.line 1377
aget-wide v8, v5, v7
aget-wide v10, v5, v6
sub-long/2addr v8, v10
aput-wide v8, v4, v6
move v6, v7
goto :goto_57
.line 1379
:cond_6e
iget-wide v8, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
iget-wide v10, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentSize:J
add-long/2addr v8, v10
aget-wide v10, v3, v7
sub-long/2addr v8, v10
long-to-int v0, v8
aput v0, v1, v7
.line 1381
iget-wide v8, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationUs:J
aget-wide v10, v5, v7
sub-long/2addr v8, v10
aput-wide v8, v4, v7
.line 1382
iput-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
.line 1383
iput-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
.line 1384
new-instance v0, Lcom/google/android/exoplayer2/extractor/ChunkIndex;
invoke-direct {v0, v1, v3, v4, v5}, Lcom/google/android/exoplayer2/extractor/ChunkIndex;-><init>([I[J[J[J)V
return-object v0
.line 1362
:cond_8a
:goto_8a
iput-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
.line 1363
iput-object v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
.line 1364
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 19
move-object v7, p0
move-object/from16 v8, p1
.line 1080
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_1c
const/16 v3, 0x13
const-wide/16 v4, 0x3e8
.line 1081
sget-object v6, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SUBRIP_TIMECODE_EMPTY:[B
const-string v2, "%02d:%02d:%02d,%03d"
move-object 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_34
.line 1083
:cond_1c
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_34
const/16 v3, 0x15
const-wide/16 v4, 0x2710
.line 1084
sget-object v6, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SSA_TIMECODE_EMPTY:[B
const-string v2, "%01d:%02d:%02d:%02d"
move-object 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 1087
:cond_34
:goto_34
iget-object v0, v8, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->output:Lcom/google/android/exoplayer2/extractor/TrackOutput;
iget v11, v7, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
iget v12, v7, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
const/4 v13, 0x0
iget-object v14, v8, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->cryptoData:Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;
move-object v8, v0
move-wide/from16 v9, p2
invoke-interface/range {v8 .. v14}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleMetadata(JIIILcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;)V
const/4 v0, 0x1
.line 1088
iput-boolean v0, v7, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleRead:Z
.line 1089
invoke-direct {p0}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->resetSample()V
return-void
.end method
.method private commitSubtitleSample(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;Ljava/lang/String;IJ[B)V
.registers 16
.line 1290
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 1294
iget-object p1, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->output:Lcom/google/android/exoplayer2/extractor/TrackOutput;
iget-object p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result p3
invoke-interface {p1, p2, p3}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 1295
iget p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
iget-object p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result p2
add-int/2addr p1, p2
iput p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
return-void
.end method
.method private static ensureArrayCapacity([II)[I
.registers 3
if-nez p0, :cond_5
.line 1458
new-array p0, p1, [I
return-object p0
.line 1459
:cond_5
array-length v0, p0
if-lt v0, p1, :cond_9
return-object p0
.line 1463
:cond_9
array-length p0, p0
mul-int/lit8 p0, p0, 0x2
invoke-static {p0, p1}, Ljava/lang/Math;->max(II)I
move-result p0
new-array p0, p0, [I
return-object p0
.end method
.method private static isCodecSupported(Ljava/lang/String;)Z
.registers 2
const-string v0, "V_VP8"
.line 1421
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "V_VP9"
.line 1422
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "V_MPEG2"
.line 1423
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "V_MPEG4/ISO/SP"
.line 1424
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "V_MPEG4/ISO/ASP"
.line 1425
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "V_MPEG4/ISO/AP"
.line 1426
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "V_MPEG4/ISO/AVC"
.line 1427
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "V_MPEGH/ISO/HEVC"
.line 1428
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "V_MS/VFW/FOURCC"
.line 1429
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "V_THEORA"
.line 1430
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_OPUS"
.line 1431
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_VORBIS"
.line 1432
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_AAC"
.line 1433
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_MPEG/L2"
.line 1434
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_MPEG/L3"
.line 1435
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_AC3"
.line 1436
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_EAC3"
.line 1437
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_TRUEHD"
.line 1438
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_DTS"
.line 1439
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_DTS/EXPRESS"
.line 1440
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_DTS/LOSSLESS"
.line 1441
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_FLAC"
.line 1442
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_MS/ACM"
.line 1443
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "A_PCM/INT/LIT"
.line 1444
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "S_TEXT/UTF8"
.line 1445
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "S_TEXT/ASS"
.line 1446
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "S_VOBSUB"
.line 1447
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "S_HDMV/PGS"
.line 1448
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_eb
const-string v0, "S_DVBSUB"
.line 1449
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_e9
goto :goto_eb
:cond_e9
const/4 p0, 0x0
return p0
:cond_eb
:goto_eb
const/4 p0, 0x1
return p0
.end method
.method private maybeSeekForCues(Lcom/google/android/exoplayer2/extractor/PositionHolder;J)Z
.registers 9
.line 1397
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 1398
iput-wide p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekPositionAfterBuildingCues:J
.line 1399
iget-wide p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cuesContentPosition:J
iput-wide p2, p1, Lcom/google/android/exoplayer2/extractor/PositionHolder;->position:J
.line 1400
iput-boolean v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekForCues:Z
return v1
.line 1405
:cond_f
iget-boolean p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sentSeekMap:Z
if-eqz p2, :cond_20
iget-wide p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekPositionAfterBuildingCues:J
const-wide/16 v3, -0x1
cmp-long v0, p2, v3
if-eqz v0, :cond_20
.line 1406
iput-wide p2, p1, Lcom/google/android/exoplayer2/extractor/PositionHolder;->position:J
.line 1407
iput-wide v3, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekPositionAfterBuildingCues:J
return v1
:cond_20
return v2
.end method
.method private readScratch(Lcom/google/android/exoplayer2/extractor/ExtractorInput;I)V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 1111
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
return-void
.line 1114
: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 1115
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 1116
invoke-virtual {v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result v2
.line 1115
invoke-virtual {v0, v1, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset([BI)V
.line 1118
: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 1119
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p1, p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setLimit(I)V
return-void
.end method
.method private readToOutput(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/TrackOutput;I)I
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 1339
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
if-lez v0, :cond_12
.line 1341
invoke-static {p3, v0}, Ljava/lang/Math;->min(II)I
move-result p1
.line 1342
iget-object p3, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-interface {p2, p3, p1}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
goto :goto_17
:cond_12
const/4 v0, 0x0
.line 1344
invoke-interface {p2, p1, p3, v0}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;IZ)I
move-result p1
.line 1346
:goto_17
iget p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
add-int/2addr p2, p1
iput p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1347
iget p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
add-int/2addr p2, p1
iput p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
return p1
.end method
.method private readToTarget(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[BII)V
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 1324
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
add-int v1, p3, v0
sub-int v2, p4, v0
.line 1325
invoke-interface {p1, p2, v1, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
if-lez v0, :cond_18
.line 1327
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p1, p2, p3, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
.line 1329
:cond_18
iget p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
add-int/2addr p1, p4
iput p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
return-void
.end method
.method private resetSample()V
.registers 2
const/4 v0, 0x0
.line 1093
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1094
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
.line 1095
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleCurrentNalBytesRemaining:I
.line 1096
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleEncodingHandled:Z
.line 1097
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByteRead:Z
.line 1098
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCountRead:Z
.line 1099
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCount:I
.line 1100
iput-byte v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByte:B
.line 1101
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleInitializationVectorRead:Z
.line 1102
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
return-void
.end method
.method private scaleTimecodeToUs(J)J
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 1414
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
const-wide/16 v4, 0x3e8
move-wide v0, p1
.line 1417
invoke-static/range {v0 .. v5}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide p1
return-wide p1
.line 1415
:cond_13
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
const-string p2, "Can\'t scale timecode prior to timecodeScale being set."
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method private static setSampleDuration([BJLjava/lang/String;IJ[B)V
.registers 19
const/4 v0, 0x0
const-wide v1, -0x7fffffffffffffffL # -4.9E-324
cmp-long v3, p1, v1
if-nez v3, :cond_e
move-object/from16 v1, p7
move-object v2, v1
goto :goto_61
:cond_e
const-wide v1, 0xd693a400L
.line 1305
div-long v1, p1, v1
long-to-int v2, v1
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
const-wide/32 v7, 0x3938700
.line 1307
div-long v7, v3, v7
long-to-int v1, v7
mul-int/lit8 v7, v1, 0x3c
int-to-long v7, v7
mul-long v7, v7, v5
sub-long/2addr v3, v7
.line 1309
div-long v7, v3, v5
long-to-int v8, v7
int-to-long v9, v8
mul-long v9, v9, v5
sub-long/2addr v3, v9
.line 1311
div-long v3, v3, p5
long-to-int v4, v3
.line 1312
sget-object v3, Ljava/util/Locale;->US:Ljava/util/Locale;
const/4 v5, 0x4
new-array v5, v5, [Ljava/lang/Object;
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
aput-object v2, v5, v0
const/4 v2, 0x1
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
aput-object v1, v5, v2
const/4 v1, 0x2
.line 1313
invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
aput-object v2, v5, v1
const/4 v1, 0x3
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
aput-object v2, v5, v1
move-object v1, p3
.line 1312
invoke-static {v3, p3, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Util;->getUtf8Bytes(Ljava/lang/String;)[B
move-result-object v1
move-object/from16 v2, p7
.line 1315
:goto_61
array-length v2, v2
move-object v3, p0
move v4, p4
invoke-static {v1, v0, p0, p4, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
return-void
.end method
.method private writeSampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;I)V
.registers 14
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 1124
iget-object v0, p2, 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_10
.line 1125
sget-object p2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SUBRIP_PREFIX:[B
invoke-direct {p0, p1, p2, p3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->writeSubtitleSampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[BI)V
return-void
.line 1127
:cond_10
iget-object v0, p2, 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_20
.line 1128
sget-object p2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->SSA_PREFIX:[B
invoke-direct {p0, p1, p2, p3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->writeSubtitleSampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[BI)V
return-void
.line 1132
:cond_20
iget-object v0, p2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->output:Lcom/google/android/exoplayer2/extractor/TrackOutput;
.line 1133
iget-boolean v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleEncodingHandled:Z
const/4 v2, 0x4
const/4 v3, 0x2
const/4 v4, 0x1
const/4 v5, 0x0
if-nez v1, :cond_176
.line 1134
iget-boolean v1, p2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->hasContentEncryption:Z
if-eqz v1, :cond_166
.line 1137
iget v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
const v6, -0x40000001 # -1.9999999f
and-int/2addr v1, v6
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
.line 1138
iget-boolean v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByteRead:Z
const/16 v6, 0x80
if-nez v1, :cond_64
.line 1139
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v1, v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
invoke-interface {p1, v1, v5, v4}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 1140
iget v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
add-int/2addr v1, v4
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1141
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v1, v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
aget-byte v1, v1, v5
and-int/2addr v1, v6
if-eq v1, v6, :cond_5c
.line 1144
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v1, v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
aget-byte v1, v1, v5
iput-byte v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByte:B
.line 1145
iput-boolean v4, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByteRead:Z
goto :goto_64
.line 1142
:cond_5c
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
const-string p2, "Extension bit is set in signal byte"
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
.line 1147
:cond_64
:goto_64
iget-byte v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByte:B
and-int/2addr v1, v4
if-ne v1, v4, :cond_6b
const/4 v1, 0x1
goto :goto_6c
:cond_6b
const/4 v1, 0x0
:goto_6c
if-eqz v1, :cond_174
.line 1149
iget-byte v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSignalByte:B
and-int/2addr v1, v3
if-ne v1, v3, :cond_75
const/4 v1, 0x1
goto :goto_76
:cond_75
const/4 v1, 0x0
.line 1150
:goto_76
iget v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
const/high16 v8, 0x40000000 # 2.0f
or-int/2addr v7, v8
iput v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
.line 1151
iget-boolean v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleInitializationVectorRead:Z
if-nez v7, :cond_bb
.line 1152
iget-object v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionInitializationVector:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v7, v7, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
const/16 v8, 0x8
invoke-interface {p1, v7, v5, v8}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 1153
iget v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
add-int/2addr v7, v8
iput v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1154
iput-boolean v4, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleInitializationVectorRead:Z
.line 1156
iget-object v7, p0, 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
if-eqz v1, :cond_98
goto :goto_99
:cond_98
const/4 v6, 0x0
:goto_99
or-int/2addr v6, v8
int-to-byte v6, v6
aput-byte v6, v7, v5
.line 1157
iget-object v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v6, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1158
iget-object v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-interface {v0, v6, v4}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 1159
iget v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
add-int/2addr v6, v4
iput v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
.line 1161
iget-object v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionInitializationVector:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v6, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1162
iget-object v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionInitializationVector:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-interface {v0, v6, v8}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 1163
iget v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
add-int/2addr v6, v8
iput v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
:cond_bb
if-eqz v1, :cond_174
.line 1166
iget-boolean v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCountRead:Z
if-nez v1, :cond_dc
.line 1167
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v1, v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
invoke-interface {p1, v1, v5, v4}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 1168
iget v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
add-int/2addr v1, v4
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1169
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v1, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1170
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;->readUnsignedByte()I
move-result v1
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCount:I
.line 1171
iput-boolean v4, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCountRead:Z
.line 1173
:cond_dc
iget v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCount:I
mul-int/lit8 v1, v1, 0x4
.line 1174
iget-object v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v6, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset(I)V
.line 1175
iget-object v6, p0, 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
invoke-interface {p1, v6, v5, v1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 1176
iget v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
add-int/2addr v6, v1
iput v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
.line 1177
iget v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCount:I
div-int/2addr v1, v3
add-int/2addr v1, v4
int-to-short v1, v1
mul-int/lit8 v6, v1, 0x6
add-int/2addr v6, v3
.line 1179
iget-object v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
if-eqz v7, :cond_103
.line 1180
invoke-virtual {v7}, Ljava/nio/ByteBuffer;->capacity()I
move-result v7
if-ge v7, v6, :cond_109
.line 1181
:cond_103
invoke-static {v6}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v7
iput-object v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
.line 1183
:cond_109
iget-object v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
invoke-virtual {v7, v5}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 1184
iget-object v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
invoke-virtual {v7, v1}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;
const/4 v1, 0x0
const/4 v7, 0x0
.line 1192
:goto_115
iget v8, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->samplePartitionCount:I
if-ge v1, v8, :cond_137
.line 1194
iget-object v8, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v8}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v8
.line 1195
rem-int/lit8 v9, v1, 0x2
if-nez v9, :cond_12c
.line 1196
iget-object v9, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
sub-int v7, v8, v7
int-to-short v7, v7
invoke-virtual {v9, v7}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;
goto :goto_133
.line 1199
:cond_12c
iget-object v9, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
sub-int v7, v8, v7
invoke-virtual {v9, v7}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
:goto_133
add-int/lit8 v1, v1, 0x1
move v7, v8
goto :goto_115
.line 1202
:cond_137
iget v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
sub-int v1, p3, v1
sub-int/2addr v1, v7
.line 1203
rem-int/2addr v8, v3
if-ne v8, v4, :cond_145
.line 1204
iget-object v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
invoke-virtual {v7, v1}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
goto :goto_150
.line 1206
:cond_145
iget-object v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
int-to-short v1, v1
invoke-virtual {v7, v1}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;
.line 1207
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
invoke-virtual {v1, v5}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
.line 1209
:goto_150
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v7, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleDataBuffer:Ljava/nio/ByteBuffer;
invoke-virtual {v7}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v7
invoke-virtual {v1, v7, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset([BI)V
.line 1210
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->encryptionSubsampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-interface {v0, v1, v6}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 1211
iget v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
add-int/2addr v1, v6
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
goto :goto_174
.line 1214
:cond_166
iget-object v1, p2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleStrippedBytes:[B
if-eqz v1, :cond_174
.line 1216
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v6, p2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleStrippedBytes:[B
iget-object v7, p2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleStrippedBytes:[B
array-length v7, v7
invoke-virtual {v1, v6, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset([BI)V
.line 1218
:cond_174
:goto_174
iput-boolean v4, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleEncodingHandled:Z
.line 1220
:cond_176
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleStrippedBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result v1
add-int/2addr p3, v1
.line 1222
iget-object v1, p2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
const-string v6, "V_MPEG4/ISO/AVC"
invoke-virtual {v6, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_19c
iget-object v1, p2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
const-string v6, "V_MPEGH/ISO/HEVC"
invoke-virtual {v6, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_192
goto :goto_19c
.line 1254
:cond_192
:goto_192
iget v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
if-ge v1, p3, :cond_1dc
sub-int v1, p3, v1
.line 1255
invoke-direct {p0, p1, v0, v1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readToOutput(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/TrackOutput;I)I
goto :goto_192
.line 1227
:cond_19c
:goto_19c
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalLength:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v1, v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
.line 1228
aput-byte v5, v1, v5
.line 1229
aput-byte v5, v1, v4
.line 1230
aput-byte v5, v1, v3
.line 1231
iget v3, p2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->nalUnitLengthFieldLength:I
.line 1232
iget v4, p2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->nalUnitLengthFieldLength:I
rsub-int/lit8 v4, v4, 0x4
.line 1236
:goto_1ac
iget v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesRead:I
if-ge v6, p3, :cond_1dc
.line 1237
iget v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleCurrentNalBytesRemaining:I
if-nez v6, :cond_1d4
.line 1239
invoke-direct {p0, p1, v1, v4, v3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readToTarget(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[BII)V
.line 1241
iget-object v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalLength:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v6, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1242
iget-object v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalLength:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v6
iput v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleCurrentNalBytesRemaining:I
.line 1244
iget-object v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalStartCode:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v6, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1245
iget-object v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->nalStartCode:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-interface {v0, v6, v2}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 1246
iget v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
add-int/2addr v6, v2
iput v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
goto :goto_1ac
.line 1250
:cond_1d4
invoke-direct {p0, p1, v0, v6}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readToOutput(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/TrackOutput;I)I
move-result v7
sub-int/2addr v6, v7
iput v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleCurrentNalBytesRemaining:I
goto :goto_1ac
.line 1259
:cond_1dc
iget-object p1, p2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
const-string p2, "A_VORBIS"
invoke-virtual {p2, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_1f5
.line 1266
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->vorbisNumPageSamples:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p1, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1267
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->vorbisNumPageSamples:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-interface {v0, p1, v2}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 1268
iget p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
add-int/2addr p1, v2
iput p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleBytesWritten:I
:cond_1f5
return-void
.end method
.method private writeSubtitleSampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;[BI)V
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 1274
array-length v0, p2
add-int/2addr v0, p3
.line 1275
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 1278
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 1280
: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 1282
: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 p2, p2
invoke-interface {p1, v1, p2, p3}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 1283
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->subtitleSample:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p1, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset(I)V
return-void
.end method
# virtual methods
.method final binaryElement(IILcom/google/android/exoplayer2/extractor/ExtractorInput;)V
.registers 23
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
move-object/from16 v0, p0
move/from16 v1, p1
move/from16 v2, p2
move-object/from16 v3, p3
const/16 v4, 0xa1
const/16 v5, 0xa3
const/4 v6, 0x4
const/4 v7, 0x0
const/4 v8, 0x1
if-eq v1, v4, :cond_8e
if-eq v1, v5, :cond_8e
const/16 v4, 0x4255
if-eq v1, v4, :cond_80
const/16 v4, 0x47e2
if-eq v1, v4, :cond_71
const/16 v4, 0x53ab
if-eq v1, v4, :cond_53
const/16 v4, 0x63a2
if-eq v1, v4, :cond_45
const/16 v4, 0x7672
if-ne v1, v4, :cond_35
.line 927
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
new-array v4, v2, [B
iput-object v4, v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionData:[B
.line 928
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v1, v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->projectionData:[B
invoke-interface {v3, v1, v7, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
return-void
.line 1075
:cond_35
new-instance v2, Lcom/google/android/exoplayer2/ParserException;
invoke-static/range {p1 .. p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v1
const-string v3, "Unexpected id: "
invoke-virtual {v3, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-direct {v2, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v2
.line 923
:cond_45
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
new-array v4, v2, [B
iput-object v4, v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
.line 924
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v1, v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecPrivate:[B
invoke-interface {v3, v1, v7, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
return-void
.line 917
:cond_53
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryIdBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v1, v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
invoke-static {v1, v7}, Ljava/util/Arrays;->fill([BB)V
.line 918
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryIdBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v1, v1, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
sub-int/2addr v6, v2
invoke-interface {v3, v1, v6, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 919
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryIdBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v1, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 920
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryIdBytes:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedInt()J
move-result-wide v1
long-to-int v2, v1
iput v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryId:I
return-void
.line 936
:cond_71
new-array v1, v2, [B
.line 937
invoke-interface {v3, v1, v7, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 938
iget-object v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
new-instance v3, Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;
invoke-direct {v3, v8, v1, v7, v7}, Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;-><init>(I[BII)V
iput-object v3, v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->cryptoData:Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;
return-void
.line 932
:cond_80
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
new-array v4, v2, [B
iput-object v4, v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleStrippedBytes:[B
.line 933
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v1, v1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleStrippedBytes:[B
invoke-interface {v3, v1, v7, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
return-void
.line 948
:cond_8e
iget v4, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
const/16 v9, 0x8
if-nez v4, :cond_b3
.line 949
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 950
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
const-wide v10, -0x7fffffffffffffffL # -4.9E-324
.line 951
iput-wide v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockDurationUs:J
.line 952
iput v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
.line 953
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 956
:cond_b3
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;
if-nez v4, :cond_c9
.line 960
iget v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumberLength:I
sub-int v1, v2, v1
invoke-interface {v3, v1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->skipFully(I)V
.line 961
iput v7, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
return-void
.line 965
:cond_c9
iget v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
if-ne v10, v8, :cond_270
const/4 v10, 0x3
.line 967
invoke-direct {v0, v3, v10}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readScratch(Lcom/google/android/exoplayer2/extractor/ExtractorInput;I)V
.line 968
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
const/16 v13, 0xff
if-nez v11, :cond_f1
.line 970
iput v8, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleCount:I
.line 971
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
invoke-static {v6, v8}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->ensureArrayCapacity([II)[I
move-result-object v6
iput-object v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
.line 972
iget v11, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumberLength:I
sub-int/2addr v2, v11
sub-int/2addr v2, v10
aput v2, v6, v7
goto/16 :goto_207
:cond_f1
if-ne v1, v5, :cond_268
.line 979
invoke-direct {v0, v3, v6}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readScratch(Lcom/google/android/exoplayer2/extractor/ExtractorInput;I)V
.line 980
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 981
iget-object v15, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
.line 982
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
if-ne v11, v12, :cond_116
.line 984
iget v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumberLength:I
sub-int/2addr v2, v10
sub-int/2addr v2, v6
iget v6, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleCount:I
div-int/2addr v2, v6
.line 986
invoke-static {v14, v7, v6, v2}, Ljava/util/Arrays;->fill([IIII)V
goto/16 :goto_207
:cond_116
if-ne v11, v8, :cond_14d
const/4 v10, 0x0
const/4 v11, 0x0
.line 990
:goto_11a
iget v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleCount:I
add-int/lit8 v15, v14, -0x1
if-ge v10, v15, :cond_141
.line 991
iget-object v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
aput v7, v14, v10
:cond_124
add-int/2addr v6, v8
.line 994
invoke-direct {v0, v3, v6}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readScratch(Lcom/google/android/exoplayer2/extractor/ExtractorInput;I)V
.line 995
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
and-int/2addr v14, v13
.line 996
iget-object v15, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
aget v16, v15, v10
add-int v16, v16, v14
aput v16, v15, v10
if-eq v14, v13, :cond_124
.line 998
aget v14, v15, v10
add-int/2addr v11, v14
add-int/lit8 v10, v10, 0x1
goto :goto_11a
.line 1000
:cond_141
iget-object v10, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
sub-int/2addr v14, v8
iget v15, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumberLength:I
sub-int/2addr v2, v15
sub-int/2addr v2, v6
sub-int/2addr v2, v11
aput v2, v10, v14
goto/16 :goto_207
:cond_14d
if-ne v11, v10, :cond_258
const/4 v10, 0x0
const/4 v11, 0x0
.line 1005
:goto_151
iget v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleCount:I
add-int/lit8 v15, v14, -0x1
if-ge v10, v15, :cond_1fc
.line 1006
iget-object v14, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
aput v7, v14, v10
add-int/lit8 v6, v6, 0x1
.line 1007
invoke-direct {v0, v3, v6}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readScratch(Lcom/google/android/exoplayer2/extractor/ExtractorInput;I)V
.line 1008
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_1f4
const-wide/16 v16, 0x0
const/4 v14, 0x0
:goto_16d
if-ge v14, v9, :cond_1bf
rsub-int/lit8 v18, v14, 0x7
shl-int v18, v8, v18
.line 1014
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, v15
and-int v5, v5, v18
if-eqz v5, :cond_1b5
add-int/2addr v6, v14
.line 1017
invoke-direct {v0, v3, v6}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->readScratch(Lcom/google/android/exoplayer2/extractor/ExtractorInput;I)V
.line 1018
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
add-int/lit8 v16, v15, 0x1
aget-byte v5, v5, v15
and-int/2addr v5, v13
xor-int/lit8 v15, v18, -0x1
and-int/2addr v5, v15
int-to-long v7, v5
move/from16 v5, v16
:goto_190
move-wide/from16 v16, v7
if-ge v5, v6, :cond_1a7
shl-long v7, v16, v9
.line 1021
iget-object v15, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scratch:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v15, v15, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
add-int/lit8 v16, v5, 0x1
aget-byte v5, v15, v5
and-int/2addr v5, v13
int-to-long v12, v5
or-long/2addr v7, v12
move/from16 v5, v16
const/4 v12, 0x2
const/16 v13, 0xff
goto :goto_190
:cond_1a7
if-lez v10, :cond_1bf
mul-int/lit8 v14, v14, 0x7
add-int/lit8 v14, v14, 0x6
const-wide/16 v7, 0x1
shl-long v12, v7, v14
sub-long/2addr v12, v7
sub-long v16, v16, v12
goto :goto_1bf
:cond_1b5
add-int/lit8 v14, v14, 0x1
const/16 v5, 0xa3
const/4 v7, 0x0
const/4 v8, 0x1
const/4 v12, 0x2
const/16 v13, 0xff
goto :goto_16d
:cond_1bf
:goto_1bf
move-wide/from16 v7, v16
const-wide/32 v12, -0x80000000
cmp-long v5, v7, v12
if-ltz v5, :cond_1ec
const-wide/32 v12, 0x7fffffff
cmp-long v5, v7, v12
if-gtz v5, :cond_1ec
long-to-int v5, v7
.line 1034
iget-object v7, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
if-nez v10, :cond_1d5
goto :goto_1da
:cond_1d5
add-int/lit8 v8, v10, -0x1
aget v8, v7, v8
add-int/2addr v5, v8
:goto_1da
aput v5, v7, v10
.line 1036
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
aget v5, v5, v10
add-int/2addr v11, v5
add-int/lit8 v10, v10, 0x1
const/16 v5, 0xa3
const/4 v7, 0x0
const/4 v8, 0x1
const/4 v12, 0x2
const/16 v13, 0xff
goto/16 :goto_151
.line 1031
:cond_1ec
new-instance v1, Lcom/google/android/exoplayer2/ParserException;
const-string v2, "EBML lacing sample size out of range."
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v1
.line 1009
:cond_1f4
new-instance v1, Lcom/google/android/exoplayer2/ParserException;
const-string v2, "No valid varint length mask found"
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v1
.line 1038
:cond_1fc
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
const/4 v7, 0x1
sub-int/2addr v14, v7
iget v7, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumberLength:I
sub-int/2addr v2, v7
sub-int/2addr v2, v6
sub-int/2addr v2, v11
aput v2, v5, v14
.line 1046
:goto_207
iget-object v2, v0, 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
const/4 v5, 0x0
aget-byte v2, v2, v5
shl-int/2addr v2, v9
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, 0x1
aget-byte v5, v5, v6
const/16 v6, 0xff
and-int/2addr v5, v6
or-int/2addr v2, v5
.line 1047
iget-wide v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->clusterTimecodeUs:J
int-to-long v7, v2
invoke-direct {v0, v7, v8}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scaleTimecodeToUs(J)J
move-result-wide v7
add-long/2addr v5, v7
iput-wide v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTimeUs:J
.line 1048
iget-object v2, v0, 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
const/4 v5, 0x2
aget-byte v2, v2, v5
and-int/2addr v2, v9
if-ne v2, v9, :cond_230
const/4 v2, 0x1
goto :goto_231
:cond_230
const/4 v2, 0x0
.line 1049
:goto_231
iget v6, v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->type:I
if-eq v6, v5, :cond_247
const/16 v6, 0xa3
if-ne v1, v6, :cond_245
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
aget-byte v6, v6, v5
const/16 v5, 0x80
and-int/2addr v6, v5
if-ne v6, v5, :cond_245
goto :goto_247
:cond_245
const/4 v5, 0x0
goto :goto_248
:cond_247
:goto_247
const/4 v5, 0x1
:goto_248
if-eqz v2, :cond_24d
const/high16 v2, -0x80000000
goto :goto_24e
:cond_24d
const/4 v2, 0x0
:goto_24e
or-int/2addr v2, v5
.line 1051
iput v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
const/4 v2, 0x2
.line 1053
iput v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
const/4 v2, 0x0
.line 1054
iput v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleIndex:I
goto :goto_270
.line 1042
:cond_258
new-instance v1, Lcom/google/android/exoplayer2/ParserException;
invoke-static {v11}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v2
const-string v3, "Unexpected lacing value: "
invoke-virtual {v3, v2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v1
.line 975
:cond_268
new-instance v1, Lcom/google/android/exoplayer2/ParserException;
const-string v2, "Lacing only supported in SimpleBlocks."
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v1
:cond_270
:goto_270
const/16 v2, 0xa3
if-ne v1, v2, :cond_29b
.line 1059
:goto_274
iget v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleIndex:I
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleCount:I
if-ge v1, v2, :cond_297
.line 1060
iget-object v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
aget v1, v2, v1
invoke-direct {v0, v3, v4, v1}, 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 1061
iget-wide v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTimeUs:J
iget v5, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleIndex:I
iget v6, v4, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->defaultSampleDurationNs:I
mul-int v5, v5, v6
div-int/lit16 v5, v5, 0x3e8
int-to-long v5, v5
add-long/2addr v1, v5
.line 1063
invoke-direct {v0, v4, v1, v2}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->commitSampleToOutput(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;J)V
.line 1064
iget v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleIndex:I
const/4 v2, 0x1
add-int/2addr v1, v2
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleIndex:I
goto :goto_274
:cond_297
const/4 v1, 0x0
.line 1066
iput v1, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
return-void
:cond_29b
const/4 v1, 0x0
.line 1070
iget-object v2, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockLacingSampleSizes:[I
aget v1, v2, v1
invoke-direct {v0, v3, v4, v1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->writeSampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;I)V
return-void
.end method
.method final endMasterElement(I)V
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
const/16 v0, 0xa0
const/4 v1, 0x0
const/4 v2, 0x1
if-eq p1, v0, :cond_ed
const/16 v0, 0xae
if-eq p1, v0, :cond_cb
const/16 v0, 0x4dbb
const v3, 0x1c53bb6b
if-eq p1, v0, :cond_b1
const/16 v0, 0x6240
if-eq p1, v0, :cond_80
const/16 v0, 0x6d80
if-eq p1, v0, :cond_6b
const v0, 0x1549a966
if-eq p1, v0, :cond_4e
const v0, 0x1654ae6b
if-eq p1, v0, :cond_37
if-eq p1, v3, :cond_27
goto/16 :goto_c2
.line 607
:cond_27
iget-boolean p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sentSeekMap:Z
if-nez p1, :cond_c2
.line 608
iget-object p1, 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 v0
invoke-interface {p1, v0}, Lcom/google/android/exoplayer2/extractor/ExtractorOutput;->seekMap(Lcom/google/android/exoplayer2/extractor/SeekMap;)V
.line 609
iput-boolean v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sentSeekMap:Z
return-void
.line 648
:cond_37
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
invoke-virtual {p1}, Landroid/util/SparseArray;->size()I
move-result p1
if-eqz p1, :cond_46
.line 651
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/ExtractorOutput;->endTracks()V
goto/16 :goto_c2
.line 649
:cond_46
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
const-string v0, "No valid tracks were found"
invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
.line 590
:cond_4e
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->timecodeScale:J
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
cmp-long p1, v0, v2
if-nez p1, :cond_5e
const-wide/32 v0, 0xf4240
.line 592
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->timecodeScale:J
.line 594
:cond_5e
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationTimecode:J
cmp-long p1, v0, v2
if-eqz p1, :cond_c2
.line 595
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
return-void
.line 636
:cond_6b
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-boolean p1, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->hasContentEncryption:Z
if-eqz p1, :cond_c2
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object p1, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleStrippedBytes:[B
if-nez p1, :cond_78
goto :goto_c2
.line 637
:cond_78
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
const-string v0, "Combining encryption and compression is not supported"
invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
.line 627
:cond_80
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-boolean p1, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->hasContentEncryption:Z
if-eqz p1, :cond_c2
.line 628
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object p1, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->cryptoData:Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;
if-eqz p1, :cond_a9
.line 631
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
new-instance v0, Lcom/google/android/exoplayer2/drm/DrmInitData;
new-array v2, v2, [Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
new-instance v3, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;
sget-object v4, Lcom/google/android/exoplayer2/C;->UUID_NIL:Ljava/util/UUID;
iget-object v5, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v5, v5, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->cryptoData:Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;
iget-object v5, v5, Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;->encryptionKey:[B
const-string v6, "video/webm"
invoke-direct {v3, v4, v6, v5}, Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;-><init>(Ljava/util/UUID;Ljava/lang/String;[B)V
aput-object v3, v2, v1
invoke-direct {v0, v2}, Lcom/google/android/exoplayer2/drm/DrmInitData;-><init>([Lcom/google/android/exoplayer2/drm/DrmInitData$SchemeData;)V
iput-object v0, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->drmInitData:Lcom/google/android/exoplayer2/drm/DrmInitData;
return-void
.line 629
:cond_a9
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
const-string v0, "Encrypted Track found but ContentEncKeyID was not found"
invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
.line 599
:cond_b1
iget p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryId:I
const/4 v0, -0x1
if-eq p1, v0, :cond_c3
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryPosition:J
const-wide/16 v4, -0x1
cmp-long v2, v0, v4
if-eqz v2, :cond_c3
if-ne p1, v3, :cond_c2
.line 603
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cuesContentPosition:J
:cond_c2
:goto_c2
return-void
.line 600
:cond_c3
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
const-string v0, "Mandatory element SeekID or SeekPosition not found"
invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
.line 641
:cond_cb
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object p1, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
invoke-static {p1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->isCodecSupported(Ljava/lang/String;)Z
move-result p1
if-eqz p1, :cond_e9
.line 642
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
iget v1, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->number:I
invoke-virtual {p1, v0, v1}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->initializeOutput(Lcom/google/android/exoplayer2/extractor/ExtractorOutput;I)V
.line 643
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget v0, v0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->number:I
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
invoke-virtual {p1, v0, v1}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
:cond_e9
const/4 p1, 0x0
.line 645
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
return-void
.line 615
:cond_ed
iget p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
const/4 v0, 0x2
if-eq p1, v0, :cond_f3
return-void
.line 620
:cond_f3
iget-boolean p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSeenReferenceBlock:Z
if-nez p1, :cond_fc
.line 621
iget p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
or-int/2addr p1, v2
iput p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockFlags:I
.line 623
:cond_fc
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->tracks:Landroid/util/SparseArray;
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTrackNumber:I
invoke-virtual {p1, v0}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iget-wide v2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockTimeUs:J
invoke-direct {p0, p1, v2, v3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->commitSampleToOutput(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;J)V
.line 624
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
return-void
.end method
.method final floatElement(ID)V
.registers 5
const/16 v0, 0xb5
if-eq p1, v0, :cond_4c
const/16 v0, 0x4489
if-eq p1, v0, :cond_48
packed-switch p1, :pswitch_data_52
goto :goto_11
.line 887
:pswitch_c
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float p2, p2
iput p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->minMasteringLuminance:F
:goto_11
return-void
.line 884
:pswitch_12
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float p2, p2
iput p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->maxMasteringLuminance:F
return-void
.line 881
:pswitch_18
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float p2, p2
iput p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->whitePointChromaticityY:F
return-void
.line 878
:pswitch_1e
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float p2, p2
iput p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->whitePointChromaticityX:F
return-void
.line 875
:pswitch_24
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float p2, p2
iput p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->primaryBChromaticityY:F
return-void
.line 872
:pswitch_2a
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float p2, p2
iput p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->primaryBChromaticityX:F
return-void
.line 869
:pswitch_30
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float p2, p2
iput p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->primaryGChromaticityY:F
return-void
.line 866
:pswitch_36
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float p2, p2
iput p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->primaryGChromaticityX:F
return-void
.line 863
:pswitch_3c
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float p2, p2
iput p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->primaryRChromaticityY:F
return-void
.line 860
:pswitch_42
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-float p2, p2
iput p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->primaryRChromaticityX:F
return-void
:cond_48
double-to-long p1, p2
.line 854
iput-wide p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationTimecode:J
return-void
.line 857
:cond_4c
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
double-to-int p2, p2
iput p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->sampleRate:I
return-void
:pswitch_data_52
.packed-switch 0x55d1
:pswitch_42
:pswitch_3c
:pswitch_36
:pswitch_30
:pswitch_2a
:pswitch_24
:pswitch_1e
:pswitch_18
:pswitch_12
:pswitch_c
.end packed-switch
.end method
.method final getElementType(I)I
.registers 2
sparse-switch p1, :sswitch_data_10
const/4 p1, 0x0
return p1
:sswitch_5
const/4 p1, 0x5
return p1
:sswitch_7
const/4 p1, 0x4
return p1
:sswitch_9
const/4 p1, 0x1
return p1
:sswitch_b
const/4 p1, 0x3
return p1
:sswitch_d
const/4 p1, 0x2
return p1
nop
:sswitch_data_10
.sparse-switch
0x83 -> :sswitch_d
0x86 -> :sswitch_b
0x88 -> :sswitch_d
0x9b -> :sswitch_d
0x9f -> :sswitch_d
0xa0 -> :sswitch_9
0xa1 -> :sswitch_7
0xa3 -> :sswitch_7
0xae -> :sswitch_9
0xb0 -> :sswitch_d
0xb3 -> :sswitch_d
0xb5 -> :sswitch_5
0xb7 -> :sswitch_9
0xba -> :sswitch_d
0xbb -> :sswitch_9
0xd7 -> :sswitch_d
0xe0 -> :sswitch_9
0xe1 -> :sswitch_9
0xe7 -> :sswitch_d
0xf1 -> :sswitch_d
0xfb -> :sswitch_d
0x4254 -> :sswitch_d
0x4255 -> :sswitch_7
0x4282 -> :sswitch_b
0x4285 -> :sswitch_d
0x42f7 -> :sswitch_d
0x4489 -> :sswitch_5
0x47e1 -> :sswitch_d
0x47e2 -> :sswitch_7
0x47e7 -> :sswitch_9
0x47e8 -> :sswitch_d
0x4dbb -> :sswitch_9
0x5031 -> :sswitch_d
0x5032 -> :sswitch_d
0x5034 -> :sswitch_9
0x5035 -> :sswitch_9
0x53ab -> :sswitch_7
0x53ac -> :sswitch_d
0x53b8 -> :sswitch_d
0x54b0 -> :sswitch_d
0x54b2 -> :sswitch_d
0x54ba -> :sswitch_d
0x55aa -> :sswitch_d
0x55b0 -> :sswitch_9
0x55b9 -> :sswitch_d
0x55ba -> :sswitch_d
0x55bb -> :sswitch_d
0x55bc -> :sswitch_d
0x55bd -> :sswitch_d
0x55d0 -> :sswitch_9
0x55d1 -> :sswitch_5
0x55d2 -> :sswitch_5
0x55d3 -> :sswitch_5
0x55d4 -> :sswitch_5
0x55d5 -> :sswitch_5
0x55d6 -> :sswitch_5
0x55d7 -> :sswitch_5
0x55d8 -> :sswitch_5
0x55d9 -> :sswitch_5
0x55da -> :sswitch_5
0x56aa -> :sswitch_d
0x56bb -> :sswitch_d
0x6240 -> :sswitch_9
0x6264 -> :sswitch_d
0x63a2 -> :sswitch_7
0x6d80 -> :sswitch_9
0x7670 -> :sswitch_9
0x7672 -> :sswitch_7
0x22b59c -> :sswitch_b
0x23e383 -> :sswitch_d
0x2ad7b1 -> :sswitch_d
0x114d9b74 -> :sswitch_9
0x1549a966 -> :sswitch_9
0x1654ae6b -> :sswitch_9
0x18538067 -> :sswitch_9
0x1a45dfa3 -> :sswitch_9
0x1c53bb6b -> :sswitch_9
0x1f43b675 -> :sswitch_9
.end sparse-switch
.end method
.method public final init(Lcom/google/android/exoplayer2/extractor/ExtractorOutput;)V
.registers 2
.line 406
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
return-void
.end method
.method final integerElement(IJ)V
.registers 11
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
const/16 v0, 0x5031
const-string v1, " not supported"
if-eq p1, v0, :cond_1dc
const/16 v0, 0x5032
const-wide/16 v2, 0x1
if-eq p1, v0, :cond_1c0
const/4 v0, 0x0
const/4 v4, 0x3
const/4 v5, 0x2
const/4 v6, 0x1
sparse-switch p1, :sswitch_data_1fa
const/4 v0, 0x7
const/4 v1, 0x6
packed-switch p1, :pswitch_data_268
goto/16 :goto_1e2
.line 844
:pswitch_1a
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int p3, p2
iput p3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->maxFrameAverageLuminance:I
goto/16 :goto_1e2
.line 841
:pswitch_21
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int p3, p2
iput p3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->maxContentLuminance:I
return-void
.line 793
:pswitch_27
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-boolean v6, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->hasColorInfo:Z
long-to-int p1, p2
if-eq p1, v6, :cond_47
const/16 p2, 0x9
if-eq p1, p2, :cond_42
const/4 p2, 0x4
if-eq p1, p2, :cond_3d
const/4 p2, 0x5
if-eq p1, p2, :cond_3d
if-eq p1, v1, :cond_3d
if-eq p1, v0, :cond_3d
return-void
.line 802
:cond_3d
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v5, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorSpace:I
return-void
.line 805
:cond_42
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v1, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorSpace:I
return-void
.line 796
:cond_47
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v6, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorSpace:I
return-void
:pswitch_4c
long-to-int p1, p2
if-eq p1, v6, :cond_66
const/16 p2, 0x10
if-eq p1, p2, :cond_61
const/16 p2, 0x12
if-eq p1, p2, :cond_5c
if-eq p1, v1, :cond_66
if-eq p1, v0, :cond_66
return-void
.line 822
:cond_5c
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v0, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorTransfer:I
return-void
.line 819
:cond_61
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v1, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorTransfer:I
return-void
.line 816
:cond_66
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v4, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorTransfer:I
return-void
:pswitch_6b
long-to-int p1, p2
if-eq p1, v6, :cond_76
if-eq p1, v5, :cond_71
return-void
.line 834
:cond_71
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v6, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorRange:I
return-void
.line 831
:cond_76
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v5, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->colorRange:I
return-void
.line 678
:sswitch_7b
iput-wide p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->timecodeScale:J
return-void
.line 708
:sswitch_7e
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int p3, p2
iput p3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->defaultSampleDurationNs:I
return-void
.line 720
:sswitch_84
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int p3, p2
iput p3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->audioBitDepth:I
return-void
.line 714
:sswitch_8a
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-wide p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->seekPreRollNs:J
return-void
.line 711
:sswitch_8f
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-wide p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecDelayNs:J
return-void
.line 702
:sswitch_94
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
cmp-long v1, p2, v2
if-nez v1, :cond_9b
const/4 v0, 0x1
:cond_9b
iput-boolean v0, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->flagDefault:Z
return-void
.line 690
:sswitch_9e
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int p3, p2
iput p3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayHeight:I
return-void
.line 693
:sswitch_a4
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int p3, p2
iput p3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayUnit:I
return-void
.line 687
:sswitch_aa
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int p3, p2
iput p3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->displayWidth:I
return-void
:sswitch_b0
long-to-int p1, p2
if-eqz p1, :cond_cb
if-eq p1, v6, :cond_c6
if-eq p1, v4, :cond_c1
const/16 p2, 0xf
if-eq p1, p2, :cond_bc
return-void
.line 786
:cond_bc
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v4, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->stereoMode:I
return-void
.line 783
:cond_c1
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v6, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->stereoMode:I
return-void
.line 780
:cond_c6
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v5, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->stereoMode:I
return-void
.line 777
:cond_cb
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput v0, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->stereoMode:I
return-void
.line 675
:sswitch_d0
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
add-long/2addr p2, v0
iput-wide p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryPosition:J
return-void
:sswitch_d6
cmp-long p1, p2, v2
if-nez p1, :cond_dc
goto/16 :goto_1e2
.line 752
:cond_dc
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "AESSettingsCipherMode "
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
:sswitch_f3
const-wide/16 v2, 0x5
cmp-long p1, p2, v2
if-nez p1, :cond_fb
goto/16 :goto_1e2
.line 746
:cond_fb
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "ContentEncAlgo "
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
:sswitch_112
cmp-long p1, p2, v2
if-nez p1, :cond_118
goto/16 :goto_1e2
.line 663
:cond_118
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "EBMLReadVersion "
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
:sswitch_12f
cmp-long p1, p2, v2
if-ltz p1, :cond_13b
const-wide/16 v2, 0x2
cmp-long p1, p2, v2
if-gtz p1, :cond_13b
goto/16 :goto_1e2
.line 669
:cond_13b
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "DocTypeReadVersion "
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
:sswitch_152
const-wide/16 v2, 0x3
cmp-long p1, p2, v2
if-nez p1, :cond_15a
goto/16 :goto_1e2
.line 740
:cond_15a
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "ContentCompAlgo "
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
.line 723
:sswitch_171
iput-boolean v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSeenReferenceBlock:Z
return-void
.line 759
:sswitch_174
iget-boolean p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seenClusterPositionForCurrentCuePoint:Z
if-nez p1, :cond_1e2
.line 763
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
invoke-virtual {p1, p2, p3}, Lcom/google/android/exoplayer2/util/LongArray;->add(J)V
.line 764
iput-boolean v6, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seenClusterPositionForCurrentCuePoint:Z
return-void
.line 768
:sswitch_180
invoke-direct {p0, p2, p3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scaleTimecodeToUs(J)J
move-result-wide p1
iput-wide p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->clusterTimecodeUs:J
return-void
.line 696
:sswitch_187
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int p3, p2
iput p3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->number:I
return-void
.line 684
:sswitch_18d
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int p3, p2
iput p3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->height:I
return-void
.line 756
:sswitch_193
iget-object p1, 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 p2
invoke-virtual {p1, p2, p3}, Lcom/google/android/exoplayer2/util/LongArray;->add(J)V
return-void
.line 681
:sswitch_19d
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int p3, p2
iput p3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->width:I
return-void
.line 717
:sswitch_1a3
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int p3, p2
iput p3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->channelCount:I
return-void
.line 771
:sswitch_1a9
invoke-direct {p0, p2, p3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->scaleTimecodeToUs(J)J
move-result-wide p1
iput-wide p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockDurationUs:J
return-void
.line 699
:sswitch_1b0
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
cmp-long v1, p2, v2
if-nez v1, :cond_1b7
const/4 v0, 0x1
:cond_1b7
iput-boolean v0, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->flagForced:Z
return-void
.line 705
:sswitch_1ba
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
long-to-int p3, p2
iput p3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->type:I
return-void
:cond_1c0
cmp-long p1, p2, v2
if-nez p1, :cond_1c5
goto :goto_1e2
.line 734
:cond_1c5
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "ContentEncodingScope "
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
:cond_1dc
const-wide/16 v2, 0x0
cmp-long p1, p2, v2
if-nez p1, :cond_1e3
:cond_1e2
:goto_1e2
return-void
.line 728
:cond_1e3
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "ContentEncodingOrder "
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
:sswitch_data_1fa
.sparse-switch
0x83 -> :sswitch_1ba
0x88 -> :sswitch_1b0
0x9b -> :sswitch_1a9
0x9f -> :sswitch_1a3
0xb0 -> :sswitch_19d
0xb3 -> :sswitch_193
0xba -> :sswitch_18d
0xd7 -> :sswitch_187
0xe7 -> :sswitch_180
0xf1 -> :sswitch_174
0xfb -> :sswitch_171
0x4254 -> :sswitch_152
0x4285 -> :sswitch_12f
0x42f7 -> :sswitch_112
0x47e1 -> :sswitch_f3
0x47e8 -> :sswitch_d6
0x53ac -> :sswitch_d0
0x53b8 -> :sswitch_b0
0x54b0 -> :sswitch_aa
0x54b2 -> :sswitch_a4
0x54ba -> :sswitch_9e
0x55aa -> :sswitch_94
0x56aa -> :sswitch_8f
0x56bb -> :sswitch_8a
0x6264 -> :sswitch_84
0x23e383 -> :sswitch_7e
0x2ad7b1 -> :sswitch_7b
.end sparse-switch
:pswitch_data_268
.packed-switch 0x55b9
:pswitch_6b
:pswitch_4c
:pswitch_27
:pswitch_21
:pswitch_1a
.end packed-switch
.end method
.method final isLevel1Element(I)Z
.registers 3
const v0, 0x1549a966
if-eq p1, v0, :cond_17
const v0, 0x1f43b675
if-eq p1, v0, :cond_17
const v0, 0x1c53bb6b
if-eq p1, v0, :cond_17
const v0, 0x1654ae6b
if-ne p1, v0, :cond_15
goto :goto_17
:cond_15
const/4 p1, 0x0
return p1
:cond_17
:goto_17
const/4 p1, 0x1
return p1
.end method
.method public final read(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/PositionHolder;)I
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
const/4 v0, 0x0
.line 426
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleRead:Z
const/4 v1, 0x1
const/4 v2, 0x1
:cond_5
if-eqz v2, :cond_1e
.line 428
iget-boolean v3, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleRead:Z
if-nez v3, :cond_1e
.line 429
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 v2
if-eqz v2, :cond_5
.line 430
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v3
invoke-direct {p0, p2, v3, v4}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->maybeSeekForCues(Lcom/google/android/exoplayer2/extractor/PositionHolder;J)Z
move-result v3
if-eqz v3, :cond_5
return v1
:cond_1e
if-eqz v2, :cond_21
return v0
:cond_21
const/4 p1, -0x1
return p1
.end method
.method public final release()V
.registers 1
return-void
.end method
.method public final seek(JJ)V
.registers 5
const-wide p1, -0x7fffffffffffffffL # -4.9E-324
.line 411
iput-wide p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->clusterTimecodeUs:J
const/4 p1, 0x0
.line 412
iput p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->blockState:I
.line 413
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->reader:Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/mkv/EbmlReader;->reset()V
.line 414
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->varintReader:Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;
invoke-virtual {p1}, Lcom/google/android/exoplayer2/extractor/mkv/VarintReader;->reset()V
.line 415
invoke-direct {p0}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->resetSample()V
return-void
.end method
.method public final sniff(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)Z
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 401
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 p1
return p1
.end method
.method final startMasterElement(IJJ)V
.registers 11
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
const/16 v0, 0xa0
const/4 v1, 0x0
if-eq p1, v0, :cond_8f
const/16 v0, 0xae
if-eq p1, v0, :cond_86
const/16 v0, 0xbb
if-eq p1, v0, :cond_83
const/16 v0, 0x4dbb
const-wide/16 v1, -0x1
if-eq p1, v0, :cond_7d
const/16 v0, 0x5035
const/4 v3, 0x1
if-eq p1, v0, :cond_78
const/16 v0, 0x55d0
if-eq p1, v0, :cond_73
const v0, 0x18538067
if-eq p1, v0, :cond_5b
const p2, 0x1c53bb6b
if-eq p1, p2, :cond_4c
const p2, 0x1f43b675
if-eq p1, p2, :cond_2c
goto :goto_77
.line 554
:cond_2c
iget-boolean p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sentSeekMap:Z
if-nez p1, :cond_77
.line 556
iget-boolean p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekForCuesEnabled:Z
if-eqz p1, :cond_3d
iget-wide p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cuesContentPosition:J
cmp-long p3, p1, v1
if-eqz p3, :cond_3d
.line 558
iput-boolean v3, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekForCues:Z
return-void
.line 562
:cond_3d
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
new-instance p2, Lcom/google/android/exoplayer2/extractor/SeekMap$Unseekable;
iget-wide p3, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->durationUs:J
invoke-direct {p2, p3, p4}, Lcom/google/android/exoplayer2/extractor/SeekMap$Unseekable;-><init>(J)V
invoke-interface {p1, p2}, Lcom/google/android/exoplayer2/extractor/ExtractorOutput;->seekMap(Lcom/google/android/exoplayer2/extractor/SeekMap;)V
.line 563
iput-boolean v3, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sentSeekMap:Z
return-void
.line 547
:cond_4c
new-instance p1, Lcom/google/android/exoplayer2/util/LongArray;
invoke-direct {p1}, Lcom/google/android/exoplayer2/util/LongArray;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueTimesUs:Lcom/google/android/exoplayer2/util/LongArray;
.line 548
new-instance p1, Lcom/google/android/exoplayer2/util/LongArray;
invoke-direct {p1}, Lcom/google/android/exoplayer2/util/LongArray;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->cueClusterPositions:Lcom/google/android/exoplayer2/util/LongArray;
return-void
.line 535
:cond_5b
iget-wide v3, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
cmp-long p1, v3, v1
if-eqz p1, :cond_6e
cmp-long p1, v3, p2
if-nez p1, :cond_66
goto :goto_6e
.line 537
:cond_66
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
const-string p2, "Multiple Segment elements not supported"
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
.line 539
:cond_6e
:goto_6e
iput-wide p2, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentPosition:J
.line 540
iput-wide p4, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->segmentContentSize:J
return-void
.line 580
:cond_73
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-boolean v3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->hasColorInfo:Z
:cond_77
:goto_77
return-void
.line 574
:cond_78
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-boolean v3, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->hasContentEncryption:Z
return-void
:cond_7d
const/4 p1, -0x1
.line 543
iput p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryId:I
.line 544
iput-wide v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seekEntryPosition:J
return-void
.line 551
:cond_83
iput-boolean v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->seenClusterPositionForCurrentCuePoint:Z
return-void
.line 577
:cond_86
new-instance p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
const/4 p2, 0x0
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;-><init>(Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$1;)V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
return-void
.line 568
:cond_8f
iput-boolean v1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->sampleSeenReferenceBlock:Z
return-void
.end method
.method final stringElement(ILjava/lang/String;)V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
const/16 v0, 0x86
if-eq p1, v0, :cond_3f
const/16 v0, 0x4282
if-eq p1, v0, :cond_14
const v0, 0x22b59c
if-eq p1, v0, :cond_e
goto :goto_3e
.line 906
:cond_e
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
# setter for: Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->language:Ljava/lang/String;
invoke-static {p1, 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;
goto :goto_3e
:cond_14
const-string p1, "webm"
.line 898
invoke-virtual {p1, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-nez p1, :cond_3e
const-string p1, "matroska"
invoke-virtual {p1, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_25
goto :goto_3e
.line 899
:cond_25
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "DocType "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p2, " not supported"
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
:cond_3e
:goto_3e
return-void
.line 903
:cond_3f
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;->currentTrack:Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;
iput-object p2, p1, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor$Track;->codecId:Ljava/lang/String;
return-void
.end method