LoopingMediaSource.smali
.class public final Lcom/google/android/exoplayer2/source/LoopingMediaSource;
.super Lcom/google/android/exoplayer2/source/CompositeMediaSource;
.source "LoopingMediaSource.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/source/LoopingMediaSource$InfinitelyLoopingTimeline;,
Lcom/google/android/exoplayer2/source/LoopingMediaSource$LoopingTimeline;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/android/exoplayer2/source/CompositeMediaSource<",
"Ljava/lang/Void;",
">;"
}
.end annotation
# instance fields
.field private final childMediaPeriodIdToMediaPeriodId:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;",
"Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;",
">;"
}
.end annotation
.end field
.field private final childSource:Lcom/google/android/exoplayer2/source/MediaSource;
.field private final loopCount:I
.field private final mediaPeriodToChildMediaPeriodId:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Lcom/google/android/exoplayer2/source/MediaPeriod;",
"Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Lcom/google/android/exoplayer2/source/MediaSource;)V
.registers 3
.param p1, "childSource" # Lcom/google/android/exoplayer2/source/MediaSource;
.line 50
const v0, 0x7fffffff
invoke-direct {p0, p1, v0}, Lcom/google/android/exoplayer2/source/LoopingMediaSource;-><init>(Lcom/google/android/exoplayer2/source/MediaSource;I)V
.line 51
return-void
.end method
.method public constructor <init>(Lcom/google/android/exoplayer2/source/MediaSource;I)V
.registers 4
.param p1, "childSource" # Lcom/google/android/exoplayer2/source/MediaSource;
.param p2, "loopCount" # I
.line 59
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/CompositeMediaSource;-><init>()V
.line 60
if-lez p2, :cond_7
const/4 v0, 0x1
goto :goto_8
:cond_7
const/4 v0, 0x0
:goto_8
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 61
iput-object p1, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->childSource:Lcom/google/android/exoplayer2/source/MediaSource;
.line 62
iput p2, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->loopCount:I
.line 63
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->childMediaPeriodIdToMediaPeriodId:Ljava/util/Map;
.line 64
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->mediaPeriodToChildMediaPeriodId:Ljava/util/Map;
.line 65
return-void
.end method
# virtual methods
.method public createPeriod(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;Lcom/google/android/exoplayer2/upstream/Allocator;J)Lcom/google/android/exoplayer2/source/MediaPeriod;
.registers 9
.param p1, "id" # Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
.param p2, "allocator" # Lcom/google/android/exoplayer2/upstream/Allocator;
.param p3, "startPositionUs" # J
.line 81
iget v0, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->loopCount:I
const v1, 0x7fffffff
if-ne v0, v1, :cond_e
.line 82
iget-object v0, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->childSource:Lcom/google/android/exoplayer2/source/MediaSource;
invoke-interface {v0, p1, p2, p3, p4}, Lcom/google/android/exoplayer2/source/MediaSource;->createPeriod(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;Lcom/google/android/exoplayer2/upstream/Allocator;J)Lcom/google/android/exoplayer2/source/MediaPeriod;
move-result-object v0
return-object v0
.line 84
:cond_e
iget-object v0, p1, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->periodUid:Ljava/lang/Object;
invoke-static {v0}, Lcom/google/android/exoplayer2/source/LoopingMediaSource$LoopingTimeline;->getChildPeriodUidFromConcatenatedUid(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 85
.local v0, "childPeriodUid":Ljava/lang/Object;
invoke-virtual {p1, v0}, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->copyWithPeriodUid(Ljava/lang/Object;)Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
move-result-object v1
.line 86
.local v1, "childMediaPeriodId":Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
iget-object v2, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->childMediaPeriodIdToMediaPeriodId:Ljava/util/Map;
invoke-interface {v2, v1, p1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 87
iget-object v2, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->childSource:Lcom/google/android/exoplayer2/source/MediaSource;
.line 88
invoke-interface {v2, v1, p2, p3, p4}, Lcom/google/android/exoplayer2/source/MediaSource;->createPeriod(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;Lcom/google/android/exoplayer2/upstream/Allocator;J)Lcom/google/android/exoplayer2/source/MediaPeriod;
move-result-object v2
.line 89
.local v2, "mediaPeriod":Lcom/google/android/exoplayer2/source/MediaPeriod;
iget-object v3, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->mediaPeriodToChildMediaPeriodId:Ljava/util/Map;
invoke-interface {v3, v2, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 90
return-object v2
.end method
.method protected bridge synthetic getMediaPeriodIdForChildMediaPeriodId(Ljava/lang/Object;Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;)Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
.registers 3
.line 36
check-cast p1, Ljava/lang/Void;
invoke-virtual {p0, p1, p2}, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->getMediaPeriodIdForChildMediaPeriodId(Ljava/lang/Void;Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;)Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
move-result-object p1
return-object p1
.end method
.method protected getMediaPeriodIdForChildMediaPeriodId(Ljava/lang/Void;Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;)Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
.registers 5
.param p1, "id" # Ljava/lang/Void;
.param p2, "mediaPeriodId" # Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
.line 115
iget v0, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->loopCount:I
const v1, 0x7fffffff
if-eq v0, v1, :cond_10
iget-object v0, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->childMediaPeriodIdToMediaPeriodId:Ljava/util/Map;
.line 116
invoke-interface {v0, p2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
goto :goto_11
:cond_10
move-object v0, p2
.line 115
:goto_11
return-object v0
.end method
.method public getTag()Ljava/lang/Object;
.registers 2
.line 70
iget-object v0, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->childSource:Lcom/google/android/exoplayer2/source/MediaSource;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaSource;->getTag()Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method protected bridge synthetic onChildSourceInfoRefreshed(Ljava/lang/Object;Lcom/google/android/exoplayer2/source/MediaSource;Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;)V
.registers 5
.line 36
check-cast p1, Ljava/lang/Void;
invoke-virtual {p0, p1, p2, p3, p4}, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->onChildSourceInfoRefreshed(Ljava/lang/Void;Lcom/google/android/exoplayer2/source/MediaSource;Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;)V
return-void
.end method
.method protected onChildSourceInfoRefreshed(Ljava/lang/Void;Lcom/google/android/exoplayer2/source/MediaSource;Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;)V
.registers 7
.param p1, "id" # Ljava/lang/Void;
.param p2, "mediaSource" # Lcom/google/android/exoplayer2/source/MediaSource;
.param p3, "timeline" # Lcom/google/android/exoplayer2/Timeline;
.param p4, "manifest" # Ljava/lang/Object;
.line 105
iget v0, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->loopCount:I
const v1, 0x7fffffff
if-eq v0, v1, :cond_f
new-instance v0, Lcom/google/android/exoplayer2/source/LoopingMediaSource$LoopingTimeline;
iget v1, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->loopCount:I
invoke-direct {v0, p3, v1}, Lcom/google/android/exoplayer2/source/LoopingMediaSource$LoopingTimeline;-><init>(Lcom/google/android/exoplayer2/Timeline;I)V
goto :goto_14
:cond_f
new-instance v0, Lcom/google/android/exoplayer2/source/LoopingMediaSource$InfinitelyLoopingTimeline;
invoke-direct {v0, p3}, Lcom/google/android/exoplayer2/source/LoopingMediaSource$InfinitelyLoopingTimeline;-><init>(Lcom/google/android/exoplayer2/Timeline;)V
.line 109
.local v0, "loopingTimeline":Lcom/google/android/exoplayer2/Timeline;
:goto_14
invoke-virtual {p0, v0, p4}, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->refreshSourceInfo(Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;)V
.line 110
return-void
.end method
.method public prepareSourceInternal(Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.registers 4
.param p1, "mediaTransferListener" # Lcom/google/android/exoplayer2/upstream/TransferListener;
.line 75
invoke-super {p0, p1}, Lcom/google/android/exoplayer2/source/CompositeMediaSource;->prepareSourceInternal(Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.line 76
iget-object v0, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->childSource:Lcom/google/android/exoplayer2/source/MediaSource;
const/4 v1, 0x0
invoke-virtual {p0, v1, v0}, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->prepareChildSource(Ljava/lang/Object;Lcom/google/android/exoplayer2/source/MediaSource;)V
.line 77
return-void
.end method
.method public releasePeriod(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.registers 4
.param p1, "mediaPeriod" # Lcom/google/android/exoplayer2/source/MediaPeriod;
.line 95
iget-object v0, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->childSource:Lcom/google/android/exoplayer2/source/MediaSource;
invoke-interface {v0, p1}, Lcom/google/android/exoplayer2/source/MediaSource;->releasePeriod(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.line 96
iget-object v0, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->mediaPeriodToChildMediaPeriodId:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
.line 97
.local v0, "childMediaPeriodId":Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
if-eqz v0, :cond_14
.line 98
iget-object v1, p0, Lcom/google/android/exoplayer2/source/LoopingMediaSource;->childMediaPeriodIdToMediaPeriodId:Ljava/util/Map;
invoke-interface {v1, v0}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 100
:cond_14
return-void
.end method