c.smali
.class public final Lcom/google/android/exoplayer2/upstream/n0/c;
.super Ljava/lang/Object;
.source ""
# interfaces
.implements Lcom/google/android/exoplayer2/upstream/l;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/upstream/n0/c$a;
}
.end annotation
# instance fields
.field private final a:Lcom/google/android/exoplayer2/upstream/n0/b;
.field private final b:J
.field private final c:I
.field private d:Lcom/google/android/exoplayer2/upstream/q;
.field private e:J
.field private f:Ljava/io/File;
.field private g:Ljava/io/OutputStream;
.field private h:J
.field private i:J
.field private j:Lf/b/b/b/s1/d0;
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/upstream/n0/b;JI)V
.registers 10
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-wide/16 v0, -0x1
const-wide/16 v2, 0x0
cmp-long v4, p2, v2
if-gtz v4, :cond_12
cmp-long v2, p2, v0
if-nez v2, :cond_10
goto :goto_12
:cond_10
const/4 v2, 0x0
goto :goto_13
:cond_12
:goto_12
const/4 v2, 0x1
:goto_13
const-string v3, "fragmentSize must be positive or C.LENGTH_UNSET."
invoke-static {v2, v3}, Lf/b/b/b/s1/e;->g(ZLjava/lang/Object;)V
cmp-long v2, p2, v0
if-eqz v2, :cond_2a
const-wide/32 v2, 0x200000
cmp-long v4, p2, v2
if-gez v4, :cond_2a
const-string v2, "CacheDataSink"
const-string v3, "fragmentSize is below the minimum recommended value of 2097152. This may cause poor cache performance."
invoke-static {v2, v3}, Lf/b/b/b/s1/r;->h(Ljava/lang/String;Ljava/lang/String;)V
:cond_2a
invoke-static {p1}, Lf/b/b/b/s1/e;->e(Ljava/lang/Object;)Ljava/lang/Object;
check-cast p1, Lcom/google/android/exoplayer2/upstream/n0/b;
iput-object p1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->a:Lcom/google/android/exoplayer2/upstream/n0/b;
cmp-long p1, p2, v0
if-nez p1, :cond_3a
const-wide p2, 0x7fffffffffffffffL
:cond_3a
iput-wide p2, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->b:J
iput p4, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->c:I
return-void
.end method
.method private a()V
.registers 5
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->g:Ljava/io/OutputStream;
if-nez v0, :cond_5
return-void
:cond_5
const/4 v1, 0x0
:try_start_6
invoke-virtual {v0}, Ljava/io/OutputStream;->flush()V
:try_end_9
.catchall {:try_start_6 .. :try_end_9} :catchall_1c
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->g:Ljava/io/OutputStream;
invoke-static {v0}, Lf/b/b/b/s1/m0;->n(Ljava/io/Closeable;)V
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->g:Ljava/io/OutputStream;
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->f:Ljava/io/File;
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->f:Ljava/io/File;
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->a:Lcom/google/android/exoplayer2/upstream/n0/b;
iget-wide v2, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->h:J
invoke-interface {v1, v0, v2, v3}, Lcom/google/android/exoplayer2/upstream/n0/b;->f(Ljava/io/File;J)V
return-void
:catchall_1c
move-exception v0
iget-object v2, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->g:Ljava/io/OutputStream;
invoke-static {v2}, Lf/b/b/b/s1/m0;->n(Ljava/io/Closeable;)V
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->g:Ljava/io/OutputStream;
iget-object v2, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->f:Ljava/io/File;
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->f:Ljava/io/File;
invoke-virtual {v2}, Ljava/io/File;->delete()Z
throw v0
.end method
.method private b()V
.registers 11
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->d:Lcom/google/android/exoplayer2/upstream/q;
iget-wide v0, v0, Lcom/google/android/exoplayer2/upstream/q;->g:J
const-wide/16 v2, -0x1
cmp-long v4, v0, v2
if-nez v4, :cond_b
goto :goto_14
:cond_b
iget-wide v2, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->i:J
sub-long/2addr v0, v2
iget-wide v2, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->e:J
invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->min(JJ)J
move-result-wide v2
:goto_14
move-wide v8, v2
iget-object v4, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->a:Lcom/google/android/exoplayer2/upstream/n0/b;
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->d:Lcom/google/android/exoplayer2/upstream/q;
iget-object v5, v0, Lcom/google/android/exoplayer2/upstream/q;->h:Ljava/lang/String;
iget-wide v0, v0, Lcom/google/android/exoplayer2/upstream/q;->e:J
iget-wide v2, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->i:J
add-long v6, v0, v2
invoke-interface/range {v4 .. v9}, Lcom/google/android/exoplayer2/upstream/n0/b;->a(Ljava/lang/String;JJ)Ljava/io/File;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->f:Ljava/io/File;
new-instance v0, Ljava/io/FileOutputStream;
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->f:Ljava/io/File;
invoke-direct {v0, v1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
iget v1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->c:I
if-lez v1, :cond_45
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->j:Lf/b/b/b/s1/d0;
if-nez v1, :cond_40
new-instance v1, Lf/b/b/b/s1/d0;
iget v2, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->c:I
invoke-direct {v1, v0, v2}, Lf/b/b/b/s1/d0;-><init>(Ljava/io/OutputStream;I)V
iput-object v1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->j:Lf/b/b/b/s1/d0;
goto :goto_43
:cond_40
invoke-virtual {v1, v0}, Lf/b/b/b/s1/d0;->k(Ljava/io/OutputStream;)V
:goto_43
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->j:Lf/b/b/b/s1/d0;
:cond_45
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->g:Ljava/io/OutputStream;
const-wide/16 v0, 0x0
iput-wide v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->h:J
return-void
.end method
# virtual methods
.method public c([BII)V
.registers 11
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->d:Lcom/google/android/exoplayer2/upstream/q;
if-nez v0, :cond_5
return-void
:cond_5
const/4 v0, 0x0
:goto_6
if-ge v0, p3, :cond_3e
:try_start_8
iget-wide v1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->h:J
iget-wide v3, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->e:J
cmp-long v5, v1, v3
if-nez v5, :cond_16
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/n0/c;->a()V
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/n0/c;->b()V
:cond_16
sub-int v1, p3, v0
int-to-long v1, v1
iget-wide v3, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->e:J
iget-wide v5, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->h:J
sub-long/2addr v3, v5
invoke-static {v1, v2, v3, v4}, Ljava/lang/Math;->min(JJ)J
move-result-wide v1
long-to-int v2, v1
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->g:Ljava/io/OutputStream;
add-int v3, p2, v0
invoke-virtual {v1, p1, v3, v2}, Ljava/io/OutputStream;->write([BII)V
add-int/2addr v0, v2
iget-wide v3, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->h:J
int-to-long v1, v2
add-long/2addr v3, v1
iput-wide v3, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->h:J
iget-wide v3, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->i:J
add-long/2addr v3, v1
iput-wide v3, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->i:J
:try_end_36
.catch Ljava/io/IOException; {:try_start_8 .. :try_end_36} :catch_37
goto :goto_6
:catch_37
move-exception p1
new-instance p2, Lcom/google/android/exoplayer2/upstream/n0/c$a;
invoke-direct {p2, p1}, Lcom/google/android/exoplayer2/upstream/n0/c$a;-><init>(Ljava/io/IOException;)V
throw p2
:cond_3e
return-void
.end method
.method public close()V
.registers 3
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->d:Lcom/google/android/exoplayer2/upstream/q;
if-nez v0, :cond_5
return-void
:cond_5
:try_start_5
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/n0/c;->a()V
:try_end_8
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_8} :catch_9
return-void
:catch_9
move-exception v0
new-instance v1, Lcom/google/android/exoplayer2/upstream/n0/c$a;
invoke-direct {v1, v0}, Lcom/google/android/exoplayer2/upstream/n0/c$a;-><init>(Ljava/io/IOException;)V
throw v1
.end method
.method public d(Lcom/google/android/exoplayer2/upstream/q;)V
.registers 7
iget-wide v0, p1, Lcom/google/android/exoplayer2/upstream/q;->g:J
const-wide/16 v2, -0x1
cmp-long v4, v0, v2
if-nez v4, :cond_13
const/4 v0, 0x2
invoke-virtual {p1, v0}, Lcom/google/android/exoplayer2/upstream/q;->d(I)Z
move-result v0
if-eqz v0, :cond_13
const/4 p1, 0x0
iput-object p1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->d:Lcom/google/android/exoplayer2/upstream/q;
return-void
:cond_13
iput-object p1, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->d:Lcom/google/android/exoplayer2/upstream/q;
const/4 v0, 0x4
invoke-virtual {p1, v0}, Lcom/google/android/exoplayer2/upstream/q;->d(I)Z
move-result p1
if-eqz p1, :cond_1f
iget-wide v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->b:J
goto :goto_24
:cond_1f
const-wide v0, 0x7fffffffffffffffL
:goto_24
iput-wide v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->e:J
const-wide/16 v0, 0x0
iput-wide v0, p0, Lcom/google/android/exoplayer2/upstream/n0/c;->i:J
:try_start_2a
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/n0/c;->b()V
:try_end_2d
.catch Ljava/io/IOException; {:try_start_2a .. :try_end_2d} :catch_2e
return-void
:catch_2e
move-exception p1
new-instance v0, Lcom/google/android/exoplayer2/upstream/n0/c$a;
invoke-direct {v0, p1}, Lcom/google/android/exoplayer2/upstream/n0/c$a;-><init>(Ljava/io/IOException;)V
throw v0
.end method