DefaultTrackOutput$InfoQueue.smali
.class final Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;
.super Ljava/lang/Object;
.source "DefaultTrackOutput.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1a
name = "InfoQueue"
.end annotation
# static fields
.field private static final SAMPLE_CAPACITY_INCREMENT:I = 0x3e8
# instance fields
.field private absoluteReadIndex:I
.field private capacity:I
.field private encryptionKeys:[[B
.field private flags:[I
.field private formats:[Lcom/google/android/exoplayer2/Format;
.field private largestDequeuedTimestampUs:J
.field private largestQueuedTimestampUs:J
.field private offsets:[J
.field private queueSize:I
.field private relativeReadIndex:I
.field private relativeWriteIndex:I
.field private sizes:[I
.field private sourceIds:[I
.field private timesUs:[J
.field private upstreamFormat:Lcom/google/android/exoplayer2/Format;
.field private upstreamFormatRequired:Z
.field private upstreamSourceId:I
# direct methods
.method public constructor <init>()V
.registers 3
.line 628
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0x3e8
.line 629
iput v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
new-array v1, v0, [I
.line 630
iput-object v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sourceIds:[I
new-array v1, v0, [J
.line 631
iput-object v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->offsets:[J
new-array v1, v0, [J
.line 632
iput-object v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->timesUs:[J
new-array v1, v0, [I
.line 633
iput-object v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->flags:[I
new-array v1, v0, [I
.line 634
iput-object v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sizes:[I
new-array v1, v0, [[B
.line 635
iput-object v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->encryptionKeys:[[B
new-array v0, v0, [Lcom/google/android/exoplayer2/Format;
.line 636
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->formats:[Lcom/google/android/exoplayer2/Format;
const-wide/high16 v0, -0x8000000000000000L
.line 637
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestDequeuedTimestampUs:J
.line 638
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestQueuedTimestampUs:J
const/4 v0, 0x1
.line 639
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamFormatRequired:Z
return-void
.end method
# virtual methods
.method public declared-synchronized attemptSplice(J)Z
.registers 8
monitor-enter p0
.line 934
:try_start_1
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestDequeuedTimestampUs:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_29
cmp-long v2, v0, p1
if-ltz v2, :cond_a
const/4 p1, 0x0
.line 935
monitor-exit p0
return p1
.line 937
:cond_a
:try_start_a
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
:goto_c
const/4 v1, 0x1
if-lez v0, :cond_21
.line 938
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->timesUs:[J
iget v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
add-int/2addr v3, v0
sub-int/2addr v3, v1
iget v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
rem-int/2addr v3, v4
aget-wide v3, v2, v3
cmp-long v2, v3, p1
if-ltz v2, :cond_21
add-int/lit8 v0, v0, -0x1
goto :goto_c
.line 942
:cond_21
iget p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->absoluteReadIndex:I
add-int/2addr p1, v0
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->discardUpstreamSamples(I)J
:try_end_27
.catchall {:try_start_a .. :try_end_27} :catchall_29
.line 943
monitor-exit p0
return v1
:catchall_29
move-exception p1
monitor-exit p0
throw p1
.end method
.method public clearSampleData()V
.registers 2
const/4 v0, 0x0
.line 643
iput v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->absoluteReadIndex:I
.line 644
iput v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
.line 645
iput v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
.line 646
iput v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
return-void
.end method
.method public declared-synchronized commitSample(JIJI[B)V
.registers 13
monitor-enter p0
.line 865
:try_start_1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamFormatRequired:Z
const/4 v1, 0x1
const/4 v2, 0x0
if-nez v0, :cond_9
const/4 v0, 0x1
goto :goto_a
:cond_9
const/4 v0, 0x0
:goto_a
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 866
invoke-virtual {p0, p1, p2}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->commitSampleTimestamp(J)V
.line 867
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->timesUs:[J
iget v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
aput-wide p1, v0, v3
.line 868
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->offsets:[J
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
aput-wide p4, p1, p2
.line 869
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sizes:[I
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
aput p6, p1, p2
.line 870
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->flags:[I
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
aput p3, p1, p2
.line 871
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->encryptionKeys:[[B
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
aput-object p7, p1, p2
.line 872
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->formats:[Lcom/google/android/exoplayer2/Format;
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
iget-object p3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamFormat:Lcom/google/android/exoplayer2/Format;
aput-object p3, p1, p2
.line 873
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sourceIds:[I
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
iget p3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamSourceId:I
aput p3, p1, p2
.line 875
iget p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
add-int/2addr p1, v1
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
.line 876
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
if-ne p1, p2, :cond_cf
.line 878
iget p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
add-int/lit16 p1, p1, 0x3e8
.line 879
new-array p2, p1, [I
.line 880
new-array p3, p1, [J
.line 881
new-array p4, p1, [J
.line 882
new-array p5, p1, [I
.line 883
new-array p6, p1, [I
.line 884
new-array p7, p1, [[B
.line 885
new-array v0, p1, [Lcom/google/android/exoplayer2/Format;
.line 886
iget v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
iget v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
sub-int/2addr v1, v3
.line 887
iget-object v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->offsets:[J
iget v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
invoke-static {v3, v4, p3, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 888
iget-object v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->timesUs:[J
iget v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
invoke-static {v3, v4, p4, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 889
iget-object v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->flags:[I
iget v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
invoke-static {v3, v4, p5, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 890
iget-object v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sizes:[I
iget v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
invoke-static {v3, v4, p6, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 891
iget-object v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->encryptionKeys:[[B
iget v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
invoke-static {v3, v4, p7, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 892
iget-object v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->formats:[Lcom/google/android/exoplayer2/Format;
iget v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
invoke-static {v3, v4, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 893
iget-object v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sourceIds:[I
iget v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
invoke-static {v3, v4, p2, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 894
iget v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
.line 895
iget-object v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->offsets:[J
invoke-static {v4, v2, p3, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 896
iget-object v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->timesUs:[J
invoke-static {v4, v2, p4, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 897
iget-object v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->flags:[I
invoke-static {v4, v2, p5, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 898
iget-object v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sizes:[I
invoke-static {v4, v2, p6, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 899
iget-object v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->encryptionKeys:[[B
invoke-static {v4, v2, p7, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 900
iget-object v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->formats:[Lcom/google/android/exoplayer2/Format;
invoke-static {v4, v2, v0, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 901
iget-object v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sourceIds:[I
invoke-static {v4, v2, p2, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 902
iput-object p3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->offsets:[J
.line 903
iput-object p4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->timesUs:[J
.line 904
iput-object p5, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->flags:[I
.line 905
iput-object p6, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sizes:[I
.line 906
iput-object p7, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->encryptionKeys:[[B
.line 907
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->formats:[Lcom/google/android/exoplayer2/Format;
.line 908
iput-object p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sourceIds:[I
.line 909
iput v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
.line 910
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
iput p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
.line 911
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
iput p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
.line 912
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
goto :goto_da
.line 914
:cond_cf
iget p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
add-int/2addr p1, v1
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
.line 915
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
if-ne p1, p2, :cond_da
.line 917
iput v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
:try_end_da
.catchall {:try_start_1 .. :try_end_da} :catchall_dc
.line 920
:cond_da
:goto_da
monitor-exit p0
return-void
:catchall_dc
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized commitSampleTimestamp(J)V
.registers 5
monitor-enter p0
.line 923
:try_start_1
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestQueuedTimestampUs:J
invoke-static {v0, v1, p1, p2}, Ljava/lang/Math;->max(JJ)J
move-result-wide p1
iput-wide p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestQueuedTimestampUs:J
:try_end_9
.catchall {:try_start_1 .. :try_end_9} :catchall_b
.line 924
monitor-exit p0
return-void
:catchall_b
move-exception p1
monitor-exit p0
throw p1
.end method
.method public discardUpstreamSamples(I)J
.registers 9
.line 670
invoke-virtual {p0}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->getWriteIndex()I
move-result v0
sub-int/2addr v0, p1
const/4 p1, 0x1
if-ltz v0, :cond_e
.line 671
iget v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
if-gt v0, v1, :cond_e
const/4 v1, 0x1
goto :goto_f
:cond_e
const/4 v1, 0x0
:goto_f
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
if-nez v0, :cond_2d
.line 674
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->absoluteReadIndex:I
if-nez v0, :cond_1b
const-wide/16 v0, 0x0
return-wide v0
.line 678
:cond_1b
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
if-nez v0, :cond_21
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
:cond_21
sub-int/2addr v0, p1
.line 679
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->offsets:[J
aget-wide v1, p1, v0
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sizes:[I
aget p1, p1, v0
int-to-long v3, p1
add-long/2addr v1, v3
return-wide v1
.line 682
:cond_2d
iget v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
sub-int/2addr v1, v0
iput v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
.line 683
iget v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
iget v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
add-int/2addr v2, v3
sub-int/2addr v2, v0
rem-int/2addr v2, v3
iput v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
const-wide/high16 v2, -0x8000000000000000L
.line 686
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestQueuedTimestampUs:J
sub-int/2addr v1, p1
:goto_40
if-ltz v1, :cond_5f
.line 688
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
add-int/2addr v0, v1
iget v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
rem-int/2addr v0, v2
.line 689
iget-wide v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestQueuedTimestampUs:J
iget-object v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->timesUs:[J
aget-wide v5, v4, v0
invoke-static {v2, v3, v5, v6}, Ljava/lang/Math;->max(JJ)J
move-result-wide v2
iput-wide v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestQueuedTimestampUs:J
.line 690
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->flags:[I
aget v0, v2, v0
and-int/2addr v0, p1
if-eqz v0, :cond_5c
goto :goto_5f
:cond_5c
add-int/lit8 v1, v1, -0x1
goto :goto_40
.line 694
:cond_5f
:goto_5f
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->offsets:[J
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
aget-wide v0, p1, v0
return-wide v0
.end method
.method public declared-synchronized format(Lcom/google/android/exoplayer2/Format;)Z
.registers 5
monitor-enter p0
const/4 v0, 0x1
const/4 v1, 0x0
if-nez p1, :cond_9
.line 850
:try_start_5
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamFormatRequired:Z
:try_end_7
.catchall {:try_start_5 .. :try_end_7} :catchall_19
.line 851
monitor-exit p0
return v1
.line 853
:cond_9
:try_start_9
iput-boolean v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamFormatRequired:Z
.line 854
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamFormat:Lcom/google/android/exoplayer2/Format;
invoke-static {p1, v2}, Lcom/google/android/exoplayer2/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
:try_end_11
.catchall {:try_start_9 .. :try_end_11} :catchall_19
if-eqz v2, :cond_15
.line 856
monitor-exit p0
return v1
.line 858
:cond_15
:try_start_15
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamFormat:Lcom/google/android/exoplayer2/Format;
:try_end_17
.catchall {:try_start_15 .. :try_end_17} :catchall_19
.line 859
monitor-exit p0
return v0
:catchall_19
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized getLargestQueuedTimestampUs()J
.registers 5
monitor-enter p0
.line 743
:try_start_1
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestDequeuedTimestampUs:J
iget-wide v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestQueuedTimestampUs:J
invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->max(JJ)J
move-result-wide v0
:try_end_9
.catchall {:try_start_1 .. :try_end_9} :catchall_b
monitor-exit p0
return-wide v0
:catchall_b
move-exception v0
monitor-exit p0
throw v0
.end method
.method public getReadIndex()I
.registers 2
.line 707
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->absoluteReadIndex:I
return v0
.end method
.method public declared-synchronized getUpstreamFormat()Lcom/google/android/exoplayer2/Format;
.registers 2
monitor-enter p0
.line 729
:try_start_1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamFormatRequired:Z
if-eqz v0, :cond_7
const/4 v0, 0x0
goto :goto_9
:cond_7
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamFormat:Lcom/google/android/exoplayer2/Format;
:try_end_9
.catchall {:try_start_1 .. :try_end_9} :catchall_b
:goto_9
monitor-exit p0
return-object v0
:catchall_b
move-exception v0
monitor-exit p0
throw v0
.end method
.method public getWriteIndex()I
.registers 3
.line 660
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->absoluteReadIndex:I
iget v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
add-int/2addr v0, v1
return v0
.end method
.method public declared-synchronized isEmpty()Z
.registers 2
monitor-enter p0
.line 722
:try_start_1
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_a
if-nez v0, :cond_7
const/4 v0, 0x1
goto :goto_8
:cond_7
const/4 v0, 0x0
:goto_8
monitor-exit p0
return v0
:catchall_a
move-exception v0
monitor-exit p0
throw v0
.end method
.method public peekSourceId()I
.registers 3
.line 715
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
if-nez v0, :cond_7
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamSourceId:I
goto :goto_d
:cond_7
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sourceIds:[I
iget v1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
aget v0, v0, v1
:goto_d
return v0
.end method
.method public declared-synchronized readData(Lcom/google/android/exoplayer2/FormatHolder;Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;Lcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$BufferExtrasHolder;)I
.registers 8
monitor-enter p0
.line 765
:try_start_1
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
const/4 v1, -0x5
if-nez v0, :cond_19
.line 766
iget-object p4, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamFormat:Lcom/google/android/exoplayer2/Format;
if-eqz p4, :cond_16
if-eqz p2, :cond_10
iget-object p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamFormat:Lcom/google/android/exoplayer2/Format;
if-eq p2, p3, :cond_16
.line 767
:cond_10
iget-object p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamFormat:Lcom/google/android/exoplayer2/Format;
iput-object p2, p1, Lcom/google/android/exoplayer2/FormatHolder;->format:Lcom/google/android/exoplayer2/Format;
:try_end_14
.catchall {:try_start_1 .. :try_end_14} :catchall_91
.line 768
monitor-exit p0
return v1
:cond_16
const/4 p1, -0x3
.line 770
monitor-exit p0
return p1
:cond_19
if-eqz p2, :cond_87
.line 773
:try_start_1b
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->formats:[Lcom/google/android/exoplayer2/Format;
iget v2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
aget-object v0, v0, v2
if-eq v0, p3, :cond_24
goto :goto_87
.line 778
:cond_24
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->timesUs:[J
iget p3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
aget-wide v0, p1, p3
iput-wide v0, p2, Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;->timeUs:J
.line 779
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->flags:[I
iget p3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
aget p1, p1, p3
invoke-virtual {p2, p1}, Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;->setFlags(I)V
.line 780
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->sizes:[I
iget p3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
aget p1, p1, p3
iput p1, p4, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$BufferExtrasHolder;->size:I
.line 781
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->offsets:[J
iget p3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
aget-wide v0, p1, p3
iput-wide v0, p4, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$BufferExtrasHolder;->offset:J
.line 782
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->encryptionKeys:[[B
iget p3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
aget-object p1, p1, p3
iput-object p1, p4, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$BufferExtrasHolder;->encryptionKeyId:[B
.line 784
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestDequeuedTimestampUs:J
iget-wide p1, p2, Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;->timeUs:J
invoke-static {v0, v1, p1, p2}, Ljava/lang/Math;->max(JJ)J
move-result-wide p1
iput-wide p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestDequeuedTimestampUs:J
.line 785
iget p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
add-int/lit8 p1, p1, -0x1
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
.line 786
iget p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
.line 787
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->absoluteReadIndex:I
add-int/lit8 p2, p2, 0x1
iput p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->absoluteReadIndex:I
.line 788
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
if-ne p1, p2, :cond_70
const/4 p1, 0x0
.line 790
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
.line 793
:cond_70
iget p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
if-lez p1, :cond_7b
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->offsets:[J
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
aget-wide p2, p1, p2
goto :goto_82
:cond_7b
iget-wide p1, p4, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$BufferExtrasHolder;->offset:J
iget p3, p4, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$BufferExtrasHolder;->size:I
int-to-long v0, p3
add-long p2, p1, v0
:goto_82
iput-wide p2, p4, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$BufferExtrasHolder;->nextOffset:J
:try_end_84
.catchall {:try_start_1b .. :try_end_84} :catchall_91
const/4 p1, -0x4
.line 795
monitor-exit p0
return p1
.line 774
:cond_87
:goto_87
:try_start_87
iget-object p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->formats:[Lcom/google/android/exoplayer2/Format;
iget p3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
aget-object p2, p2, p3
iput-object p2, p1, Lcom/google/android/exoplayer2/FormatHolder;->format:Lcom/google/android/exoplayer2/Format;
:try_end_8f
.catchall {:try_start_87 .. :try_end_8f} :catchall_91
.line 775
monitor-exit p0
return v1
:catchall_91
move-exception p1
monitor-exit p0
throw p1
.end method
.method public resetLargestParsedTimestamps()V
.registers 3
const-wide/high16 v0, -0x8000000000000000L
.line 652
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestDequeuedTimestampUs:J
.line 653
iput-wide v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestQueuedTimestampUs:J
return-void
.end method
.method public declared-synchronized skipToKeyframeBefore(JZ)J
.registers 12
monitor-enter p0
.line 810
:try_start_1
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
const-wide/16 v1, -0x1
if-eqz v0, :cond_5b
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->timesUs:[J
iget v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
aget-wide v3, v0, v3
cmp-long v0, p1, v3
if-gez v0, :cond_12
goto :goto_5b
.line 814
:cond_12
iget-wide v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->largestQueuedTimestampUs:J
:try_end_14
.catchall {:try_start_1 .. :try_end_14} :catchall_5d
cmp-long v0, p1, v3
if-lez v0, :cond_1c
if-nez p3, :cond_1c
.line 815
monitor-exit p0
return-wide v1
:cond_1c
const/4 p3, 0x0
.line 823
:try_start_1d
iget v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
const/4 v3, -0x1
const/4 v4, -0x1
.line 824
:goto_21
iget v5, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeWriteIndex:I
if-eq v0, v5, :cond_3f
.line 825
iget-object v5, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->timesUs:[J
aget-wide v6, v5, v0
cmp-long v5, v6, p1
if-lez v5, :cond_2e
goto :goto_3f
.line 828
:cond_2e
iget-object v5, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->flags:[I
aget v5, v5, v0
and-int/lit8 v5, v5, 0x1
if-eqz v5, :cond_37
move v4, p3
:cond_37
add-int/lit8 v0, v0, 0x1
.line 832
iget v5, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
rem-int/2addr v0, v5
:try_end_3c
.catchall {:try_start_1d .. :try_end_3c} :catchall_5d
add-int/lit8 p3, p3, 0x1
goto :goto_21
:cond_3f
:goto_3f
if-ne v4, v3, :cond_43
.line 837
monitor-exit p0
return-wide v1
.line 840
:cond_43
:try_start_43
iget p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
sub-int/2addr p1, v4
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->queueSize:I
.line 841
iget p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
add-int/2addr p1, v4
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->capacity:I
rem-int/2addr p1, p2
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->relativeReadIndex:I
.line 842
iget p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->absoluteReadIndex:I
add-int/2addr p2, v4
iput p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->absoluteReadIndex:I
.line 843
iget-object p2, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->offsets:[J
aget-wide p1, p2, p1
:try_end_59
.catchall {:try_start_43 .. :try_end_59} :catchall_5d
monitor-exit p0
return-wide p1
.line 811
:cond_5b
:goto_5b
monitor-exit p0
return-wide v1
:catchall_5d
move-exception p1
monitor-exit p0
throw p1
.end method
.method public sourceId(I)V
.registers 2
.line 698
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput$InfoQueue;->upstreamSourceId:I
return-void
.end method