DefaultDataSource.smali
.class public final Lcom/google/android/exoplayer2/upstream/DefaultDataSource;
.super Ljava/lang/Object;
.source "DefaultDataSource.java"
# interfaces
.implements Lcom/google/android/exoplayer2/upstream/DataSource;
# static fields
.field private static final SCHEME_ASSET:Ljava/lang/String; = "asset"
.field private static final SCHEME_CONTENT:Ljava/lang/String; = "content"
.field private static final SCHEME_RAW:Ljava/lang/String; = "rawresource"
.field private static final SCHEME_RTMP:Ljava/lang/String; = "rtmp"
.field private static final TAG:Ljava/lang/String; = "DefaultDataSource"
# instance fields
.field private assetDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.field private final baseDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.field private contentDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.field private final context:Landroid/content/Context;
.field private dataSchemeDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.field private dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.field private fileDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.field private rawResourceDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.field private rtmpDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.field private final transferListeners:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/upstream/TransferListener;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Lcom/google/android/exoplayer2/upstream/DataSource;)V
.registers 4
.param p1, "context" # Landroid/content/Context;
.param p2, "baseDataSource" # Lcom/google/android/exoplayer2/upstream/DataSource;
.line 128
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 129
invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->context:Landroid/content/Context;
.line 130
invoke-static {p2}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/upstream/DataSource;
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->baseDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 131
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->transferListeners:Ljava/util/List;
.line 132
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Lcom/google/android/exoplayer2/upstream/TransferListener;Lcom/google/android/exoplayer2/upstream/DataSource;)V
.registers 5
.param p1, "context" # Landroid/content/Context;
.param p2, "listener" # Lcom/google/android/exoplayer2/upstream/TransferListener;
.param p3, "baseDataSource" # Lcom/google/android/exoplayer2/upstream/DataSource;
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 207
invoke-direct {p0, p1, p3}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;-><init>(Landroid/content/Context;Lcom/google/android/exoplayer2/upstream/DataSource;)V
.line 208
if-eqz p2, :cond_a
.line 209
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->transferListeners:Ljava/util/List;
invoke-interface {v0, p2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 211
:cond_a
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Lcom/google/android/exoplayer2/upstream/TransferListener;Ljava/lang/String;IIZ)V
.registers 16
.param p1, "context" # Landroid/content/Context;
.param p2, "listener" # Lcom/google/android/exoplayer2/upstream/TransferListener;
.param p3, "userAgent" # Ljava/lang/String;
.param p4, "connectTimeoutMillis" # I
.param p5, "readTimeoutMillis" # I
.param p6, "allowCrossProtocolRedirects" # Z
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 180
new-instance v8, Lcom/google/android/exoplayer2/upstream/DefaultHttpDataSource;
const/4 v2, 0x0
const/4 v7, 0x0
move-object v0, v8
move-object v1, p3
move-object v3, p2
move v4, p4
move v5, p5
move v6, p6
invoke-direct/range {v0 .. v7}, Lcom/google/android/exoplayer2/upstream/DefaultHttpDataSource;-><init>(Ljava/lang/String;Lcom/google/android/exoplayer2/util/Predicate;Lcom/google/android/exoplayer2/upstream/TransferListener;IIZLcom/google/android/exoplayer2/upstream/HttpDataSource$RequestProperties;)V
invoke-direct {p0, p1, p2, v8}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;-><init>(Landroid/content/Context;Lcom/google/android/exoplayer2/upstream/TransferListener;Lcom/google/android/exoplayer2/upstream/DataSource;)V
.line 191
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Lcom/google/android/exoplayer2/upstream/TransferListener;Ljava/lang/String;Z)V
.registers 12
.param p1, "context" # Landroid/content/Context;
.param p2, "listener" # Lcom/google/android/exoplayer2/upstream/TransferListener;
.param p3, "userAgent" # Ljava/lang/String;
.param p4, "allowCrossProtocolRedirects" # Z
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 152
const/16 v4, 0x1f40
const/16 v5, 0x1f40
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
move v6, p4
invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;-><init>(Landroid/content/Context;Lcom/google/android/exoplayer2/upstream/TransferListener;Ljava/lang/String;IIZ)V
.line 154
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;IIZ)V
.registers 14
.param p1, "context" # Landroid/content/Context;
.param p2, "userAgent" # Ljava/lang/String;
.param p3, "connectTimeoutMillis" # I
.param p4, "readTimeoutMillis" # I
.param p5, "allowCrossProtocolRedirects" # Z
.line 109
new-instance v7, Lcom/google/android/exoplayer2/upstream/DefaultHttpDataSource;
const/4 v2, 0x0
const/4 v6, 0x0
move-object v0, v7
move-object v1, p2
move v3, p3
move v4, p4
move v5, p5
invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/upstream/DefaultHttpDataSource;-><init>(Ljava/lang/String;Lcom/google/android/exoplayer2/util/Predicate;IIZLcom/google/android/exoplayer2/upstream/HttpDataSource$RequestProperties;)V
invoke-direct {p0, p1, v7}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;-><init>(Landroid/content/Context;Lcom/google/android/exoplayer2/upstream/DataSource;)V
.line 118
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;Z)V
.registers 10
.param p1, "context" # Landroid/content/Context;
.param p2, "userAgent" # Ljava/lang/String;
.param p3, "allowCrossProtocolRedirects" # Z
.line 83
const/16 v3, 0x1f40
const/16 v4, 0x1f40
move-object v0, p0
move-object v1, p1
move-object v2, p2
move v5, p3
invoke-direct/range {v0 .. v5}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;-><init>(Landroid/content/Context;Ljava/lang/String;IIZ)V
.line 89
return-void
.end method
.method private addListenersToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;)V
.registers 4
.param p1, "dataSource" # Lcom/google/android/exoplayer2/upstream/DataSource;
.line 343
const/4 v0, 0x0
.local v0, "i":I
:goto_1
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->transferListeners:Ljava/util/List;
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v1
if-ge v0, v1, :cond_17
.line 344
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->transferListeners:Ljava/util/List;
invoke-interface {v1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/upstream/TransferListener;
invoke-interface {p1, v1}, Lcom/google/android/exoplayer2/upstream/DataSource;->addTransferListener(Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.line 343
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 346
.end local v0 # "i":I
:cond_17
return-void
.end method
.method private getAssetDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
.registers 3
.line 289
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->assetDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
if-nez v0, :cond_10
.line 290
new-instance v0, Lcom/google/android/exoplayer2/upstream/AssetDataSource;
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->context:Landroid/content/Context;
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/upstream/AssetDataSource;-><init>(Landroid/content/Context;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->assetDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 291
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->addListenersToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;)V
.line 293
:cond_10
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->assetDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
return-object v0
.end method
.method private getContentDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
.registers 3
.line 297
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->contentDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
if-nez v0, :cond_10
.line 298
new-instance v0, Lcom/google/android/exoplayer2/upstream/ContentDataSource;
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->context:Landroid/content/Context;
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/upstream/ContentDataSource;-><init>(Landroid/content/Context;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->contentDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 299
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->addListenersToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;)V
.line 301
:cond_10
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->contentDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
return-object v0
.end method
.method private getDataSchemeDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
.registers 2
.line 327
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSchemeDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
if-nez v0, :cond_e
.line 328
new-instance v0, Lcom/google/android/exoplayer2/upstream/DataSchemeDataSource;
invoke-direct {v0}, Lcom/google/android/exoplayer2/upstream/DataSchemeDataSource;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSchemeDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 329
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->addListenersToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;)V
.line 331
:cond_e
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSchemeDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
return-object v0
.end method
.method private getFileDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
.registers 2
.line 281
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->fileDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
if-nez v0, :cond_e
.line 282
new-instance v0, Lcom/google/android/exoplayer2/upstream/FileDataSource;
invoke-direct {v0}, Lcom/google/android/exoplayer2/upstream/FileDataSource;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->fileDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 283
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->addListenersToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;)V
.line 285
:cond_e
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->fileDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
return-object v0
.end method
.method private getRawResourceDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
.registers 3
.line 335
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->rawResourceDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
if-nez v0, :cond_10
.line 336
new-instance v0, Lcom/google/android/exoplayer2/upstream/RawResourceDataSource;
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->context:Landroid/content/Context;
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/upstream/RawResourceDataSource;-><init>(Landroid/content/Context;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->rawResourceDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 337
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->addListenersToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;)V
.line 339
:cond_10
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->rawResourceDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
return-object v0
.end method
.method private getRtmpDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
.registers 4
.line 305
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->rtmpDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
if-nez v0, :cond_39
.line 308
:try_start_4
const-string v0, "com.google.android.exoplayer2.ext.rtmp.RtmpDataSource"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
.line 309
.local v0, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
const/4 v1, 0x0
new-array v2, v1, [Ljava/lang/Class;
invoke-virtual {v0, v2}, Ljava/lang/Class;->getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
move-result-object v2
new-array v1, v1, [Ljava/lang/Object;
invoke-virtual {v2, v1}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/upstream/DataSource;
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->rtmpDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 311
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->addListenersToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;)V
:try_end_1e
.catch Ljava/lang/ClassNotFoundException; {:try_start_4 .. :try_end_1e} :catch_28
.catch Ljava/lang/Exception; {:try_start_4 .. :try_end_1e} :catch_1f
.end local v0 # "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
goto :goto_30
.line 315
:catch_1f
move-exception v0
.line 317
.local v0, "e":Ljava/lang/Exception;
new-instance v1, Ljava/lang/RuntimeException;
const-string v2, "Error instantiating RTMP extension"
invoke-direct {v1, v2, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.line 312
.end local v0 # "e":Ljava/lang/Exception;
:catch_28
move-exception v0
.line 314
.local v0, "e":Ljava/lang/ClassNotFoundException;
const-string v1, "DefaultDataSource"
const-string v2, "Attempting to play RTMP stream without depending on the RTMP extension"
invoke-static {v1, v2}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 318
.end local v0 # "e":Ljava/lang/ClassNotFoundException;
:goto_30
nop
.line 319
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->rtmpDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
if-nez v0, :cond_39
.line 320
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->baseDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->rtmpDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 323
:cond_39
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->rtmpDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
return-object v0
.end method
.method private maybeAddListenerToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.registers 3
.param p1, "dataSource" # Lcom/google/android/exoplayer2/upstream/DataSource;
.param p2, "listener" # Lcom/google/android/exoplayer2/upstream/TransferListener;
.line 350
if-eqz p1, :cond_5
.line 351
invoke-interface {p1, p2}, Lcom/google/android/exoplayer2/upstream/DataSource;->addTransferListener(Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.line 353
:cond_5
return-void
.end method
# virtual methods
.method public addTransferListener(Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.registers 3
.param p1, "transferListener" # Lcom/google/android/exoplayer2/upstream/TransferListener;
.line 215
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->baseDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
invoke-interface {v0, p1}, Lcom/google/android/exoplayer2/upstream/DataSource;->addTransferListener(Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.line 216
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->transferListeners:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 217
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->fileDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
invoke-direct {p0, v0, p1}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->maybeAddListenerToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.line 218
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->assetDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
invoke-direct {p0, v0, p1}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->maybeAddListenerToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.line 219
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->contentDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
invoke-direct {p0, v0, p1}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->maybeAddListenerToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.line 220
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->rtmpDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
invoke-direct {p0, v0, p1}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->maybeAddListenerToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.line 221
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSchemeDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
invoke-direct {p0, v0, p1}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->maybeAddListenerToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.line 222
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->rawResourceDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
invoke-direct {p0, v0, p1}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->maybeAddListenerToDataSource(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.line 223
return-void
.end method
.method public close()V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 271
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
if-eqz v0, :cond_f
.line 273
const/4 v1, 0x0
:try_start_5
invoke-interface {v0}, Lcom/google/android/exoplayer2/upstream/DataSource;->close()V
:try_end_8
.catchall {:try_start_5 .. :try_end_8} :catchall_b
.line 275
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 276
goto :goto_f
.line 275
:catchall_b
move-exception v0
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 276
throw v0
.line 278
:cond_f
:goto_f
return-void
.end method
.method public getResponseHeaders()Ljava/util/Map;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/util/List<",
"Ljava/lang/String;",
">;>;"
}
.end annotation
.line 266
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
if-nez v0, :cond_9
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object v0
goto :goto_d
:cond_9
invoke-interface {v0}, Lcom/google/android/exoplayer2/upstream/DataSource;->getResponseHeaders()Ljava/util/Map;
move-result-object v0
:goto_d
return-object v0
.end method
.method public getUri()Landroid/net/Uri;
.registers 2
.line 261
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
if-nez v0, :cond_6
const/4 v0, 0x0
goto :goto_a
:cond_6
invoke-interface {v0}, Lcom/google/android/exoplayer2/upstream/DataSource;->getUri()Landroid/net/Uri;
move-result-object v0
:goto_a
return-object v0
.end method
.method public open(Lcom/google/android/exoplayer2/upstream/DataSpec;)J
.registers 5
.param p1, "dataSpec" # Lcom/google/android/exoplayer2/upstream/DataSpec;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 227
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
if-nez v0, :cond_6
const/4 v0, 0x1
goto :goto_7
:cond_6
const/4 v0, 0x0
:goto_7
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 229
iget-object v0, p1, Lcom/google/android/exoplayer2/upstream/DataSpec;->uri:Landroid/net/Uri;
invoke-virtual {v0}, Landroid/net/Uri;->getScheme()Ljava/lang/String;
move-result-object v0
.line 230
.local v0, "scheme":Ljava/lang/String;
iget-object v1, p1, Lcom/google/android/exoplayer2/upstream/DataSpec;->uri:Landroid/net/Uri;
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Util;->isLocalFileUri(Landroid/net/Uri;)Z
move-result v1
if-eqz v1, :cond_36
.line 231
iget-object v1, p1, Lcom/google/android/exoplayer2/upstream/DataSpec;->uri:Landroid/net/Uri;
invoke-virtual {v1}, Landroid/net/Uri;->getPath()Ljava/lang/String;
move-result-object v1
.line 232
.local v1, "uriPath":Ljava/lang/String;
if-eqz v1, :cond_2f
const-string v2, "/android_asset/"
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_2f
.line 233
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->getAssetDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
move-result-object v2
iput-object v2, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
goto :goto_35
.line 235
:cond_2f
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->getFileDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
move-result-object v2
iput-object v2, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 237
.end local v1 # "uriPath":Ljava/lang/String;
:goto_35
goto :goto_85
:cond_36
const-string v1, "asset"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_45
.line 238
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->getAssetDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
goto :goto_85
.line 239
:cond_45
const-string v1, "content"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_54
.line 240
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->getContentDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
goto :goto_85
.line 241
:cond_54
const-string v1, "rtmp"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_63
.line 242
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->getRtmpDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
goto :goto_85
.line 243
:cond_63
const-string v1, "data"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_72
.line 244
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->getDataSchemeDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
goto :goto_85
.line 245
:cond_72
const-string v1, "rawresource"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_81
.line 246
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->getRawResourceDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
goto :goto_85
.line 248
:cond_81
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->baseDataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 251
:goto_85
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
invoke-interface {v1, p1}, Lcom/google/android/exoplayer2/upstream/DataSource;->open(Lcom/google/android/exoplayer2/upstream/DataSpec;)J
move-result-wide v1
return-wide v1
.end method
.method public read([BII)I
.registers 5
.param p1, "buffer" # [B
.param p2, "offset" # I
.param p3, "readLength" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 256
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultDataSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/upstream/DataSource;
invoke-interface {v0, p1, p2, p3}, Lcom/google/android/exoplayer2/upstream/DataSource;->read([BII)I
move-result v0
return v0
.end method