SonicAudioProcessor.smali
.class public final Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;
.super Ljava/lang/Object;
.source "SonicAudioProcessor.java"
# interfaces
.implements Lcom/google/android/exoplayer2/audio/AudioProcessor;
# static fields
.field private static final CLOSE_THRESHOLD:F = 0.01f
.field public static final MAXIMUM_PITCH:F = 8.0f
.field public static final MAXIMUM_SPEED:F = 8.0f
.field public static final MINIMUM_PITCH:F = 0.1f
.field public static final MINIMUM_SPEED:F = 0.1f
.field private static final MIN_BYTES_FOR_SPEEDUP_CALCULATION:I
.field public static final SAMPLE_RATE_NO_CHANGE:I
# instance fields
.field private buffer:Ljava/nio/ByteBuffer;
.field private channelCount:I
.field private inputBytes:J
.field private inputEnded:Z
.field private outputBuffer:Ljava/nio/ByteBuffer;
.field private outputBytes:J
.field private outputSampleRateHz:I
.field private pendingOutputSampleRateHz:I
.field private pitch:F
.field private sampleRateHz:I
.field private shortBuffer:Ljava/nio/ShortBuffer;
.field private sonic:Lcom/google/android/exoplayer2/audio/Sonic;
.field private speed:F
# direct methods
.method static constructor <clinit>()V
.registers 1
const v0, 0x116f
invoke-static {v0}, Lnp/NPFog;->d(I)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->MIN_BYTES_FOR_SPEEDUP_CALCULATION:I
const v0, -0x1570
invoke-static {v0}, Lnp/NPFog;->d(I)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->SAMPLE_RATE_NO_CHANGE:I
return-void
.end method
.method public constructor <init>()V
.registers 3
.line 83
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 84
const/high16 v0, 0x3f800000 # 1.0f
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->speed:F
.line 85
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->pitch:F
.line 86
const/4 v0, -0x1
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->channelCount:I
.line 87
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sampleRateHz:I
.line 88
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputSampleRateHz:I
.line 89
sget-object v1, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->EMPTY_BUFFER:Ljava/nio/ByteBuffer;
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->buffer:Ljava/nio/ByteBuffer;
.line 90
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->shortBuffer:Ljava/nio/ShortBuffer;
.line 91
sget-object v1, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->EMPTY_BUFFER:Ljava/nio/ByteBuffer;
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputBuffer:Ljava/nio/ByteBuffer;
.line 92
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->pendingOutputSampleRateHz:I
.line 93
return-void
.end method
# virtual methods
.method public configure(III)Z
.registers 6
.param p1, "sampleRateHz" # I
.param p2, "channelCount" # I
.param p3, "encoding" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/audio/AudioProcessor$UnhandledFormatException;
}
.end annotation
.line 163
const/4 v0, 0x2
if-ne p3, v0, :cond_22
.line 166
iget v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->pendingOutputSampleRateHz:I
const/4 v1, -0x1
if-ne v0, v1, :cond_9
move v0, p1
.line 168
.local v0, "outputSampleRateHz":I
:cond_9
iget v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sampleRateHz:I
if-ne v1, p1, :cond_17
iget v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->channelCount:I
if-ne v1, p2, :cond_17
iget v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputSampleRateHz:I
if-ne v1, v0, :cond_17
.line 170
const/4 v1, 0x0
return v1
.line 172
:cond_17
iput p1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sampleRateHz:I
.line 173
iput p2, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->channelCount:I
.line 174
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputSampleRateHz:I
.line 175
const/4 v1, 0x0
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
.line 176
const/4 v1, 0x1
return v1
.line 164
.end local v0 # "outputSampleRateHz":I
:cond_22
new-instance v0, Lcom/google/android/exoplayer2/audio/AudioProcessor$UnhandledFormatException;
invoke-direct {v0, p1, p2, p3}, Lcom/google/android/exoplayer2/audio/AudioProcessor$UnhandledFormatException;-><init>(III)V
throw v0
.end method
.method public flush()V
.registers 8
.line 249
invoke-virtual {p0}, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->isActive()Z
move-result v0
if-eqz v0, :cond_20
.line 250
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
if-nez v0, :cond_1d
.line 251
new-instance v0, Lcom/google/android/exoplayer2/audio/Sonic;
iget v2, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sampleRateHz:I
iget v3, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->channelCount:I
iget v4, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->speed:F
iget v5, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->pitch:F
iget v6, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputSampleRateHz:I
move-object v1, v0
invoke-direct/range {v1 .. v6}, Lcom/google/android/exoplayer2/audio/Sonic;-><init>(IIFFI)V
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
goto :goto_20
.line 253
:cond_1d
invoke-virtual {v0}, Lcom/google/android/exoplayer2/audio/Sonic;->flush()V
.line 256
:cond_20
:goto_20
sget-object v0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->EMPTY_BUFFER:Ljava/nio/ByteBuffer;
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputBuffer:Ljava/nio/ByteBuffer;
.line 257
const-wide/16 v0, 0x0
iput-wide v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->inputBytes:J
.line 258
iput-wide v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputBytes:J
.line 259
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->inputEnded:Z
.line 260
return-void
.end method
.method public getOutput()Ljava/nio/ByteBuffer;
.registers 3
.line 237
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputBuffer:Ljava/nio/ByteBuffer;
.line 238
.local v0, "outputBuffer":Ljava/nio/ByteBuffer;
sget-object v1, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->EMPTY_BUFFER:Ljava/nio/ByteBuffer;
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputBuffer:Ljava/nio/ByteBuffer;
.line 239
return-object v0
.end method
.method public getOutputChannelCount()I
.registers 2
.line 189
iget v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->channelCount:I
return v0
.end method
.method public getOutputEncoding()I
.registers 2
.line 194
const/4 v0, 0x2
return v0
.end method
.method public getOutputSampleRateHz()I
.registers 2
.line 199
iget v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputSampleRateHz:I
return v0
.end method
.method public isActive()Z
.registers 4
.line 181
iget v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sampleRateHz:I
const/4 v1, -0x1
if-eq v0, v1, :cond_28
iget v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->speed:F
const/high16 v1, 0x3f800000 # 1.0f
sub-float/2addr v0, v1
.line 182
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_26
iget v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->pitch:F
sub-float/2addr v0, v1
.line 183
invoke-static {v0}, Ljava/lang/Math;->abs(F)F
move-result v0
cmpl-float v0, v0, v2
if-gez v0, :cond_26
iget v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputSampleRateHz:I
iget v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sampleRateHz:I
if-eq v0, v1, :cond_28
:cond_26
const/4 v0, 0x1
goto :goto_29
:cond_28
const/4 v0, 0x0
.line 181
:goto_29
return v0
.end method
.method public isEnded()Z
.registers 2
.line 244
iget-boolean v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->inputEnded:Z
if-eqz v0, :cond_10
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
if-eqz v0, :cond_e
invoke-virtual {v0}, Lcom/google/android/exoplayer2/audio/Sonic;->getFramesAvailable()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 queueEndOfStream()V
.registers 3
.line 230
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
const/4 v1, 0x1
if-eqz v0, :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;->checkState(Z)V
.line 231
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/audio/Sonic;->queueEndOfStream()V
.line 232
iput-boolean v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->inputEnded:Z
.line 233
return-void
.end method
.method public queueInput(Ljava/nio/ByteBuffer;)V
.registers 8
.param p1, "inputBuffer" # Ljava/nio/ByteBuffer;
.line 204
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
if-eqz 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 205
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->hasRemaining()Z
move-result v0
if-eqz v0, :cond_2b
.line 206
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
move-result-object v0
.line 207
.local v0, "shortBuffer":Ljava/nio/ShortBuffer;
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I
move-result v1
.line 208
.local v1, "inputSize":I
iget-wide v2, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->inputBytes:J
int-to-long v4, v1
add-long/2addr v2, v4
iput-wide v2, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->inputBytes:J
.line 209
iget-object v2, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
invoke-virtual {v2, v0}, Lcom/google/android/exoplayer2/audio/Sonic;->queueInput(Ljava/nio/ShortBuffer;)V
.line 210
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->position()I
move-result v2
add-int/2addr v2, v1
invoke-virtual {p1, v2}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 212
.end local v0 # "shortBuffer":Ljava/nio/ShortBuffer;
.end local v1 # "inputSize":I
:cond_2b
iget-object v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/audio/Sonic;->getFramesAvailable()I
move-result v0
iget v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->channelCount:I
mul-int v0, v0, v1
mul-int/lit8 v0, v0, 0x2
.line 213
.local v0, "outputSize":I
if-lez v0, :cond_76
.line 214
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->buffer:Ljava/nio/ByteBuffer;
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->capacity()I
move-result v1
if-ge v1, v0, :cond_56
.line 215
invoke-static {v0}, 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/SonicAudioProcessor;->buffer:Ljava/nio/ByteBuffer;
.line 216
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->shortBuffer:Ljava/nio/ShortBuffer;
goto :goto_60
.line 218
:cond_56
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->buffer:Ljava/nio/ByteBuffer;
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->clear()Ljava/nio/Buffer;
.line 219
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->shortBuffer:Ljava/nio/ShortBuffer;
invoke-virtual {v1}, Ljava/nio/ShortBuffer;->clear()Ljava/nio/Buffer;
.line 221
:goto_60
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
iget-object v2, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->shortBuffer:Ljava/nio/ShortBuffer;
invoke-virtual {v1, v2}, Lcom/google/android/exoplayer2/audio/Sonic;->getOutput(Ljava/nio/ShortBuffer;)V
.line 222
iget-wide v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputBytes:J
int-to-long v3, v0
add-long/2addr v1, v3
iput-wide v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputBytes:J
.line 223
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->buffer:Ljava/nio/ByteBuffer;
invoke-virtual {v1, v0}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;
.line 224
iget-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->buffer:Ljava/nio/ByteBuffer;
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputBuffer:Ljava/nio/ByteBuffer;
.line 226
:cond_76
return-void
.end method
.method public reset()V
.registers 3
.line 264
const/high16 v0, 0x3f800000 # 1.0f
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->speed:F
.line 265
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->pitch:F
.line 266
const/4 v0, -0x1
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->channelCount:I
.line 267
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sampleRateHz:I
.line 268
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputSampleRateHz:I
.line 269
sget-object v1, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->EMPTY_BUFFER:Ljava/nio/ByteBuffer;
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->buffer:Ljava/nio/ByteBuffer;
.line 270
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->shortBuffer:Ljava/nio/ShortBuffer;
.line 271
sget-object v1, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->EMPTY_BUFFER:Ljava/nio/ByteBuffer;
iput-object v1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputBuffer:Ljava/nio/ByteBuffer;
.line 272
iput v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->pendingOutputSampleRateHz:I
.line 273
const/4 v0, 0x0
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
.line 274
const-wide/16 v0, 0x0
iput-wide v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->inputBytes:J
.line 275
iput-wide v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputBytes:J
.line 276
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->inputEnded:Z
.line 277
return-void
.end method
.method public scaleDurationForSpeedup(J)J
.registers 18
.param p1, "duration" # J
.line 150
move-object v0, p0
iget-wide v5, v0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputBytes:J
const-wide/16 v1, 0x400
cmp-long v3, v5, v1
if-ltz v3, :cond_27
.line 151
iget v1, v0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->outputSampleRateHz:I
iget v2, v0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sampleRateHz:I
if-ne v1, v2, :cond_18
iget-wide v3, v0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->inputBytes:J
.line 152
move-wide/from16 v1, p1
invoke-static/range {v1 .. v6}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v1
goto :goto_26
:cond_18
iget-wide v3, v0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->inputBytes:J
int-to-long v7, v1
mul-long v11, v3, v7
int-to-long v1, v2
mul-long v13, v5, v1
.line 153
move-wide/from16 v9, p1
invoke-static/range {v9 .. v14}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v1
.line 151
:goto_26
return-wide v1
.line 156
:cond_27
iget v1, v0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->speed:F
float-to-double v1, v1
move-wide/from16 v3, p1
long-to-double v5, v3
invoke-static {v1, v2}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v5, v6}, Ljava/lang/Double;->isNaN(D)Z
mul-double v1, v1, v5
double-to-long v1, v1
return-wide v1
.end method
.method public setOutputSampleRateHz(I)V
.registers 2
.param p1, "sampleRateHz" # I
.line 138
iput p1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->pendingOutputSampleRateHz:I
.line 139
return-void
.end method
.method public setPitch(F)F
.registers 4
.param p1, "pitch" # F
.line 120
const v0, 0x3dcccccd # 0.1f
const/high16 v1, 0x41000000 # 8.0f
invoke-static {p1, v0, v1}, Lcom/google/android/exoplayer2/util/Util;->constrainValue(FFF)F
move-result p1
.line 121
iget v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->pitch:F
cmpl-float v0, v0, p1
if-eqz v0, :cond_14
.line 122
iput p1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->pitch:F
.line 123
const/4 v0, 0x0
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
.line 125
:cond_14
invoke-virtual {p0}, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->flush()V
.line 126
return p1
.end method
.method public setSpeed(F)F
.registers 4
.param p1, "speed" # F
.line 103
const v0, 0x3dcccccd # 0.1f
const/high16 v1, 0x41000000 # 8.0f
invoke-static {p1, v0, v1}, Lcom/google/android/exoplayer2/util/Util;->constrainValue(FFF)F
move-result p1
.line 104
iget v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->speed:F
cmpl-float v0, v0, p1
if-eqz v0, :cond_14
.line 105
iput p1, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->speed:F
.line 106
const/4 v0, 0x0
iput-object v0, p0, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->sonic:Lcom/google/android/exoplayer2/audio/Sonic;
.line 108
:cond_14
invoke-virtual {p0}, Lcom/google/android/exoplayer2/audio/SonicAudioProcessor;->flush()V
.line 109
return p1
.end method