K.smali
.class public final Lcom/google/android/exoplayer2/audio/K;
.super Ljava/lang/Object;
.source "SonicAudioProcessor.java"
# interfaces
.implements Lcom/google/android/exoplayer2/audio/AudioProcessor;
# instance fields
.field private a:I
.field private b:F
.field private c:F
.field private d:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.field private e:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.field private f:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.field private g:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.field private h:Z
.field private i:Lcom/google/android/exoplayer2/audio/J;
.field private j:Ljava/nio/ByteBuffer;
.field private k:Ljava/nio/ShortBuffer;
.field private l:Ljava/nio/ByteBuffer;
.field private m:J
.field private n:J
.field private o:Z
# direct methods
.method public constructor <init>()V
.registers 2
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/high16 v0, 0x3f800000 # 1.0f
.line 2
iput v0, p0, Lcom/google/android/exoplayer2/audio/K;->b:F
.line 3
iput v0, p0, Lcom/google/android/exoplayer2/audio/K;->c:F
.line 4
sget-object v0, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->a:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->d:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.line 5
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->e:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.line 6
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->f:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.line 7
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->g:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.line 8
sget-object v0, Lcom/google/android/exoplayer2/audio/AudioProcessor;->a:Ljava/nio/ByteBuffer;
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->j:Ljava/nio/ByteBuffer;
.line 9
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->j:Ljava/nio/ByteBuffer;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->k:Ljava/nio/ShortBuffer;
.line 10
sget-object v0, Lcom/google/android/exoplayer2/audio/AudioProcessor;->a:Ljava/nio/ByteBuffer;
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->l:Ljava/nio/ByteBuffer;
const/4 v0, -0x1
.line 11
iput v0, p0, Lcom/google/android/exoplayer2/audio/K;->a:I
return-void
.end method
# virtual methods
.method public a(F)F
.registers 3
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/audio/K;->c:F
cmpl-float v0, v0, p1
if-eqz v0, :cond_b
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/audio/K;->c:F
const/4 v0, 0x1
.line 3
iput-boolean v0, p0, Lcom/google/android/exoplayer2/audio/K;->h:Z
:cond_b
return p1
.end method
.method public a(J)J
.registers 18
move-object v0, p0
.line 4
iget-wide v5, v0, Lcom/google/android/exoplayer2/audio/K;->n:J
const-wide/16 v1, 0x400
cmp-long v3, v5, v1
if-ltz v3, :cond_2b
.line 5
iget-object v1, v0, Lcom/google/android/exoplayer2/audio/K;->g:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
iget v1, v1, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->b:I
iget-object v2, v0, Lcom/google/android/exoplayer2/audio/K;->f:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
iget v2, v2, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->b:I
if-ne v1, v2, :cond_1c
.line 6
iget-wide v3, v0, Lcom/google/android/exoplayer2/audio/K;->m:J
move-wide/from16 v1, p1
invoke-static/range {v1 .. v6}, Lcom/google/android/exoplayer2/util/L;->c(JJJ)J
move-result-wide v1
goto :goto_2a
.line 7
:cond_1c
iget-wide v3, v0, Lcom/google/android/exoplayer2/audio/K;->m:J
int-to-long v7, v1
mul-long v11, v3, v7
int-to-long v1, v2
mul-long v13, v5, v1
move-wide/from16 v9, p1
invoke-static/range {v9 .. v14}, Lcom/google/android/exoplayer2/util/L;->c(JJJ)J
move-result-wide v1
:goto_2a
return-wide v1
.line 8
:cond_2b
iget v1, v0, Lcom/google/android/exoplayer2/audio/K;->b:F
float-to-double v1, v1
move-wide/from16 v3, p1
long-to-double v3, v3
invoke-static {v1, v2}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
mul-double v1, v1, v3
double-to-long v1, v1
return-wide v1
.end method
.method public a(Lcom/google/android/exoplayer2/audio/AudioProcessor$a;)Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/audio/AudioProcessor$UnhandledAudioFormatException;
}
.end annotation
.line 9
iget v0, p1, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->d:I
const/4 v1, 0x2
if-ne v0, v1, :cond_1d
.line 10
iget v0, p0, Lcom/google/android/exoplayer2/audio/K;->a:I
const/4 v2, -0x1
if-ne v0, v2, :cond_c
.line 11
iget v0, p1, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->b:I
.line 12
:cond_c
iput-object p1, p0, Lcom/google/android/exoplayer2/audio/K;->d:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.line 13
new-instance v2, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
iget p1, p1, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->c:I
invoke-direct {v2, v0, p1, v1}, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;-><init>(III)V
iput-object v2, p0, Lcom/google/android/exoplayer2/audio/K;->e:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
const/4 p1, 0x1
.line 14
iput-boolean p1, p0, Lcom/google/android/exoplayer2/audio/K;->h:Z
.line 15
iget-object p1, p0, Lcom/google/android/exoplayer2/audio/K;->e:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
return-object p1
.line 16
:cond_1d
new-instance v0, Lcom/google/android/exoplayer2/audio/AudioProcessor$UnhandledAudioFormatException;
invoke-direct {v0, p1}, Lcom/google/android/exoplayer2/audio/AudioProcessor$UnhandledAudioFormatException;-><init>(Lcom/google/android/exoplayer2/audio/AudioProcessor$a;)V
throw v0
.end method
.method public a()Ljava/nio/ByteBuffer;
.registers 3
.line 34
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->l:Ljava/nio/ByteBuffer;
.line 35
sget-object v1, Lcom/google/android/exoplayer2/audio/AudioProcessor;->a:Ljava/nio/ByteBuffer;
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/K;->l:Ljava/nio/ByteBuffer;
return-object v0
.end method
.method public a(Ljava/nio/ByteBuffer;)V
.registers 9
.line 17
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->i:Lcom/google/android/exoplayer2/audio/J;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/d;->a(Ljava/lang/Object;)Ljava/lang/Object;
check-cast v0, Lcom/google/android/exoplayer2/audio/J;
.line 18
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->hasRemaining()Z
move-result v1
if-eqz v1, :cond_26
.line 19
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
move-result-object v1
.line 20
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I
move-result v2
.line 21
iget-wide v3, p0, Lcom/google/android/exoplayer2/audio/K;->m:J
int-to-long v5, v2
add-long/2addr v3, v5
iput-wide v3, p0, Lcom/google/android/exoplayer2/audio/K;->m:J
.line 22
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/audio/J;->b(Ljava/nio/ShortBuffer;)V
.line 23
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->position()I
move-result v1
add-int/2addr v1, v2
invoke-virtual {p1, v1}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 24
:cond_26
invoke-virtual {v0}, Lcom/google/android/exoplayer2/audio/J;->b()I
move-result p1
if-lez p1, :cond_69
.line 25
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/K;->j:Ljava/nio/ByteBuffer;
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->capacity()I
move-result v1
if-ge v1, p1, :cond_4b
.line 26
invoke-static {p1}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;
move-result-object v1
invoke-static {}, Ljava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/K;->j:Ljava/nio/ByteBuffer;
.line 27
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/K;->j:Ljava/nio/ByteBuffer;
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/K;->k:Ljava/nio/ShortBuffer;
goto :goto_55
.line 28
:cond_4b
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/K;->j:Ljava/nio/ByteBuffer;
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->clear()Ljava/nio/Buffer;
.line 29
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/K;->k:Ljava/nio/ShortBuffer;
invoke-virtual {v1}, Ljava/nio/ShortBuffer;->clear()Ljava/nio/Buffer;
.line 30
:goto_55
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/K;->k:Ljava/nio/ShortBuffer;
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/audio/J;->a(Ljava/nio/ShortBuffer;)V
.line 31
iget-wide v0, p0, Lcom/google/android/exoplayer2/audio/K;->n:J
int-to-long v2, p1
add-long/2addr v0, v2
iput-wide v0, p0, Lcom/google/android/exoplayer2/audio/K;->n:J
.line 32
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->j:Ljava/nio/ByteBuffer;
invoke-virtual {v0, p1}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;
.line 33
iget-object p1, p0, Lcom/google/android/exoplayer2/audio/K;->j:Ljava/nio/ByteBuffer;
iput-object p1, p0, Lcom/google/android/exoplayer2/audio/K;->l:Ljava/nio/ByteBuffer;
:cond_69
return-void
.end method
.method public b(F)F
.registers 3
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/audio/K;->b:F
cmpl-float v0, v0, p1
if-eqz v0, :cond_b
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/audio/K;->b:F
const/4 v0, 0x1
.line 3
iput-boolean v0, p0, Lcom/google/android/exoplayer2/audio/K;->h:Z
:cond_b
return p1
.end method
.method public b()Z
.registers 2
.line 4
iget-boolean v0, p0, Lcom/google/android/exoplayer2/audio/K;->o:Z
if-eqz v0, :cond_10
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->i:Lcom/google/android/exoplayer2/audio/J;
if-eqz v0, :cond_e
invoke-virtual {v0}, Lcom/google/android/exoplayer2/audio/J;->b()I
move-result v0
if-nez v0, :cond_10
:cond_e
const/4 v0, 0x1
goto :goto_11
:cond_10
const/4 v0, 0x0
:goto_11
return v0
.end method
.method public c()V
.registers 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->i:Lcom/google/android/exoplayer2/audio/J;
if-eqz v0, :cond_7
.line 2
invoke-virtual {v0}, Lcom/google/android/exoplayer2/audio/J;->c()V
:cond_7
const/4 v0, 0x1
.line 3
iput-boolean v0, p0, Lcom/google/android/exoplayer2/audio/K;->o:Z
return-void
.end method
.method public flush()V
.registers 8
.line 1
invoke-virtual {p0}, Lcom/google/android/exoplayer2/audio/K;->isActive()Z
move-result v0
if-eqz v0, :cond_30
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->d:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->f:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.line 3
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->e:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->g:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.line 4
iget-boolean v0, p0, Lcom/google/android/exoplayer2/audio/K;->h:Z
if-eqz v0, :cond_29
.line 5
new-instance v0, Lcom/google/android/exoplayer2/audio/J;
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/K;->f:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
iget v2, v1, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->b:I
iget v3, v1, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->c:I
iget v4, p0, Lcom/google/android/exoplayer2/audio/K;->b:F
iget v5, p0, Lcom/google/android/exoplayer2/audio/K;->c:F
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/K;->g:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
iget v6, v1, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->b:I
move-object v1, v0
invoke-direct/range {v1 .. v6}, Lcom/google/android/exoplayer2/audio/J;-><init>(IIFFI)V
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->i:Lcom/google/android/exoplayer2/audio/J;
goto :goto_30
.line 6
:cond_29
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->i:Lcom/google/android/exoplayer2/audio/J;
if-eqz v0, :cond_30
.line 7
invoke-virtual {v0}, Lcom/google/android/exoplayer2/audio/J;->a()V
.line 8
:cond_30
:goto_30
sget-object v0, Lcom/google/android/exoplayer2/audio/AudioProcessor;->a:Ljava/nio/ByteBuffer;
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->l:Ljava/nio/ByteBuffer;
const-wide/16 v0, 0x0
.line 9
iput-wide v0, p0, Lcom/google/android/exoplayer2/audio/K;->m:J
.line 10
iput-wide v0, p0, Lcom/google/android/exoplayer2/audio/K;->n:J
const/4 v0, 0x0
.line 11
iput-boolean v0, p0, Lcom/google/android/exoplayer2/audio/K;->o:Z
return-void
.end method
.method public isActive()Z
.registers 4
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->e:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
iget v0, v0, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->b:I
const/4 v1, -0x1
if-eq v0, v1, :cond_2e
iget v0, p0, Lcom/google/android/exoplayer2/audio/K;->b:F
const/high16 v1, 0x3f800000 # 1.0f
sub-float/2addr v0, v1
.line 2
invoke-static {v0}, Ljava/lang/Math;->abs(F)F
move-result v0
const v2, 0x3c23d70a # 0.01f
cmpl-float v0, v0, v2
if-gez v0, :cond_2c
iget v0, p0, Lcom/google/android/exoplayer2/audio/K;->c:F
sub-float/2addr v0, v1
.line 3
invoke-static {v0}, Ljava/lang/Math;->abs(F)F
move-result v0
cmpl-float v0, v0, v2
if-gez v0, :cond_2c
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->e:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
iget v0, v0, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->b:I
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/K;->d:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
iget v1, v1, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->b:I
if-eq v0, v1, :cond_2e
:cond_2c
const/4 v0, 0x1
goto :goto_2f
:cond_2e
const/4 v0, 0x0
:goto_2f
return v0
.end method
.method public reset()V
.registers 4
const/high16 v0, 0x3f800000 # 1.0f
.line 1
iput v0, p0, Lcom/google/android/exoplayer2/audio/K;->b:F
.line 2
iput v0, p0, Lcom/google/android/exoplayer2/audio/K;->c:F
.line 3
sget-object v0, Lcom/google/android/exoplayer2/audio/AudioProcessor$a;->a:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->d:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.line 4
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->e:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.line 5
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->f:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.line 6
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->g:Lcom/google/android/exoplayer2/audio/AudioProcessor$a;
.line 7
sget-object v0, Lcom/google/android/exoplayer2/audio/AudioProcessor;->a:Ljava/nio/ByteBuffer;
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->j:Ljava/nio/ByteBuffer;
.line 8
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->j:Ljava/nio/ByteBuffer;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->k:Ljava/nio/ShortBuffer;
.line 9
sget-object v0, Lcom/google/android/exoplayer2/audio/AudioProcessor;->a:Ljava/nio/ByteBuffer;
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/K;->l:Ljava/nio/ByteBuffer;
const/4 v0, -0x1
.line 10
iput v0, p0, Lcom/google/android/exoplayer2/audio/K;->a:I
const/4 v0, 0x0
.line 11
iput-boolean v0, p0, Lcom/google/android/exoplayer2/audio/K;->h:Z
const/4 v1, 0x0
.line 12
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/K;->i:Lcom/google/android/exoplayer2/audio/J;
const-wide/16 v1, 0x0
.line 13
iput-wide v1, p0, Lcom/google/android/exoplayer2/audio/K;->m:J
.line 14
iput-wide v1, p0, Lcom/google/android/exoplayer2/audio/K;->n:J
.line 15
iput-boolean v0, p0, Lcom/google/android/exoplayer2/audio/K;->o:Z
return-void
.end method