DashMediaSource$PeriodSeekInfo.smali
.class final Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
.super Ljava/lang/Object;
.source "DashMediaSource.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/source/dash/DashMediaSource;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1a
name = "PeriodSeekInfo"
.end annotation
# instance fields
.field public final availableEndTimeUs:J
.field public final availableStartTimeUs:J
.field public final isIndexExplicit:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method private constructor <init>(ZJJ)V
.registers 6
.param p1, "isIndexExplicit" # Z
.param p2, "availableStartTimeUs" # J
.param p4, "availableEndTimeUs" # J
.line 1123
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 1124
iput-boolean p1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;->isIndexExplicit:Z
.line 1125
iput-wide p2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;->availableStartTimeUs:J
.line 1126
iput-wide p4, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;->availableEndTimeUs:J
.line 1127
return-void
.end method
.method public static createPeriodSeekInfo(Lcom/google/android/exoplayer2/source/dash/manifest/Period;J)Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
.registers 31
.param p0, "period" # Lcom/google/android/exoplayer2/source/dash/manifest/Period;
.param p1, "durationUs" # J
.line 1070
move-object/from16 v0, p0
move-wide/from16 v7, p1
iget-object v1, v0, Lcom/google/android/exoplayer2/source/dash/manifest/Period;->adaptationSets:Ljava/util/List;
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v9
.line 1071
.local v9, "adaptationSetCount":I
const-wide/16 v1, 0x0
.line 1072
.local v1, "availableStartTimeUs":J
const-wide v3, 0x7fffffffffffffffL
.line 1073
.local v3, "availableEndTimeUs":J
const/4 v5, 0x0
.line 1074
.local v5, "isIndexExplicit":Z
const/4 v6, 0x0
.line 1076
.local v6, "seenEmptyIndex":Z
const/4 v10, 0x0
.line 1077
.local v10, "haveAudioVideoAdaptationSets":Z
const/4 v11, 0x0
.local v11, "i":I
:goto_15
if-ge v11, v9, :cond_2c
.line 1078
iget-object v12, v0, Lcom/google/android/exoplayer2/source/dash/manifest/Period;->adaptationSets:Ljava/util/List;
invoke-interface {v12, v11}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v12
check-cast v12, Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;
iget v12, v12, Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;->type:I
.line 1079
.local v12, "type":I
const/4 v13, 0x1
if-eq v12, v13, :cond_2b
const/4 v13, 0x2
if-ne v12, v13, :cond_28
goto :goto_2b
.line 1077
.end local v12 # "type":I
:cond_28
add-int/lit8 v11, v11, 0x1
goto :goto_15
.line 1080
.restart local v12 # "type":I
:cond_2b
:goto_2b
const/4 v10, 0x1
.line 1085
.end local v11 # "i":I
.end local v12 # "type":I
:cond_2c
const/4 v11, 0x0
move-wide v14, v1
move/from16 v18, v5
move/from16 v19, v6
move v13, v11
move-wide v11, v3
.end local v1 # "availableStartTimeUs":J
.end local v3 # "availableEndTimeUs":J
.end local v5 # "isIndexExplicit":Z
.end local v6 # "seenEmptyIndex":Z
.local v11, "availableEndTimeUs":J
.local v13, "i":I
.local v14, "availableStartTimeUs":J
.local v18, "isIndexExplicit":Z
.local v19, "seenEmptyIndex":Z
:goto_34
if-ge v13, v9, :cond_be
.line 1086
iget-object v1, v0, Lcom/google/android/exoplayer2/source/dash/manifest/Period;->adaptationSets:Ljava/util/List;
invoke-interface {v1, v13}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
move-object v5, v1
check-cast v5, Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;
.line 1089
.local v5, "adaptationSet":Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;
if-eqz v10, :cond_48
iget v1, v5, Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;->type:I
const/4 v2, 0x3
if-ne v1, v2, :cond_48
.line 1090
goto/16 :goto_b8
.line 1093
:cond_48
iget-object v1, v5, Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;->representations:Ljava/util/List;
const/4 v2, 0x0
invoke-interface {v1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/source/dash/manifest/Representation;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/source/dash/manifest/Representation;->getIndex()Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;
move-result-object v6
.line 1094
.local v6, "index":Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;
if-nez v6, :cond_68
.line 1095
new-instance v16, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
const/4 v2, 0x1
const-wide/16 v3, 0x0
move-object/from16 v1, v16
move-object/from16 v17, v5
move-object/from16 v20, v6
.end local v5 # "adaptationSet":Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;
.end local v6 # "index":Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;
.local v17, "adaptationSet":Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;
.local v20, "index":Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;
move-wide/from16 v5, p1
invoke-direct/range {v1 .. v6}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;-><init>(ZJJ)V
return-object v16
.line 1097
.end local v17 # "adaptationSet":Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;
.end local v20 # "index":Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;
.restart local v5 # "adaptationSet":Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;
.restart local v6 # "index":Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;
:cond_68
move-object/from16 v17, v5
move-object/from16 v20, v6
.end local v5 # "adaptationSet":Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;
.end local v6 # "index":Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;
.restart local v17 # "adaptationSet":Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;
.restart local v20 # "index":Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;
invoke-interface/range {v20 .. v20}, Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;->isExplicit()Z
move-result v1
or-int v1, v18, v1
.line 1098
.end local v18 # "isIndexExplicit":Z
.local v1, "isIndexExplicit":Z
move-object/from16 v2, v20
.end local v20 # "index":Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;
.local v2, "index":Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;
invoke-interface {v2, v7, v8}, Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;->getSegmentCount(J)I
move-result v3
.line 1099
.local v3, "segmentCount":I
if-nez v3, :cond_85
.line 1100
const/4 v4, 0x1
.line 1101
.end local v19 # "seenEmptyIndex":Z
.local v4, "seenEmptyIndex":Z
const-wide/16 v5, 0x0
.line 1102
.end local v14 # "availableStartTimeUs":J
.local v5, "availableStartTimeUs":J
const-wide/16 v11, 0x0
move/from16 v18, v1
move/from16 v19, v4
move-wide v14, v5
goto :goto_b8
.line 1103
.end local v4 # "seenEmptyIndex":Z
.end local v5 # "availableStartTimeUs":J
.restart local v14 # "availableStartTimeUs":J
.restart local v19 # "seenEmptyIndex":Z
:cond_85
if-nez v19, :cond_b5
.line 1104
invoke-interface {v2}, Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;->getFirstSegmentNum()J
move-result-wide v4
.line 1105
.local v4, "firstSegmentNum":J
move v6, v1
.end local v1 # "isIndexExplicit":Z
.local v6, "isIndexExplicit":Z
invoke-interface {v2, v4, v5}, Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;->getTimeUs(J)J
move-result-wide v0
.line 1106
.local v0, "adaptationSetAvailableStartTimeUs":J
invoke-static {v14, v15, v0, v1}, Ljava/lang/Math;->max(JJ)J
move-result-wide v14
.line 1107
move-wide/from16 v20, v0
.end local v0 # "adaptationSetAvailableStartTimeUs":J
.local v20, "adaptationSetAvailableStartTimeUs":J
const/4 v0, -0x1
if-eq v3, v0, :cond_b2
.line 1108
int-to-long v0, v3
add-long/2addr v0, v4
const-wide/16 v22, 0x1
sub-long v0, v0, v22
.line 1109
.local v0, "lastSegmentNum":J
invoke-interface {v2, v0, v1}, Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;->getTimeUs(J)J
move-result-wide v22
.line 1110
invoke-interface {v2, v0, v1, v7, v8}, Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;->getDurationUs(JJ)J
move-result-wide v24
move-wide/from16 v26, v0
.end local v0 # "lastSegmentNum":J
.local v26, "lastSegmentNum":J
add-long v0, v22, v24
.line 1111
.local v0, "adaptationSetAvailableEndTimeUs":J
invoke-static {v11, v12, v0, v1}, Ljava/lang/Math;->min(JJ)J
move-result-wide v11
move/from16 v18, v6
goto :goto_b8
.line 1107
.end local v0 # "adaptationSetAvailableEndTimeUs":J
.end local v26 # "lastSegmentNum":J
:cond_b2
move/from16 v18, v6
goto :goto_b8
.line 1103
.end local v4 # "firstSegmentNum":J
.end local v6 # "isIndexExplicit":Z
.end local v20 # "adaptationSetAvailableStartTimeUs":J
.restart local v1 # "isIndexExplicit":Z
:cond_b5
move v6, v1
.end local v1 # "isIndexExplicit":Z
.restart local v6 # "isIndexExplicit":Z
move/from16 v18, v6
.line 1085
.end local v2 # "index":Lcom/google/android/exoplayer2/source/dash/DashSegmentIndex;
.end local v3 # "segmentCount":I
.end local v6 # "isIndexExplicit":Z
.end local v17 # "adaptationSet":Lcom/google/android/exoplayer2/source/dash/manifest/AdaptationSet;
.restart local v18 # "isIndexExplicit":Z
:goto_b8
add-int/lit8 v13, v13, 0x1
move-object/from16 v0, p0
goto/16 :goto_34
.line 1115
.end local v13 # "i":I
:cond_be
new-instance v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
move-wide v3, v11
.end local v11 # "availableEndTimeUs":J
.local v3, "availableEndTimeUs":J
move-object v12, v0
move/from16 v13, v18
move-wide v1, v14
.end local v14 # "availableStartTimeUs":J
.local v1, "availableStartTimeUs":J
move-wide/from16 v16, v3
invoke-direct/range {v12 .. v17}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;-><init>(ZJJ)V
return-object v0
.end method