DefaultOggSeeker.smali
.class final Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;
.super Ljava/lang/Object;
.source "DefaultOggSeeker.java"
# interfaces
.implements Lcom/google/android/exoplayer2/extractor/ogg/OggSeeker;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker$OggSeekMap;
}
.end annotation
# static fields
.field private static final DEFAULT_OFFSET:I = 0x7530
.field public static final MATCH_BYTE_RANGE:I = 0x186a0
.field public static final MATCH_RANGE:I = 0x11940
.field private static final STATE_IDLE:I = 0x3
.field private static final STATE_READ_LAST_PAGE:I = 0x1
.field private static final STATE_SEEK:I = 0x2
.field private static final STATE_SEEK_TO_END:I
# instance fields
.field private end:J
.field private endGranule:J
.field private final endPosition:J
.field private final pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
.field private positionBeforeSeekToEnd:J
.field private start:J
.field private startGranule:J
.field private final startPosition:J
.field private state:I
.field private final streamReader:Lcom/google/android/exoplayer2/extractor/ogg/StreamReader;
.field private targetGranule:J
.field private totalGranules:J
# direct methods
.method public constructor <init>(JJLcom/google/android/exoplayer2/extractor/ogg/StreamReader;IJ)V
.registers 13
.line 65
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 41
new-instance v0, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
invoke-direct {v0}, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
const/4 v0, 0x0
const-wide/16 v1, 0x0
cmp-long v3, p1, v1
if-ltz v3, :cond_17
cmp-long v1, p3, p1
if-lez v1, :cond_17
const/4 v1, 0x1
goto :goto_18
:cond_17
const/4 v1, 0x0
.line 66
:goto_18
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 67
iput-object p5, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->streamReader:Lcom/google/android/exoplayer2/extractor/ogg/StreamReader;
.line 68
iput-wide p1, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->startPosition:J
.line 69
iput-wide p3, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->endPosition:J
int-to-long p5, p6
sub-long/2addr p3, p1
cmp-long p1, p5, p3
if-nez p1, :cond_2d
.line 71
iput-wide p7, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->totalGranules:J
const/4 p1, 0x3
.line 72
iput p1, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->state:I
goto :goto_2f
.line 74
:cond_2d
iput v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->state:I
:goto_2f
return-void
.end method
.method static synthetic access$100(Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;)J
.registers 3
.line 28
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->startPosition:J
return-wide v0
.end method
.method static synthetic access$200(Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;)Lcom/google/android/exoplayer2/extractor/ogg/StreamReader;
.registers 1
.line 28
iget-object p0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->streamReader:Lcom/google/android/exoplayer2/extractor/ogg/StreamReader;
return-object p0
.end method
.method static synthetic access$300(Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;JJJ)J
.registers 7
.line 28
invoke-direct/range {p0 .. p6}, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->getEstimatedPosition(JJJ)J
move-result-wide p0
return-wide p0
.end method
.method static synthetic access$400(Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;)J
.registers 3
.line 28
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->totalGranules:J
return-wide v0
.end method
.method private getEstimatedPosition(JJJ)J
.registers 11
.line 204
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->endPosition:J
iget-wide v2, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->startPosition:J
sub-long/2addr v0, v2
mul-long p3, p3, v0
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->totalGranules:J
div-long/2addr p3, v0
sub-long/2addr p3, p5
add-long/2addr p1, p3
cmp-long p3, p1, v2
if-gez p3, :cond_11
goto :goto_12
:cond_11
move-wide v2, p1
.line 208
:goto_12
iget-wide p1, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->endPosition:J
cmp-long p3, v2, p1
if-ltz p3, :cond_1c
const-wide/16 p3, 0x1
sub-long v2, p1, p3
:cond_1c
return-wide v2
.end method
# virtual methods
.method public bridge synthetic createSeekMap()Lcom/google/android/exoplayer2/extractor/SeekMap;
.registers 2
.line 28
invoke-virtual {p0}, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->createSeekMap()Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker$OggSeekMap;
move-result-object v0
return-object v0
.end method
.method public createSeekMap()Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker$OggSeekMap;
.registers 7
.line 126
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->totalGranules:J
const/4 v2, 0x0
const-wide/16 v3, 0x0
cmp-long v5, v0, v3
if-eqz v5, :cond_f
new-instance v0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker$OggSeekMap;
invoke-direct {v0, p0, v2}, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker$OggSeekMap;-><init>(Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker$1;)V
move-object v2, v0
:cond_f
return-object v2
.end method
.method public getNextSeekPosition(JLcom/google/android/exoplayer2/extractor/ExtractorInput;)J
.registers 16
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 154
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->start:J
iget-wide v2, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->end:J
const-wide/16 v4, 0x2
cmp-long v6, v0, v2
if-nez v6, :cond_f
.line 155
iget-wide p1, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->startGranule:J
add-long/2addr p1, v4
neg-long p1, p1
return-wide p1
.line 158
:cond_f
invoke-interface {p3}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v0
.line 159
iget-wide v2, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->end:J
invoke-virtual {p0, p3, v2, v3}, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->skipToNextPage(Lcom/google/android/exoplayer2/extractor/ExtractorInput;J)Z
move-result v2
if-nez v2, :cond_2a
.line 160
iget-wide p1, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->start:J
cmp-long p3, p1, v0
if-eqz p3, :cond_22
return-wide p1
.line 161
:cond_22
new-instance p1, Ljava/io/IOException;
const-string p2, "No ogg page can be found."
invoke-direct {p1, p2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw p1
.line 166
:cond_2a
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
const/4 v3, 0x0
invoke-virtual {v2, p3, v3}, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->populate(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Z)Z
.line 167
invoke-interface {p3}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->resetPeekPosition()V
.line 169
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget-wide v2, v2, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->granulePosition:J
sub-long/2addr p1, v2
.line 170
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget v2, v2, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->headerSize:I
iget-object v3, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget v3, v3, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->bodySize:I
add-int/2addr v2, v3
const-wide/16 v6, 0x0
cmp-long v3, p1, v6
if-ltz v3, :cond_59
const-wide/32 v6, 0x11940
cmp-long v8, p1, v6
if-lez v8, :cond_4f
goto :goto_59
.line 199
:cond_4f
invoke-interface {p3, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->skipFully(I)V
.line 200
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget-wide p1, p1, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->granulePosition:J
add-long/2addr p1, v4
neg-long p1, p1
return-wide p1
:cond_59
:goto_59
const-wide/32 v6, 0x186a0
if-gez v3, :cond_67
.line 173
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->end:J
.line 174
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget-wide v0, v0, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->granulePosition:J
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->endGranule:J
goto :goto_87
.line 176
:cond_67
invoke-interface {p3}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v0
int-to-long v8, v2
add-long/2addr v0, v8
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->start:J
.line 177
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget-wide v0, v0, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->granulePosition:J
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->startGranule:J
.line 178
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->end:J
iget-wide v10, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->start:J
sub-long/2addr v0, v10
add-long/2addr v0, v8
cmp-long v8, v0, v6
if-gez v8, :cond_87
.line 179
invoke-interface {p3, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->skipFully(I)V
.line 180
iget-wide p1, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->startGranule:J
add-long/2addr p1, v4
neg-long p1, p1
return-wide p1
.line 184
:cond_87
:goto_87
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->end:J
iget-wide v4, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->start:J
sub-long/2addr v0, v4
cmp-long v8, v0, v6
if-gez v8, :cond_93
.line 185
iput-wide v4, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->end:J
return-wide v4
:cond_93
if-gtz v3, :cond_97
const/4 v0, 0x2
goto :goto_98
:cond_97
const/4 v0, 0x1
:goto_98
mul-int v2, v2, v0
int-to-long v0, v2
.line 190
invoke-interface {p3}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v2
sub-long/2addr v2, v0
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->end:J
iget-wide v4, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->start:J
sub-long/2addr v0, v4
mul-long p1, p1, v0
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->endGranule:J
iget-wide v6, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->startGranule:J
sub-long/2addr v0, v6
div-long/2addr p1, v0
add-long/2addr v2, p1
.line 193
invoke-static {v2, v3, v4, v5}, Ljava/lang/Math;->max(JJ)J
move-result-wide p1
.line 194
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->end:J
const-wide/16 v2, 0x1
sub-long/2addr v0, v2
invoke-static {p1, p2, v0, v1}, Ljava/lang/Math;->min(JJ)J
move-result-wide p1
return-wide p1
.end method
.method public read(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)J
.registers 16
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 80
iget v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->state:I
const/4 v1, 0x1
const/4 v2, 0x3
if-eqz v0, :cond_39
if-eq v0, v1, :cond_4c
const/4 v1, 0x2
if-eq v0, v1, :cond_16
if-ne v0, v2, :cond_10
const-wide/16 v0, -0x1
return-wide v0
.line 111
:cond_10
new-instance p1, Ljava/lang/IllegalStateException;
invoke-direct {p1}, Ljava/lang/IllegalStateException;-><init>()V
throw p1
.line 98
:cond_16
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->targetGranule:J
const-wide/16 v3, 0x2
const-wide/16 v5, 0x0
cmp-long v7, v0, v5
if-nez v7, :cond_21
goto :goto_34
.line 101
:cond_21
invoke-virtual {p0, v0, v1, p1}, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->getNextSeekPosition(JLcom/google/android/exoplayer2/extractor/ExtractorInput;)J
move-result-wide v0
cmp-long v7, v0, v5
if-ltz v7, :cond_2a
return-wide v0
.line 105
:cond_2a
iget-wide v10, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->targetGranule:J
add-long/2addr v0, v3
neg-long v12, v0
move-object v8, p0
move-object v9, p1
invoke-virtual/range {v8 .. v13}, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->skipToPageOfGranule(Lcom/google/android/exoplayer2/extractor/ExtractorInput;JJ)J
move-result-wide v5
.line 107
:goto_34
iput v2, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->state:I
add-long/2addr v5, v3
neg-long v0, v5
return-wide v0
.line 84
:cond_39
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v3
iput-wide v3, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->positionBeforeSeekToEnd:J
.line 85
iput v1, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->state:I
.line 87
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->endPosition:J
const-wide/32 v5, 0xff1b
sub-long/2addr v0, v5
cmp-long v5, v0, v3
if-lez v5, :cond_4c
return-wide v0
.line 93
:cond_4c
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->readGranuleOfLastPage(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)J
move-result-wide v0
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->totalGranules:J
.line 94
iput v2, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->state:I
.line 95
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->positionBeforeSeekToEnd:J
return-wide v0
.end method
.method readGranuleOfLastPage(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)J
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 303
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->skipToNextPage(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)V
.line 304
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->reset()V
.line 305
:goto_8
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget v0, v0, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->type:I
const/4 v1, 0x4
and-int/2addr v0, v1
if-eq v0, v1, :cond_2d
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v0
iget-wide v2, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->endPosition:J
cmp-long v4, v0, v2
if-gez v4, :cond_2d
.line 306
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
const/4 v1, 0x0
invoke-virtual {v0, p1, v1}, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->populate(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Z)Z
.line 307
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget v0, v0, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->headerSize:I
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget v1, v1, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->bodySize:I
add-int/2addr v0, v1
invoke-interface {p1, v0}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->skipFully(I)V
goto :goto_8
.line 309
:cond_2d
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget-wide v0, p1, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->granulePosition:J
return-wide v0
.end method
.method public resetSeeking()V
.registers 3
.line 131
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->startPosition:J
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->start:J
.line 132
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->endPosition:J
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->end:J
const-wide/16 v0, 0x0
.line 133
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->startGranule:J
.line 134
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->totalGranules:J
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->endGranule:J
return-void
.end method
.method skipToNextPage(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 247
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->endPosition:J
invoke-virtual {p0, p1, v0, v1}, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->skipToNextPage(Lcom/google/android/exoplayer2/extractor/ExtractorInput;J)Z
move-result p1
if-eqz p1, :cond_9
return-void
.line 249
:cond_9
new-instance p1, Ljava/io/EOFException;
invoke-direct {p1}, Ljava/io/EOFException;-><init>()V
throw p1
.end method
.method skipToNextPage(Lcom/google/android/exoplayer2/extractor/ExtractorInput;J)Z
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
const-wide/16 v0, 0x3
add-long/2addr p2, v0
.line 265
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->endPosition:J
invoke-static {p2, p3, v0, v1}, Ljava/lang/Math;->min(JJ)J
move-result-wide p2
const/16 v0, 0x800
new-array v1, v0, [B
.line 269
:goto_d
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v2
int-to-long v4, v0
add-long/2addr v2, v4
const/4 v4, 0x0
cmp-long v5, v2, p2
if-lez v5, :cond_23
.line 271
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v2
sub-long v2, p2, v2
long-to-int v0, v2
const/4 v2, 0x4
if-ge v0, v2, :cond_23
return v4
.line 277
:cond_23
invoke-interface {p1, v1, v4, v0, v4}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->peekFully([BIIZ)Z
:goto_26
add-int/lit8 v2, v0, -0x3
if-ge v4, v2, :cond_4e
.line 279
aget-byte v2, v1, v4
const/16 v3, 0x4f
if-ne v2, v3, :cond_4b
add-int/lit8 v2, v4, 0x1
aget-byte v2, v1, v2
const/16 v3, 0x67
if-ne v2, v3, :cond_4b
add-int/lit8 v2, v4, 0x2
aget-byte v2, v1, v2
if-ne v2, v3, :cond_4b
add-int/lit8 v2, v4, 0x3
aget-byte v2, v1, v2
const/16 v3, 0x53
if-ne v2, v3, :cond_4b
.line 282
invoke-interface {p1, v4}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->skipFully(I)V
const/4 p1, 0x1
return p1
:cond_4b
add-int/lit8 v4, v4, 0x1
goto :goto_26
.line 287
:cond_4e
invoke-interface {p1, v2}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->skipFully(I)V
goto :goto_d
.end method
.method skipToPageOfGranule(Lcom/google/android/exoplayer2/extractor/ExtractorInput;JJ)J
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 328
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
const/4 v1, 0x0
invoke-virtual {v0, p1, v1}, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->populate(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Z)Z
.line 329
:goto_6
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget-wide v2, v0, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->granulePosition:J
cmp-long v0, v2, p2
if-gez v0, :cond_24
.line 330
iget-object p4, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget p4, p4, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->headerSize:I
iget-object p5, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget p5, p5, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->bodySize:I
add-int/2addr p4, p5
invoke-interface {p1, p4}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->skipFully(I)V
.line 332
iget-object p4, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
iget-wide p4, p4, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->granulePosition:J
.line 334
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->pageHeader:Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;
invoke-virtual {v0, p1, v1}, Lcom/google/android/exoplayer2/extractor/ogg/OggPageHeader;->populate(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Z)Z
goto :goto_6
.line 336
:cond_24
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->resetPeekPosition()V
return-wide p4
.end method
.method public startSeek(J)J
.registers 7
.line 117
iget v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->state:I
const/4 v1, 0x2
const/4 v2, 0x3
if-eq v0, v2, :cond_b
if-ne v0, v1, :cond_9
goto :goto_b
:cond_9
const/4 v0, 0x0
goto :goto_c
:cond_b
:goto_b
const/4 v0, 0x1
:goto_c
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
const-wide/16 v2, 0x0
cmp-long v0, p1, v2
if-nez v0, :cond_16
goto :goto_1c
.line 118
:cond_16
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->streamReader:Lcom/google/android/exoplayer2/extractor/ogg/StreamReader;
invoke-virtual {v0, p1, p2}, Lcom/google/android/exoplayer2/extractor/ogg/StreamReader;->convertTimeToGranule(J)J
move-result-wide v2
:goto_1c
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->targetGranule:J
.line 119
iput v1, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->state:I
.line 120
invoke-virtual {p0}, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->resetSeeking()V
.line 121
iget-wide p1, p0, Lcom/google/android/exoplayer2/extractor/ogg/DefaultOggSeeker;->targetGranule:J
return-wide p1
.end method