SsMediaSource.smali
.class public final Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;
.super Ljava/lang/Object;
.source "SsMediaSource.java"
# interfaces
.implements Lcom/google/android/exoplayer2/source/MediaSource;
.implements Lcom/google/android/exoplayer2/upstream/Loader$Callback;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lcom/google/android/exoplayer2/source/MediaSource;",
"Lcom/google/android/exoplayer2/upstream/Loader$Callback<",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable<",
"Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;",
">;>;"
}
.end annotation
# static fields
.field public static final DEFAULT_LIVE_PRESENTATION_DELAY_MS:J = 0x7530L
.field public static final DEFAULT_MIN_LOADABLE_RETRY_COUNT:I = 0x3
.field private static final MINIMUM_MANIFEST_REFRESH_PERIOD_MS:I = 0x1388
.field private static final MIN_LIVE_DEFAULT_START_POSITION_US:J = 0x4c4b40L
# instance fields
.field private final chunkSourceFactory:Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;
.field private final eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;
.field private final livePresentationDelayMs:J
.field private manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
.field private manifestDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.field private final manifestDataSourceFactory:Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
.field private manifestLoadStartTimestamp:J
.field private manifestLoader:Lcom/google/android/exoplayer2/upstream/Loader;
.field private manifestLoaderErrorThrower:Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;
.field private final manifestParser:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser;
.field private manifestRefreshHandler:Landroid/os/Handler;
.field private final manifestUri:Landroid/net/Uri;
.field private final mediaPeriods:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaPeriod;",
">;"
}
.end annotation
.end field
.field private final minLoadableRetryCount:I
.field private sourceListener:Lcom/google/android/exoplayer2/source/MediaSource$Listener;
# direct methods
.method public constructor <init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;IJLandroid/os/Handler;Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener;)V
.registers 19
.line 154
new-instance v3, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser;
invoke-direct {v3}, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser;-><init>()V
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v4, p3
move v5, p4
move-wide v6, p5
move-object/from16 v8, p7
move-object/from16 v9, p8
invoke-direct/range {v0 .. v9}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;-><init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser;Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;IJLandroid/os/Handler;Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener;)V
return-void
.end method
.method public constructor <init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;Landroid/os/Handler;Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener;)V
.registers 15
const/4 v4, 0x3
const-wide/16 v5, 0x7530
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
move-object v7, p4
move-object v8, p5
.line 131
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;-><init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;IJLandroid/os/Handler;Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener;)V
return-void
.end method
.method public constructor <init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser;Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;IJLandroid/os/Handler;Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener;)V
.registers 21
const/4 v1, 0x0
move-object v0, p0
move-object v2, p1
move-object v3, p2
move-object v4, p3
move-object v5, p4
move/from16 v6, p5
move-wide/from16 v7, p6
move-object/from16 v9, p8
move-object/from16 v10, p9
.line 177
invoke-direct/range {v0 .. v10}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;-><init>(Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser;Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;IJLandroid/os/Handler;Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener;)V
return-void
.end method
.method private constructor <init>(Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser;Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;IJLandroid/os/Handler;Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener;)V
.registers 12
.line 185
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
if-eqz p1, :cond_c
.line 186
iget-boolean v0, p1, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->isLive:Z
if-nez v0, :cond_a
goto :goto_c
:cond_a
const/4 v0, 0x0
goto :goto_d
:cond_c
:goto_c
const/4 v0, 0x1
:goto_d
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 187
iput-object p1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
if-nez p2, :cond_16
const/4 p2, 0x0
goto :goto_2d
.line 189
:cond_16
invoke-virtual {p2}, Landroid/net/Uri;->getLastPathSegment()Ljava/lang/String;
move-result-object p1
invoke-static {p1}, Lcom/google/android/exoplayer2/util/Util;->toLowerInvariant(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
const-string v0, "manifest"
invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_27
goto :goto_2d
:cond_27
const-string p1, "Manifest"
.line 190
invoke-static {p2, p1}, Landroid/net/Uri;->withAppendedPath(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
move-result-object p2
:goto_2d
iput-object p2, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestUri:Landroid/net/Uri;
.line 191
iput-object p3, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestDataSourceFactory:Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
.line 192
iput-object p4, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestParser:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser;
.line 193
iput-object p5, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->chunkSourceFactory:Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;
.line 194
iput p6, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->minLoadableRetryCount:I
.line 195
iput-wide p7, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->livePresentationDelayMs:J
.line 196
new-instance p1, Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;
invoke-direct {p1, p9, p10}, Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;-><init>(Landroid/os/Handler;Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener;)V
iput-object p1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;
.line 197
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->mediaPeriods:Ljava/util/ArrayList;
return-void
.end method
.method public constructor <init>(Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;ILandroid/os/Handler;Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener;)V
.registers 17
const/4 v2, 0x0
const/4 v3, 0x0
const/4 v4, 0x0
const-wide/16 v7, 0x7530
move-object v0, p0
move-object v1, p1
move-object v5, p2
move v6, p3
move-object v9, p4
move-object/from16 v10, p5
.line 113
invoke-direct/range {v0 .. v10}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;-><init>(Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser;Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;IJLandroid/os/Handler;Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener;)V
return-void
.end method
.method public constructor <init>(Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;Landroid/os/Handler;Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener;)V
.registers 11
const/4 v3, 0x3
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v4, p3
move-object v5, p4
.line 97
invoke-direct/range {v0 .. v5}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;-><init>(Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;ILandroid/os/Handler;Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener;)V
return-void
.end method
.method static synthetic access$000(Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;)V
.registers 1
.line 46
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->startLoadingManifest()V
return-void
.end method
.method private processManifest()V
.registers 24
move-object/from16 v0, p0
const/4 v1, 0x0
const/4 v2, 0x0
.line 285
:goto_4
iget-object v3, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->mediaPeriods:Ljava/util/ArrayList;
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v3
if-ge v2, v3, :cond_1c
.line 286
iget-object v3, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->mediaPeriods:Ljava/util/ArrayList;
invoke-virtual {v3, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaPeriod;
iget-object v4, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
invoke-virtual {v3, v4}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaPeriod;->updateManifest(Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;)V
add-int/lit8 v2, v2, 0x1
goto :goto_4
.line 289
:cond_1c
iget-object v2, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
iget-boolean v2, v2, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->isLive:Z
const-wide v3, -0x7fffffffffffffffL # -4.9E-324
const/4 v5, 0x1
if-eqz v2, :cond_b3
const-wide/high16 v6, -0x8000000000000000L
const-wide v8, 0x7fffffffffffffffL
move-wide v10, v8
const/4 v2, 0x0
.line 292
:goto_31
iget-object v12, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
iget-object v12, v12, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->streamElements:[Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;
array-length v12, v12
if-ge v2, v12, :cond_60
.line 293
iget-object v12, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
iget-object v12, v12, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->streamElements:[Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;
aget-object v12, v12, v2
.line 294
iget v13, v12, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;->chunkCount:I
if-lez v13, :cond_5d
.line 295
invoke-virtual {v12, v1}, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;->getStartTimeUs(I)J
move-result-wide v13
invoke-static {v10, v11, v13, v14}, Ljava/lang/Math;->min(JJ)J
move-result-wide v10
.line 296
iget v13, v12, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;->chunkCount:I
sub-int/2addr v13, v5
invoke-virtual {v12, v13}, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;->getStartTimeUs(I)J
move-result-wide v13
iget v15, v12, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;->chunkCount:I
sub-int/2addr v15, v5
.line 297
invoke-virtual {v12, v15}, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;->getChunkDurationUs(I)J
move-result-wide v15
add-long/2addr v13, v15
.line 296
invoke-static {v6, v7, v13, v14}, Ljava/lang/Math;->max(JJ)J
move-result-wide v6
:cond_5d
add-int/lit8 v2, v2, 0x1
goto :goto_31
:cond_60
cmp-long v2, v10, v8
if-nez v2, :cond_6a
.line 301
new-instance v2, Lcom/google/android/exoplayer2/source/SinglePeriodTimeline;
invoke-direct {v2, v3, v4, v1}, Lcom/google/android/exoplayer2/source/SinglePeriodTimeline;-><init>(JZ)V
goto :goto_c5
.line 303
:cond_6a
iget-object v1, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
iget-wide v1, v1, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->dvrWindowLengthUs:J
cmp-long v5, v1, v3
if-eqz v5, :cond_86
iget-object v1, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
iget-wide v1, v1, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->dvrWindowLengthUs:J
const-wide/16 v3, 0x0
cmp-long v5, v1, v3
if-lez v5, :cond_86
.line 305
iget-object v1, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
iget-wide v1, v1, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->dvrWindowLengthUs:J
sub-long v1, v6, v1
invoke-static {v10, v11, v1, v2}, Ljava/lang/Math;->max(JJ)J
move-result-wide v10
:cond_86
move-wide/from16 v17, v10
sub-long v15, v6, v17
.line 308
iget-wide v1, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->livePresentationDelayMs:J
invoke-static {v1, v2}, Lcom/google/android/exoplayer2/C;->msToUs(J)J
move-result-wide v1
sub-long v1, v15, v1
const-wide/32 v3, 0x4c4b40
cmp-long v5, v1, v3
if-gez v5, :cond_a1
const-wide/16 v1, 0x2
.line 313
div-long v1, v15, v1
invoke-static {v3, v4, v1, v2}, Ljava/lang/Math;->min(JJ)J
move-result-wide v1
:cond_a1
move-wide/from16 v19, v1
.line 315
new-instance v2, Lcom/google/android/exoplayer2/source/SinglePeriodTimeline;
const-wide v13, -0x7fffffffffffffffL # -4.9E-324
const/16 v21, 0x1
const/16 v22, 0x1
move-object v12, v2
invoke-direct/range {v12 .. v22}, Lcom/google/android/exoplayer2/source/SinglePeriodTimeline;-><init>(JJJJZZ)V
goto :goto_c5
.line 319
:cond_b3
iget-object v2, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
iget-wide v6, v2, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->durationUs:J
cmp-long v2, v6, v3
if-eqz v2, :cond_bc
const/4 v1, 0x1
.line 320
:cond_bc
new-instance v2, Lcom/google/android/exoplayer2/source/SinglePeriodTimeline;
iget-object v3, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
iget-wide v3, v3, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->durationUs:J
invoke-direct {v2, v3, v4, v1}, Lcom/google/android/exoplayer2/source/SinglePeriodTimeline;-><init>(JZ)V
.line 322
:goto_c5
iget-object v1, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->sourceListener:Lcom/google/android/exoplayer2/source/MediaSource$Listener;
iget-object v3, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
invoke-interface {v1, v2, v3}, Lcom/google/android/exoplayer2/source/MediaSource$Listener;->onSourceInfoRefreshed(Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;)V
return-void
.end method
.method private scheduleManifestRefresh()V
.registers 7
.line 326
iget-object v0, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->isLive:Z
if-nez v0, :cond_7
return-void
.line 329
:cond_7
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestLoadStartTimestamp:J
const-wide/16 v2, 0x1388
add-long/2addr v0, v2
const-wide/16 v2, 0x0
.line 330
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v4
sub-long/2addr v0, v4
invoke-static {v2, v3, v0, v1}, Ljava/lang/Math;->max(JJ)J
move-result-wide v0
.line 331
iget-object v2, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestRefreshHandler:Landroid/os/Handler;
new-instance v3, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource$1;
invoke-direct {v3, p0}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource$1;-><init>(Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;)V
invoke-virtual {v2, v3, v0, v1}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
return-void
.end method
.method private startLoadingManifest()V
.registers 6
.line 340
new-instance v0, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
iget-object v2, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestUri:Landroid/net/Uri;
iget-object v3, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestParser:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser;
const/4 v4, 0x4
invoke-direct {v0, v1, v2, v4, v3}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;-><init>(Lcom/google/android/exoplayer2/upstream/DataSource;Landroid/net/Uri;ILcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;)V
.line 342
iget-object v1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestLoader:Lcom/google/android/exoplayer2/upstream/Loader;
iget v2, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->minLoadableRetryCount:I
invoke-virtual {v1, v0, p0, v2}, Lcom/google/android/exoplayer2/upstream/Loader;->startLoading(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;Lcom/google/android/exoplayer2/upstream/Loader$Callback;I)J
move-result-wide v1
.line 343
iget-object v3, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;
iget-object v4, v0, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
iget v0, v0, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->type:I
invoke-virtual {v3, v4, v0, v1, v2}, Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;->loadStarted(Lcom/google/android/exoplayer2/upstream/DataSpec;IJ)V
return-void
.end method
# virtual methods
.method public createPeriod(ILcom/google/android/exoplayer2/upstream/Allocator;J)Lcom/google/android/exoplayer2/source/MediaPeriod;
.registers 12
if-nez p1, :cond_4
const/4 p1, 0x1
goto :goto_5
:cond_4
const/4 p1, 0x0
.line 224
:goto_5
invoke-static {p1}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 225
new-instance p1, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaPeriod;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
iget-object v2, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->chunkSourceFactory:Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;
iget v3, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->minLoadableRetryCount:I
iget-object v4, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;
iget-object v5, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestLoaderErrorThrower:Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;
move-object v0, p1
move-object v6, p2
invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaPeriod;-><init>(Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;Lcom/google/android/exoplayer2/source/smoothstreaming/SsChunkSource$Factory;ILcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;Lcom/google/android/exoplayer2/upstream/Allocator;)V
.line 227
iget-object p2, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->mediaPeriods:Ljava/util/ArrayList;
invoke-virtual {p2, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
return-object p1
.end method
.method public maybeThrowSourceInfoRefreshError()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 219
iget-object v0, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestLoaderErrorThrower:Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;
invoke-interface {v0}, Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;->maybeThrowError()V
return-void
.end method
.method public bridge synthetic onLoadCanceled(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;JJZ)V
.registers 7
.line 46
check-cast p1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;
invoke-virtual/range {p0 .. p6}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->onLoadCanceled(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;JJZ)V
return-void
.end method
.method public onLoadCanceled(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;JJZ)V
.registers 16
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable<",
"Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;",
">;JJZ)V"
}
.end annotation
.line 269
iget-object v0, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;
iget-object v1, p1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
iget v2, p1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->type:I
.line 270
invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->bytesLoaded()J
move-result-wide v7
move-wide v3, p2
move-wide v5, p4
.line 269
invoke-virtual/range {v0 .. v8}, Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;->loadCompleted(Lcom/google/android/exoplayer2/upstream/DataSpec;IJJJ)V
return-void
.end method
.method public bridge synthetic onLoadCompleted(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;JJ)V
.registers 6
.line 46
check-cast p1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;
invoke-virtual/range {p0 .. p5}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->onLoadCompleted(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;JJ)V
return-void
.end method
.method public onLoadCompleted(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;JJ)V
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable<",
"Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;",
">;JJ)V"
}
.end annotation
.line 258
iget-object v0, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;
iget-object v1, p1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
iget v2, p1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->type:I
.line 259
invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->bytesLoaded()J
move-result-wide v7
move-wide v3, p2
move-wide v5, p4
.line 258
invoke-virtual/range {v0 .. v8}, Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;->loadCompleted(Lcom/google/android/exoplayer2/upstream/DataSpec;IJJJ)V
.line 260
invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getResult()Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
iput-object p1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
sub-long/2addr p2, p4
.line 261
iput-wide p2, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestLoadStartTimestamp:J
.line 262
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->processManifest()V
.line 263
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->scheduleManifestRefresh()V
return-void
.end method
.method public bridge synthetic onLoadError(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;JJLjava/io/IOException;)I
.registers 7
.line 46
check-cast p1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;
invoke-virtual/range {p0 .. p6}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->onLoadError(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;JJLjava/io/IOException;)I
move-result p1
return p1
.end method
.method public onLoadError(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;JJLjava/io/IOException;)I
.registers 20
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable<",
"Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;",
">;JJ",
"Ljava/io/IOException;",
")I"
}
.end annotation
move-object v0, p1
move-object/from16 v9, p6
.line 276
instance-of v11, v9, Lcom/google/android/exoplayer2/ParserException;
move-object v12, p0
.line 277
iget-object v1, v12, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;
iget-object v2, v0, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
iget v3, v0, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->type:I
.line 278
invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->bytesLoaded()J
move-result-wide v7
move-object v0, v1
move-object v1, v2
move v2, v3
move-wide v3, p2
move-wide/from16 v5, p4
move v10, v11
.line 277
invoke-virtual/range {v0 .. v10}, Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;->loadError(Lcom/google/android/exoplayer2/upstream/DataSpec;IJJJLjava/io/IOException;Z)V
if-eqz v11, :cond_1e
const/4 v0, 0x3
goto :goto_1f
:cond_1e
const/4 v0, 0x0
:goto_1f
return v0
.end method
.method public prepareSource(Lcom/google/android/exoplayer2/ExoPlayer;ZLcom/google/android/exoplayer2/source/MediaSource$Listener;)V
.registers 4
.line 204
iput-object p3, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->sourceListener:Lcom/google/android/exoplayer2/source/MediaSource$Listener;
.line 205
iget-object p1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
if-eqz p1, :cond_11
.line 206
new-instance p1, Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower$Dummy;
invoke-direct {p1}, Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower$Dummy;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestLoaderErrorThrower:Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;
.line 207
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->processManifest()V
goto :goto_2e
.line 209
:cond_11
iget-object p1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestDataSourceFactory:Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
invoke-interface {p1}, Lcom/google/android/exoplayer2/upstream/DataSource$Factory;->createDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
move-result-object p1
iput-object p1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 210
new-instance p1, Lcom/google/android/exoplayer2/upstream/Loader;
const-string p2, "Loader:Manifest"
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/upstream/Loader;-><init>(Ljava/lang/String;)V
iput-object p1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestLoader:Lcom/google/android/exoplayer2/upstream/Loader;
.line 211
iput-object p1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestLoaderErrorThrower:Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;
.line 212
new-instance p1, Landroid/os/Handler;
invoke-direct {p1}, Landroid/os/Handler;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestRefreshHandler:Landroid/os/Handler;
.line 213
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->startLoadingManifest()V
:goto_2e
return-void
.end method
.method public releasePeriod(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.registers 3
.line 233
move-object v0, p1
check-cast v0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaPeriod;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaPeriod;->release()V
.line 234
iget-object v0, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->mediaPeriods:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
return-void
.end method
.method public releaseSource()V
.registers 4
const/4 v0, 0x0
.line 239
iput-object v0, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->sourceListener:Lcom/google/android/exoplayer2/source/MediaSource$Listener;
.line 240
iput-object v0, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifest:Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
.line 241
iput-object v0, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
const-wide/16 v1, 0x0
.line 242
iput-wide v1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestLoadStartTimestamp:J
.line 243
iget-object v1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestLoader:Lcom/google/android/exoplayer2/upstream/Loader;
if-eqz v1, :cond_14
.line 244
invoke-virtual {v1}, Lcom/google/android/exoplayer2/upstream/Loader;->release()V
.line 245
iput-object v0, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestLoader:Lcom/google/android/exoplayer2/upstream/Loader;
.line 247
:cond_14
iget-object v1, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestRefreshHandler:Landroid/os/Handler;
if-eqz v1, :cond_1d
.line 248
invoke-virtual {v1, v0}, Landroid/os/Handler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
.line 249
iput-object v0, p0, Lcom/google/android/exoplayer2/source/smoothstreaming/SsMediaSource;->manifestRefreshHandler:Landroid/os/Handler;
:cond_1d
return-void
.end method